CN102419697B - 垂直raid-6编码中单盘重构的方法 - Google Patents

垂直raid-6编码中单盘重构的方法 Download PDF

Info

Publication number
CN102419697B
CN102419697B CN 201110340618 CN201110340618A CN102419697B CN 102419697 B CN102419697 B CN 102419697B CN 201110340618 CN201110340618 CN 201110340618 CN 201110340618 A CN201110340618 A CN 201110340618A CN 102419697 B CN102419697 B CN 102419697B
Authority
CN
China
Prior art keywords
remainder
disk number
divided
total disk
described total
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.)
Active
Application number
CN 201110340618
Other languages
English (en)
Other versions
CN102419697A (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN 201110340618 priority Critical patent/CN102419697B/zh
Publication of CN102419697A publication Critical patent/CN102419697A/zh
Application granted granted Critical
Publication of CN102419697B publication Critical patent/CN102419697B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了一种垂直RAID-6编码中单盘重构的方法,包括步骤:确定磁盘阵列中失效磁盘的磁盘号i和总磁盘数,并设置k=0,S0=i,用第i个磁盘的校验块所在校验链中除校验块之外的所有数据块进行异或运算,以恢复校验块,第i个磁盘中的第k个数据块用(xik,yik)表示,第i个磁盘中的校验块用i表示,设置k=k+1,j=0,判断(S0+xik)除以(总磁盘数-1)的余数是否不为0,若(S0+xik)除以(总磁盘数-1)的余数不为0,则设置j=j+1,判断j除以(总磁盘数-1)的余数是否与k除以(总磁盘数-1)的余数相同,若j除以(总磁盘数-1)的余数与k除以(总磁盘数-1)的余数相同,则设置Sk=xik。本发明的方法能够平衡各磁盘I/O负载,提高重构速度,并大大提高单盘重构的性能。

Description

垂直RAID-6编码中单盘重构的方法
技术领域
本发明涉及计算机存储领域,具体地说,本发明涉及一种垂直RAID-6编码中单盘重构的方法。
背景技术
磁盘冗余阵列(Redundant Array of Independent Disks,简称RAID)技术发展的前期只具备单盘容错能力,但随着RAID-6、RAID-10和RAID-01的出现,RAID技术在两个或两个以上磁盘同时失效时仍然能够恢复所有丢失的数据。RAID-6技术没有明确定义如何给数据进行编码,基于RAID-6技术的开放性和容双盘或多盘出错能力的重要性,RAID-6技术越来越受人关注。相应的各种有用且高效的RAID-6编码被提出,从编码格式上可以划分为横向RAID-6编码和垂直RAID-6编码。垂直RAID-6编码中的X-code和P-code在编码复杂度、解码复杂度和更新复杂度三个方面都达到了最优。
然而,在现有的RAID-6编码方法中,当一个磁盘失效后,在同一系统中的另一个磁盘失效或是一系列的磁盘失效将会接踵而来。这也就极大地影响了整个存储系统的可靠性和可用性,容易造成各磁盘I/O负载不平衡,重构速度低,重构时间长,从而极大影响了单盘重构的性能。
发明内容
本发明的目的在于提供一种垂直RAID-6编码中单盘重构的方法,其能够平衡各磁盘I/O负载,提高重构速度,从而缩短了重构时间,并大大提高单盘重构的性能。
本发明是通过以下技术方案实现的:
一种垂直RAID-6编码中单盘重构的方法,包括以下步骤:确定磁盘阵列中失效磁盘的磁盘号i和总磁盘数,并设置k=0,S0=i,用第i个磁盘的校验块所在校验链中除校验块之外的所有数据块进行异或运算,以恢复校验块,第i个磁盘中的第k个数据块用(xik,yik)表示,第i个磁盘中的校验块用i表示,设置k=k+1,j=0,判断(S0+xik)除以(总磁盘数-1)的余数是否不为0,若(S0+xik)除以(总磁盘数-1)的余数不为0,则设置j=j+1,判断j除以(总磁盘数-1)的余数是否与k除以(总磁盘数-1)的余数相同,若j除以(总磁盘数-1)的余数与k除以(总磁盘数-1)的余数相同,则设置Sk=xik,用Sk对应的校验块所在校验链中除数据块(xik,yik)之外的所有数据块和校验块进行异或运算,以恢复数据块(xik,yik),设置k=k+1,判断k除以(总磁盘数-1)的余数是否与(总磁盘数/2)除以(总磁盘数-1)的余数相同,若k除以(总磁盘数-1)的余数与(总磁盘数/2)除以(总磁盘数-1)的余数相同,则根据S0→S1→...→S(总磁盘数-2)/2的恢复路径来重构第i个磁盘。
本发明的方法还包括步骤:若(S0+xik)除以(总磁盘数-1)的余数为0,则设置j=0,判断(S0+yik)除以(总磁盘数-1)的余数是否不为0,若(S0+yik)除以(总磁盘数-1)的余数不为0,则设置j=j+1,判断j除以(总磁盘数-1)的余数是否与k除以(总磁盘数-1)的余数相同,若j除以(总磁盘数-1)的余数与k除以(总磁盘数-1)的余数相同,则设置Sk=yik,用Sk对应的校验块所在校验链中除数据块(xik,yik)之外的所有数据块和校验块进行异或运算,以恢复数据块(xik,yik),设置k=k+1,判断k除以(总磁盘数-1)的余数是否与(总磁盘数/2)除以(总磁盘数-1)的余数相同,若k除以(总磁盘数-1)的余数与(总磁盘数/2)除以(总磁盘数-1)的余数相同,则根据S0→S1→...→S(总磁盘数-2)/2的恢复路径来重构第i个磁盘。
本发明的方法还包括步骤:若(S0+yik)除以(总磁盘数-1)的余数为0,则返回设置k=k+1,j=0的步骤,若j除以(总磁盘数-1)的余数与k除以(总磁盘数-1)的余数不相同,则返回判断(S0+yik)除以(总磁盘数-1)的余数是否不为0的步骤,若k除以(总磁盘数-1)的余数与(总磁盘数/2)除以(总磁盘数-1)的余数不相同,则返回设置k=k+1,j=0的步骤。
本发明的方法还包括步骤:若判断j除以(总磁盘数-1)的余数与k除以(总磁盘数-1)的余数不相同,则返回判断(S0+xik)除以(总磁盘数-1)的余数是否不为0的步骤。
本发明的方法还包括步骤:若k除以(总磁盘数-1)的余数与(总磁盘数/2)除以(总磁盘数-1)的余数不相同,则返回设置k=k+1,j=0的步骤。
本发明的方法具有以下优点:
(1)降低磁盘I/O复杂度;
(2)平衡各磁盘负载;
(3)提高了重构速度,并最终缩短了重构时间。
附图说明
图1为本发明垂直RAID-6编码中单盘重构的方法的流程图。
图2示出本发明方法与现有技术方法的性能比较。
具体实施方式
如图1所示,本发明垂直RAID-6编码中单盘重构的方法包括以下步骤:
(1)确定磁盘阵列中失效磁盘的磁盘号i和总磁盘数,并设置k=0,S0=i;
(2)用第i个磁盘的校验块所在校验链中除校验块之外的所有数据块进行异或运算,以恢复校验块,第i个磁盘中的第k个数据块用(xik,yik)表示,第i个磁盘中的校验块用i表示;
(3)设置k=k+1,j=0;
(4)判断(S0+xik)除以(总磁盘数-1)的余数是否不为0,若不为0,则进入步骤(5),否则进入步骤(12);
(5)设置j=j+1;
(6)判断j除以(总磁盘数-1)的余数是否与k除以(总磁盘数-1)的余数相同,若相同,则进入步骤(7),否则返回步骤(4);
(7)设置Sk=xik
(8)用Sk对应的校验块所在校验链中除数据块(xik,yik)之外的所有数据块和校验块进行异或运算,以恢复数据块(xik,yik);
(9)设置k=k+1;
(10)判断k除以(总磁盘数-1)的余数是否与(总磁盘数/2)除以(总磁盘数-1)的余数相同,若相同,则进入步骤(11),否则返回步骤(3);
(11)根据S0→S1→...→S(总磁盘数-2)/2的恢复路径来重构第i个磁盘;
(12)设置j=0;
(13)判断(S0+yik)除以(总磁盘数-1)的余数是否不为0,若不为0,则进入步骤(14),否则返回步骤(3);
(14)设置j=j+1;
(15)判断j除以(总磁盘数-1)的余数是否与k除以(总磁盘数-1)的余数相同,若相同,则进入步骤(16),否则返回步骤(13);
(16)设置Sk=yik
(17)用Sk对应的校验块所在校验链中除数据块(xik,yik)之外的所有数据块和校验块进行异或运算,以恢复数据块(xik,yik);
(18)设置k=k+1;
(19)判断k除以(总磁盘数-1)的余数是否与(总磁盘数/2)除以(总磁盘数-1)的余数相同,若相同,则返回步骤(11),否则返回步骤(3)。
如图2所示,以总磁盘数为6的磁盘阵列为例比较本发明方法与现有技术方法的性能。假设第一个磁盘失效,用所有参与构造校验块1的数据块(1,2)、(1,3)、(1,4)和(1,5)进行异或运算来恢复校验块1,对于数据块(2,6)就有两种选择,可以用所有正常的参与构造校验块2的数据块(1,2)、(2,3)、(2,4)和校验块2本身进行异或运算来恢复它;也可以用所有正常的参与构造校验块6的数据块(3,6)、(4,6)、(5,6)和校验块6本身进行异或运算来恢复它,这样就总共有两种方法恢复数据块(2,6)。同样的,也有两种方法恢复数据块(3,5),也就是说重构磁盘1共有4种恢复路径,而这四种恢复路径的性能是有差别的。本发明就是要在多种恢复路径中找出最优恢复路径。
在本示例中,根据本发明的方法,得到最优恢复路径的步骤包括:
(1)确定磁盘阵列中失效磁盘的磁盘号为1,总磁盘数为6,并设置k=0,S0=1;
(2)用第1个磁盘的校验块1所在校验链中除校验块1之外的所有数据块(1,2)、(1,3)、(1,4)和(1,5)进行异或运算,以恢复校验块1;
(3)设置k=k+1=1,j=0;
(4)判断(S0+xik)=(S0+x11)=(1+2)=3除以(总磁盘数-1)=(6-1)=5的余数为3而不为0,进入步骤(5);
(5)设置j=j+1=1;
(6)判断j=1除以(总磁盘数-1)=(6-1)=5的余数1与k=1除以(总磁盘数-1)=(6-1)=5的余数都为1,相同,进入步骤(7);
(7)设置Sk=S1=xik=x11=2;
(8)用Sk=2对应的校验块2所在校验链中除数据块(xik,yik)=(x11,y11)=(2,6)之外的所有数据块和校验块进行异或运算,以恢复数据块(xik,yik)=(x11,y11);
(9)设置k=k+1=2;
(10)判断k=2除以(总磁盘数-1)=(6-1)=5的余数2与(总磁盘数/2)=6/2=3除以(总磁盘数-1)=(6-1)=5的余数3不相同,则进入步骤(11);
(11)设置k=k+1=2,j=0;
(12)判断(S0+xik)=(S0+x12)=(1+3)=4除以(总磁盘数-1)=(6-1)=5的余数为4而不为0,进入步骤(13);
(13)设置j=j+1=1;
(14)判断j=1除以(总磁盘数-1)=(6-1)=5的余数1与k=2除以(总磁盘数-1)=(6-1)=5的余数2不相同,进入步骤(15);
(15)设置Sk=S2=xik=x12=3;
(16)用Sk=3对应的校验块3所在校验链中除数据块(xik,yik)=(x12,y12)=(3,5)之外的所有数据块和校验块进行异或运算,以恢复数据块(xik,yik)=(x12,y12);
(17)设置k=k+1=3;
(18)判断k=3除以(总磁盘数-1)=(6-1)=5的余数2与(总磁盘数/2)=6/2=3除以(总磁盘数-1)=(6-1)=5的余数3相同,则进入步骤(19);
(19)根据S0→S1→...→S(总磁盘数-2)/2即S0→S1→S2=1→2→3的恢复路径来重构第1个磁盘。
如图2所示,当重构上述磁盘阵列时,可以采用四种不同路径,每种路径的性能不同,失效磁盘为磁盘1,失效的块为校验块1、数据块(2,6)和数据块(3,5)。子图a的恢复路径为1->2->3,采用该路径重构失效磁盘1时,有6个需读取一次的块和3个需读取两次的块,需读取块的总数为9;子图b的恢复路径为1->6->3,采用该路径重构失效磁盘1时,有8个需读取一次的块和2个需读取两次的块,需读取块的总数为10;子图c的恢复路径为1->2->5,采用该路径重构失效磁盘1时,有8个需读取一次的块和2个需读取两次的块,需读取块的总数为10;子图d的恢复路径为1->6->5,采用该路径重构失效磁盘1时,有8个需读取一次的块和2个需读取两次的块,需读取块的总数为10。因此采用b、c、d这三种路径必须读取10个未失效块才能重构失效磁盘,而采用查找到的a路径1->2->3只需读取9个未失效块就可以重构失效磁盘,由此可以看出路径a的I/O量最小,重构速度最快,重构时间最少,是最优重构路径。而且在使用b和c路径进行重构的过程中,有的磁盘只需读取一个块,而有的磁盘则需读取三个块,磁盘负载不均衡,会在一定程度上影响整个磁盘阵列的重构性能,而路径a中不存在这种现象,需读取的块均匀地分布在各个未失效磁盘中,也就是说路径a是负载最均衡的。以上这些结论已用实验证明,可以提高大约25%的性能。

Claims (5)

1.一种垂直RAID-6编码中单盘重构的方法,其特征在于,包括以下步骤:
确定磁盘阵列中失效磁盘的磁盘号i和总磁盘数,并设置k=0,S0=i;
用第i个磁盘的校验块所在校验链中除所述校验块之外的所有数据块进行异或运算,以恢复所述校验块,所述第i个磁盘中的第k个数据块用(xik,yik)表示,所述第i个磁盘中的校验块用i表示;
设置k=k+1,j=0;
判断(S0+xik)除以(所述总磁盘数-1)的余数是否不为0;
若(S0+xik)除以(所述总磁盘数-1)的余数不为0,则设置j=j+1;
判断j除以(所述总磁盘数-1)的余数是否与k除以(所述总磁盘数-1)的余数相同;
若j除以(所述总磁盘数-1)的余数与k除以(所述总磁盘数-1)的余数相同,则设置Sk=xik
用Sk对应的校验块所在校验链中除所述数据块(xik,yik)之外的所有数据块和所述校验块进行异或运算,以恢复所述数据块(xik,yik);
设置k=k+1;
判断k除以(所述总磁盘数-1)的余数是否与(所述总磁盘数/2)除以(所述总磁盘数-1)的余数相同;
若k除以(所述总磁盘数-1)的余数与(所述总磁盘数/2)除以(所述总磁盘数-1)的余数相同,则根据S0→S1→...→S(所述总磁盘数-2)/2的恢复路径来重构所述第i个磁盘。
2.根据权利要求1所述的方法,其特征在于,还包括步骤:
若(S0+xik)除以(所述总磁盘数-1)的余数为0,则设置j=0;
判断(S0+yik)除以(所述总磁盘数-1)的余数是否不为0;
若(S0+yik)除以(所述总磁盘数-1)的余数不为0,则设置j=j+1;
判断j除以(所述总磁盘数-1)的余数是否与k除以(所述总磁盘数-1)的余数相同;
若j除以(所述总磁盘数-1)的余数与k除以(所述总磁盘数-1)的余数相同,则设置Sk=yik
用Sk对应的校验块所在校验链中除所述数据块(xik,yik)之外的所有数据块和所述校验块进行异或运算,以恢复所述数据块(xik,yik);
设置k=k+1;
判断k除以(所述总磁盘数-1)的余数是否与(所述总磁盘数/2)除以(所述总磁盘数-1)的余数相同;
若k除以(所述总磁盘数-1)的余数与(所述总磁盘数/2)除以(所述总磁盘数-1)的余数相同,则根据S0→S1→...→S(所述总磁盘数-2)/2的恢复路径来重构所述第i个磁盘。
3.根据权利要求2所述的方法,其特征在于,还包括步骤:
若(S0+yik)除以(所述总磁盘数-1)的余数为0,则返回所述设置k=k+1,j=0的步骤;
若j除以(所述总磁盘数-1)的余数与k除以(所述总磁盘数-1)的余数不相同,则返回所述判断(S0+yik)除以(所述总磁盘数-1)的余数是否不为0的步骤;
若k除以(所述总磁盘数-1)的余数与(所述总磁盘数/2)除以(所述总磁盘数-1)的余数不相同,则返回所述设置k=k+1,j=0的步骤。
4.根据权利要求1所述的方法,其特征在于,还包括步骤:
若判断j除以(所述总磁盘数-1)的余数与k除以(所述总磁盘数-1)的余数不相同,则返回所述判断(S0+xik)除以(所述总磁盘数-1)的余数是否不为0的步骤。
5.根据权利要求1所述的方法,其特征在于,还包括步骤:
若k除以(所述总磁盘数-1)的余数与(所述总磁盘数/2)除以(所述总磁盘数-1)的余数不相同,则返回所述设置k=k+1,j=0的步骤。
CN 201110340618 2011-11-02 2011-11-02 垂直raid-6编码中单盘重构的方法 Active CN102419697B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110340618 CN102419697B (zh) 2011-11-02 2011-11-02 垂直raid-6编码中单盘重构的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110340618 CN102419697B (zh) 2011-11-02 2011-11-02 垂直raid-6编码中单盘重构的方法

Publications (2)

Publication Number Publication Date
CN102419697A CN102419697A (zh) 2012-04-18
CN102419697B true CN102419697B (zh) 2013-12-18

Family

ID=45944120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110340618 Active CN102419697B (zh) 2011-11-02 2011-11-02 垂直raid-6编码中单盘重构的方法

Country Status (1)

Country Link
CN (1) CN102419697B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593253A (zh) * 2013-11-22 2014-02-19 华中科技大学 一种基于异或的垂直raid-6编码方法
CN104881365A (zh) * 2015-05-31 2015-09-02 上海交通大学 基于纠删码相似性的raid-6可扩展方法
CN105812448A (zh) * 2016-06-13 2016-07-27 青海师范大学 一种云存储系统的纠删编码方法
CN112256478B (zh) * 2020-10-16 2023-05-26 山东云海国创云计算装备产业创新中心有限公司 一种单磁盘故障的修复方法、系统、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923496A (zh) * 2010-07-30 2010-12-22 华中科技大学 一种raid的数据并行重构方法
CN101976174A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种垂直排布分布校验的节能型磁盘阵列的构建方法
CN102023819A (zh) * 2010-12-01 2011-04-20 北京同有飞骥科技股份有限公司 一种双磁盘容错水平型分组并行访问磁盘阵列的构建方法
CN102033716A (zh) * 2010-12-01 2011-04-27 北京同有飞骥科技股份有限公司 一种双磁盘容错的节能型磁盘阵列的构建方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069465B2 (en) * 2002-07-26 2006-06-27 International Business Machines Corporation Method and apparatus for reliable failover involving incomplete raid disk writes in a clustering system
US7313721B2 (en) * 2004-06-21 2007-12-25 Dot Hill Systems Corporation Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array
US20060123312A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation Method and system for increasing parallelism of disk accesses when restoring data in a disk array system
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
JP4472617B2 (ja) * 2005-10-28 2010-06-02 富士通株式会社 Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923496A (zh) * 2010-07-30 2010-12-22 华中科技大学 一种raid的数据并行重构方法
CN101976174A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种垂直排布分布校验的节能型磁盘阵列的构建方法
CN102023819A (zh) * 2010-12-01 2011-04-20 北京同有飞骥科技股份有限公司 一种双磁盘容错水平型分组并行访问磁盘阵列的构建方法
CN102033716A (zh) * 2010-12-01 2011-04-27 北京同有飞骥科技股份有限公司 一种双磁盘容错的节能型磁盘阵列的构建方法

Also Published As

Publication number Publication date
CN102419697A (zh) 2012-04-18

Similar Documents

Publication Publication Date Title
CN102419697B (zh) 垂直raid-6编码中单盘重构的方法
CN108540520B (zh) 基于部分重复码的局部性修复编码及节点故障修复方法
CN101387975B (zh) 一种磁盘阵列系统
CN102270161B (zh) 一种基于纠删码的多等级容错数据存储、读取和恢复方法
Duminuco et al. Hierarchical codes: How to make erasure codes attractive for peer-to-peer storage systems
CN104111880B (zh) 一种容三盘失效纠删码的单数据盘失效快速重建方法
CN106776112B (zh) 一种基于Pyramid码的局部性修复编码方法
CN103746774B (zh) 一种高效数据读取的容错编码方法
WO2008082584A3 (en) System and method for symmetric triple parity
CN105159618A (zh) 用于单盘失效修复的优化方法及优化装置
CN102521067A (zh) 优化部分条带写性能的raid-6编码和重构方法
CN101493809A (zh) 一种基于fpga的多核心星载计算机
CN103106124B (zh) 一种基于纠删码集群存储系统的交叉重构方法
CN107844272A (zh) 一种提高纠错能力的交叉分组编译码方法
CN109814807A (zh) 一种数据存储方法及装置
CN105653411B (zh) 支持局部永久故障恢复的多核处理器芯片可重构系统
CN106484559A (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN103593253A (zh) 一种基于异或的垂直raid-6编码方法
CN102103533A (zh) 一种双盘容错磁盘阵列中单盘重构的方法
CN103761171A (zh) 一种针对二进制编码冗余存储系统的低带宽数据重构方法
CN105353974A (zh) 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN103809919B (zh) 高效容多错的快速恢复编码方法及其验证矩阵生成方法
CN104516679A (zh) 一种raid数据处理方法及装置
Ye et al. Hybrid codes: flexible erasure codes with optimized recovery performance
Ulbricht et al. The tetrisc soc—a resilient quad-core system based on the resilicell approach

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