【技术实现步骤摘要】
本专利技术涉及计算机
,尤其涉及一种存储文件的方法、第一虚拟机及名称节点。
技术介绍
分布式文件系统包括客户端(client)、数据节点(datanode)和名称节点(namenode);其中,数据节点用于存储文件,名称节点用于管理数据节点上存储的文件。客户端可通过名称节点查询每个数据节点中存储的文件并获得每个数据节点的地址,从而实现从数据节点中读取文件或者将文件写入数据节点。分布式文件系统中的数据节点可以是物理服务器,也可以是虚拟机。当分布式文件系统中的数据节点为虚拟机时,该虚拟机的虚拟硬盘是由分布式块存储系统提供的,向虚拟机写文件实际是向虚拟机的虚拟硬盘写文件,向虚拟硬盘写文件的实现方式是向分布式块存储系统管理的物理硬盘写文件。分布式文件系统为了保证文件的可靠性,在虚拟硬盘存储文件时会采用文件副本机制,将同一个文件保存在分布式文件系统中N个(N为大于1的整数)虚拟硬盘中;而分布式块存储系统为了保证文件的可靠性,也会采用文件副本机制,将同一个虚拟硬盘中的文件在M个(M为大于1的整数)物理硬盘中保存。由于分布式文件系统和分布式块存储系统均采用文件副本机制,会导致同一个文件在物理硬盘中实际保存的文件份数为N*M,造成了文件份数冗余。同一个文件保存的文件份数冗余会浪费存储空间,影响系统的处理性能。现有技术中为了解决分布式文件系统中文件份数冗余的问题,通常采用以下两种方法:第一种方法是,对于需要存储的一份文件,仅在分布式文件系统的一个虚拟机中存储该文件。采用第一种方法,只能通过该虚拟机才能访问该文件,若该虚拟机发生故障,则需要等待该虚拟机恢复正常后才能再 ...
【技术保护点】
一种分布式文件系统中存储文件的方法,其特征在于,所述分布式文件系统包括名称节点、多个作为数据节点的虚拟机,所述多个虚拟机共享同一存储区域;所述方法包括:第一虚拟机接收客户端发送的待写数据、第二虚拟机的地址,所述第一虚拟机为所述多个虚拟机中被所述名称节点指定具有向所述存储区域写入数据的权限的一个虚拟机,所述第二虚拟机为所述多个虚拟机中除所述第一虚拟机以外的虚拟机;所述第一虚拟机向所述存储区域写入所述待写数据,并生成或更新所述待写数据的元数据;所述第一虚拟机根据所述第二虚拟机的地址向所述第二虚拟机发送所述元数据。
【技术特征摘要】
1.一种分布式文件系统中存储文件的方法,其特征在于,所述分布式文件系统包括名称节点、多个作为数据节点的虚拟机,所述多个虚拟机共享同一存储区域;所述方法包括:第一虚拟机接收客户端发送的待写数据、第二虚拟机的地址,所述第一虚拟机为所述多个虚拟机中被所述名称节点指定具有向所述存储区域写入数据的权限的一个虚拟机,所述第二虚拟机为所述多个虚拟机中除所述第一虚拟机以外的虚拟机;所述第一虚拟机向所述存储区域写入所述待写数据,并生成或更新所述待写数据的元数据;所述第一虚拟机根据所述第二虚拟机的地址向所述第二虚拟机发送所述元数据。2.如权利要求1所述的方法,其特征在于,所述第一虚拟机向所述存储区域写入所述待写数据之前,还包括:所述第一虚拟机接收所述客户端发送的所述第一虚拟机的写权限标识,所述写权限标识是所述名称节点在所述客户端向所述名称节点请求向分布式文件系统写入所述待写数据时向所述客户端发送的,所述写权限标识用于指定所述第一虚拟机具有向所述存储区域写入所述待写数据的权限。3.如权利要求1或2所述的方法,其特征在于,所述多个虚拟机挂载分布式块存储系统提供的同一虚拟硬盘,所述虚拟硬盘包括所述存储区域。4.如权利要求1至3任一项所述的方法,其特征在于,若所述第二虚拟机通过自身的操作系统读取所述待写数据,则所述元数据用于所述第二虚拟机生成或更新自身的操作系统中记录的文件信息,所述文件信息用于所述操作系统从所述存储区域中读取所述待写数据;或者若所述第二虚拟机读取所述待写数据,则所述元数据用于所述第二虚拟机从所述存储区域中读取所述待写数据。5.如权利要求1至4任一项所述的方法,其特征在于,所述第二虚拟机被所述名称节点指定具有从所述存储区域读取所述待写数据的权限。6.一种分布式文件系统中存储文件的方法,其特征在于,所述分布式文件系统包括名称节点、多个作为数据节点的虚拟机,所述多个虚拟机共享同一存储区域;所述方法包括:所述名称节点接收客户端请求向所述分布式文件系统写入待写数据的请求消息;所述名称节点向所述客户端发送所述请求消息对应的响应消息,所述响应消息包括第一虚拟机的地址和第二虚拟机的地址,所述响应消息指示所述第一虚拟机为所述多个虚拟机中具有向所述存储区域写入数据的权限的一个虚拟机,所述第二虚拟机为所述多个虚拟机中除所述第一虚拟机以外的虚拟机。7.如权利要求6所述的方法,其特征在于,所述响应消息还指示所述第二虚拟机具有从所述存储区域读取所述待写数据的权限。8.如权利要求6或7所述的方法,其特征在于,所述响应消息还包括所述第一虚拟机的写权限标识和所述第二虚拟机的读权限标识,所述写权限标识用于指定所述第一虚拟机具有向所述存储区域写入所述待写数据的权限,所述读权限标识用于指定所述第二虚拟机具有从所述存储区域读取所述待写数据的权限。9.如权利要求6或7所述的方法,其特征在于,所述响应消息中所述第一虚拟机的地址和所述第二虚拟机的地址按照预设规则排列,所述预设规则用于指定所述第一虚拟机具有向所述存储区域写入所述待写数据的权限,以及指定所述第二虚拟机具有从所述存储区域读取所述待写数据的权限。10.如权利要求6至9任一项所述的方法,其特征在于,所述多个虚拟机挂载分布式块存储系统提供的同一虚拟硬盘,所述虚拟硬盘包括所述存储区域。11.如权利要求6至10任一项所述的方法,其特征在于,所述方法还包括:当所述第一虚拟机发生故障时,所述名称节点向所述客户端发送第一更新信息,所述第一更新信息包括更新的第一虚拟机的地址,所述第一更新信息指定所述多个虚拟机中除发生故障的所述第一虚拟机以外的另一个虚拟机作为所述更新的第一虚拟机,所述更新的第一虚拟机具有向所述存储区域写入数据的权限;和/或当所述第二虚拟机发生故障时,所述名称节点向所述客户端发送第二更新信息,所述第二更新信息包括更新的第二虚拟机的地址,所述第二更新信息指定所述多个虚拟机以外的另一个虚拟机作为所述更新的第二虚拟机,所述更新的第二虚拟机具有从所述存储区域读取所述待写数据的权限。12.一种分布式文件系统中的第一虚拟机,其特征在于,所述分布式文件系统包括名称节...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。