一种分布式文件系统中的副本管理方法

文档序号:6363009阅读:309来源:国知局
专利名称:一种分布式文件系统中的副本管理方法
技术领域
本发明涉及云计算云存储领域,具体涉及一种分布式文件系统中的副本管理方法。
背景技术
云存储是在云计算(cloud computing)基础上延伸和发展出来的一个新概念,是指通过集群应用、网络技术和分布式文件系统等技术,将网络中大量不同类型的存储设备进行整合利用,形成统一的存储池对外提供存储服务。分布式文件系统作为云存储的核心组成部分在近几年中有了长足的发展。在分布式文件系统中,在多副本冗余的情况下进行副本更新可能会导致主节点和块节点副本间的数据不一致。

发明内容
本发明要解决的技术问题是如何在分布式文件系统中维护副本的一致性。为了解决上述问题,本发明提供了一种分布式文件系统中的副本管理方法,包括
在块节点向主节点重新注册时,根据块节点上副本的状态重新设置主节点上相应副本的状态;若块节点上的副本受损,则将主节点上相应副本设置为错误状态;若块节点上的副本将要移除,则将主节点上相应副本设置为即将移除正确状态;若块节点上的副本正常, 则将主节点上相应副本设置为正确状态。进一步地,所述的方法还包括
新建副本时将该副本设置为忙状态,如果新建成功则将该副本转换为正确状态,新建失败则将该副本转换为错误状态。进一步地,所述的方法还包括
更新正确状态的副本时,将该副本转换为忙状态;更新成功则将该副本转换为正确状态,更新失败则将该副本转换为错误状态;
更新即将移除正确状态的副本时,将该副本转换为即将移除忙状态;更新成功则将该副本转换为即将移除正确状态,更新失败则该将副本转换为错误状态。进一步地,所述的方法还包括
主节点周期性检测各副本的状态,将处于错误状态的副本设置为删除状态;对处于正确状态或即将移除正确状态的副本,若该副本对应的文件节点已经删除,则将该副本设置为删除状态。进一步地,所述的方法还包括
在主节点周期性检测时,对处于删除状态的副本,向块节点发出删除该副本的命令;若块节点删除该副本成功,则释放掉该副本的数据结构;若块节点删除该副本失败,则保持该副本为删除状态不变。
进一步地,所述的方法还包括
在主节点周期性检测时,比较正确状态的副本数和预期要求副本数goal,如果正确状态的副本数大于goal,则将多余的正确状态的副本设置为删除状态。进一步地,如果正确状态的副本数小于goal,则新建相应数量的副本;新建副本时,以正确状态的副本为源进行复制,若不存在正确状态的副本则以即将移除正确状态的副本为源进行复制。进一步地,所述的方法还包括
在主节点周期性检测时,判断处于正确状态和即将删除正确状态的副本数之和是否大于预期要求副本数goal,如果是则将多余的即将删除正确状态的副本设置为删除状态。本发明的技术方案根据分布式文件系统的实际操作对相关副本进行状态标记,维护副本一致性;本发明的优化方案定义了错误状态、删除状态、忙状态、正确状态、即将移除忙状态、即将移除正确状态六种副本状态,并定期检查这些副本,完成副本状态的转换,从而达到周期性维护副本一致性的目的,而且使分布式文件系统具有较好的自我容错能力; 本发明的又一优化方案通过自动完成副本的拷贝、恢复、删除工作,来保证合法副本数等于预期设置。


