CN104935481A - 一种分布式存储下基于冗余机制的数据恢复方法 - Google Patents
一种分布式存储下基于冗余机制的数据恢复方法 Download PDFInfo
- Publication number
- CN104935481A CN104935481A CN201510351033.5A CN201510351033A CN104935481A CN 104935481 A CN104935481 A CN 104935481A CN 201510351033 A CN201510351033 A CN 201510351033A CN 104935481 A CN104935481 A CN 104935481A
- Authority
- CN
- China
- Prior art keywords
- node
- data block
- block
- check block
- check
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种分布式存储下基于冗余机制的数据恢复方法,属于分布式存储技术领域。本发明预先额外设置一个阈值(t2),其值小于系统已有的用于判断永久性故障的阈值(t1);系统周期性计算当前时间与节点最近活跃时间的差值,若差值大于等于t1,则认为其为永久性故障节点;否则若差值大于等于t2且小于t1,则认为其为暂时性故障节点;否则若差值小于t2,则认为其为非故障节点;若同一冗余组内存在两个或两个以上的位于永久性故障或暂时性故障节点上的数据块或校验块,则以高优先级开始此类数据块或校验块的重建;否则,以普通优先级开始重建永久性故障节点上的数据块与校验块。
Description
技术领域
本发明属于分布式存储技术领域,更具体地,涉及一种分布式存储下基于冗余机制的数据恢复方法。
背景技术
分布式存储系统,是将数据分散存储在多台独立的设备上。在大量存储设备协同工作的分布式存储系统中,由于存储设备出现故障而可能导致的数据异常是在设计分布式存储系统时需要考虑的关键部分。目前的分布式存储系统主要通过冗余措施,例如复本和纠删码,提供容错服务。
数据到达分布式存储系统后,被划分为一个到多个数据块。在特定的冗余规则下,系统使用数据块生成校验块,这些相关的数据块与校验块共同构成一个冗余组。一般情况下,同一个冗余组中的数据块与校验块被存储在不同的存储节点上。当存储节点发生故障时,将会导致该存储节点上的数据块和校验块暂时不可用或永久丢失。此时,可使用冗余组中幸存的数据块与校验块重建不可用的或丢失的数据块与校验块。
现有的分布式存储系统中的恢复流程为:
步骤1、系统通过心跳或PING方法来周期性更新每个存储节点的最近一次活跃时间;
步骤2、系统周期性计算所有存储节点的活跃时间与当前时间差值,对于每一个差值,若大于等于事先设定的某一阈值(t1),则认为此存储节点是永久性故障节点,否则认为此存储节点为非故障节点;
步骤3、若同一冗余组内存在两个或两个以上的位于永久性故障节点上的数据块或校验块,则以高优先级开始此类数据块或校验块的重建;否则以普通优先级开始重建永久性故障节点上的数据块与校验块。
上述流程的步骤2中设置的时差阈值(t1)通常较长,一般为10到30分钟,导致同一冗余组中发生多个数据块或校验块同时不可用或丢失的概率上升,从而降低了整个分布式存储系统的可用性与可靠性。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种分布式存储下基于冗余机制的数据恢复方法,其目的在于尽早开始恢复位于多个故障节点上的相互冗余的数据,从而提高分布式存储下数据的可靠性。
本发明提供一种分布式存储下基于冗余机制的数据恢复方法,包括以下步骤:
步骤1计算当前时间与节点最近活跃时间的差值;
步骤2判断所述差值是否大于等于t1,是则执行步骤5,否则执行步骤3,其中,t1为系统已有的用于判断节点是否故障的一个时间差值;
步骤3判断所述差值是否大于等于t2,是则执行步骤6,否则执行步骤4,其中,t2为一个预设的时间阈值,且t2<t1;
步骤4判定该节点为非故障节点,不做任何操作;
步骤5判定该节点为永久性故障节点,将该节点从暂时性故障节点队列中移除,根据该节点上数据块或校验块对应的冗余组包含的数据块和校验块的个数来确定该数据块或校验块恢复的优先级;
步骤6判定该节点为暂时性故障节点,将其加入到所述暂时性故障队列中,根据该节点上数据块或校验块对应的冗余组中数据块和校验块的个数以及所述暂时性故障队列来确定是否进行此数据块的高优先级恢复。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明使用一个新的阈值(t2)判断节点是否发生短暂性故障,若同一冗余组内存在两个或两个以上的位于永久性故障或暂时性故障节点上的数据块或校验块,则以高优先级开始此类数据块或校验块的重建,从而提高系统的可用性和可靠性;相对于缩短系统已有阈值(t1)的方法,本发明带来的不必要的重建带宽会远小于缩短已有阈值(t1)带来的不必要的重建带宽。
附图说明
图1为本发明分布式存储下基于冗余机制的数据恢复方法的流程图;
图2为本发明分布式存储下使用阈值确定故障的流程图;
图3为本发明分布式存储下永久性故障节点上的数据块的处理流程图;
图4为本发明分布式存储下暂时性故障节点上的数据块的处理流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明中使用的名词解释如下:
冗余组:k副本系统中,由1个原始数据块和k-1个副本数据块构成一个冗余组;使用纠删码的系统中,由m个数据块和对应生成的k-m个校验块组成一个冗余组。
图1所示为本发明分布式存储下基于冗余机制的数据恢复方法的流程图,以Hadoop分布式文件系统(Hadoop Distributed File System,以下简称HDFS)为例进行详细说明,具体包括以下步骤:
步骤1计算当前时间与节点最近活跃时间的差值。
步骤2判断此差值是否大于等于t1,是则执行步骤5,否则执行步骤3,在本发明实施例中,t1为系统已有的用于判断节点是否故障的一个时间差值。
步骤3判断此差值是否大于等于t2,是则执行步骤6,否则执行步骤4,在本发明实施例中,t2为一个预设的时间阈值,且t2<t1。
步骤4判定此节点为非故障节点,不做任何操作。
步骤5判定此节点为永久性故障节点,将该节点从暂时性故障节点队列Q1中移除,然后根据节点上数据块或校验块对应的冗余组包含的数据块和校验块的个数来确定此数据块或校验块恢复的优先级,具体包括以下子步骤:
(5-1)判断此节点是否位于暂时性故障队列Q1中,是则将此节点从暂时性故障队列Q1中删除,否则执行步骤(5-2);
(5-2)对于此节点上每一个数据块或校验块,删除其对应的冗余组中的此数据块或校验块,计算冗余组对应的数据块或校验块的个数;
(5-3)判断此个数是否小于k-1,是则执行步骤(5-5),否则执行步骤(5-4),其中k为系统设定的一个冗余组应包含的数据块和校验块之和的数量;
(5-4)判断此个数是否等于k-1,是则执行步骤(5-6),否则不做操作;
(5-5)以高优先级开始恢复此数据块或校验块;
(5-6)以普通优先级开始恢复此数据块或校验块。
在本发明实施例中,在检测到节点发生永久性故障后,若此节点上的数据块对应的冗余组内存在两个或两个以上的位于永久性故障或暂时性故障节点上的数据块或校验块,则以高优先级开始此类数据块或校验块的重建,否则,以普通优先级开始重建永久性故障节点上的数据块与校验块。
步骤6判定此节点为暂时性故障节点,将其加入到暂时性故障队列Q1中,然后根据节点上数据块或校验块对应的冗余组中数据块和校验块的个数以及暂时性故障队列Q1来确定是否进行此数据块的高优先级恢复,具体包括以下子步骤:
(6-1)将此节点加入到暂时性故障节点队列Q1中;
(6-2)对于此节点上的每一个数据块或校验块,计算其对应的冗余组中的数据块或校验块所位于的节点在暂时性故障队列Q1中出现的次数c1以及冗余组中数据块和校验块的个数之和c2;
(6-3)判断c1+(k-c2)是否大于等于2,是则执行步骤(6-4),否则不做操作;
(6-4)以高优先级开始恢复此数据块或校验块。
在本发明实施例中,在检测到节点发生暂时性故障后,若此节点上的数据块对应的冗余组内存在两个或两个以上的位于永久性故障或暂时性故障节点上的数据块或校验块,则以高优先级开始此类数据块或校验块的重建。
在HDFS集群上,通常使用3副本方法,每个冗余组包含1个原始数据块和2个副本数据块(在本发明实施例中,副本数据块和原始数据块没有差别,统称为数据块),这3个数据块分别存在3个不同的数据节点上。未发生故障时候,一个由数据块b1,b2,b3构成的冗余组为{b1,b2,b3},这三个数据块分别位于不同的数据节点之上,若数据块b2所在的数据节点发生永久性故障,此冗余组变为{b1,b3}。
HDFS上的数据恢复流程:
(1)数据节点会周期性(默认为3秒钟)发送发生心跳信息给名字节点,名字节点在收到心跳信息后,更新数据节点最近活跃时间;
(2)名字节点每隔一段时间(默认为5分钟)计算当前时间与最近活跃时间的差值,若此差值超过阈值t1时间(默认为10分钟30秒),则认为此节点发生了永久性故障;
(3)对于发生故障的节点,将此节点上的数据块从对应的冗余组中删除,然后加入到系统的待重建队列,待重建列表根据数据块对应的冗余组含有的数据块数量确定优先级,若此数量等于k-1,以普通优先级进行数据块的重建,若此数量大于等于k-2,则以高优先级进行数据块的重建。
图2所示为本发明分布式存储下使用阈值确定故障的流程图,检测节点永久性或暂时性故障的具体流程如下:
步骤1名字节点每隔一段时间(在本发明实施例中,默认为5分钟)计算当前时间与数据节点最近活跃时间的差值;
步骤2判断此差值大于等于t1,是则执行步骤5,否则执行步骤3;
步骤3判断此差值大于等于t2,是则执行步骤6,否则执行步骤4;
步骤4判定此数据节点为非故障节点,不做任何操作;
步骤5判定此数据节点为永久性故障节点;
步骤6判定此数据节点为暂时性故障节点。
图3所示为本发明分布式存储下永久性故障节点上的数据块的处理流程图,具体包括以下步骤:
(5-1)对于发生永久性故障的节点上的每一个数据块删除其对应的冗余组中的此数据块,然后计算此冗余组的数据块个数;
(5-2)判断此个数小于k-1,是则执行步骤(5-4),否则执行步骤(5-3);
(5-3)判断此个数等于k-1,是则执行步骤(5-5),否则不做任何操作;
(5-4)将此数据块加入到系统的待重建列表中,并给予高优先级;
(5-5)将此数据块加入到系统的待重建列表中,并给予普通优先级。
图4所示为本发明分布式存储下暂时性故障节点上的数据块的处理流程图,包括以下步骤:
(6-1)对于发生暂时性故障的节点,将其加入到暂时性故障节点队列Q1中;
(6-2)对于此节点上的每一个数据块计算其对应的冗余组中的数据块所位于的节点在暂时性故障队列Q1中的次数c1和冗余组中数据块的个数c2;
(6-3)判断c1+(k-c2)是否大于等于2,是则执行步骤(6-4),否则不做操作;
(6-4)将此数据块加入到系统的待重建列表中,并给予高优先级。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种分布式存储下基于冗余机制的数据恢复方法,其特征在于,包括:
步骤1计算当前时间与节点最近活跃时间的差值;
步骤2判断所述差值是否大于等于t1,是则执行步骤5,否则执行步骤3,其中,t1为系统已有的用于判断节点是否故障的一个时间差值;
步骤3判断所述差值是否大于等于t2,是则执行步骤6,否则执行步骤4,其中,t2为一个预设的时间阈值,且t2<t1;
步骤4判定该节点为非故障节点,不做任何操作;
步骤5判定该节点为永久性故障节点,将该节点从暂时性故障节点队列中移除,根据该节点上数据块或校验块对应的冗余组包含的数据块和校验块的个数来确定该数据块或校验块恢复的优先级;
步骤6判定该节点为暂时性故障节点,将其加入到所述暂时性故障队列中,根据该节点上数据块或校验块对应的冗余组中数据块和校验块的个数以及所述暂时性故障队列来确定是否进行此数据块的高优先级恢复。
2.如权利要求1所述的方法,其特征在于,所述步骤5包括以下子步骤:
(5-1)判断该节点是否位于所述暂时性故障队列中,是则将该节点从所述暂时性故障队列中删除,否则执行步骤(5-2);
(5-2)对于该节点上每一个数据块或校验块,删除其对应的冗余组中的此数据块或校验块,计算冗余组对应的数据块或校验块的个数;
(5-3)判断该个数是否小于k-1,是则执行步骤(5-5),否则执行步骤(5-4),其中,k为系统设定的一个冗余组应包含的数据块和校验块之和的数量;
(5-4)判断该个数是否等于k-1,是则执行步骤(5-6),否则不做操作;
(5-5)以高优先级开始恢复此数据块或校验块;
(5-6)以普通优先级开始恢复此数据块或校验块。
3.如权利要求1所述的方法,其特征在于,所述步骤6包括以下子步骤:
(6-1)将该节点加入到所述暂时性故障节点队列中;
(6-2)对于该节点上的每一个数据块或校验块,计算其对应的冗余组中的数据块或校验块所位于的节点在所述暂时性故障队列中出现的次数c1以及冗余组中数据块和校验块的个数之和c2;
(6-3)判断c1+(k-c2)是否大于等于2,是则执行步骤(6-4),否则不做操作;
(6-4)以高优先级开始恢复此数据块或校验块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510351033.5A CN104935481B (zh) | 2015-06-24 | 2015-06-24 | 一种分布式存储下基于冗余机制的数据恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510351033.5A CN104935481B (zh) | 2015-06-24 | 2015-06-24 | 一种分布式存储下基于冗余机制的数据恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104935481A true CN104935481A (zh) | 2015-09-23 |
CN104935481B CN104935481B (zh) | 2018-03-09 |
Family
ID=54122457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510351033.5A Active CN104935481B (zh) | 2015-06-24 | 2015-06-24 | 一种分布式存储下基于冗余机制的数据恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104935481B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105530294A (zh) * | 2015-12-04 | 2016-04-27 | 中科院成都信息技术股份有限公司 | 一种海量数据分布式存储的方法 |
CN106020975A (zh) * | 2016-05-13 | 2016-10-12 | 华为技术有限公司 | 数据操作方法、装置和系统 |
CN106254161A (zh) * | 2016-09-28 | 2016-12-21 | 上海爱数信息技术股份有限公司 | 基于hdfs的节点失效的快速检测与恢复方法及系统 |
CN107544862A (zh) * | 2016-06-29 | 2018-01-05 | 中兴通讯股份有限公司 | 一种基于纠删码的存储数据重构方法和装置、存储节点 |
CN108733512A (zh) * | 2018-04-14 | 2018-11-02 | 温州职业技术学院 | 基于分布式系统的数据恢复方法及系统 |
CN110278222A (zh) * | 2018-03-15 | 2019-09-24 | 华为技术有限公司 | 分布式文件存储系统中数据管理的方法、系统以及相关设备 |
CN110535692A (zh) * | 2019-08-12 | 2019-12-03 | 华为技术有限公司 | 故障处理方法、装置、计算机设备、存储介质及存储系统 |
CN112527540A (zh) * | 2019-09-18 | 2021-03-19 | 北京京东振世信息技术有限公司 | 一种实现自动降级的方法和装置 |
CN113504769A (zh) * | 2021-05-24 | 2021-10-15 | 温州大学 | 一种基于工业4.0的注塑设备状态监控系统 |
CN117411772A (zh) * | 2023-12-14 | 2024-01-16 | 积至网络(北京)有限公司 | 一种分布式网络节点管理与安全重组方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064902A (zh) * | 2012-12-18 | 2013-04-24 | 厦门市美亚柏科信息股份有限公司 | Hdfs中数据的存储方法、读取方法及存储系统、读取系统 |
CN103106124A (zh) * | 2012-12-29 | 2013-05-15 | 华中科技大学 | 一种基于纠删码集群存储系统的交叉重构方法 |
US20140087663A1 (en) * | 2012-09-26 | 2014-03-27 | Apple Inc. | Transmission power modulation to facilitate in-device coexistence between wireless communication technologies |
-
2015
- 2015-06-24 CN CN201510351033.5A patent/CN104935481B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140087663A1 (en) * | 2012-09-26 | 2014-03-27 | Apple Inc. | Transmission power modulation to facilitate in-device coexistence between wireless communication technologies |
CN103064902A (zh) * | 2012-12-18 | 2013-04-24 | 厦门市美亚柏科信息股份有限公司 | Hdfs中数据的存储方法、读取方法及存储系统、读取系统 |
CN103106124A (zh) * | 2012-12-29 | 2013-05-15 | 华中科技大学 | 一种基于纠删码集群存储系统的交叉重构方法 |
Non-Patent Citations (1)
Title |
---|
李博,谢长生,赵小刚,万胜刚: "面向虚拟存储服务系统模型的构建", 《计算机科学》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105530294A (zh) * | 2015-12-04 | 2016-04-27 | 中科院成都信息技术股份有限公司 | 一种海量数据分布式存储的方法 |
CN106020975A (zh) * | 2016-05-13 | 2016-10-12 | 华为技术有限公司 | 数据操作方法、装置和系统 |
CN106020975B (zh) * | 2016-05-13 | 2020-01-21 | 华为技术有限公司 | 数据操作方法、装置和系统 |
CN107544862A (zh) * | 2016-06-29 | 2018-01-05 | 中兴通讯股份有限公司 | 一种基于纠删码的存储数据重构方法和装置、存储节点 |
CN106254161B (zh) * | 2016-09-28 | 2020-01-03 | 上海爱数信息技术股份有限公司 | 基于hdfs的节点失效的快速检测与恢复方法及系统 |
CN106254161A (zh) * | 2016-09-28 | 2016-12-21 | 上海爱数信息技术股份有限公司 | 基于hdfs的节点失效的快速检测与恢复方法及系统 |
CN110278222B (zh) * | 2018-03-15 | 2021-09-14 | 华为技术有限公司 | 分布式文件存储系统中数据管理的方法、系统以及相关设备 |
CN110278222A (zh) * | 2018-03-15 | 2019-09-24 | 华为技术有限公司 | 分布式文件存储系统中数据管理的方法、系统以及相关设备 |
CN108733512A (zh) * | 2018-04-14 | 2018-11-02 | 温州职业技术学院 | 基于分布式系统的数据恢复方法及系统 |
CN110535692A (zh) * | 2019-08-12 | 2019-12-03 | 华为技术有限公司 | 故障处理方法、装置、计算机设备、存储介质及存储系统 |
CN110535692B (zh) * | 2019-08-12 | 2020-12-18 | 华为技术有限公司 | 故障处理方法、装置、计算机设备、存储介质及存储系统 |
WO2021027481A1 (zh) * | 2019-08-12 | 2021-02-18 | 华为技术有限公司 | 故障处理方法、装置、计算机设备、存储介质及存储系统 |
CN112527540A (zh) * | 2019-09-18 | 2021-03-19 | 北京京东振世信息技术有限公司 | 一种实现自动降级的方法和装置 |
CN113504769A (zh) * | 2021-05-24 | 2021-10-15 | 温州大学 | 一种基于工业4.0的注塑设备状态监控系统 |
CN117411772A (zh) * | 2023-12-14 | 2024-01-16 | 积至网络(北京)有限公司 | 一种分布式网络节点管理与安全重组方法 |
CN117411772B (zh) * | 2023-12-14 | 2024-03-19 | 积至网络(北京)有限公司 | 一种分布式网络节点管理与安全重组方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104935481B (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104935481A (zh) | 一种分布式存储下基于冗余机制的数据恢复方法 | |
RU2501072C2 (ru) | Распределенное хранение восстанавливаемых данных | |
CN107748702B (zh) | 一种数据恢复方法和装置 | |
CN104052576A (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
CN110389858B (zh) | 存储设备的故障恢复方法和设备 | |
CN105187249A (zh) | 一种故障恢复方法及装置 | |
KR20150008440A (ko) | 분산형 데이터 저장 시스템에서 데이터 저장 및 보수 방법 및 대응하는 디바이스 | |
US11403181B2 (en) | Systems and methods for managing replication of data to a remote storage device | |
JP2011504269A (ja) | 並列リードソロモンraid(rs−raid)アーキテクチャ、デバイス、および方法 | |
TWI701916B (zh) | 用於在分布式系統中使管理能力自恢復的方法和裝置 | |
CN103064759B (zh) | 数据修复的方法及装置 | |
CN103995901B (zh) | 一种确定数据节点失效的方法 | |
KR20120030938A (ko) | 분산된 데이터 저장 시스템에서 데이터 복제의 방법 및 이에 대응하는 디바이스 | |
CN109828723B (zh) | 一种分布式存储系统及其精确数据修复方法及装置 | |
CN111309515B (zh) | 一种容灾控制方法、装置及系统 | |
CN103718536B (zh) | 用于为冗余组件供电的系统和方法 | |
Alouf et al. | Performance analysis of peer-to-peer storage systems | |
CN113312211B (zh) | 一种确保分布式学习系统的高可用性方法 | |
JP6369226B2 (ja) | 情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム | |
CN107342902B (zh) | 一种四控服务器的链路重组方法及系统 | |
JP2012033169A (ja) | バックアップシステムにおける符号化を使用して、ライブチェックポインティング、同期、及び/又は復旧をサポートするための方法及び装置 | |
CN107888393B (zh) | 一种非对称冗余通信链路中生成全连接集合的方法 | |
JP6511737B2 (ja) | 冗長システム、冗長化方法および冗長化プログラム | |
CN109901953B (zh) | 数据重构方法及装置 | |
CN113609104B (zh) | 一种部分故障的键值对分布式存储系统访问方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |