一种能快速单盘修复的存储系统构建方法

文档序号:8487702阅读:186来源:国知局
一种能快速单盘修复的存储系统构建方法
【技术领域】
[0001] 本发明属于计算机分布式存储系统技术领域,具体涉及能快速修复单个坏盘的分 布式存储系统的构建方法。
【背景技术】
[0002] 由于互联网的急速发展,如今每天都会产生大量数据。分布式存储系统需要利用 更多的磁盘增加容量,利用多磁盘的并发访问加快访问速度,利用数据冗余保证数据可靠 性。中国清华大学出版社2010年出版的《RAID数据恢复技术揭秘》第21到29页提到的 独立磁盘冗余阵列 -5 (RAID-5)技术便是一种分布式存储系统构建方案。一个RAID-5系统 由多个磁盘构成,利用条带化技术加快访问速度,利用纠删码编码方法产生数据冗余保证 数据可靠性。当单个磁盘损坏时,RAID-5系统会读取存活盘的所有数据,来进行数据恢复。 近年来,单个磁盘的容量增长较快,而磁盘的读写速度发展缓慢,这种磁盘读写速度与容量 的不匹配造成了 RAID-5系统单盘修复的时间越来越长;同时,RAID-5系统只能容任意一个 磁盘错,在大规模分布式存储系统中,无法保证数据可靠性。

【发明内容】