图I是实施例一中副本各状态及其转换示意图。
具体实施例方式下面将结合附图及实施例对本发明的技术方案进行更详细的说明。需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。实施例一,一种分布式文件系统中的副本管理方法,包括
在块节点向主节点重新注册(比如重启了块节点)时,根据块节点上副本(即块文件)的状态重新设置主节点上相应副本的状态;若块节点上的副本受损(比如块节点上块文件被意外删除),则将主节点上相应副本设置为错误状态;若块节点上的副本将要移除(比如要将块节点从分布式文件系统中移除,此时会将其上的块文件标定为移除状态),则将主节点上相应副本设置为即将移除正确状态;若块节点上的副本正常,则将主节点上相应副本设置为正确状态。如果主节点上副本当前状态就和要设置的一致(比如块节点上的副本正常,而主节点上相应副本当前状态就是正确状态),则保持原来状态即可。即将移除正确状态表示该副本数据是正确的,但它所在的块节点将要从分布式文件系统中移除。本实施例中,所述方法还可以包括
主节点周期性检测各副本的状态,将处于错误状态的副本设置为删除状态,表示该副本即将被删除。 本实施例中,所述方法还可以包括
在主节点周期性检测时,对处于正确状态或即将移除正确状态的副本,若该副本对应的文件节点已经删除,则将该副本设置为删除状态,表示该副本即将被删除。本实施例中,所述方法还可以包括
在主节点周期性检测时,对处于删除状态的副本,向块节点发出删除该副本的命令;若块节点删除该副本成功,则释放掉该副本的数据结构;若块节点删除该副本失败,则保持该副本为删除状态不变。本实施例中,所述方法还可以包括
在主节点周期性检测时,比较正确状态的副本数和预期要求副本数goal (goal是会变化的,比如客户端重新设置了 goal),如果正确状态的副本数大于goal,则将多余的正确状态的副本设置为删除状态(假设正确状态的副本数为8,goal为5,则将3个正确状态的副本设置为删除状态)。本实施例中,在主节点周期性检测时,如果正确状态的副本数小于goal,则可以新建相应数量的副本(假设正确状态的副本数为6,goal为15,则新建9个副本);新建副本时, 以正确状态的副本为源进行复制,若不存在正确状态的副本则以即将移除正确状态的副本为源进行复制。如果不新建的话,也可以将即将删除正确状态的副本数也考虑进来,判断处于正确状态和即将删除正确状态的副本数之和是否能达到goal,如果仍然不够再进行新建。本实施例中,所述方法还可以包括
在主节点周期性检测时,判断处于正确状态和即将删除正确状态的副本数之和是否大于预期要求副本数goal,如果是则将多余的即将删除正确状态的副本设置为删除状态。否则,副本状态保持不变。如果删除全部即将删除正确状态的副本后,正确状态的副本数还是大于预期要求副本数,则按照上文进行处理。如果处于正确状态和即将删除正确状态的副本数之和小于预期要求副本数goal,则按照上文的方法新建副本。如果先已经按照上文使正确状态的副本数等于预期要求副本数goal,则只要将所有即将删除正确状态的副本数设置为删除状态即可。本实施例中,所述方法还可以包括
新建副本(比如客户端用户进行文件追加操作)时将该副本设置为忙状态,如果新建成功(客户端向块节点写操作成功)则将该副本转换为正确状态,新建失败(客户端向块节点写操作失败)则将该副本转换为错误状态。本实施例中,所述方法还可以包括
更新正确状态的副本(比如客户端用户进行文件更新操作)时,将该副本转换为忙状态;更新成功(客户端向块节点写操作成功)则将该副本转换为正确状态,更新失败(客户端向块节点写操作失败)则将该副本转换为错误状态;
更新即将移除正确状态的副本时,将该副本转换为即将移除忙状态;更新成功(客户端向块节点写操作成功)则将该副本转换为即将移除正确状态,更新失败(客户端向块节点写操作失败)则该将副本转换为错误状态。本实施例如图I所示,副本状态可以定义为以下六种状态INVALID,DEL, BUSY, VALID, TDBUSY, TDVALID,即错误状态、删除状态、忙状态、正确状态、即将移除忙状态、即将移除正确状态,这些状态可以都记录在主节点的副本数据结构中,根据上文中所述的客户端文件写操作及块节点当前状况来进行状态的转换。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
权利要求
1.一种分布式文件系统中的副本管理方法,包括在块节点向主节点重新注册时,根据块节点上副本的状态重新设置主节点上相应副本的状态;若块节点上的副本受损,则将主节点上相应副本设置为错误状态;若块节点上的副本将要移除,则将主节点上相应副本设置为即将移除正确状态;若块节点上的副本正常, 则将主节点上相应副本设置为正确状态。
2.如权利要求I所述的方法,其特征在于,还包括新建副本时将该副本设置为忙状态,如果新建成功则将该副本转换为正确状态,新建失败则将该副本转换为错误状态。
3.如权利要求I所述的方法,其特征在于,还包括更新正确状态的副本时,将该副本转换为忙状态;更新成功则将该副本转换为正确状态,更新失败则将该副本转换为错误状态;更新即将移除正确状态的副本时,将该副本转换为即将移除忙状态;更新成功则将该副本转换为即将移除正确状态,更新失败则该将副本转换为错误状态。
4.如权利要求I到3中任一项所述的方法,其特征在于,还包括主节点周期性检测各副本的状态,将处于错误状态的副本设置为删除状态;对处于正确状态或即将移除正确状态的副本,若该副本对应的文件节点已经删除,则将该副本设置为删除状态。
5.如权利要求4所述的方法,其特征在于,还包括在主节点周期性检测时,对处于删除状态的副本,向块节点发出删除该副本的命令;若块节点删除该副本成功,则释放掉该副本的数据结构;若块节点删除该副本失败,则保持该副本为删除状态不变。
6.如权利要求4所述的方法,其特征在于,还包括在主节点周期性检测时,比较正确状态的副本数和预期要求副本数goal,如果正确状态的副本数大于goal,则将多余的正确状态的副本设置为删除状态。
7.如权利要求6所述的方法,其特征在于如果正确状态的副本数小于goal,则新建相应数量的副本;新建副本时,以正确状态的副本为源进行复制,若不存在正确状态的副本则以即将移除正确状态的副本为源进行复制。
8.如权利要求4所述的方法,其特征在于,还包括在主节点周期性检测时,判断处于正确状态和即将删除正确状态的副本数之和是否大于预期要求副本数goal,如果是则将多余的即将删除正确状态的副本设置为删除状态。
全文摘要
本发明公开了一种分布式文件系统中的副本管理方法,包括在块节点向主节点重新注册时,根据块节点上副本的状态重新设置主节点上相应副本的状态;若块节点上的副本受损,则将主节点上相应副本设置为错误状态;若块节点上的副本将要移除,则将主节点上相应副本设置为即将移除正确状态;若块节点上的副本正常,则将主节点上相应副本设置为正确状态。本发明能在分布式文件系统中维护副本的一致性。
文档编号G06F17/30GK102609454SQ20121000816
公开日2012年7月25日 申请日期2012年1月12日 优先权日2012年1月12日
发明者张明富, 颜秉珩 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1