CN103412799A - 数据恢复方法、数据恢复设备和分布式存储系统 - Google Patents

数据恢复方法、数据恢复设备和分布式存储系统 Download PDF

Info

Publication number
CN103412799A
CN103412799A CN2013103203003A CN201310320300A CN103412799A CN 103412799 A CN103412799 A CN 103412799A CN 2013103203003 A CN2013103203003 A CN 2013103203003A CN 201310320300 A CN201310320300 A CN 201310320300A CN 103412799 A CN103412799 A CN 103412799A
Authority
CN
China
Prior art keywords
data
diagonal angle
node
data memory
memory node
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
Application number
CN2013103203003A
Other languages
English (en)
Other versions
CN103412799B (zh
Inventor
马晓慧
孙亚萍
陈海啸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310320300.3A priority Critical patent/CN103412799B/zh
Publication of CN103412799A publication Critical patent/CN103412799A/zh
Priority to PCT/CN2014/073383 priority patent/WO2015010476A1/zh
Priority to EP14733496.5A priority patent/EP2854033B1/en
Priority to US14/331,485 priority patent/US9529675B2/en
Application granted granted Critical
Publication of CN103412799B publication Critical patent/CN103412799B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2918Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明涉及数据恢复方法、数据恢复设备和分布式存储系统,该方法包括:在分布式存储系统丢失三个节点数据的情况下,根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,所述目标数据存储节点根据丢失数据的对称性确定;根据恢复后的所述目标数据存储节点的数据,降级恢复剩余的丢失数据。本发明实施例采用校验数据进行数据恢复可以保证分布式系统如云存储存储空间的有效利用率,以满足分布式存储系统的性能要求;根据丢失数据的对称性确定首先恢复的目标数据存储节点,并根据校验数据和未丢失的数据对丢失的三个节点数据进行恢复,可以提升分布式存储系统丢失三个节点数据的情况下的数据恢复性能。

Description

数据恢复方法、数据恢复设备和分布式存储系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据恢复方法、数据恢复设备和分布式存储系统。
背景技术
随着云计算技术的普及,云存储也越来越贴近人们的生活。云存储的供应商也在逐年增加,目前业界的供应商数已达到了将近200个。数据可以被存放在远程的云存储系统上,因此可以极大的降低了对本地存储的需求。但是云存储依然面临着诸多问题:如何以最小的成本,为用户数据提供最高的可靠性;如何保证用户数据的安全性,不被窃取、加密等。
为了保证用户数据的安全性,可以将同一份数据复制多份副本(replication),存放在不同的存储节点上。如果某一存储节点出错,但只要还有一个存储节点存在,用户就可以获取这个数据。例如:做三个副本,空间的浪费达到原始数据的3倍。对于云存储供应商而言,采用副本的存储空间浪费严重,成本很高。
为了提升存储的空间利用率,可以采用纠删码(Erasure Code)替代副本,纠删码是一种被普遍采用的数据冗余纠错算法。其中,最著名的ErasureCode是Reed Solomon Code(里德所罗门码)采用GF矩阵和数据相乘,可以得到了校验码。但是,对于计算机CPU(Central Processing Unit,中央处理器)而言,乘法的性能很低,因此Reed Solomon Code算法的性能较低。此外,目前的Reed Solomon Code算法中数据的位宽最大为32位,由于位宽越大性能越高,对性能具有很大限制。
此外,早期IBM提出的EVENODD,是针对RAID(redundant array ofindependent disks,独立磁盘冗余阵列)系统的一种冗余度为2(具有两组校验数据)的算法。cheng huang和lihao xu提出将其推广到冗余度为3(具有三组校验数据)的STAR算法(添加斜率为-1的校验)。
在三个数据存储节点(即三个数据磁盘)丢失时,采用EVENODD与STAR的恢复算法复杂且编码实现难度大;在两个数据存储节点和水平校验节点(即两个数据磁盘、水平校验磁盘)丢失时,需要先恢复水平校验节点的数据,再恢复数据存储节点的原始数据,恢复性能较低,而且算法不易于编码实现。
发明内容
有鉴于此,本发明要解决的技术问题是,现有分布式存储系统的数据恢复性能较低。
为了解决上述技术问题,根据本发明的一实施例,提供了一种数据恢复方法,包括:
在分布式存储系统丢失三个节点数据的情况下,根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,所述目标数据存储节点根据丢失数据的对称性确定;
根据恢复后的所述目标数据存储节点的数据,降级恢复剩余的丢失数据。
对于上述数据恢复方法,在一种可能的实现方式中,在丢失的所述三个节点数据包括三个数据存储节点的数据的情况下,所述目标数据存储节点为丢失盘号处于中间的数据存储节点;所述根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,包括:
根据校验数据,生成对角调节因子和逆对角调节因子,所述校验数据包括水平校验节点、对角校验节点和逆对角校验节点的数据;
根据未丢失的数据存储节点的数据、所述对角调节因子和所述水平调节因子,生成第一水平校验数据、第一对角校验数据和第一逆对角校验数据;
根据所述对角调节因子、逆对角调节因子、所述第一水平校验数据、第一对角校验数据和第一逆对角校验数据,通过优化的十字交叉运算求出所述丢失盘号处于中间的数据存储节点的数据。
对于上述数据恢复方法,在一种可能的实现方式中,所述根据校验数据,生成对角调节因子和逆对角调节因子,包括:
采用公式
Figure BDA00003576422100031
生成所述对角调节因子;
采用公式
Figure BDA00003576422100032
生成所述逆对角调节因子;
其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Pi为所述水平校验节点的第i个条带单元数据,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为大于或等于数据存储节点的个数的素数。
对于上述数据恢复方法,在一种可能的实现方式中,所述根据未丢失的数据存储节点的数据、所述对角调节因子和所述水平调节因子,生成第一水平校验数据、第一对角校验数据和第一逆对角校验数据,包括:
采用公式
Figure BDA00003576422100041
生成所述第一水平校验数据;
采用公式
Figure BDA00003576422100042
生成所述第一对角校验数据;
采用公式
Figure BDA00003576422100043
生成所述第一逆对角校验数据;
其中,Pi'为所述第一水平校验数据,Qi'为所述第一对角校验数据,Ri'为所述第一逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元的数据,r、s、t为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<t<p'≤p,<>p为对p进行取模运算。
对于上述数据恢复方法,在一种可能的实现方式中,所述根据所述对角调节因子、逆对角调节因子、所述第一水平校验数据、第一对角校验数据和第一逆对角校验数据,通过十字交叉运算求出所述丢失盘号处于中间的数据存储节点的数据,包括:
通过十字交叉运算建立丢失数据的丢失盘号处于中间的数据存储节点的公式:
A d = D d , s &CirclePlus; D < d + a > P , s &CirclePlus; D < d + b > P , s &CirclePlus; D < d + a + b > P , s = P < d > P &prime; &CirclePlus; P < d + a + b > P &prime; &CirclePlus; R < d - r > P &prime; &CirclePlus; Q < d + t > P &prime; ;
其中,0≤d≤p-1;s为所述丢失盘号处于中间的数据存储节点的盘号;a、b为丢失的三个数据存储节点之间的盘号差,a=s-r,b=t-s;
根据丢失数据的数据存储节点的盘号差确定的移动的步长和循环异或求和次数,对所述丢失盘号处于中间的数据存储节点的公式进行消元处理后,将所有丢失的数据存储节点的条带单元数据转化为所述丢失盘号处于中间的数据存储节点的两个条带单元数据的异或和,求出所述丢失盘号处于中间的数据存储节点的数据。
对于上述数据恢复方法,在一种可能的实现方式中,所述对所述丢失盘号处于中间的数据存储节点的公式进行消元处理后,将所有丢失的数据存储节点的条带单元数据转化为所述丢失盘号处于中间的数据存储节点的两个条带单元数据的异或和,包括:
对所述丢失盘号处于中间的数据存储节点的公式采用,步长offDis进行k次异或求和,得到所述丢失盘号处于中间的数据存储节点公式 D u , s &CirclePlus; D < u + 2 min Dis > P , s = &Sigma; v = 0 k - 1 A < u + v &times; offDis > p , 其中,根据公式 < b - m &times; a > p = 0 < a - n &times; b > p = 0 k = min { m , n } 确定k,若k=m,则minDis=b,offDis=a,否则minDis=a,offDis=b,<u+v×offDis>p=d,0≤u≤p-1;
其中,根据所述中间的数据存储节点的公式得到的循环方程组,用于表示所述中间的数据存储节点的两个数据的异或和,所述循环方程组的每一个公式至多具有两个变量;
所述求出所述丢失盘号处于中间的数据存储节点的数据,包括:
根据所述丢失盘号处于中间的数据存储节点的虚拟补零的条带单元数据Dp-1,s=0,代入求解所述循环方程组中只具有一个变量的公式,根据求解结果依次求解所述循环方程组的其他公式,得到所述丢失盘号处于中间的数据存储节点的每个数据。
对于上述数据恢复方法,在一种可能的实现方式中,在丢失的所述三个节点数据包括水平校验节点和两个数据存储节点的数据的情况下,所述目标数据存储节点为丢失的所述两个数据存储节点的任意一个,所述根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,包括:
根据所述对角校验节点和所述逆对角校验节点的数据,生成对角调节因子和逆对角调节因子的异或和;
根据未丢失的数据存储节点的数据,生成第二对角校验数据和第二逆对角校验数据;
根据所述对角调节因子和逆对角调节因子的异或和、所述第二对角校验数据和第二逆对角校验数据,采用对称消元运算求出丢失的所述两个数据存储节点的任意一个的数据。
对于上述数据恢复方法,在一种可能的实现方式中,所述根据所述对角校验节点和所述逆对角校验节点的数据,生成对角调节因子和逆对角调节因子的异或和,包括:
采用公式
Figure BDA00003576422100061
生成对角调节因子和逆对角调节因子的异或和,其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为丢失的水平校验数据的盘号,且p为大于或等于数据存储节点的个数的素数。
对于上述数据恢复方法,在一种可能的实现方式中,所述根据未丢失的数据存储节点的数据,生成第二对角校验数据和第二逆对角校验数据,包括:
采用公式
Figure BDA00003576422100062
生成所述第二对角校验数据;
采用公式
Figure BDA00003576422100063
生成所述第二逆对角校验数据;
其中,Qi'为所述第二对角校验数据,Ri'为所述第二逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元数据,r、s为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<p'≤p,<>p为对p进行取模运算。
对于上述数据恢复方法,在一种可能的实现方式中,所述根据所述对角调节因子和逆对角调节因子的异或和、所述第二对角校验数据和第二逆对角校验数据,采用对称消元运算求出所述一个数据存储节点的数据,包括:
根据建立丢失数据公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s &CirclePlus; Q s &CirclePlus; R s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,s=0,求出第s列数据存储节点丢失的数据;或
根据建立丢失数据公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r &CirclePlus; Q s &CirclePlus; R s = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,r=0,求出第r列数据存储节点丢失的数据。
为了解决上述技术问题,根据本发明的另一实施例,提供了一种数据恢复设备,包括:
目标恢复单元,用于在分布式存储系统丢失三个节点数据的情况下,根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,所述目标数据存储节点根据丢失数据的对称性确定;
降级恢复单元,用于根据恢复后的所述目标数据存储节点的数据,降级恢复剩余的丢失数据。
对于上述数据恢复设备,在一种可能的实现方式中,在丢失的所述三个节点数据包括三个数据存储节点的数据的情况下,所述目标数据存储节点为丢失盘号处于中间的数据存储节点;所述目标恢复单元包括:
调节因子生成模块,用于根据校验数据,生成对角调节因子和逆对角调节因子,所述校验数据包括水平校验节点、对角校验节点和逆对角校验节点的数据;
第一校验数据生成模块,用于根据未丢失的数据存储节点的数据、所述对角调节因子和所述水平调节因子,生成第一水平校验数据、第一对角校验数据和第一逆对角校验数据;
十字交叉运算模块,用于根据所述对角调节因子、逆对角调节因子、所述第一水平校验数据、第一对角校验数据和第一逆对角校验数据,通过优化的十字交叉运算求出所述丢失盘号处于中间的数据存储节点的数据。
对于上述数据恢复设备,在一种可能的实现方式中,所述调节因子生成模块具体用于:
采用公式生成所述对角调节因子;
采用公式生成所述逆对角调节因子;
其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Pi为所述水平校验节点的第i个条带单元数据,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为大于或等于数据存储节点的个数的素数。
对于上述数据恢复设备,在一种可能的实现方式中,所述第一校验数据生成模块具体用于:
采用公式
Figure BDA00003576422100091
生成所述第一水平校验数据;
采用公式
Figure BDA00003576422100092
生成所述第一对角校验数据;
采用公式
Figure BDA00003576422100093
生成所述第一逆对角校验数据;
其中,Pi'为所述第一水平校验数据,Qi'为所述第一对角校验数据,Ri'为所述第一逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元的数据,r、s、t为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<t<p'≤p,<>p为对p进行取模运算。
对于上述数据恢复设备,在一种可能的实现方式中,所述十字交叉运算模块具体用于:
通过十字交叉运算建立丢失数据的丢失盘号处于中间的数据存储节点的公式:
A d = D d , s &CirclePlus; D < d + a > P , s &CirclePlus; D < d + b > P , s &CirclePlus; D < d + a + b > P , s = P < d > P &prime; &CirclePlus; P < d + a + b > P &prime; &CirclePlus; R < d - r > P &prime; &CirclePlus; Q < d + t > P &prime; ;
其中,0≤d≤p-1;s为所述丢失盘号处于中间的数据存储节点的盘号;a、b为丢失的三个数据存储节点之间的盘号差,a=s-r,b=t-s;
根据丢失数据的数据存储节点的盘号差确定的移动的步长和循环异或求和次数,对所述丢失盘号处于中间的数据存储节点的公式进行消元处理后,将所有丢失的数据存储节点的条带单元数据转化为所述丢失盘号处于中间的数据存储节点的两个条带单元数据的异或和,求出所述丢失盘号处于中间的数据存储节点的数据。
对于上述数据恢复设备,在一种可能的实现方式中,所述十字交叉运算模块具体还用于:
对所述丢失盘号处于中间的数据存储节点的公式采用,步长offDis进行k次异或求和,得到所述丢失盘号处于中间的数据存储节点公式 D u , s &CirclePlus; D < u + 2 min Dis > P , s = &Sigma; v = 0 k - 1 A < u + v &times; offDis > p , 其中,根据公式 < b - m &times; a > p = 0 < a - n &times; b > p = 0 k = min { m , n } 确定k,若k=m,则minDis=b,offDis=a,否则minDis=a,offDis=b,<u+v×offDis>p=d,0≤u≤p-1;
其中,根据所述中间的数据存储节点的公式得到的循环方程组,用于表示所述中间的数据存储节点的两个数据的异或和,所述循环方程组的每一个公式至多具有两个变量;
所述求出所述丢失盘号处于中间的数据存储节点的数据,包括:
根据所述丢失盘号处于中间的数据存储节点的虚拟补零的条带单元数据Dp-1,s=0,代入求解所述循环方程组中只具有一个变量的公式,根据求解结果依次求解所述循环方程组的其他公式,得到所述丢失盘号处于中间的数据存储节点的每个数据。
对于上述数据恢复设备,在一种可能的实现方式中,在丢失的所述三个节点数据包括水平校验节点和两个数据存储节点的数据的情况下,所述目标恢复单元包括:
因子异或和模块,用于根据所述对角校验节点和所述逆对角校验节点的数据,生成对角调节因子和逆对角调节因子的异或和;
第二校验数据生成模块,用于根据未丢失的数据存储节点的数据,生成第二对角校验数据和第二逆对角校验数据;
对称消元运算模块,用于根据所述对角调节因子和逆对角调节因子的异或和、所述第二对角校验数据和第二逆对角校验数据,采用对称消元运算求出丢失的所述两个数据存储节点的任意一个的数据。
对于上述数据恢复设备,在一种可能的实现方式中,所述因子异或和模块具体用于:
采用公式
Figure BDA00003576422100111
生成对角调节因子和逆对角调节因子的异或和,其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为丢失的水平校验数据的盘号,且p为大于或等于数据存储节点的个数的素数。
对于上述数据恢复设备,在一种可能的实现方式中,所述第二校验数据生成模块具体用于:
采用公式
Figure BDA00003576422100112
生成所述第二对角校验数据;
采用公式
Figure BDA00003576422100113
生成所述第二逆对角校验数据;
其中,Qi'为所述第二对角校验数据,Ri'为所述第二逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元数据,r、s为丢失的数据存储节点的盘号,0≤j≤p'-1,0≤r<s<p'≤p,<>p为对p进行取模运算。
对于上述数据恢复设备,在一种可能的实现方式中,所述对称消元运算模块具体用于:
根据建立丢失数据公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s &CirclePlus; Q s &CirclePlus; R s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,s=0,求出第s列数据存储节点丢失的数据;或
根据建立丢失数据公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r &CirclePlus; Q s &CirclePlus; R s = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,r=0,求出第r列数据存储节点丢失的数据。
为了解决上述技术问题,根据本发明的另一实施例,提供了一种分布式存储系统,包括:多个数据存储节点、多个校验节点和数据恢复设备;
所述数据恢复设备采用本发明实施例中任意一种结构的数据恢复设备。
本发明实施例采用校验数据进行数据恢复可以保证分布式系统如云存储存储空间的有效利用率,以满足分布式存储系统的性能要求;根据丢失数据的对称性确定首先恢复的目标数据存储节点,并根据校验数据和未丢失的数据对丢失的三个节点数据进行恢复,可以提升分布式存储系统丢失三个节点数据的情况下的数据恢复性能。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1a为本发明实施例一的数据恢复方法的流程图;
图1b~图1d为本发明实施例一的数据恢复方法中校验节点的示意图;
图2a为本发明实施例二的数据分流方法的流程图;
图2b为本发明实施例二的数据分流方法中的十字交叉运算的示意图;
图2c为本发明实施例二的数据分流方法中的按步长进行循环异或求和的示意图;
图2d为本发明实施例二的数据分流方法中的按优化步长进行循环异或求和的示意图;
图2e为本发明实施例二的数据恢复方法中数据存储的结构示意图;
图3a为本发明实施例三的数据分流方法的流程图;
图3b为本发明实施例三的数据分流方法中对称消元的示意图;
图4为本发明实施例四的数据恢复设备的结构框图;
图5为本发明实施例五的数据恢复设备的结构框图;
图6为本发明实施例六的数据恢复设备的结构框图;
图7为本发明的实施例七的数据恢复设备的结构框图;
图8为本发明的实施例八的分布式存储系统的结构框图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于大家熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
实施例一
图1a为本发明实施例一的数据恢复方法的流程图,如图1a所示,该数据恢复方法包括:
步骤101、在分布式存储系统丢失三个节点数据的情况下,根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,所述目标数据存储节点根据丢失数据的对称性确定。
步骤102、根据恢复后的所述目标数据存储节点的数据,降级恢复剩余的丢失数据。
优选地,如果分布式系统或RAID中具有的数据存储节点(数据磁盘)个数为p',可以将每个数据存储节点划分为p个条带单元,其中,p≥p',p为素数即质数。此外,分布式系统或RAID中可以具有3个校验节点,因此总节点个数为p'+3个。数据存储节点盘号为0~p'-1,每个盘分为p-1个同等大小的条带,条带编号i的取值范围为0~p-2,第p-1行的条带数据为虚拟补零,在存储节点上不存在。从数学角度上,数据存储节点分块后可以看为一个矩阵D,其中Di,j可以表示第j个数据存储节点第i个条带单元数据,Pi表示水平校验节点的第i个条带单元数据,Qi表示对角校验节点的第i个条带单元数据,Ri表示逆对角校验节点的第i个条带单元数据。图1b~图1d为本发明实施例一的数据恢复方法中校验节点的示意图,水平校验节点P(parity I)的生成方式可以按照同类型的图案进行异或得到,参见图1b;斜率为“1”的对角校验节点Q(parity II)的生成方式可以为数据存储节点中同类型的图形表示的数据异或后与最后一行的调节因子(adjuster)的值异或而来,调节因子(adjuster)不保存,参见图1c;斜率为“-1”的逆对角校验节点R(parityIII)的生成方式与对角校验节点类似,仅同类型的图形的在数据存储节点的位置为逆序,可以参见图1d。此外,也可以采用其他斜率的校验节点,例如:斜率为“2”的校验节点、对角为“-2”的校验节点等。
本发明实施例中,分布式存储系统丢失三个节点数据具体可以包括以下情况:
情况一、在丢失的所述三个节点数据包括三个数据存储节点的数据的情况下,所述目标数据存储节点为丢失盘号处于中间的数据存储节点。
对于情况一,在恢复丢失的三个数据存储节点的数据时,先恢复的目标数据存储节点可以是丢失盘号处于中间的数据存储节点(简称中间节点)。例如:可以计算丢失盘号为最大的数据存储节点(简称最大节点)与中间节点的盘号差,以及丢失盘号为最小的数据存储节点(简称最小节点)与中间节点的盘号差,确定最少的异或次数和步长,将丢失最大节点和最小节点的数据转化为丢失的中间节点的两个条带单元数据异或和,从而得到p对异或和,然后依据中间节点的虚拟补零的条带单元数据,逐步求得中间节点的所有条带单元的数据,进一步可降级恢复剩余两丢失的节点数据。
情况二、在丢失的所述三个节点数据包括水平校验节点和两个数据存储节点的数据的情况下,所述目标数据存储节点为丢失的所述两个数据存储节点的任意一个。
对于情况二,在恢复丢失的水平校验节点和两个数据存储节点的数据时,可以先恢复丢失的数据存储节点的数据,提供给用户,然后恢复丢失的水平校验节点的数据。其中,对角校验节点和逆对角校验节点的调节因子异或和可以由这两个校验节点的所有条带单元数据异或而来。公共条带单元的对角校验节点的调节因子和逆对角校验节点的调节因子异或可以将两个丢失的数据存储节点的条带单元数据,转化为同一个丢失的数据存储节点的两条带单元数据异或和。然后,依据该这一个数据存储节点的虚拟补零的条带单元数据,可以逐步求得这一个数据存储节点的所有条带单元数据,进一步可恢复另一数据存储节点的数据和水平校验节点的数据。
本实施例采用校验数据进行数据恢复可以保证分布式系统存储空间的有效利用率,以满足分布式存储系统的性能要求;根据丢失数据的对称性确定首先恢复的目标数据存储节点,并根据校验数据和未丢失的数据对丢失的三个节点数据进行恢复,可以提升分布式存储系统丢失三个节点数据的情况下的数据恢复性能。此外,由于数据分布不同的数据存储节点中,有利于数据的保密,用户的数据更安全。在丢失三个数据存储节点的数据的情况下,首先恢复丢失盘号处于中间的数据存储节点,算法简单,易于编码实现;在丢失水平校验节点和两个数据存储节点的数据的情况下,首先恢复一个数据存储节点,不仅算法简单,易于编码实现,还可以将恢复的数据存储节点先发给用户,并行恢复水平校验节点的数据,减少用户的等待时间,提高用户体检。
实施例二
图2a为本发明实施例二的数据分流方法的流程图,图2a与图1a标号相同的步骤具有相同的含义,为简明起见,省略对这些组件的详细说明。如图2a所示,与上述实施例的区别在于:在上述实施例中所述的情况一,在丢失的所述三个节点数据包括三个数据存储节点的数据的情况下,步骤101根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,具体可以包括以下步骤:
步骤201、根据校验数据,生成对角调节因子和逆对角调节因子,所述校验数据包括水平校验节点、对角校验节点和逆对角校验节点的数据。
具体地,设丢失r,s,t号数据存储节点,其中0≤r<s<t<p'≤p,其主要思想是通过十字交叉组合先恢复中间节点。可以采用公式(1.1)和公式(1.2)生成调节因子(adjuster)。其中对角校验节点的调节因子可以简称为对角调节因子,参见公式(1.1);逆对角校验节点的调节因子可以简称为逆对角调节因子,参见公式(1.2)。
Q s = &CirclePlus; i = 0 p - 2 ( P i &CirclePlus; Q i ) - - - ( 1.1 )
R s = &CirclePlus; i = 0 p - 2 ( P i &CirclePlus; R i ) - - - ( 1 . 2 )
在公式(1.1)、(1.2)中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Pi为所述水平校验节点的第i个条带单元数据,Qi为所述对角校验0节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为大于或等于数据存储节点的个数p'的素数。
步骤202、根据未丢失的数据存储节点的数据、所述对角调节因子和所述水平调节因子,生成第一水平校验数据、第一对角校验数据和第一逆对角校验数据。
具体地,可以采用公式(1.3)~(1.5)生成新的校验数据。其中,采用公式(1.3)生成第一水平校验数据;采用公式(1.4)生成所述第一对角校验数据;采用公式(1.4)生成所述第一逆对角校验数据;
P i &prime; = P i &CirclePlus; ( &CirclePlus; j = 0 j &NotEqual; r , s , t p ' D i , j ) - - - ( 1.3 )
Q i &prime; = Q s &CirclePlus; Q i &CirclePlus; ( &CirclePlus; j = 0 j &NotEqual; r , s , t p &prime; - 1 D < i - j > p , j ) - - - ( 1.4 )
R i &prime; = R s &CirclePlus; R i &CirclePlus; ( &CirclePlus; j = 0 j &NotEqual; r , s , t p &prime; - 1 D < i - j > p , j ) - - - ( 1.5 )
在公式(1.3)~(1.5),Pi'为所述第一水平校验数据,Qi'为所述第一对角校验数据,Ri'为所述第一逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元的数据,r、s、t为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<t<p'≤p,<>p为对p进行取模运算。
步骤203、根据所述对角调节因子、逆对角调节因子、所述第一水平校验数据、第一对角校验数据和第一逆对角校验数据,通过优化的十字交叉运算求出所述丢失盘号处于中间的数据存储节点的数据。
具体地,图2b为本发明实施例二的数据分流方法中的十字交叉运算的示意图,如图2b所示,十字交叉线经过奇数次的条带单元中包括一个三角,偶数次的条带单元中包括一个方形(两个三角组成),数据存储节点的条带单元数据具有对称性,包括方形的相交节点在进行异或运算的过程中可以消去,例如:经过D0,0的两条线上所有的数据存储节点的条带单元数据的异或运算,相当于消去了D0,0。因此可以通过十字交叉运算,建立丢失数据的丢失盘号处于中间的数据存储节点的公式(1.6):
A d = D d , s &CirclePlus; D < d + a > P , s &CirclePlus; D < d + b > P , s &CirclePlus; D < d + a + b > P , s = P < d > P &prime; &CirclePlus; P < d + a + b > P &prime; &CirclePlus; R < d - r > P &prime; &CirclePlus; Q < d + t > P &prime; - - - ( 1.6 )
在公式(1.6)中,0≤d≤p-1;s为所述丢失盘号处于中间的数据存储节点的盘号;a、b为丢失的三个数据存储节点之间的盘号差,a=s-r,b=t-s。
然后,根据丢失数据的数据存储节点的盘号差确定的移动的步长和循环异或求和次数,可以对所述丢失盘号处于中间的数据存储节点的公式进行消元处理后,将所有丢失的数据存储节点的条带单元数据转化为所述丢失盘号处于中间的数据存储节点的两个条带单元数据的异或和,求出所述丢失盘号处于中间的数据存储节点的数据,进行消元处理的具体方式可以包括:
通常,普通的用十字交叉运算可以包括:对丢失盘号处于中间的数据存储节点的公式采用步长b进行k次异或求和,得到所述丢失盘号处于中间的数据存储节点的公式(1.7):
D u , s &CirclePlus; D < u + 2 a > P , s - - - ( 1.7 )
在公式(1.7)中,根据<a-k×b>p=0确定k,图2c为本发明实施例二的数据分流方法中的按步长进行循环异或求和的示意图,如图2c所示,以b=2,k=3为例,可以对盘号为“2”的数据存储节点进行消元处理,沿着十字交叉的四条线,按照步长2进行3次异或求和后,将十字交叉线经过偶数次的条带单元D1,2、D3,2、D4,2消去,可以得到仅包括两个变量的D0,2、D2,2的异或和公式。盘号为“2”的数据存储节点的成对的条带单元数据之间的异或和公式可以类似得到。
优化的十字交叉运算具体可以包括:对所述丢失盘号处于中间的数据存储节点的公式,采用步长offDis进行k次异或求和,若存在k,使得<minDis-k×offDis>p=0,以步长offDis移动k次(即进行k次异或求和),可以得到所述丢失盘号处于中间的数据存储节点的公式(1.8):
D u , s &CirclePlus; D < u + 2 min Dis > P , s = &Sigma; v = 0 k - 1 A < u + v &times; offDis > p - - - ( 1.8 )
其中,根据公式(1.9)可以确定k:
< b - m &times; a > p = 0 < a - n &times; b > p = 0 k = min { m , n } - - - ( 1.9 )
其中,若k=m,则minDis=b,offDis=a,否则minDis=a,offDis=b,<u+v×offDis>p=d,0≤u≤p-1,Ad为上述公式(1.6)中一个十字交叉的四条线所过数据存储节点的数据的异或和,求解最优的k后,由于先恢复中间节点的数据。例如:如果a=2,b=1,可得k=2,且以步长offDis=b=1移动异或,图2d为本发明实施例二的数据分流方法中的按优化步长进行循环异或求和的示意图,如图2d所示,按照步长1进行2次异或求和后,可以将D1,2、D2,2、D3,2消去,可以得到仅包括两个变量的D0,2、D4,2的异或和公式。盘号为“2”的数据存储节点的成对的条带单元数据之间的异或和公式可以类似得到。
其中,根据所述中间的数据存储节点的公式得到的循环方程组,用于表示所述中间的数据存储节点的两个数据的异或和,所述循环方程组的每一个公式至多具有两个变量。
进一步地,求出所述丢失盘号处于中间的数据存储节点的数据,具体可以包括:根据所述丢失盘号处于中间的数据存储节点的虚拟补零的条带单元数据Dp-1,s=0,代入求解所述循环方程组中只具有一个变量的公式,根据求解结果依次求解所述循环方程组的其他公式,得到所述丢失盘号处于中间的数据存储节点的每个数据。
图2e为本发明实施例二的数据恢复方法中数据存储的结构示意图,如图2e所示,以5个数据存储节点盘号为“0~4”为例,生成3个校验节点P、Q、R,共8个节点,将每个节点等大小划分为4个条带,第5条带(图中行号4的黑色实心圆形)为虚拟补零的条带,根据这个五个数据存储节点生成的水平校验节点的盘号可以“5”,对角校验节点的盘号可以为“6”,逆对角校验节点的盘号可以为“7”。水平校验节点P(parity I)的生成方式可以参见图1b,对角校验节点Q(parity II)的生成方式可以参见图1c,逆对角校验节点R(parity III)的生成方式可以参见图1d。
对于情况一,参见图2d所示,假设丢失节点“0、2、3”,根据本实施例的数据恢复方法,恢复这三个数据存储节点的数据的具体过程可以包括:
执行步骤201,计算对角校验节点Q、逆对角校验节点R的调节因子,根据公式(1.1)和公式(1.2)可以得到公式(1.1.0)和公式(1.2.0):
Qs=P0⊕P1⊕P2⊕P3⊕Q0⊕Q1⊕Q2⊕Q3          (1.1.0)
Rs=P0⊕P1⊕P2⊕P3⊕R0⊕R1⊕R2⊕R3          (1.2.0)
执行步骤202、计算水平校验节点P、对角校验节点Q、逆对角校验节点R的校验数据,根据公式(1.3)可以得到第一水平校验数据的公式组(1.3.0);将公式(1.1.0)代入公式(1.4)可以得到第一对角校验数据的公式组(1.4.0),将公式(1.2.0)代入公式(1.5)可以得到第一逆对角校验数据的公式组(1.5.0)。
P 0 &prime; = D 0,1 &CirclePlus; D 0,4 &CirclePlus; P 0 P 1 &prime; = D 1,1 &CirclePlus; D 1,4 &CirclePlus; P 1 P 2 &prime; = D 2,1 &CirclePlus; D 2,4 &CirclePlus; P 2 P 3 &prime; = D 3,1 &CirclePlus; D 3,4 &CirclePlus; P 3 P 4 &prime; = 0 - - - ( 1.3.0 )
Q 0 &prime; = D 1,4 &CirclePlus; Q s &CirclePlus; Q 0 Q 1 &prime; = D 0,1 &CirclePlus; D 2 , 4 &CirclePlus; Q s &CirclePlus; Q 1 Q 2 &prime; = D 1,1 &CirclePlus; D 3 , 4 &CirclePlus; Q s &CirclePlus; Q Q 3 &prime; = D 2,1 &CirclePlus; Q s &CirclePlus; Q 3 Q 4 &prime; = D 3,1 &CirclePlus; D 0,4 &CirclePlus; Q s - - - ( 1 . 4.0 )
R 0 &prime; = D 1 , 1 &CirclePlus; R s &CirclePlus; R 0 R 1 &prime; = D 2,1 &CirclePlus; D 0 , 4 &CirclePlus; R s &CirclePlus; R 1 R 2 &prime; = D 3 , 1 &CirclePlus; D 1 , 4 &CirclePlus; R s &CirclePlus; R 2 R 3 &prime; = D 2,4 &CirclePlus; R s &CirclePlus; R 3 R 4 &prime; = D 0,1 &CirclePlus; D 3 , 4 &CirclePlus; R s - - - ( 1 . 5.0 )
执行步骤203、确定最小的异或求和次数k和步长offDis。由于丢失的节点号差为a=0-2=2,b=3-2=1,代入公式(1.9)可以得到<1-m×2>5=0,<2-n×1>5=0,m=3,n=2,k=min{m,n}=2,因此,异或求和次数k=2步长为offDis=b=1,参见图2b所确定的恢复方式符合公式(1.8),可以将公式组(1.3.0)、(1.4.0)、(1.5.0)代入公式(1.8),得到公式(1.8.0)。
D u , 2 &CirclePlus; D < u + 2 &times; 2 > 5 , 2 = &Sigma; v = 0 K - 1 &CirclePlus; P < u + v &times; 1 > 5 &prime; &CirclePlus; P < u + 2 + 1 + v &times; 1 > 5 &prime; &CirclePlus; R < u - 0 + v &times; 1 > 5 &prime; &CirclePlus; Q < u + 3 + v &times; 1 > 5 &prime; - - - ( 1.8.0 )
由于0≤u≤p-1,公式(1.8.0)可以展开为循环方程组(1.8.1),包括的p-1=4对数据的异或和,每个公式都是盘号为“2”的一对数据的异或和。
D 0,2 &CirclePlus; D 4,2 = P 0 &prime; &CirclePlus; P 3 &prime; &CirclePlus; R 0 &prime; &CirclePlus; Q 3 &prime; &CirclePlus; P 1 &prime; &CirclePlus; P 4 &prime; &CirclePlus; R 1 &prime; &CirclePlus; Q 4 &prime; D 1,2 &CirclePlus; D 0,2 = P 1 &prime; &CirclePlus; P 4 &prime; &CirclePlus; R 1 &prime; &CirclePlus; Q 4 &prime; &CirclePlus; P 2 &prime; &CirclePlus; P 0 &prime; &CirclePlus; R 2 &prime; &CirclePlus; Q 0 &prime; D 2 , 2 &CirclePlus; D 1 , 2 = P 2 &prime; &CirclePlus; P 0 &prime; &CirclePlus; R 2 &prime; &CirclePlus; Q 0 &prime; &CirclePlus; P 3 &prime; &CirclePlus; P 1 &prime; &CirclePlus; R 3 &prime; &CirclePlus; Q 1 &prime; D 3,2 &CirclePlus; D 2 , 2 = P 3 &prime; &CirclePlus; P 1 &prime; &CirclePlus; R 3 &prime; &CirclePlus; Q 1 &prime; &CirclePlus; P 4 &prime; &CirclePlus; P 2 &prime; &CirclePlus; R 4 &prime; &CirclePlus; Q 2 &prime;
由于D4,2条带单元数据为零,可以先计算循环方程组(1.8.1)中第一个公式中的D0,2,再根据D0,2计算第二个公式中的D1,2,从而逐个计算盘号为“2”的数据存储节点的数据,然后,可降级为EVENODD等形式恢复盘号为“0”、“3”的数据存储节点的数据。
本实施例采用校验数据进行数据恢复可以保证分布式系统存储空间的有效利用率,以满足分布式存储系统的性能要求;根据丢失数据的对称性确定首先恢复的目标数据存储节点,并根据校验数据和未丢失的数据对丢失的三个节点数据进行恢复,可以提升分布式存储系统丢失三个节点数据的情况下的数据恢复性能;在丢失三个数据存储节点的数据的情况下,首先恢复丢失盘号处于中间的数据存储节点,并且循环异或次数k只用简单的数学公式即可求得,恢复时异或次数少,进一步节省所需的云存储处理内存,算法简单,易于编码实现。
实施例三
图3a为本发明实施例三的数据分流方法的流程图,图3a与图1a标号相同的步骤具有相同的含义,为简明起见,省略对这些组件的详细说明。如图3a所示,与上述实施例的区别在于:在上述实施例所述的情况二时,在丢失的所述三个节点数据包括水平校验节点和两个数据存储节点的数据的情况下,步骤101中根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,具体可以包括以下步骤:
步骤301、在丢失的所述三个节点数据包括水平校验节点和两个数据存储节点的数据的情况下,根据所述对角校验节点和所述逆对角校验节点的数据,生成对角调节因子和逆对角调节因子的异或和。
具体地,设丢失r,s,p号数据存储节点,其中0≤r<s<p'≤p,a=s-r,可以采用公式(2.1)生成对角调节因子和逆对角调节因子的异或和;
Q s &CirclePlus; R s = ( &CirclePlus; i = 0 p - 2 Q i ) &CirclePlus; ( &CirclePlus; i = 0 p - 2 R i ) - - - ( 2.1 )
其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为丢失的水平校验数据的盘号,且p为大于或等于数据存储节点的个数的素数。
步骤302、根据未丢失的数据存储节点的数据,生成第二对角校验数据和第二逆对角校验数据。
具体地,可以采用公式(2.2)和公式(2.3)生成新的校验数据,其中,采用公式(2.2)生成第二对角校验数据;采用公式(2.3)生成所述第二逆对角校验数据;
Q i &prime; = Q i &CirclePlus; ( &CirclePlus; j = 0 j &NotEqual; r , s , t p &prime; - 1 D < i - j > P , j ) - - - ( 2.2 )
R i &prime; = R i &CirclePlus; ( &CirclePlus; j = 0 j &NotEqual; r , s , t p &prime; - 1 D < i - j > p , j ) - - - ( 2.3 )
其中,Qi'为所述第二对角校验数据,Ri'为所述第二逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元数据,r、s为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<p'≤p,<>p为对p进行取模运算。
步骤303、根据所述对角调节因子和逆对角调节因子的异或和、所述第二对角校验数据和第二逆对角校验数据,采用对称消元运算求出丢失的所述两个数据存储节点的任意一个的数据。
具体可以包括以下方式:
方式一、先恢复第s列数据存储节点丢失的数据。
可以根据建立丢失数据公式(2.4):
D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s &CirclePlus; Q s &CirclePlus; R s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; - - - ( 2.4 )
对公式(2.4)进行消元处理可以得到公式(2.5):
D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; &CirclePlus; Q s &CirclePlus; R s - - - ( 2.5 )
然后,根据虚拟补零的条带单元数据Dp-1,s=0,求出第s列数据存储节点丢失的数据。
方式二、先恢复第r列数据存储节点丢失的数据。
可以根据建立丢失数据公式(2.6):
D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r &CirclePlus; Q s &CirclePlus; R s = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; - - - ( 2.6 )
对公式(2.6)进行消元处理可以得到公式(2.7):
D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; &CirclePlus; Q s &CirclePlus; R s - - - ( 2.7 )
然后,根据虚拟补零的条带单元数据Dp-1,r=0,求出第r列数据存储节点丢失的数据。
其中,先恢复s和r都可以;图3b为本发明实施例三的数据分流方法中对称消元的示意图,如图3b所示,左侧一列数字中,标记为条带单元数据“4”的行是虚拟补零的行。对于情况二,假设丢失盘号为“1”、“3”的数据存储节点和水平校验节点P,根据本实施例的数据恢复方法,具体可以包括:
执行步骤301、计算对角校验节点Q、逆对角校验节点R的调节因子的异或和,根据公式(2.1)可以得到公式(2.1.0):
QS⊕RS=Q0⊕Q1⊕Q2⊕Q3⊕R0⊕R1⊕R2⊕R3,          (2.1.0)
执行步骤302,计算对角校验节点Q、逆对角校验节点R的校验数据,根据公式(2.2)可以得到第二对角校验数据的公式组(2.2.0);根据公式(2.3)可以得到第一逆对角校验数据的公式组(2.3.0)。
Q 0 &prime; = D 0,0 &CirclePlus; D 3 , 2 &CirclePlus; D 1,4 &CirclePlus; Q 0 Q 1 &prime; = D 1,0 &CirclePlus; D 4 , 2 &CirclePlus; Q 1 Q 2 &prime; = D 2 , 0 &CirclePlus; D 0 , 2 &CirclePlus; D 3,4 &CirclePlus; Q 2 Q 3 &prime; = D 3 , 0 &CirclePlus; D 1,2 &CirclePlus; Q 3 Q 4 &prime; = D 2,2 &CirclePlus; D 0.4 - - - ( 2.2.0 )
R 0 &prime; = D 0,0 &CirclePlus; D 2,2 &CirclePlus; R 0 R 1 &prime; = D 1,0 &CirclePlus; D 3,2 &CirclePlus; D 0,4 &CirclePlus; R 1 R 2 &prime; = D 2,0 &CirclePlus; D 1,4 &CirclePlus; R 2 R 3 &prime; = D 3,0 &CirclePlus; D 0.2 &CirclePlus; D 2,4 &CirclePlus; R 3 R 4 &prime; = D 1,2 &CirclePlus; D 3,4 - - - ( 2.3.0 )
执行步骤303,参见图3b,对公式(2.4)进行消元处理得到公式(2.5),公式(2.5)可以得到循环方程组(2.5.0)。例如:将两条线交叉的点进行异或运算,可以消除D3,1,得到D1,3、D0,3的异或和公式,参见如下循环方程组(2.5.0)的第二个公式,以此方式可以得到循环方程组(2.5.0)的所有公式。
D 0,3 &CirclePlus; D 4,3 = Q 3 &prime; &CirclePlus; R 1 &prime; &CirclePlus; Q s &CirclePlus; R s D 1,3 &CirclePlus; D 0,3 = Q 4 &prime; &CirclePlus; R 2 &prime; &CirclePlus; Q s &CirclePlus; R s D 2,3 &CirclePlus; D 1,3 = Q 0 &prime; &CirclePlus; R 3 &prime; &CirclePlus; Q s &CirclePlus; R s D 3,3 &CirclePlus; D 2,3 = Q 1 &prime; &CirclePlus; R 4 &prime; &CirclePlus; Q s &CirclePlus; R s - - - ( 2.5.0 )
由于D4,3条带单元数据为零,可逐个计算D0,3,D1,3,D2,3,D3,3条带单元数据,恢复盘号为“3”的数据存储节点的数据,进一步恢复盘号为“1”的数据存储节点的数据,最后恢复水平校验节点P的数据。
当然,也可以根据公式(2.7),先恢复恢复盘号为“1”的数据存储节点的数据,再恢复盘号为“3”的数据存储节点的数据,最后恢复水平校验节点P的数据。
本实施例采用校验数据进行数据恢复可以保证分布式系统存储空间的有效利用率,以满足分布式存储系统的性能要求;根据丢失数据的对称性确定首先恢复的目标数据存储节点,并根据校验数据和未丢失的数据对丢失的三个节点数据进行恢复,可以提升分布式存储系统丢失三个节点数据的情况下的数据恢复性能;在丢失水平校验节点和两个数据存储节点的数据的情况下,首先恢复一个数据存储节点,不仅算法简单,易于编码实现,恢复性能比先恢复水平校验节点高,还可以将恢复的数据存储节点先发给用户,并行恢复水平校验节点的数据,减少用户的等待时间,提高用户的满意度。
实施例四
图4为本发明实施例四的数据恢复设备的结构框图,如图4所示,该数据恢复设备可以包括:
目标恢复单元41,用于在分布式存储系统丢失三个节点数据的情况下,根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,所述目标数据存储节点根据丢失数据的对称性确定;
降级恢复单元43,用于根据恢复后的所述目标数据存储节点的数据,降级恢复剩余的丢失数据。
具体地,在分布式系统或RAID中可以包括多个数据存储节点和校验节点,其中,每个数据存储节点可以分为多个条带单元。条带单元的个数一般大于或等于数据存储节点的个数,具体可以参见本发明数据恢复方法实施例中的相关描述。参见图1b~图1d,校验节点可以包括水平校验节点、对角校验节点和逆对角校验节点,或者还可以包括斜率为“2”的校验节点、对角为“-2”的校验节点等。
本实施例采用校验数据进行数据恢复可以保证分布式系统存储空间的有效利用率,以满足分布式存储系统的性能要求;根据丢失数据的对称性确定首先恢复的目标数据存储节点,并根据校验数据和未丢失的数据对丢失的三个节点数据进行恢复,可以提升分布式存储系统丢失三个节点数据的情况下的数据恢复性能。
实施例五
图5为本发明实施例五的数据恢复设备的结构框图,图5与图4相同的组件具有相同的含义,与上一实施例的区别在于:
如图5所示,在丢失的所述三个节点数据包括三个数据存储节点的数据的情况下,所述目标数据存储节点为丢失盘号处于中间的数据存储节点;该数据恢复设备的目标恢复单元41可以包括:
调节因子生成模块51,用于根据校验数据,生成对角调节因子和逆对角调节因子,所述校验数据包括水平校验节点、对角校验节点和逆对角校验节点的数据;
第一校验数据生成模块53,用于根据未丢失的数据存储节点的数据、所述对角调节因子和所述水平调节因子,生成第一水平校验数据、第一对角校验数据和第一逆对角校验数据;
十字交叉运算模块55,用于根据所述对角调节因子、逆对角调节因子、所述第一水平校验数据、第一对角校验数据和第一逆对角校验数据,通过优化的十字交叉运算求出所述丢失盘号处于中间的数据存储节点的数据。
在一种可能的实现方式中,所述调节因子生成模块51具体可以用于:
采用公式
Figure BDA00003576422100291
生成所述对角调节因子;
采用公式
Figure BDA00003576422100292
生成所述逆对角调节因子;
其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Pi为所述水平校验节点的第i个条带单元数据,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为大于或等于数据存储节点的个数的素数。
在一种可能的实现方式中,所述第一校验数据生成模块53具体可以用于:
采用公式
Figure BDA00003576422100293
生成所述第一水平校验数据;
采用公式
Figure BDA00003576422100294
生成所述第一对角校验数据;
采用公式
Figure BDA00003576422100295
生成所述第一逆对角校验数据;
其中,Pi'为所述第一水平校验数据,Qi'为所述第一对角校验数据,Ri'为所述第一逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元的数据,r、s、t为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<t<p'≤p,<>p为对p进行取模运算。
在一种可能的实现方式中,所述十字交叉运算模块55具体可以用于:
通过十字交叉运算建立丢失数据的丢失盘号处于中间的数据存储节点的公式:
A d = D d , s &CirclePlus; D < d + a > P , s &CirclePlus; D < d + b > P , s &CirclePlus; D < d + a + b > P , s = P < d > P &prime; &CirclePlus; P < d + a + b > P &prime; &CirclePlus; R < d - r > P &prime; &CirclePlus; Q < d + t > P &prime; ;
其中,0≤d≤p-1;s为所述丢失盘号处于中间的数据存储节点的盘号;a、b为丢失的三个数据存储节点之间的盘号差,a=s-r,b=t-s;
根据丢失数据的数据存储节点的盘号差确定的移动的步长和循环异或求和次数,对所述丢失盘号处于中间的数据存储节点的公式进行消元处理后,将所有丢失的数据存储节点的条带单元数据转化为所述丢失盘号处于中间的数据存储节点的两个条带单元数据的异或和,求出所述丢失盘号处于中间的数据存储节点的数据。
在一种可能的实现方式中,所述十字交叉运算模块55具体还可以用于:
对所述丢失盘号处于中间的数据存储节点的公式采用,步长offDis进行k次异或求和,得到所述丢失盘号处于中间的数据存储节点公式 D u , s &CirclePlus; D < u + 2 min Dis > P , s = &Sigma; v = 0 k - 1 A < u + v &times; offDis > p , 其中,根据公式 < b - m &times; a > p = 0 < a - n &times; b > p = 0 k = min { m , n } 确定k,若k=m,则minDis=b,offDis=a,否则minDis=a,offDis=b,<u+v×offDis>p=d,0≤u≤p-1;
其中,根据所述中间的数据存储节点的公式得到的循环方程组,用于表5示所述中间的数据存储节点的两个数据的异或和,所述循环方程组的每一个公式至多具有两个变量;
所述求出所述丢失盘号处于中间的数据存储节点的数据,包括:
根据所述丢失盘号处于中间的数据存储节点的虚拟补零的条带单元数据Dp-1,s=0,代入求解所述循环方程组中只具有一个变量的公式,根据求解结0果依次求解所述循环方程组的其他公式,得到所述丢失盘号处于中间的数据存储节点的每个数据。
本实施例采用校验数据进行数据恢复可以保证分布式系统存储空间的有效利用率,以满足分布式存储系统的性能要求;根据丢失数据的对称性确定首先恢复的目标数据存储节点,并根据校验数据和未丢失的数据对丢失的三个节点数据进行恢复,可以提升分布式存储系统丢失三个节点数据的情况下的数据恢复性能;在丢失三个数据存储节点的数据的情况下,首先恢复丢失盘号处于中间的数据存储节点,并且循环异或次数k只用简单的数学公式即可求得,恢复时异或次数少,进一步节省所需的云存储处理内存,算法简单,易于编码实现。
实施例六
图6为本发明实施例六的数据恢复设备的结构框图,图6与图4相同的组件具有相同的含义,与上一实施例的区别在于:
如图6所示,在丢失的所述三个节点数据包括水平校验节点和两个数据存储节点的数据的情况下,该数据恢复设备的目标恢复单元41可以包括:
因子异或和模块57,用于根据所述对角校验节点和所述逆对角校验节点的数据,生成对角调节因子和逆对角调节因子的异或和;
第二校验数据生成模块58,用于根据未丢失的数据存储节点的数据,生成第二对角校验数据和第二逆对角校验数据;
对称消元运算模块59,用于根据所述对角调节因子和逆对角调节因子的异或和、所述第二对角校验数据和第二逆对角校验数据,采用对称消元运算求出丢失的所述两个数据存储节点的任意一个的数据。
在一种可能的实现方式中,所述因子异或和模块57具体可以用于:
采用公式
Figure BDA00003576422100311
生成对角调节因子和逆对角调节因子的异或和,其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为丢失的水平校验数据的盘号,且p为大于或等于数据存储节点的个数的素数。
所述第二校验数据生成模块58包括:
采用公式
Figure BDA00003576422100321
生成所述第二对角校验数据;
采用公式
Figure BDA00003576422100322
生成所述第二逆对角校验数据;
其中,Qi'为所述第二对角校验数据,Ri'为所述第二逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元数据,r、s为丢失的数据存储节点的盘号,0≤j≤p'-1,0≤r<s<p'≤p,<>p为对p进行取模运算。
在一种可能的实现方式中,对称消元运算模块59具体可以用于:
根据建立丢失数据公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s &CirclePlus; Q s &CirclePlus; R s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,s=0,求出第s列数据存储节点丢失的数据;或
根据建立丢失数据公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r &CirclePlus; Q s &CirclePlus; R s = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,r=0,求出第r列数据存储节点丢失的数据。
本实施例采用校验数据进行数据恢复可以保证分布式系统存储空间的有效利用率,以满足分布式存储系统的性能要求;根据丢失数据的对称性确定首先恢复的目标数据存储节点,并根据校验数据和未丢失的数据对丢失的三个节点数据进行恢复,可以提升分布式存储系统丢失三个节点数据的情况下的数据恢复性能;在丢失水平校验节点和两个数据存储节点的数据的情况下,首先恢复一个数据存储节点,不仅算法简单,易于编码实现,恢复性能比先恢复水平校验节点高,还可以将恢复的数据存储节点先发给用户,并行恢复水平校验节点的数据,减少用户的等待时间,提高用户的满意度。
实施例七
图7为本发明的实施例七的数据恢复设备的结构框图。所述的数据恢复设备可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
所述数据恢复设备包括处理器(processor)71、通信接口(CommunicationsInterface)72、存储器(memory array)73和总线74。其中,处理器71、通信接口72、以及存储器73通过总线74完成相互间的通信。
通信接口72用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储等。
处理器71用于执行程序。处理器71可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器73用于存放文件。存储器73可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器73也可以是存储器阵列。存储器73还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:
在分布式存储系统丢失三个节点数据的情况下,根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,所述目标数据存储节点根据丢失数据的对称性确定;
根据恢复后的所述目标数据存储节点的数据,降级恢复剩余的丢失数据。
在一种可能的实现方式中,在丢失的所述三个节点数据包括三个数据存储节点的数据的情况下,所述目标数据存储节点为丢失盘号处于中间的数据存储节点;所述根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,包括:
根据校验数据,生成对角调节因子和逆对角调节因子,所述校验数据包括水平校验节点、对角校验节点和逆对角校验节点的数据;
根据未丢失的数据存储节点的数据、所述对角调节因子和所述水平调节因子,生成第一水平校验数据、第一对角校验数据和第一逆对角校验数据;
根据所述对角调节因子、逆对角调节因子、所述第一水平校验数据、第一对角校验数据和第一逆对角校验数据,通过优化的十字交叉运算求出所述丢失盘号处于中间的数据存储节点的数据。
在一种可能的实现方式中,所述根据校验数据,生成对角调节因子和逆对角调节因子,包括:
采用公式
Figure BDA00003576422100351
生成所述对角调节因子;
采用公式
Figure BDA00003576422100352
生成所述逆对角调节因子;
其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Pi为所述水平校验节点的第i个条带单元数据,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为大于或等于数据存储节点的个数的素数。
在一种可能的实现方式中,所述根据未丢失的数据存储节点的数据、所述对角调节因子和所述水平调节因子,生成第一水平校验数据、第一对角校验数据和第一逆对角校验数据,包括:
采用公式
Figure BDA00003576422100353
生成所述第一水平校验数据;
采用公式
Figure BDA00003576422100354
生成所述第一对角校验数据;
采用公式生成所述第一逆对角校验数据;
其中,Pi'为所述第一水平校验数据,Qi'为所述第一对角校验数据,Ri'为所述第一逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元的数据,r、s、t为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<t<p'≤p,<>p为对p进行取模运算。
在一种可能的实现方式中,所述根据所述对角调节因子、逆对角调节因子、所述第一水平校验数据、第一对角校验数据和第一逆对角校验数据,通过十字交叉运算求出所述丢失盘号处于中间的数据存储节点的数据,包括:
通过十字交叉运算建立丢失数据的丢失盘号处于中间的数据存储节点的公式:
A d = D d , s &CirclePlus; D < d + a > P , s &CirclePlus; D < d + b > P , s &CirclePlus; D < d + a + b > P , s = P < d > P &prime; &CirclePlus; P < d + a + b > P &prime; &CirclePlus; R < d - r > P &prime; &CirclePlus; Q < d + t > P &prime; ;
其中,0≤d≤p-1;s为所述丢失盘号处于中间的数据存储节点的盘号;a、b为丢失的三个数据存储节点之间的盘号差,a=s-r,b=t-s;
根据丢失数据的数据存储节点的盘号差确定的移动的步长和循环异或求和次数,对所述丢失盘号处于中间的数据存储节点的公式进行消元处理后,将所有丢失的数据存储节点的条带单元数据转化为所述丢失盘号处于中间的数据存储节点的两个条带单元数据的异或和,求出所述丢失盘号处于中间的数据存储节点的数据。
在一种可能的实现方式中,所述对所述丢失盘号处于中间的数据存储节点的公式进行消元处理后,将所有丢失的数据存储节点的条带单元数据转化为所述丢失盘号处于中间的数据存储节点的两个条带单元数据的异或和,包括:
对所述丢失盘号处于中间的数据存储节点的公式采用,步长offDis进行k次异或求和,得到所述丢失盘号处于中间的数据存储节点公式 D u , s &CirclePlus; D < u + 2 min Dis > P , s = &Sigma; v = 0 k - 1 A < u + v &times; offDis > p , 其中,根据公式 < b - m &times; a > p = 0 < a - n &times; b > p = 0 k = min { m , n } 确定k,若k=m,则minDis=b,offDis=a,否则minDis=a,offDis=b,<u+v×offDis>p=d,0≤u≤p-1;
其中,根据所述中间的数据存储节点的公式得到的循环方程组,用于表示所述中间的数据存储节点的两个数据的异或和,所述循环方程组的每一个公式至多具有两个变量;
所述求出所述丢失盘号处于中间的数据存储节点的数据,包括:
根据所述丢失盘号处于中间的数据存储节点的虚拟补零的条带单元数据Dp-1,s=0,代入求解所述循环方程组中只具有一个变量的公式,根据求解结果依次求解所述循环方程组的其他公式,得到所述丢失盘号处于中间的数据存储节点的每个数据。
在一种可能的实现方式中,在丢失的所述三个节点数据包括水平校验节点和两个数据存储节点的数据的情况下,所述目标数据存储节点为丢失的所述两个数据存储节点的任意一个,所述根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,包括:
根据所述对角校验节点和所述逆对角校验节点的数据,生成对角调节因子和逆对角调节因子的异或和;
根据未丢失的数据存储节点的数据,生成第二对角校验数据和第二逆对角校验数据;
根据所述对角调节因子和逆对角调节因子的异或和、所述第二对角校验数据和第二逆对角校验数据,采用对称消元运算求出丢失的所述两个数据存储节点的任意一个的数据。
在一种可能的实现方式中,所述根据所述对角校验节点和所述逆对角校验节点的数据,生成对角调节因子和逆对角调节因子的异或和,包括:
采用公式
Figure BDA00003576422100371
生成对角调节因子和逆对角调节因子的异或和,其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为丢失的水平校验数据的盘号,且p为大于或等于数据存储节点的个数的素数。
在一种可能的实现方式中,所述根据未丢失的数据存储节点的数据,生成第二对角校验数据和第二逆对角校验数据,包括:
采用公式
Figure BDA00003576422100381
生成所述第二对角校验数据;
采用公式
Figure BDA00003576422100382
生成所述第二逆对角校验数据;
其中,Qi'为所述第二对角校验数据,Ri'为所述第二逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元数据,r、s为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<p'≤p,<>p为对p进行取模运算。
在一种可能的实现方式中,所述根据所述对角调节因子和逆对角调节因子的异或和、所述第二对角校验数据和第二逆对角校验数据,采用对称消元运算求出所述一个数据存储节点的数据,包括:
根据建立丢失数据公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s &CirclePlus; Q s &CirclePlus; R s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,s=0,求出第s列数据存储节点丢失的数据;或
根据建立丢失数据公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r &CirclePlus; Q s &CirclePlus; R s = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,r=0,求出第r列数据存储节点丢失的数据。
本实施例采用校验数据进行数据恢复可以保证分布式系统存储空间的有效利用率,以满足分布式存储系统的性能要求;根据丢失数据的对称性确定首先恢复的目标数据存储节点,并根据校验数据和未丢失的数据对丢失的三个节点数据进行恢复,可以提升分布式存储系统丢失三个节点数据的情况下的数据恢复性能。
实施例八
图8为本发明的实施例八的分布式存储系统的结构框图。如图8所示,该分布式存储系统包括:多个数据存储节点81、多个校验节点83和数据恢复设备85;
其中,所述数据恢复设备85采用本发明实施例中任意一种结构的数据恢复设备。
本实施例采用校验数据进行数据恢复可以保证分布式系统存储空间的有效利用率,以满足分布式存储系统的性能要求;根据丢失数据的对称性确定首先恢复的目标数据存储节点,并根据校验数据和未丢失的数据对丢失的三个节点数据进行恢复,可以提升分布式存储系统丢失三个节点数据的情况下的数据恢复性能。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (21)

1.一种数据恢复方法,其特征在于,包括:
在分布式存储系统丢失三个节点数据的情况下,根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,所述目标数据存储节点根据丢失数据的对称性确定;
根据恢复后的所述目标数据存储节点的数据,降级恢复剩余的丢失数据。
2.根据权利要求1所述的数据恢复方法,其特征在于,在丢失的所述三个节点数据包括三个数据存储节点的数据的情况下,所述目标数据存储节点为丢失盘号处于中间的数据存储节点;所述根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,包括:
根据校验数据,生成对角调节因子和逆对角调节因子,所述校验数据包括水平校验节点、对角校验节点和逆对角校验节点的数据;
根据未丢失的数据存储节点的数据、所述对角调节因子和所述水平调节因子,生成第一水平校验数据、第一对角校验数据和第一逆对角校验数据;
根据所述对角调节因子、逆对角调节因子、所述第一水平校验数据、第一对角校验数据和第一逆对角校验数据,通过优化的十字交叉运算求出所述丢失盘号处于中间的数据存储节点的数据。
3.根据权利要求2所述的数据恢复方法,其特征在于,所述根据校验数据,生成对角调节因子和逆对角调节因子,包括:
采用公式
Figure FDA00003576422000011
生成所述对角调节因子;
采用公式生成所述逆对角调节因子;
其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Pi为所述水平校验节点的第i个条带单元数据,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为大于或等于数据存储节点的个数的素数。
4.根据权利要求3所述的数据恢复方法,其特征在于,所述根据未丢失的数据存储节点的数据、所述对角调节因子和所述水平调节因子,生成第一水平校验数据、第一对角校验数据和第一逆对角校验数据,包括:
采用公式
Figure FDA00003576422000021
生成所述第一水平校验数据;
采用公式生成所述第一对角校验数据;
采用公式生成所述第一逆对角校验数据;
其中,Pi'为所述第一水平校验数据,Qi'为所述第一对角校验数据,Ri'为所述第一逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元的数据,r、s、t为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<t<p'≤p,<>p为对p进行取模运算。
5.根据权利要求4所述的数据恢复方法,其特征在于,所述根据所述对角调节因子、逆对角调节因子、所述第一水平校验数据、第一对角校验数据和第一逆对角校验数据,通过十字交叉运算求出所述丢失盘号处于中间的数据存储节点的数据,包括:
通过十字交叉运算建立丢失数据的丢失盘号处于中间的数据存储节点的公式:
A d = D d , s &CirclePlus; D < d + a > P , s &CirclePlus; D < d + b > P , s &CirclePlus; D < d + a + b > P , s = P < d > P &prime; &CirclePlus; P < d + a + b > P &prime; &CirclePlus; R < d - r > P &prime; &CirclePlus; Q < d + t > P &prime; ;
其中,0≤d≤p-1;s为所述丢失盘号处于中间的数据存储节点的盘号;a、b为丢失的三个数据存储节点之间的盘号差,a=s-r,b=t-s;
根据丢失数据的数据存储节点的盘号差确定的移动的步长和循环异或求和次数,对所述丢失盘号处于中间的数据存储节点的公式进行消元处理后,将所有丢失的数据存储节点的条带单元数据转化为所述丢失盘号处于中间的数据存储节点的两个条带单元数据的异或和,求出所述丢失盘号处于中间的数据存储节点的数据。
6.根据权利要求5所述的数据恢复方法,其特征在于,所述对所述丢失盘号处于中间的数据存储节点的公式进行消元处理后,将所有丢失的数据存储节点的条带单元数据转化为所述丢失盘号处于中间的数据存储节点的两个条带单元数据的异或和,包括:
对所述丢失盘号处于中间的数据存储节点的公式采用,步长offDis进行k次异或求和,得到所述丢失盘号处于中间的数据存储节点公式 D u , s &CirclePlus; D < u + 2 min Dis > P , s = &Sigma; v = 0 k - 1 A < u + v &times; offDis > p , 其中,根据公式 < b - m &times; a > p = 0 < a - n &times; b > p = 0 k = min { m , n } 确定k,若k=m,则minDis=b,offDis=a,否则minDis=a,offDis=b,<u+v×offDis>p=d,0≤u≤p-1;
其中,根据所述中间的数据存储节点的公式得到的循环方程组,用于表示所述中间的数据存储节点的两个数据的异或和,所述循环方程组的每一个公式至多具有两个变量;
所述求出所述丢失盘号处于中间的数据存储节点的数据,包括:
根据所述丢失盘号处于中间的数据存储节点的虚拟补零的条带单元数据Dp-1,s=0,代入求解所述循环方程组中只具有一个变量的公式,根据求解结果依次求解所述循环方程组的其他公式,得到所述丢失盘号处于中间的数据存储节点的每个数据。
7.根据权利要求1所述的数据恢复方法,其特征在于,在丢失的所述三个节点数据包括水平校验节点和两个数据存储节点的数据的情况下,所述目标数据存储节点为丢失的所述两个数据存储节点的任意一个,所述根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,包括:
根据所述对角校验节点和所述逆对角校验节点的数据,生成对角调节因子和逆对角调节因子的异或和;
根据未丢失的数据存储节点的数据,生成第二对角校验数据和第二逆对角校验数据;
根据所述对角调节因子和逆对角调节因子的异或和、所述第二对角校验数据和第二逆对角校验数据,采用对称消元运算求出丢失的所述两个数据存储节点的任意一个的数据。
8.根据权利要求7所述的数据恢复方法,其特征在于,所述根据所述对角校验节点和所述逆对角校验节点的数据,生成对角调节因子和逆对角调节因子的异或和,包括:
采用公式
Figure FDA00003576422000041
生成对角调节因子和逆对角调节因子的异或和,其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为丢失的水平校验数据的盘号,且p为大于或等于数据存储节点的个数的素数。
9.根据权利要求8所述的数据恢复方法,其特征在于,所述根据未丢失的数据存储节点的数据,生成第二对角校验数据和第二逆对角校验数据,包括:
采用公式生成所述第二对角校验数据;
采用公式
Figure FDA00003576422000052
生成所述第二逆对角校验数据;
其中,Qi'为所述第二对角校验数据,Ri'为所述第二逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元数据,r、s为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<p'≤p,<>p为对p进行取模运算。
10.根据权利要求9所述的数据恢复方法,其特征在于,所述根据所述对角调节因子和逆对角调节因子的异或和、所述第二对角校验数据和第二逆对角校验数据,采用对称消元运算求出所述一个数据存储节点的数据,包括:
根据建立丢失数据公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s &CirclePlus; Q s &CirclePlus; R s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,s=0,求出第s列数据存储节点丢失的数据;或
根据建立丢失数据公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r &CirclePlus; Q s &CirclePlus; R s = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,r=0,求出第r列数据存储节点丢失的数据。
11.一种数据恢复设备,其特征在于,包括:
目标恢复单元,用于在分布式存储系统丢失三个节点数据的情况下,根据未丢失的校验节点和数据存储节点的数据,恢复所述三个节点数据中目标数据存储节点的数据,所述目标数据存储节点根据丢失数据的对称性确定;
降级恢复单元,用于根据恢复后的所述目标数据存储节点的数据,降级恢复剩余的丢失数据。
12.根据权利要求11所述的数据恢复设备,其特征在于,在丢失的所述三个节点数据包括三个数据存储节点的数据的情况下,所述目标数据存储节点为丢失盘号处于中间的数据存储节点;所述目标恢复单元包括:
调节因子生成模块,用于根据校验数据,生成对角调节因子和逆对角调节因子,所述校验数据包括水平校验节点、对角校验节点和逆对角校验节点的数据;
第一校验数据生成模块,用于根据未丢失的数据存储节点的数据、所述对角调节因子和所述水平调节因子,生成第一水平校验数据、第一对角校验数据和第一逆对角校验数据;
十字交叉运算模块,用于根据所述对角调节因子、逆对角调节因子、所述第一水平校验数据、第一对角校验数据和第一逆对角校验数据,通过优化的十字交叉运算求出所述丢失盘号处于中间的数据存储节点的数据。
13.根据权利要求12所述的数据恢复设备,其特征在于,所述调节因子生成模块具体用于:
采用公式
Figure FDA00003576422000071
生成所述对角调节因子;
采用公式
Figure FDA00003576422000072
生成所述逆对角调节因子;
其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Pi为所述水平校验节点的第i个条带单元数据,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为大于或等于数据存储节点的个数的素数。
14.根据权利要求13所述的数据恢复设备,其特征在于,所述第一校验数据生成模块具体用于:
采用公式
Figure FDA00003576422000073
生成所述第一水平校验数据;
采用公式
Figure FDA00003576422000074
生成所述第一对角校验数据;
采用公式
Figure FDA00003576422000075
生成所述第一逆对角校验数据;
其中,Pi'为所述第一水平校验数据,Qi'为所述第一对角校验数据,Ri'为所述第一逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元的数据,r、s、t为丢失的数据存储节点的盘号,p'为数据存储节点的个数,0≤j≤p'-1,0≤r<s<t<p'≤p,<>p为对p进行取模运算。
15.根据权利要求14所述的数据恢复设备,其特征在于,所述十字交叉运算模块具体用于:
通过十字交叉运算建立丢失数据的丢失盘号处于中间的数据存储节点的公式:
A d = D d , s &CirclePlus; D < d + a > P , s &CirclePlus; D < d + b > P , s &CirclePlus; D < d + a + b > P , s = P < d > P &prime; &CirclePlus; P < d + a + b > P &prime; &CirclePlus; R < d - r > P &prime; &CirclePlus; Q < d + t > P &prime; ;
其中,0≤d≤p-1;s为所述丢失盘号处于中间的数据存储节点的盘号;a、b为丢失的三个数据存储节点之间的盘号差,a=s-r,b=t-s;
根据丢失数据的数据存储节点的盘号差确定的移动的步长和循环异或求和次数,对所述丢失盘号处于中间的数据存储节点的公式进行消元处理后,将所有丢失的数据存储节点的条带单元数据转化为所述丢失盘号处于中间的数据存储节点的两个条带单元数据的异或和,求出所述丢失盘号处于中间的数据存储节点的数据。
16.根据权利要求15所述的数据恢复设备,其特征在于,所述十字交叉运算模块具体还用于:
对所述丢失盘号处于中间的数据存储节点的公式采用,步长offDis进行k次异或求和,得到所述丢失盘号处于中间的数据存储节点公式 D u , s &CirclePlus; D < u + 2 min Dis > P , s = &Sigma; v = 0 k - 1 A < u + v &times; offDis > p , 其中,根据公式 < b - m &times; a > p = 0 < a - n &times; b > p = 0 k = min { m , n } 确定k,若k=m,则minDis=b,offDis=a,否则minDis=a,offDis=b,<u+v×offDis>p=d,0≤u≤p-1;
其中,根据所述中间的数据存储节点的公式得到的循环方程组,用于表示所述中间的数据存储节点的两个数据的异或和,所述循环方程组的每一个公式至多具有两个变量;
所述求出所述丢失盘号处于中间的数据存储节点的数据,包括:
根据所述丢失盘号处于中间的数据存储节点的虚拟补零的条带单元数据Dp-1,s=0,代入求解所述循环方程组中只具有一个变量的公式,根据求解结果依次求解所述循环方程组的其他公式,得到所述丢失盘号处于中间的数据存储节点的每个数据。
17.根据权利要求11所述的数据恢复设备,其特征在于,在丢失的所述三个节点数据包括水平校验节点和两个数据存储节点的数据的情况下,所述目标恢复单元包括:
因子异或和模块,用于根据所述对角校验节点和所述逆对角校验节点的数据,生成对角调节因子和逆对角调节因子的异或和;
第二校验数据生成模块,用于根据未丢失的数据存储节点的数据,生成第二对角校验数据和第二逆对角校验数据;
对称消元运算模块,用于根据所述对角调节因子和逆对角调节因子的异或和、所述第二对角校验数据和第二逆对角校验数据,采用对称消元运算求出丢失的所述两个数据存储节点的任意一个的数据。
18.根据权利要求17所述的数据恢复设备,其特征在于,所述因子异或和模块具体用于:
采用公式
Figure FDA00003576422000091
生成对角调节因子和逆对角调节因子的异或和,其中,Qs为所述对角调节因子,Rs为所述逆对角调节因子,Qi为所述对角校验节点的第i个条带单元数据,Ri为所述逆对角校验节点的第i个条带单元数据,0≤i≤p-2,p为丢失的水平校验数据的盘号,且p为大于或等于数据存储节点的个数的素数。
19.根据权利要求18所述的数据恢复设备,其特征在于,所述第二校验数据生成模块具体用于:
采用公式
Figure FDA00003576422000092
生成所述第二对角校验数据;
采用公式
Figure FDA00003576422000101
生成所述第二逆对角校验数据;
其中,Qi'为所述第二对角校验数据,Ri'为所述第二逆对角校验数据,Di,j为第j列数据存储节点的第i个条带单元数据,r、s为丢失的数据存储节点的盘号,0≤j≤p'-1,0≤r<s<p'≤p,<>p为对p进行取模运算。
20.根据权利要求19所述的数据恢复设备,其特征在于,所述对称消元运算模块具体用于:
根据建立丢失数据公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s &CirclePlus; Q s &CirclePlus; R s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , s &CirclePlus; D < u + 2 ( s - r ) > p , s = Q < u + s > p &prime; &CirclePlus; R < u + s - 2 r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,s=0,求出第s列数据存储节点丢失的数据;或
根据建立丢失数据公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r &CirclePlus; Q s &CirclePlus; R s = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; , 经过消元处理将丢失的两个数据存储节点的条带单元数据转化为一个数据存储节点的两个条带单元数据的异或和,得到公式 D u , r &CirclePlus; D < u + 2 ( s - r ) > p , r = Q < u + 2 s - r > p &prime; &CirclePlus; R < u - r > p &prime; &CirclePlus; Q s &CirclePlus; R s , 根据虚拟补零的条带单元数据Dp-1,r=0,求出第r列数据存储节点丢失的数据。
21.一种分布式存储系统,其特征在于,包括:多个数据存储节点、多个校验节点和数据恢复设备;
所述数据恢复设备采用权利要求11-20中任一项所述的数据恢复设备。
CN201310320300.3A 2013-07-26 2013-07-26 数据恢复方法、数据恢复设备和分布式存储系统 Active CN103412799B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201310320300.3A CN103412799B (zh) 2013-07-26 2013-07-26 数据恢复方法、数据恢复设备和分布式存储系统
PCT/CN2014/073383 WO2015010476A1 (zh) 2013-07-26 2014-03-13 数据恢复方法、数据恢复设备和分布式存储系统
EP14733496.5A EP2854033B1 (en) 2013-07-26 2014-03-13 Data recovery method, data recovery device, and distributed storage system
US14/331,485 US9529675B2 (en) 2013-07-26 2014-07-15 Data recovery method, data recovery device and distributed storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310320300.3A CN103412799B (zh) 2013-07-26 2013-07-26 数据恢复方法、数据恢复设备和分布式存储系统

Publications (2)

Publication Number Publication Date
CN103412799A true CN103412799A (zh) 2013-11-27
CN103412799B CN103412799B (zh) 2016-08-24

Family

ID=49605812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310320300.3A Active CN103412799B (zh) 2013-07-26 2013-07-26 数据恢复方法、数据恢复设备和分布式存储系统

Country Status (3)

Country Link
EP (1) EP2854033B1 (zh)
CN (1) CN103412799B (zh)
WO (1) WO2015010476A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015010476A1 (zh) * 2013-07-26 2015-01-29 华为技术有限公司 数据恢复方法、数据恢复设备和分布式存储系统
CN106227617A (zh) * 2016-07-15 2016-12-14 乐视控股(北京)有限公司 自修复方法和基于纠删码算法的存储系统
US9529675B2 (en) 2013-07-26 2016-12-27 Huawei Technologies Co., Ltd. Data recovery method, data recovery device and distributed storage system
CN107632994A (zh) * 2016-07-19 2018-01-26 普天信息技术有限公司 一种基于hdfs文件系统的可靠性增强方法和系统
CN107870829A (zh) * 2016-09-24 2018-04-03 华为技术有限公司 一种分布式数据恢复方法、服务器、相关设备及系统
CN109213430A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 存储管理方法和系统
CN110120949A (zh) * 2019-05-10 2019-08-13 中国联合网络通信集团有限公司 一种数据存储方法和数据存储系统
CN111930552A (zh) * 2020-06-17 2020-11-13 深圳佰维存储科技股份有限公司 坏块数据的恢复方法、装置、存储介质及电子设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045891B (zh) * 2015-07-31 2018-08-31 中国科学院计算技术研究所 提高顺序表性能方法、系统、架构、优化方法及存储装置
KR101703859B1 (ko) * 2016-03-17 2017-02-08 주식회사 골프존 스크린 골프 시스템, 스크린 골프 시스템에서 구현되는 골프정보 서비스 방법 및 골프정보 서비스를 위한 모바일 단말기의 제어방법과, 상기 방법에 따른 프로그램을 기록한 컴퓨팅 장치에 의해 판독 가능한 기록 매체
CN107423426B (zh) * 2017-08-02 2020-06-02 众安信息技术服务有限公司 一种区块链块数据的数据归档方法及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412671A (en) * 1990-12-03 1995-05-02 Unisys Corporation Data protection and error correction, particularly for general register sets
CN1801105A (zh) * 2004-11-24 2006-07-12 国际商业机器公司 容许存储系统中的多个存储设备故障的系统和方法
CN101512492A (zh) * 2005-12-15 2009-08-19 网络装置公司 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613984B2 (en) * 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
CN103412799B (zh) * 2013-07-26 2016-08-24 华为技术有限公司 数据恢复方法、数据恢复设备和分布式存储系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412671A (en) * 1990-12-03 1995-05-02 Unisys Corporation Data protection and error correction, particularly for general register sets
CN1801105A (zh) * 2004-11-24 2006-07-12 国际商业机器公司 容许存储系统中的多个存储设备故障的系统和方法
CN101512492A (zh) * 2005-12-15 2009-08-19 网络装置公司 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015010476A1 (zh) * 2013-07-26 2015-01-29 华为技术有限公司 数据恢复方法、数据恢复设备和分布式存储系统
US9529675B2 (en) 2013-07-26 2016-12-27 Huawei Technologies Co., Ltd. Data recovery method, data recovery device and distributed storage system
CN106227617A (zh) * 2016-07-15 2016-12-14 乐视控股(北京)有限公司 自修复方法和基于纠删码算法的存储系统
CN107632994A (zh) * 2016-07-19 2018-01-26 普天信息技术有限公司 一种基于hdfs文件系统的可靠性增强方法和系统
CN107632994B (zh) * 2016-07-19 2021-05-25 普天信息技术有限公司 一种基于hdfs文件系统的可靠性增强方法和系统
CN107870829A (zh) * 2016-09-24 2018-04-03 华为技术有限公司 一种分布式数据恢复方法、服务器、相关设备及系统
CN107870829B (zh) * 2016-09-24 2022-03-08 华为技术有限公司 一种分布式数据恢复方法、服务器、相关设备及系统
CN109213430A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 存储管理方法和系统
CN109213430B (zh) * 2017-06-30 2021-09-10 伊姆西Ip控股有限责任公司 存储管理方法和系统
CN110120949A (zh) * 2019-05-10 2019-08-13 中国联合网络通信集团有限公司 一种数据存储方法和数据存储系统
CN110120949B (zh) * 2019-05-10 2021-07-27 中国联合网络通信集团有限公司 一种数据存储方法和数据存储系统
CN111930552A (zh) * 2020-06-17 2020-11-13 深圳佰维存储科技股份有限公司 坏块数据的恢复方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
EP2854033A1 (en) 2015-04-01
CN103412799B (zh) 2016-08-24
EP2854033B1 (en) 2018-12-26
EP2854033A4 (en) 2015-09-23
WO2015010476A1 (zh) 2015-01-29

Similar Documents

Publication Publication Date Title
CN103412799A (zh) 数据恢复方法、数据恢复设备和分布式存储系统
US7321905B2 (en) System and method for efficient data recovery in a storage array utilizing multiple parity slopes
US9600365B2 (en) Local erasure codes for data storage
US8869006B2 (en) Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays
US8918701B2 (en) Nested multiple erasure correcting codes for storage arrays
US7945729B2 (en) System and method for tolerating multiple storage device failures in a storage system using horizontal and vertical parity layouts
Zhang et al. Tip-code: A three independent parity code to tolerate triple disk failures with optimal update complextiy
CN101504623B (zh) 独立磁盘冗余阵列构建方法及装置
US10108494B2 (en) RAID controller device and storage device configured to recover data having uncorrectable ECC error
CN101231602A (zh) 用于提供增强的数据丢失容限的系统、设备适配器和方法
CN104461781A (zh) 一种基于纠删码的数据块重建方法
CN101339524A (zh) 大规模磁盘阵列存储系统的磁盘容错方法
US20150100819A1 (en) Method of Recovering Data in a Storage Device
US9529675B2 (en) Data recovery method, data recovery device and distributed storage system
CN109358980B (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN105808170A (zh) 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法
Subedi et al. A comprehensive analysis of XOR-based erasure codes tolerating 3 or more concurrent failures
Ivanichkina et al. Mathematical methods and models of improving data storage reliability including those based on finite field theory
WO2018029212A1 (en) Regenerating locally repairable codes for distributed storage systems
CN104932836B (zh) 一种提高单写性能的三盘容错编码和解码方法
US9430443B1 (en) Systematic coding technique
Karipzhanova et al. Justirication of the method and algorithm of multidimensional parity control in distributed databases of information systems
CN106254033B (zh) 一种阵列式存储系统的编码容错方法
Wu et al. Code 5-6: An efficient mds array coding scheme to accelerate online raid level migration
Cassuto What can coding theory do for storage systems?

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant