一种分布式存储下基于冗余机制的数据恢复方法技术

技术编号:12104299 阅读:136 留言:0更新日期:2015-09-23 22:56
本发明专利技术公开了一种分布式存储下基于冗余机制的数据恢复方法,属于分布式存储技术领域。本发明专利技术预先额外设置一个阈值(t2),其值小于系统已有的用于判断永久性故障的阈值(t1);系统周期性计算当前时间与节点最近活跃时间的差值,若差值大于等于t1,则认为其为永久性故障节点;否则若差值大于等于t2且小于t1,则认为其为暂时性故障节点;否则若差值小于t2,则认为其为非故障节点;若同一冗余组内存在两个或两个以上的位于永久性故障或暂时性故障节点上的数据块或校验块,则以高优先级开始此类数据块或校验块的重建;否则,以普通优先级开始重建永久性故障节点上的数据块与校验块。

【技术实现步骤摘要】

本专利技术属于分布式存储
,更具体地,涉及。
技术介绍
分布式存储系统,是将数据分散存储在多台独立的设备上。在大量存储设备协同工作的分布式存储系统中,由于存储设备出现故障而可能导致的数据异常是在设计分布式存储系统时需要考虑的关键部分。目前的分布式存储系统主要通过冗余措施,例如复本和纠删码,提供容错服务。数据到达分布式存储系统后,被划分为一个到多个数据块。在特定的冗余规则下,系统使用数据块生成校验块,这些相关的数据块与校验块共同构成一个冗余组。一般情况下,同一个冗余组中的数据块与校验块被存储在不同的存储节点上。当存储节点发生故障时,将会导致该存储节点上的数据块和校验块暂时不可用或永久丢失。此时,可使用冗余组中幸存的数据块与校验块重建不可用的或丢失的数据块与校验块。现有的分布式存储系统中的恢复流程为:步骤1、系统通过心跳或PING方法来周期性更新每个存储节点的最近一次活跃时间;步骤2、系统周期性计算所有存储节点的活跃时间与当前时间差值,对于每一个差值,若大于等于事先设定的某一阈值(tl),则认为此存储节点是永久性故障节点,否则认为此存储节点为非故障节点;步骤3、若同一冗余组内存在两个或两个以上的位于永久性故障节点上的数据块或校验块,则以高优先级开始此类数据块或校验块的重建;否则以普通优先级开始重建永久性故障节点上的数据块与校验块。上述流程的步骤2中设置的时差阈值(tl)通常较长,一般为10到30分钟,导致同一冗余组中发生多个数据块或校验块同时不可用或丢失的概率上升,从而降低了整个分布式存储系统的可用性与可靠性。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供,其目的在于尽早开始恢复位于多个故障节点上的相互冗余的数据,从而提高分布式存储下数据的可靠性。本专利技术提供,包括以下步骤:步骤I计算当前时间与节点最近活跃时间的差值;步骤2判断所述差值是否大于等于tl,是则执行步骤5,否则执行步骤3,其中,tl为系统已有的用于判断节点是否故障的一个时间差值;步骤3判断所述差值是否大于等于t2,是则执行步骤6,否则执行步骤4,其中,t2为一个预设的时间阈值,且t2〈tl ;步骤4判定该节点为非故障节点,不做任何操作;步骤5判定该节点为永久性故障节点,将该节点从暂时性故障节点队列中移除,根据该节点上数据块或校验块对应的冗余组包含的数据块和校验块的个数来确定该数据块或校验块恢复的优先级;步骤6判定该节点为暂时性故障节点,将其加入到所述暂时性故障队列中,根据该节点上数据块或校验块对应的冗余组中数据块和校验块的个数以及所述暂时性故障队列来确定是否进行此数据块的高优先级恢复。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:本专利技术使用一个新的阈值(t2)判断节点是否发生短暂性故障,若同一冗余组内存在两个或两个以上的位于永久性故障或暂时性故障节点上的数据块或校验块,则以高优先级开始此类数据块或校验块的重建,从而提高系统的可用性和可靠性;相对于缩短系统已有阈值(tl)的方法,本专利技术带来的不必要的重建带宽会远小于缩短已有阈值(tl)带来的不必要的重建带宽。【附图说明】图1为本专利技术分布式存储下基于冗余机制的数据恢复方法的流程图;图2为本专利技术分布式存储下使用阈值确定故障的流程图;图3为本专利技术分布式存储下永久性故障节点上的数据块的处理流程图;图4为本专利技术分布式存储下暂时性故障节点上的数据块的处理流程图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本专利技术中使用的名词解释如下:冗余组:k副本系统中,由I个原始数据块和k -1个副本数据块构成一个冗余组;使用纠删码的系统中,由m个数据块和对应生成的k-m个校验块组成一个冗余组。图1所示为本专利技术分布式存储下基于冗余机制的数据恢复方法的流程图,以Hadoop分布式文件系统(Hadoop Distributed File System,以下简称HDFS)为例进行详细说明,具体包括以下步骤:步骤I计算当前时间与节点最近活跃时间的差值。步骤2判断此差值是否大于等于tl,是则执行步骤5,否则执行步骤3,在本专利技术实施例中,tl为系统已有的用于判断节点是否故障的一个时间差值。步骤3判断此差值是否大于等于t2,是则执行步骤6,否则执行步骤4,在本专利技术实施例中,t2为一个预设的时间阈值,且t2〈tI。步骤4判定此节点为非故障节点,不做任何操作。步骤5判定此节点为永久性故障节点,将该节点从暂时性故障节点队列Ql中移除,然后根据节点上数据块或校验块对应的冗余组包含的数据块和校验块的个数来确定此数据块或校验块恢复的优先级,具体包括以下子步骤:(5-1)判断此节点是否位于暂时性故障队列Ql中,是则将此节点从暂时性故障队列Ql中删除,否则执行步骤(5-2);(5-2)对于此节点上每一个数据块或校验块,删除其对应的冗余组中的此数据块或校验块,计算冗余组对应的数据块或校验块的个数;(5-3)判断此个数是否小于k-Ι,是则执行步骤(5-5),否则执行步骤(5_4),其中k为系统设定的一个冗余组应包含的数据块和校验块之和的数量;(5-4)判断此个数是否等于k-Ι,是则执行步骤(5-6),否则不做操作;(5-5)以高优先级开始恢复此数据块或校验块;(5-6)以普通优先级开始恢复此数据块或校验块。在本专利技术实施例中,在检测到节点发生永久性故障后,若此节点上的数据块对应的冗余组内存在两个或两个以上的位于永久性故障或暂时性故障节点上的数据块或校验块,则以高优先级开始此类数据块或校验块的重建,否则,以普通优先级开始重建永久性故障节点上的数据块与校验块。步骤6判定此节点为暂时性故障节点,将其加入到暂时性故障队列Ql中,然后根据节点上数据块或校验块对应的冗余组中数据块和校验块的个数以及暂时性故障队列Ql来确定是否进行此数据块的高优先级恢复,具体包括以下子步骤:(6-1)将此节点加入到暂时性故障节点队列Ql中;(6-2)对于此节点上的每一个数据块或校验块,计算其当前第1页1 2 本文档来自技高网...
一种分布式存储下基于冗余机制的数据恢复方法

【技术保护点】
一种分布式存储下基于冗余机制的数据恢复方法,其特征在于,包括:步骤1计算当前时间与节点最近活跃时间的差值;步骤2判断所述差值是否大于等于t1,是则执行步骤5,否则执行步骤3,其中,t1为系统已有的用于判断节点是否故障的一个时间差值;步骤3判断所述差值是否大于等于t2,是则执行步骤6,否则执行步骤4,其中,t2为一个预设的时间阈值,且t2<t1;步骤4判定该节点为非故障节点,不做任何操作;步骤5判定该节点为永久性故障节点,将该节点从暂时性故障节点队列中移除,根据该节点上数据块或校验块对应的冗余组包含的数据块和校验块的个数来确定该数据块或校验块恢复的优先级;步骤6判定该节点为暂时性故障节点,将其加入到所述暂时性故障队列中,根据该节点上数据块或校验块对应的冗余组中数据块和校验块的个数以及所述暂时性故障队列来确定是否进行此数据块的高优先级恢复。

【技术特征摘要】

【专利技术属性】
技术研发人员:万胜刚方俊涛
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1