[0003] 本发明的目的是提出一种能快速完成单盘修复的存储系统的构建方法,以克服现 有技术的上述缺陷,在能容任意3个磁盘错的前提下可快速完成单盘修复并提高存储系统 退化读的性能和系统可靠性。
[0004] 本发明能快速单盘修复的存储系统的构建方法,其特征在于包括以下步骤:
[0005] 第一步、磁盘子阵列组成表构建步骤:
[0006] 从区组设计参数表中,选择一行分别获取b、v、r、k、X五个参数,将最佳差异集记 为D = {屯,屯,d2,…,U ;赋值p为大于或等于k的素数;
[0007] 创建一个k行v列的矩阵,首先将第0列从上到下依次赋值为最佳差异集中的屯、 dpdgljdn;后续均从第1列开始,第0行依次赋值为(cU+1)~(v-1),并将第0行0列 重新赋值为v ;第1行依次赋值为(di+1)~v和1~(drl);第2行依次赋值为(d2+l)~ v和1~(d 2-l),以此类推;设级={B〇,Bi,Bv",Bb-i}是集合V = {1,2, 3,…,v}上的一个 (b,v,r,k,X )-平衡不完全区组设计(BIBD),将矩阵中第0列的k个值作为集合仏的元素, 将矩阵中第1列的k个值作为集合&的元素,将矩阵中第2列的k个值作为集合B 2的元 素,以此类推,最终得到(b,v,r,k,A)-BIBD及其集族
[0008] 创建k个p-1行p列的矩阵,依次编号为0~(k-1)号矩阵;首先对第0号矩阵进行 编号,从左到右、从上到下依次为〇~[pX (p-l)-l];定义一个右移操作:在一个矩阵中,第 i行的编号循环右移i位;对第〇号矩阵进行该右移操作,可获得第1号矩阵的编号;对第1 号矩阵进行该右移操作,可获得第2号矩阵的编号,以此类推;设化={Po,Pi,Pv",Pp吻-叫}. 是一个集族,其中的元素Pi(〇< i <pX (p-l)-l)都是有序集合;从第0号矩阵开始,依次 获得编号〇所在的列,将k个列的值依次作为匕的元素;从第0号矩阵开始,依次获得编号 1所在的列,将k个列的值依次作为元素;从第0号矩阵开始,依次获得编号2所在的 列,将k个列的值依次作为P2的元素,以此类推,最终得到集族W;
[0009] 设集族◎={Q〇,QuQ2,…,QbXpx(p-i>-i}中的每个元素都是一个集合;定义一个级I 中元素与,中元素的乘法运算:BiXPj= {(b Q-l) X3+P。,(b「l) X3+Pl,(b2-l) X3+p2,… ,(bk_「l) X3+pk_J (0 彡 i 彡b-l,0 彡 j 彡 pX (p-l)-l),其中bm(0 彡m彡 k-1)依次为&中的 元素,Pn(〇彡n彡k-1)依次为Pj中的元素;然后构造集族◎ :Qixpx(P-1)+j = BjxPj (〇交办-1, 〇£j£px(p-.l )-1);最后构建磁盘子阵列组成表,阵列号依次为〇~[bXpX (p-1) -1],阵列号i 对应的磁盘号依次为集族i?中Qi中的元素值;
[0010] 第二步、磁盘区域划分及区域内部编码步骤:
[0011] 根据第一步中选择的参数值,准备vXp个相同规格的磁盘,依次编号为0~ vXp-1,构建存储系统;将所有磁盘分成V组,每组p个磁盘;将每个磁盘平均切分成 pXr+1个分区;对于每个磁盘组,从各个磁盘中从上到下选取p个分区,组成一个区域,每 个区域包含一个pXp的分区矩阵,每个磁盘组形成r个区域和一个空闲分区;最终,整个存 储系统包含(pXr+1) XpXv个分区和rXv个区域;
[0012] 对每个区域,都进行区域内部编码:设ru为区域内第i行第j列的分区, 表示j_i对P求模;将<j_i>p相同的分区进行编码,具体方式是将〇~P-2行的分区数据 进行异或运算,产生校验数据并存放在P-1行的分区中;最终,存储系统所有区域中第P-1 行的分区都是校验分区;同时,将所有磁盘的最后一个分区都作为热备分区,在正常模式下 不存放任何数据;校验分区和热备分区被标记为已使用分区,其余分区为未使用分区;
[0013] 第三步、磁盘子阵列构建步骤:
[0014] 定义一个磁盘子阵列构建操作:从第一步构建的磁盘子阵列组成表中,获取阵列 号i以及它所对应的磁盘号,从这些磁盘号所对应的磁盘中,依次获取未使用的分区,并编 号为i,然后用这些分区构建i号磁盘子阵列,并部署独立磁盘冗余阵列-5 (RAID-5)编码; 利用磁盘子阵列构建操作依次构建0~[bXPX (p-l)-l]号磁盘子阵列;
[0015] 第四步、存储系统修复步骤:
[0016] 当存储系统发生单个磁盘错时,查询坏盘所包含的所有分区号;对于每一个分区 号i,从磁盘子阵列组成表中,查找出阵列号i所对应的所有磁盘号,并从这些磁盘号所对 应的存活盘中,查找分区号为i的分区,然后从这些分区中读出数据,进行异或操作,修复 出坏盘中i号分区中的数据;并发地将所有修复的数据临时写入热备分区中,最后再写入 热备盘中,完成单盘修复;当存储系统发生多个磁盘错时,首先查找有且仅有一个坏盘的磁 盘组,利用区域内编码将坏盘修复;再利用单盘修复中修复分区的方法,修复剩余坏盘。
[0017] 上述本发明能快速单盘修复的存储系统构建方法包括了磁盘子阵列组成表构建 步骤,磁盘区域划分及区域内部编码步骤,磁盘子阵列构建步骤和存储系统修复步骤。由于 本发明利用多个磁盘并行修复单个坏盘,使该存储系统能够快速完成单盘修复;由于本发 明在每个区域内增加了一组区域内编码,使该存储系统能够容任意三个磁盘错;当发生单 个磁盘错时,仅利用区域间编码进行修复,当发生多个磁盘错时,利用区域内编码和区域间 编码共同修复。与传统的存储系统构建方法相比,采用本发明方法可使单盘修复速度提升 数倍,同时提高了存储系统退化读的性能,提高了系统可靠性。
[0018] 本发明能快速单盘修复的存储系统构建方法与现有技术相比,具有以下优点:
[0019] 1、本发明所构建的存储系统在单盘修复时,有大量的磁盘同时参与修复,比现有 技术的修复速度提升了数倍,提高了退化读的性能,提高了存储系统可靠性。
[0020] 2、本发明仅利用异或运算的编码就达到了容任意3错的能力,与现有技术相比, 编码速度更快,校验更新开销更小。
【附图说明】
[0021] 图1为区组设计参数表;
[0022] 图2为用于构建集族級的矩阵;
[0023] 图3为用于构建集族@的矩阵;
[0024] 图4为磁盘子阵列组成表。
[0025] 图5为按本发明方法构建的存储系统总体结构示意图。
[0026] 图6为区域内编码示意图。
[0027] 图7为单盘修复示意图;
[0028] 图8为多盘修复示意图。
【具体实施方式】
[0029] 下面结合附图通过具体实施例对本发明能快速单盘修复的存储系统构建方法作 进一步的详细说明。
[0030] 实施例1 :
[0031] 本实施例能快速单盘修复的存储系统构建方法,具体包括以下步骤:
[0032] 第一步、磁盘子阵列组成表构建步骤:
[0033] 图1为区组设计参数表,其中第1行的参数为b =
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1