CN112799604B - 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法 - Google Patents

一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法 Download PDF

Info

Publication number
CN112799604B
CN112799604B CN202110288850.6A CN202110288850A CN112799604B CN 112799604 B CN112799604 B CN 112799604B CN 202110288850 A CN202110288850 A CN 202110288850A CN 112799604 B CN112799604 B CN 112799604B
Authority
CN
China
Prior art keywords
disk
data
check
array
blocks
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
CN202110288850.6A
Other languages
English (en)
Other versions
CN112799604A (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.)
Hebei University of Technology
Original Assignee
Hebei University of 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 Hebei University of Technology filed Critical Hebei University of Technology
Priority to CN202110288850.6A priority Critical patent/CN112799604B/zh
Publication of CN112799604A publication Critical patent/CN112799604A/zh
Application granted granted Critical
Publication of CN112799604B publication Critical patent/CN112799604B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种基于N‑Code的RAID6磁盘阵列扩容方法及数据填充方法。该扩容方法包括:在磁盘阵列中添加新磁盘、调整编码阵列。经过所述扩容方法扩容后的磁盘阵列的数据填充方法:若新数据写入到未经过扩容的编码阵列,则按照N‑Code编码的规则并行写入到各磁盘的空白块中,否则新数据按照空对角校验链或空校验链写入;更新校验值时只更新写入数据校验链直接涉及的校验值,提供数据保护的同时保持了N‑Code原有的并行度;待系统空闲时,将新数据所属的另一条校验链中的校验值更新,恢复为完整的RAID6系统。本发明根据扩容阈值动态选择逻辑条带拼接方法,并提出一种适用于中心对称布局N‑Code的RAID6编码条带拼接方法,最大限度提高扩容效率。

Description

一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法
技术领域
本发明属于计算机存储领域,具体是一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法。
背景技术
大数据时代的深入对数据中心的存储能力和I/O带宽提出了更高的要求。RAID存储架构常应用于集群和大型存储系统,具有低成本、高可靠性、易扩展的存储特性,因此在现有RAID存储系统的基础上进行扩容就成为一种行之有效的解决方案。扩容即向已有磁盘阵列中添加新磁盘,但是增加磁盘个数会改变现有编码阵列的规格,因此需要重新调整编码阵列。RAID系统扩容时,为了使新磁盘阵列负载均衡需要迁移一定的旧数据到新磁盘。数据迁移会造成额外的磁盘I/O和校验值修改,高效的RAID扩容方案应具备数据迁移量少、扩容开销低、负载均衡等特点。
现有两种扩容策略,分别是优化数据迁移过程和减少数据迁移量,均未考虑到磁盘剩余容量对扩容的影响。国内外研究主要集中在对RAID0、RAID4、RAID5的扩容上,因为它们具有相对统一的布局。RAID6采用双奇偶校验,使磁盘阵列在充分利用存储空间的基础上,提高了RAID的容错能力,被广泛部署在现代存储集群和数据中心。随着多盘故障的可能性增加,设计针对RAID6的扩容方案更具有研究意义。但是RAID6多为阵列码,且分为水平编码和垂直编码,使数据存储可靠性、一致性得到保证的同时,导致扩容方案设计的复杂性与不统一性。若将针对RAID0、RAID4、RAID5设计的扩容方案直接应用于RAID6会造成巨大的扩容开销,所以许多研究根据某一种RAID6系统设计了具有针对性的扩容方案,目前的方案虽然减少了数据迁移量和扩容时间,但忽视了扩容后存储系统的性能。
发明内容
针对现有技术的不足,本发明拟解决的技术问题是,提供一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法。
本发明解决所述技术问题的技术方案是,提供一种基于N-Code的RAID6磁盘阵列扩容方法,其特征在于,该扩容方法包括以下步骤:
第一步、在磁盘阵列中添加新磁盘:
基于N-Code的RAID6磁盘阵列中,每个磁盘分成C个大小相同的块,具有相同块号的块组成一个条带,若干个条带组成一个编码阵列;N-Code的编码阵列满足(pk-1)×(pk+1)的布局,其中pk为磁盘阵列第k次扩容时的参数,k为正整数,pk为大于3的质数,pk-1为条带数量,pk+1为磁盘数量;一个编码阵列中共有(pk-1)×(pk+1)个块,RAID6磁盘阵列有(pk-1)2个数据块和2×(pk-1)个校验块;校验块分为对角校验块和水平校验块;
增加的新磁盘数n=pk-pk-1;旧磁盘阵列中共有m个磁盘,m=pk+1,旧磁盘的磁盘号为di(0≤i≤m-1);将新磁盘插入旧磁盘阵列的中间位置处,则第j(0≤j≤n-1)块新磁盘的磁盘号dj=(pk-1+1)/2+j;
新磁盘添加后,根据式(1)将旧磁盘的磁盘号di调整为di’,得到新磁盘阵列;
Figure BDA0002981599690000021
第二步、调整编码阵列;
检测并记录新磁盘阵列中每个磁盘的空白块数量Bi并存储在数组中,遍历数组,找到新磁盘阵列中空白块数量最少的磁盘dmin,磁盘dmin的空白块数记为Bmin
采用式(2)计算扩容阈值CT;若每个磁盘的空白块数均超过CT,则说明新磁盘阵列有超过CT条空白条带;
Figure BDA0002981599690000022
式(2)中,C为单个磁盘中的块总数;Sad为添加新磁盘后每个编码阵列增加的条带数;Sk为添加新磁盘后每个编码阵列的条带总数;
情况一、当0≤Bmin≤CT时,调整编码阵列的具体步骤如下:
步骤1、编码阵列标准化:将新磁盘阵列的一个操作单位的最后(L/Sk-1)-(L/Sk)个条带集中的每n个条带分为一组得到拼接条带组,这些被分组拼接到其它条带集中的条带为拼接条带;将每个拼接条带组分别逻辑拼接到同一个操作单位的前L/Sk个条带集的第(m-2)/2个条带之后;
一个操作单位中包含L个条带;添加新磁盘前一个操作单位有L/Sk-1个条带集,添加新磁盘后一个操作单位有L/Sk个条带集;L为Sk-1和Sk的最小公倍数;Sk-1表示添加新磁盘前每个编码阵列的条带总数;
步骤2、数据迁移:数据迁移分为校验块迁移和数据块迁移;新磁盘将添加新磁盘前的编码阵列分为左侧迁移区域和右侧迁移区域;
对于校验块,对角校验块在编码阵列标准化时已经移动到相应位置,因此不需要迁移;需要迁移的水平校验块为拼接条带中的n个水平校验块;迁移时,将拼接条带中的n个水平校验块分别水平移动,使得拼接后的条带集中的水平校验块位于同一对角线上;在同一校验链中迁移不需要重新计算校验值,块号不变,只改变磁盘号;
对于数据块,需要迁移的数据块为左侧迁移区域和右侧迁移区域中边长为min=MIN[n,(m-2)/2]的等腰三角形区域中的数据块;迁移时,数据迁移按照水平迁移规则和数据迁移量最小规则,将被选择的迁移数据块向新磁盘方向水平移动n个磁盘,块号不变,仅改变磁盘号;
所述水平迁移规则是:数据迁移始终保持在同一行中进行;所述数据迁移量最小规则是:尽可能多地将迁移的数据块移动到原对角校验链中,并保证数据只从旧磁盘移动到新磁盘,使得一个条带集中维持2×min条原校验链;
步骤3、负载均衡:先从左侧迁移区域和右侧迁移区域分别选择n/2条对角校验链作为牺牲对角校验链;再按照磁盘号的顺序依次为牺牲对角校验链中的数据块寻找写入位置,使数据块当前所在的磁盘号与目标磁盘的距离最小,进而实现负载均衡;距离通过取余函数计算得到;
牺牲对角校验链的选取原则是:按照各个对角校验链中包含的空白块的数量,将所有对角校验链从多至少顺序排列,并从包含最多空白块的对角校验链开始选择,直至达到需要的对角校验链条数;
情况二、当CT<Bmin≤C时,调整编码阵列的具体步骤如下:
步骤1、编码阵列标准化:条带拼接时,从dmin中的第一个空白块所在的条带开始,将新磁盘阵列中每n条空白条带分为一组,逻辑拼接到前面每个条带集的第(m-2)/2个条带之后;
步骤2、数据迁移:新磁盘将添加新磁盘前的编码阵列分为左侧迁移区域和右侧迁移区域,需要迁移的数据块为左侧迁移区域和右侧迁移区域中边长为(m-2)/2的等腰三角形区域中的数据块;
迁移时,将左侧迁移区域和右侧迁移区域中的数据块向新磁盘方向水平移动n个磁盘,即块号不变,只改变磁盘号;数据迁移之后水平校验链和对角校验链都保持原链。
本发明解决所述技术问题的技术方案是,提供一种经过所述扩容方法扩容后的基于N-Code的RAID6磁盘阵列的数据填充方法,其特征在于,该数据填充方法是:
扩容完成后,在0≤Bmin≤CT的情况下扩容后的编码阵列形成了n个空对角校验链,在CT<Bmin≤C的情况下扩容后的编码阵列形成了n个空水平校验链和n个空对角校验链;每个空校验链中保证有一个该校验链直接涉及的校验值;
新数据写入新磁盘阵列时,若新数据写入到未经过扩容方法的第二步调整后的编码阵列,则按照N-Code编码的规则并行写入到各磁盘的空白块中,否则新数据按照空对角校验链或空校验链写入;更新校验值时只更新写入数据校验链直接涉及的校验值,提供数据保护的同时保持了N-Code原有的并行度;待系统空闲时,将新数据所属的另一条校验链中的校验值更新,恢复为完整的RAID6系统。
与现有技术相比,本发明有益效果在于:
1、动态选择扩容方案。传统的扩容方案按照统一的逻辑条带拼接方法,没有考虑磁盘剩余容量对拼接方法选择的影响。本发明根据扩容阈值动态选择逻辑条带拼接方法,并提出一种适用于中心对称布局N-Code的RAID6编码条带拼接方法,最大限度提高扩容效率。
2、保持编码优势。在扩容过程中,维持了N-Code的编码阵列,并且通过负载均衡措施,使扩容后的阵列具有与正常N-Code布局相同的并行度,读写性能和存储效率。
3、提高扩容效率。传统的轮询迁移方案几乎需要迁移所有的数据块,更新所有的校验值,使扩容速度慢,效率低,无法为用户提供24*7的高质量服务响应。本发明通过减少扩容过程中的数据块迁移量,校验值重计算量,异或运算次数,I/O操作次数,以及充分利用磁盘的并行度来减少迁移时间,提高了扩容效率。
4、提高存储系统性能。本发明在完成扩容之后,一方面,扩大了存储系统的容量;另一方面,扩容后条带有三种情况:(1)条带与扩容前完全一致;(2)条带完整;(3)条带为空。校验值不更新或者一次性更新到位,有效减少了写入新数据后校验值的反复更新次数,提高了扩容后存储系统的性能。
附图说明
图1为本发明的整体流程图;
图2为本发明的p0=5时N-Code的水平校验示意图;
图3为本发明的p0=5时N-Code的对角校验示意图;
图4为本发明的p1=7时N-Code的水平校验示意图;
图5为本发明的p1=7时N-Code的对角校验示意图;
图6为本发明实施例1的添加新磁盘和编码阵列标准化的示意图;
图7为本发明实施例1的数组的示意图;
图8为本发明实施例1的数据迁移中的条带集0的示意图;
图9为本发明实施例1的数据迁移完成后的条带集0的示意图;
图10为本发明实施例1的牺牲对角校验链的条带集0的示意图;
图11为本发明实施例1的负载均衡后的条带集0的示意图;
图12为本发明实施例1的新数据填充后的条带集0的示意图;
图13为本发明实施例2的添加新磁盘和编码阵列标准化的示意图;
图14为本发明实施例2的数据迁移中的条带集0的示意图;
图15为本发明实施例2的数据迁移完成后的条带集0的示意图;
图16为本发明实施例2的新数据填充后的条带集0的示意图。
具体实施方式
下面给出本发明的具体实施例。具体实施例仅用于进一步详细说明本发明,不限制本申请权利要求的保护范围。
本发明提供了一种基于N-Code的RAID6磁盘阵列扩容方法(简称扩容方法),其特征在于,该扩容方法包括以下步骤:
第一步、在磁盘阵列中添加新磁盘:
基于N-Code的RAID6磁盘阵列中,每个磁盘分成C个大小相同的块,具有相同块号的块组成一个条带,若干个条带组成一个编码阵列;N-Code的编码阵列满足(pk-1)×(pk+1)的布局,其中pk为磁盘阵列第k次扩容时的参数,k为正整数,pk为大于3的质数,pk-1为条带数量即行数,pk+1为磁盘数量即列数;一个编码阵列中共有(pk-1)×(pk+1)个块,由于RAID6采用双奇偶校验,所以有(pk-1)2个数据块和2×(pk-1)个校验块;校验块分为对角校验块和水平校验块;
增加的新磁盘数n=pk-pk-1;添加前,n个新磁盘均被置零(置零操作可提前进行,不占用扩容时间);旧磁盘阵列中共有m个磁盘,m=pk+1,旧磁盘的磁盘号为di(0≤i≤m-1);因为N-Code的编码阵列为中心对称的布局,为使扩容过程中数据布局变化最小,应该将新磁盘插入旧磁盘阵列的中间位置处,即第j(0≤j≤n-1)块新磁盘的磁盘号dj=(pk-1+1)/2+j;
新磁盘添加后,根据式(1)将旧磁盘的磁盘号di调整为di’,得到新磁盘阵列;
Figure BDA0002981599690000051
第二步、调整编码阵列;
检测并记录新磁盘阵列中每个磁盘的空白块数量Bi并存储在数组中,遍历数组,找到新磁盘阵列中空白块数量最少的磁盘dmin,磁盘dmin的空白块数记为Bmin
采用式(2)计算扩容阈值CT;若每个磁盘的空白块数均超过CT,则说明新磁盘阵列有超过CT条空白条带;
Figure BDA0002981599690000052
式(2)中,CT表示扩容阈值(Capacity Threshold);C为单个磁盘中的块总数;Sad为添加新磁盘后每个编码阵列增加的条带数;Sk为添加新磁盘后每个编码阵列的条带总数;
情况一、当0≤Bmin≤CT时,即存在某个磁盘的空白块数量不足以全部拼接空白条带时,选择多条带之间的逻辑拼接扩容方案LBSS(Logical Splicing Method BetweenStripes),具体步骤如下:
步骤1、编码阵列标准化:为了使扩容后数据分布满足N-Code布局,减少扩容时的数据移动,需要将新磁盘阵列的一个操作单位Region的最后(L/Sk-1)-(L/Sk)个条带集Set中的每n个条带分为一组得到拼接条带组,这些被分组拼接到其它条带集中的条带为拼接条带;将每个拼接条带组分别逻辑拼接到同一个操作单位的前L/Sk个条带集的第(m-2)/2个条带之后;
一个操作单位中包含L个条带;添加新磁盘前一个操作单位有L/Sk-1个条带集,添加新磁盘后一个操作单位有L/Sk个条带集;L为Sk-1和Sk的最小公倍数;Sk-1表示添加新磁盘前每个编码阵列的条带总数;
优选地,第二步中,得到拼接条带组的方法采用拼接条带组合算法;所述拼接条带组合算法是:自上而下遍历第一个磁盘中每个操作单位的最后(L/Sk-1)-(L/Sk)个条带集中的所有块,每找到n/2个对角校验块,就将这些对角校验块所在的条带分在同一小组并按照先后顺序编号;自下而上遍历最后一个磁盘中每个操作单位的最后(L/Sk-1)-(L/Sk)个条带集中的所有块,每找到n/2个对角校验块,就将这些对角校验块所在的条带分在同一小组并按照先后顺序编号;再将两次遍历过程中得到的编号相同的小组合并成一组,得到若干个拼接条带组,实现将第一个磁盘和最后一个磁盘的拼接条带中的对角校验块均匀分配,每组拼接条带中有n/2个对角校验块来自第一个磁盘、n/2个对角校验块来自最后一个磁盘,使拼接后的条带集具有中心对称布局,简化后续的数据迁移过程;以上过程在磁盘的逻辑视图中操作,实际上并没有产生数据迁移;
步骤2、数据迁移:数据迁移分为校验块迁移和数据块迁移;新磁盘将添加新磁盘前的编码阵列分为左侧迁移区域和右侧迁移区域;
对于校验块,由于对角校验块在编码阵列标准化时已经移动到了相应位置,因此不需要迁移;由于在一个编码阵列中拼接了n个条带,因此水平校验块需要迁移;需要迁移的水平校验块为拼接条带中的n个水平校验块;迁移时,将拼接条带中的n个水平校验块分别水平移动,使得拼接后的条带集中的水平校验块位于同一对角线上;在同一校验链中迁移不需要重新计算校验值,块号不变,只改变磁盘号;
对于数据块,需要迁移的数据块为左侧迁移区域和右侧迁移区域中边长为min=MIN[n,(m-2)/2]的等腰三角形区域中的数据块;迁移时,数据迁移按照水平迁移规则和数据迁移量最小规则,将被选择的迁移数据块向新磁盘方向水平迁移n个磁盘,块号不变,仅改变磁盘号;
所述水平迁移规则是:为了保持水平校验值不更新,数据迁移始终保持在同一行中进行。所述数据迁移量最小规则是:尽可能多地将迁移的数据块移动到原对角校验链中,并保证数据只从旧磁盘移动到新磁盘,使得一个条带集中维持2×min条原校验链;
步骤3、负载均衡:为了使扩容后的N-Code保持原有的并行度和良好的存储性能,先通过校验链选择算法从添加新磁盘前的编码阵列的左侧迁移区域和右侧迁移区域分别选择n/2条对角校验链作为牺牲对角校验链,这些牺牲对角校验链包含最多或次多的空白块;再通过数据块寻址算法按照磁盘号的顺序依次为牺牲对角校验链中的数据块寻找写入位置,使数据块当前所在的磁盘号与目标磁盘的距离最小,进而实现负载均衡;
牺牲对角校验链的选取原则是:按照各个对角校验链中包含的空白块的数量,将所有对角校验链从多至少顺序排列,并从包含最多空白块的对角校验链开始选择,直至达到需要的对角校验链条数;
根据校验链选择算法,牺牲一小部分数据迁移量来使负载保持均衡,并且使数据迁移量最小,提高了扩容后磁盘的并行性;数据块寻址算法中,距离通过取余函数MOD计算得到。将牺牲对角校验链的数据块根据数据块寻址算法移动之后,牺牲对角校验链全空,其它对角校验链完成整条写。
情况二、当CT<Bmin≤C时,即每个磁盘中空白块数量均可以全部拼接空白条带时,选择空白条带与原条带之间的逻辑拼接扩容方案LBBO(Logical Splicing MethodBetween Blank and Original Stripes),具体步骤如下:
步骤1、编码阵列标准化:条带拼接时,从dmin中的第一个空白块所在的条带开始,将新磁盘阵列中每n条空白条带分为一组,逻辑拼接到前面每个条带集的第(m-2)/2个条带之后;以上过程在磁盘的逻辑视图中操作,实际上并没有产生数据迁移;
步骤2、数据迁移:新磁盘将添加新磁盘前的编码阵列分为左侧迁移区域和右侧迁移区域,需要迁移的数据块为左侧迁移区域和右侧迁移区域中边长为(m-2)/2的等腰三角形区域中的数据块;
迁移时,将左侧迁移区域和右侧迁移区域中的数据块向新磁盘方向水平移动n个磁盘,即块号不变,只改变磁盘号;数据迁移之后水平校验链和对角校验链都保持原链,通过完全消除校验值更新时间来提高扩容效率。
优选地,由于LBBO数据块的迁移数量多于LBSS,数据迁移过程中采用磁盘调度算法来调整数据迁移顺序,利用磁盘并行性提高迁移速度,避免迁移数据多而造成的系统阻塞。所述磁盘调度算法是:左侧迁移区域和右侧迁移区域分别有(m-2)/2个涉及数据迁移且可以并行处理的磁盘,将这些磁盘中磁盘号差值为n的磁盘分为一组,两个迁移区域的磁盘中同组之间并行迁移,同一个迁移区域内磁盘中不同组之间串行迁移。随着磁盘数量的增加,磁盘调度算法的时间优势更加明显。另外,由于第一个磁盘和最后一个磁盘不涉及数据迁移,可以在扩容过程中满足一些服务请求,做到不停机处理。
本发明同时提供了一种扩容后的基于N-Code的RAID6磁盘阵列的数据填充方法(简称数据填充方法,新数据写入新磁盘阵列的过程称为数据填充),其特征在于,该数据填充方法是:扩容完成后,在0≤Bmin≤CT的情况下扩容后的编码阵列形成了n个空对角校验链,在CT<Bmin≤C的情况下扩容后的编码阵列形成了n个空水平校验链和n个空对角校验链;每个空校验链中保证有一个校验值,这个校验值称为该校验链直接涉及的校验值;
新数据写入新磁盘阵列时,若新数据写入到未经过扩容方法的第二步调整后的编码阵列,则按照N-Code编码的规则并行写入到各磁盘的空白块中,否则新数据按照空对角校验链或空校验链写入;更新校验值时只更新写入数据校验链直接涉及的校验值,提供数据保护的同时保持了N-Code原有的并行度;待系统空闲时,将新数据所属的另一条校验链中的校验值更新,恢复为完整的RAID6系统。
优选地,新数据写入新磁盘阵列时,在0≤Bmin≤CT情况得到的扩容后的编码阵列中,若新数据写入到未经过编码阵列标准化、数据迁移和负载均衡的编码阵列,则按照N-Code编码的规则并行写入到各磁盘的空白块中,否则新数据按照空对角校验链写入;写入空对角校验链时,按照按照以下两个顺序执行的规则填满编码阵列中的数据块:(1)校验链直接涉及的校验值自上而下的顺序,(2)数据块所在磁盘号从小到大的顺序;更新校验值时只更新写入数据校验链直接涉及的校验值,提供数据保护的同时保持了N-Code原有的并行度;待系统空闲时,将扩容前编码阵列中的旧水平校验值并行读出,与新数据异或产生新的水平校验值,恢复为完整的RAID6。
新数据写入新磁盘阵列时,在CT<Bmin≤C情况得到的扩容后的编码阵列中,若新数据写入到未经过编码阵列标准化和数据迁移的编码阵列,则按照N-Code编码的规则并行写入到各磁盘的空白块中,否则新数据按照空校验链写入;写入空校验链时,按照以下三个顺序执行的规则填满编码阵列中的数据块:(1)先水平校验链后对角校验链的顺序,(2)校验链直接涉及的校验值自上而下的顺序,(3)数据块所在磁盘号从小到大的顺序;更新校验值时只更新写入数据校验链直接涉及的校验值,提供数据保护的同时保持了N-Code原有的并行度;待系统空闲时,将扩容前编码阵列中的旧校验值读出,与新数据异或产生新的校验值,恢复为完整的RAID6系统。
实施例1
实施例1将N-Code从旧磁盘阵列p0=5进行第1次(k=1)扩容,扩容到p1=7。
第一步、插入新磁盘;如图6所示,将2块新磁盘(n=p1-p0=2)添加到旧磁盘阵列中,第0(j=0)块新磁盘的磁盘号d0=(5+1)/2+0=3,第1(j=1)块新磁盘的磁盘号d1=(5+1)/2+1=4,因此第0块新磁盘在新磁盘阵列中的磁盘号为D3,第1块新磁盘在新磁盘阵列中的磁盘号为D4
新磁盘添加后,根据公式(1)调整旧磁盘阵列中每个旧磁盘的磁盘号,旧磁盘阵列中前3个磁盘号D0、D1和D2不变,其余分别在旧磁盘号的基础上+n,因此D3、D4和D5分别对应调整为D5、D6和D7,得到新磁盘阵列;
第二步、调整编码阵列;
检测并记录新磁盘阵列中每个磁盘的空白块数量Bi,存储在图7所示的数组中,遍历数组,找到新磁盘阵列中空白块数量最少的磁盘dmin,磁盘dmin的空白块数记为Bmin
计算扩容阈值CT;添加新磁盘后每个编码阵列增加的条带数Sad为2条,添加新磁盘后每个编码阵列的条带总数S1为6,由公式(2)可计算出扩容阈值为C/3;
将Bmin与CT比较,假设在实施例1中0≤Bmin≤CT,则选择LBSS:
步骤1、编码阵列标准化:如图6所示,从6个磁盘扩容到8个磁盘,S0=4,S1=6,L为4和6的最小公倍数12,所以本次扩容时一个操作单位中包含12个条带,添加新磁盘前一个操作单位中有12/4=3个条带集,添加新磁盘后一个操作单位中有12/6=2个条带集;图6的箭头左侧中,将一个操作单位中最后(L/S0)-(L/S1)=3-2=1个条带集中每n=2个条带分为一组,将每组条带分别逻辑拼接到前面L/S1=2个条带集中的第(m-2)/2=2个条带之后,逻辑拼接后的操作单位如图6右侧所示;
拼接条带组合算法中,在分组时将第一个磁盘和最后一个磁盘中的对角校验块均匀分配,每组拼接条带中有n/2=1个条带分别来自这两个磁盘,使拼接后的条带集具有中心对称布局,简化后续的数据迁移方案;例如在条带集0(图6的Set0)中两个拼接条带为图6的箭头左侧的Q8和Q11所在的条带,而不是Q8和Q9所在的条带;拼接后Q8和Q11的值会改变,变为图6的箭头右侧的Q8’和Q11’,各个条带集满足p1=7时的编码阵列的行列数,且使编码阵列中对角校验块放置在了p1=7时的编码阵列中的相应位置上;
步骤2、数据迁移:因为各个条带集中的情况相同,因此选择条带集Set0进行描述;
如图8所示,对于校验块,选择迁移的水平校验块为P8和P11;迁移时,将拼接条带中的水平校验块(P8和P11)移动到拼接后的条带集中的水平校验块位于同一对角线上,由于是水平移动水平校验块,所以水平校验值不变,块号不变,只改变磁盘号;
对于数据块,需要迁移的数据块为左侧迁移区域和右侧迁移区域中边长为min=MIN{2,(6-2)/2}=2的等腰三角形区域中的数据块;右侧选择图8中的数据块1、5和6,左侧选择数据块9、10和14,数据块1、5和6以及数据块9、10和14分别组成了一个边长为2的等腰三角形;迁移时,将选择的数据块向新磁盘方向,即磁盘D3和D4所在的方向水平迁移n个磁盘,块号不变;右侧迁移数据块1、5和6的磁盘号分别减2,左侧迁移数据块9、10和14的磁盘号分别加2;移动数据块后的四条对角校验链保持了原来Q0、Q1、Q2和Q3所在的对角校验链的原链。
步骤3、负载均衡:校验链选择算法从添加新磁盘前的编码阵列的左侧迁移区域和右侧迁移区域分别选择n/2=2/2=1条对角校验链作为牺牲对角校验链;如图10中分别选择了Q8’和Q11’所在的对角校验链作为牺牲对角校验链,将这2条对角校验链移为空校验链可具有最小迁移量;将牺牲对角校验链中的数据块水平移动到其它校验链中,使Q0’、Q1’、Q2’和Q3’所在的这4条对角校验链能够一次性写满整个校验链,再更新校验值,若该条带的数据不再需要更新,则不再更新校验值,有效减少了磁盘使用过程中的校验值更新次数和数据读取次数。Q8’和Q11’这2条对角校验链全空,等待数据填充时再计算校验值。
数据块寻址算法中,按照磁盘号从小到大的顺序为数据块寻址。例如图10中需要迁移的数据块为数据块44、45、34和35,数据块44当前所在的磁盘号是D0,移动数据时均为水平移动,因此只能在条带3的空白块中查找合适的位置。此时条带3中分别在D3和D6有一个空白块,D0与D3的距离为3,D0与D6的距离为2,2<3,所以数据块44的数据写入D6。同一条带中的数据块45则写入D3,数据块34和数据块35同理,如图11所示。
第三步、数据填充;完成扩容之后,形成了n=2条空对角校验链,即Q8’和Q11’所在的对角校验链。新磁盘阵列会不断有新数据写入,若新数据写入的条带集是未经过编码阵列标准化、数据迁移和负载均衡的区域,则按照N-Code编码的规则并行写入到各磁盘的空白块中,否则按照图10所示的空对角校验链写入,不同的线条表示不同的校验链,顺序是先写满Qn0所在的校验链,再写Qn1所在的校验链。写入数据后只计算Qn0和Qn1两个对角校验值。如图12所示,该条带集经过了编码阵列标准化、数据迁移和负载均衡,若有6个新数据,写入数据N0、N1、N2、N3、N4和N5。Qn0所在的对角校验链在Qn1之上,因此先写入Qn0所在的对角校验链,6个数据可以并行写入6个磁盘,保持了N-Code原有的并行度。更新校验值时暂时只更新Qn0这个校验值,此时N0、N1、N2、N3、N4和N5这6个数据只由一个校验值Qn0提供数据保护,待系统空闲时,将各校验链的水平校验值并行读出(P0、P1、P2、P3、P8和P11),与新数据异或产生新水平校验值,恢复为完整的RAID6。
实施例2
实施例2将N-Code从旧磁盘阵列p0=5进行第1次(k=1)扩容,扩容到p1=7;第一步与实施例1相同;
第二步、调整编码阵列;
检测并记录新磁盘阵列中每个磁盘的空白块数量Bi,存储在图7所示的数组中,遍历数组,找到新磁盘阵列中空白块数量最少的磁盘dmin,磁盘dmin的空白块数记为Bmin
计算扩容阈值CT;添加新磁盘后每个编码阵列增加的条带数Sad为2条,添加新磁盘后每个编码阵列的条带总数S1为6,由公式(2)可计算出扩容阈值为C/3;
将Bmin与CT比较,假设在实施例2中磁盘阵列空白条带CT<Bmin≤B,则选择LBBO:
步骤1、编码阵列标准化:如图13所示,从dmin中的第一个空白块所在的条带开始,将新磁盘阵列中每n=2条空白条带分为一组,逻辑拼接到前面写有数据的每个条带集的第(m-2)/2=2个条带之后;
步骤2、数据迁移:因为各个条带集中的情况相同,因此选择条带集Set0进行描述;
需要迁移的数据块为左侧迁移区域和右侧迁移区域中边长为(m-2)/2=2的等腰三角形区域中的数据块,如图14所示,左侧选择数据块9、10和14,右侧选择数据块1、5和6;数据块1、5和6以及数据块9、10和14分别组成了一个边长为2的等腰三角形;
迁移时,左侧迁移区域和右侧迁移区域中的数据块在同一条带中向新磁盘方向(D4和D5)水平移动n=2个磁盘。
LBBO方案中水平校验链和对角校验链都保持原链,在添加新磁盘前的编码阵列中,Q0的值由数据块4、10、15和3异或运算得到;图15所示,Q0’为数据块4、10、15、3和2个空数据块异或的结果,Q0=Q0’。所有的校验值都不需要更新,通过完全消除校验值更新时间来提高扩容效率。
磁盘调度算法中,图15中左侧迁移区域和右侧迁移区域中分别有(m-2)/2=2个涉及数据迁移的磁盘,分别是左侧的D1和D2和右侧的D5和D6,分别将这些磁盘中磁盘号差值为n=2的磁盘分为一组,即D2和D5为一组,D1和D6为一组。第一步,D3写入数据块1和5的同时D5写入数据块10和14;第二步,D3写入数据块9的同时D4写入数据块6。
第三步、数据填充。如图16所示,扩容后的编码阵列形成n=2个水平校验链和n=2个对角校验链。新磁盘阵列会不断有新数据写入,若新数据写入的条带集是未经过阵列标准化,数据迁移的条带集,则按照N-Code编码的规则并行写入到各磁盘的空白块中。否则新数据按照图16所示的4条空校验链写入,不同的线条代表了不同的校验链,Pn0、Pn1、Qn0和Qn1为这4条空校验链直接涉及的校验值,顺序是先后写满Pn0、Pn1、Qn0和Qn1所在的校验链,每条校验链暂时只更新该校验链直接涉及的校验值Pn0、Pn1、Qn0和Qn1,提供了数据保护的同时保持了该编码阵列下N-Code原有的并行度。待系统空闲时,将编码阵列中的旧校验值读出,与新数据异或产生新的校验值,恢复为完整的RAID6系统。
本发明未述及之处适用于现有技术。

Claims (6)

1.一种基于N-Code的RAID6磁盘阵列扩容方法,其特征在于,该扩容方法包括以下步骤:
第一步、在磁盘阵列中添加新磁盘:
基于N-Code的RAID6磁盘阵列中,每个磁盘分成C个大小相同的块,具有相同块号的块组成一个条带,若干个条带组成一个编码阵列;N-Code的编码阵列满足(pk-1)×(pk+1)的布局,其中pk为磁盘阵列第k次扩容时的参数,k为正整数,pk为大于3的质数,pk-1为条带数量,pk+1为磁盘数量;一个编码阵列中共有(pk-1)×(pk+1)个块,RAID6磁盘阵列有(pk-1)2个数据块和2×(pk-1)个校验块;校验块分为对角校验块和水平校验块;
增加的新磁盘数n=pk-pk-1;旧磁盘阵列中共有m个磁盘,m=pk+1,旧磁盘的磁盘号为di(0≤i≤m-1);将新磁盘插入旧磁盘阵列的中间位置处,则第j(0≤j≤n-1)块新磁盘的磁盘号dj=(pk-1+1)/2+j;
新磁盘添加后,根据式(1)将旧磁盘的磁盘号di调整为di’,得到新磁盘阵列;
Figure FDA0002981599680000011
第二步、调整编码阵列;
检测并记录新磁盘阵列中每个磁盘的空白块数量Bi并存储在数组中,遍历数组,找到新磁盘阵列中空白块数量最少的磁盘dmin,磁盘dmin的空白块数记为Bmin
采用式(2)计算扩容阈值CT;若每个磁盘的空白块数均超过CT,则说明新磁盘阵列有超过CT条空白条带;
Figure FDA0002981599680000012
式(2)中,C为单个磁盘中的块总数;Sad为添加新磁盘后每个编码阵列增加的条带数;Sk为添加新磁盘后每个编码阵列的条带总数;
情况一、当0≤Bmin≤CT时,调整编码阵列的具体步骤如下:
步骤1、编码阵列标准化:将新磁盘阵列的一个操作单位的最后(L/Sk-1)-(L/Sk)个条带集中的每n个条带分为一组得到拼接条带组,这些被分组拼接到其它条带集中的条带为拼接条带;将每个拼接条带组分别逻辑拼接到同一个操作单位的前L/Sk个条带集的第(m-2)/2个条带之后;
一个操作单位中包含L个条带;添加新磁盘前一个操作单位有L/Sk-1个条带集,添加新磁盘后一个操作单位有L/Sk个条带集;L为Sk-1和Sk的最小公倍数;Sk-1表示添加新磁盘前每个编码阵列的条带总数;
步骤2、数据迁移:数据迁移分为校验块迁移和数据块迁移;新磁盘将添加新磁盘前的编码阵列分为左侧迁移区域和右侧迁移区域;
对于校验块,对角校验块在编码阵列标准化时已经移动到相应位置,因此不需要迁移;需要迁移的水平校验块为拼接条带中的n个水平校验块;迁移时,将拼接条带中的n个水平校验块分别水平移动,使得拼接后的条带集中的水平校验块位于同一对角线上;在同一校验链中迁移不需要重新计算校验值,块号不变,只改变磁盘号;
对于数据块,需要迁移的数据块为左侧迁移区域和右侧迁移区域中边长为min=MIN[n,(m-2)/2]的等腰三角形区域中的数据块;迁移时,数据迁移按照水平迁移规则和数据迁移量最小规则,将被选择的迁移数据块向新磁盘方向水平移动n个磁盘,块号不变,仅改变磁盘号;
所述水平迁移规则是:数据迁移始终保持在同一行中进行;所述数据迁移量最小规则是:尽可能多地将迁移的数据块移动到原对角校验链中,并保证数据只从旧磁盘移动到新磁盘,使得一个条带集中维持2×min条原校验链;
步骤3、负载均衡:先从左侧迁移区域和右侧迁移区域分别选择n/2条对角校验链作为牺牲对角校验链;再按照磁盘号的顺序依次为牺牲对角校验链中的数据块寻找写入位置,使数据块当前所在的磁盘号与目标磁盘的距离最小,进而实现负载均衡;距离通过取余函数计算得到;
牺牲对角校验链的选取原则是:按照各个对角校验链中包含的空白块的数量,将所有对角校验链从多至少顺序排列,并从包含最多空白块的对角校验链开始选择,直至达到需要的对角校验链条数;
情况二、当CT<Bmin≤C时,调整编码阵列的具体步骤如下:
步骤1、编码阵列标准化:条带拼接时,从dmin中的第一个空白块所在的条带开始,将新磁盘阵列中每n条空白条带分为一组,逻辑拼接到前面每个条带集的第(m-2)/2个条带之后;
步骤2、数据迁移:新磁盘将添加新磁盘前的编码阵列分为左侧迁移区域和右侧迁移区域,需要迁移的数据块为左侧迁移区域和右侧迁移区域中边长为(m-2)/2的等腰三角形区域中的数据块;
迁移时,将左侧迁移区域和右侧迁移区域中的数据块向新磁盘方向水平移动n个磁盘,即块号不变,只改变磁盘号;数据迁移之后水平校验链和对角校验链都保持原链。
2.根据权利要求1所述的扩容方法,其特征在于,第二步中,当0≤Bmin≤CT时,步骤1中,得到拼接条带组的方法是:自上而下遍历第一个磁盘中每个操作单位的最后(L/Sk-1)-(L/Sk)个条带集中的所有块,每找到n/2个对角校验块,就将这些对角校验块所在的条带分在同一小组并按照先后顺序编号;自下而上遍历最后一个磁盘中每个操作单位的最后(L/Sk-1)-(L/Sk)个条带集中的所有块,每找到n/2个对角校验块,就将这些对角校验块所在的条带分在同一小组并按照先后顺序编号;再将两次遍历过程中得到的编号相同的小组合并成一组,得到若干个拼接条带组,每组拼接条带中有n/2个对角校验块来自第一个磁盘、n/2个对角校验块来自最后一个磁盘。
3.根据权利要求1所述的扩容方法,其特征在于,第二步中,当CT<Bmin≤C时,数据迁移过程中采用磁盘调度算法来调整数据迁移顺序,利用磁盘并行性提高迁移速度;所述磁盘调度算法是:左侧迁移区域和右侧迁移区域分别有(m-2)/2个涉及数据迁移且可以并行处理的磁盘,将这些磁盘中磁盘号差值为n的磁盘分为一组,两个迁移区域的磁盘中同组之间并行迁移,同一个迁移区域内磁盘中不同组之间串行迁移。
4.一种经过权利要求1-3任一所述扩容方法扩容后的基于N-Code的RAID6磁盘阵列的数据填充方法,其特征在于,该数据填充方法是:
扩容完成后,在0≤Bmin≤CT的情况下扩容后的编码阵列形成了n个空对角校验链,在CT<Bmin≤C的情况下扩容后的编码阵列形成了n个空水平校验链和n个空对角校验链;每个空校验链中保证有一个该校验链直接涉及的校验值;
新数据写入新磁盘阵列时,若新数据写入到未经过扩容方法的第二步调整后的编码阵列,则按照N-Code编码的规则并行写入到各磁盘的空白块中,否则新数据按照空对角校验链或空校验链写入;更新校验值时只更新写入数据校验链直接涉及的校验值,提供数据保护的同时保持了N-Code原有的并行度;待系统空闲时,将新数据所属的另一条校验链中的校验值更新,恢复为完整的RAID6系统。
5.根据权利要求4所述的数据填充方法,其特征在于,新数据写入新磁盘阵列时,在0≤Bmin≤CT情况得到的扩容后的编码阵列中,若新数据写入到未经过编码阵列标准化、数据迁移和负载均衡的编码阵列,则按照N-Code编码的规则并行写入到各磁盘的空白块中,否则新数据按照空对角校验链写入;写入空对角校验链时,按照按照以下两个顺序执行的规则填满编码阵列中的数据块:(1)校验链直接涉及的校验值自上而下的顺序,(2)数据块所在磁盘号从小到大的顺序;更新校验值时只更新写入数据校验链直接涉及的校验值,提供数据保护的同时保持了N-Code原有的并行度;待系统空闲时,将扩容前编码阵列中的旧水平校验值并行读出,与新数据异或产生新的水平校验值,恢复为完整的RAID6。
6.根据权利要求4所述的数据填充方法,其特征在于,新数据写入新磁盘阵列时,在CT<Bmin≤C情况得到的扩容后的编码阵列中,若新数据写入到未经过编码阵列标准化和数据迁移的编码阵列,则按照N-Code编码的规则并行写入到各磁盘的空白块中,否则新数据按照空校验链写入;写入空校验链时,按照以下三个顺序执行的规则填满编码阵列中的数据块:(1)先水平校验链后对角校验链的顺序,(2)校验链直接涉及的校验值自上而下的顺序,(3)数据块所在磁盘号从小到大的顺序;更新校验值时只更新写入数据校验链直接涉及的校验值,提供数据保护的同时保持了N-Code原有的并行度;待系统空闲时,将扩容前编码阵列中的旧校验值读出,与新数据异或产生新的校验值,恢复为完整的RAID6系统。
CN202110288850.6A 2021-03-18 2021-03-18 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法 Active CN112799604B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110288850.6A CN112799604B (zh) 2021-03-18 2021-03-18 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110288850.6A CN112799604B (zh) 2021-03-18 2021-03-18 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法

Publications (2)

Publication Number Publication Date
CN112799604A CN112799604A (zh) 2021-05-14
CN112799604B true CN112799604B (zh) 2022-06-17

Family

ID=75817136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110288850.6A Active CN112799604B (zh) 2021-03-18 2021-03-18 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法

Country Status (1)

Country Link
CN (1) CN112799604B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115729B (zh) * 2021-10-29 2023-07-21 山东云海国创云计算装备产业创新中心有限公司 一种raid下的高效数据迁移方法
CN114415982B (zh) * 2022-03-30 2022-06-07 苏州浪潮智能科技有限公司 一种数据存储方法、装置、设备及可读存储介质
CN114816278B (zh) * 2022-06-30 2022-11-11 苏州浪潮智能科技有限公司 一种存储服务器的数据迁移方法、系统、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081559A (zh) * 2011-01-11 2011-06-01 成都市华为赛门铁克科技有限公司 一种独立磁盘冗余阵列的数据恢复方法和装置
CN104182176A (zh) * 2013-05-24 2014-12-03 华中科技大学 一种独立磁盘冗余阵列raid5的快速扩容方法
CN104881372A (zh) * 2015-05-31 2015-09-02 上海交通大学 一种提高raid-6可扩展性的数据迁移方法
CN104881365A (zh) * 2015-05-31 2015-09-02 上海交通大学 基于纠删码相似性的raid-6可扩展方法
CN105630423A (zh) * 2015-12-25 2016-06-01 华中科技大学 一种基于数据缓存的纠删码集群存储扩容方法
CN111090394A (zh) * 2019-12-05 2020-05-01 烽火通信科技股份有限公司 一种基于卷级别raid的磁阵管理方法及装置
CN112114758A (zh) * 2020-10-12 2020-12-22 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列扩容的方法、装置及介质
CN112130768A (zh) * 2020-09-18 2020-12-25 苏州浪潮智能科技有限公司 磁盘阵列在线扩容方法、装置及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI334564B (en) * 2007-02-14 2010-12-11 Via Tech Inc Data migration systems and methods for independent storage device expansion and adaptation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081559A (zh) * 2011-01-11 2011-06-01 成都市华为赛门铁克科技有限公司 一种独立磁盘冗余阵列的数据恢复方法和装置
CN104182176A (zh) * 2013-05-24 2014-12-03 华中科技大学 一种独立磁盘冗余阵列raid5的快速扩容方法
CN104881372A (zh) * 2015-05-31 2015-09-02 上海交通大学 一种提高raid-6可扩展性的数据迁移方法
CN104881365A (zh) * 2015-05-31 2015-09-02 上海交通大学 基于纠删码相似性的raid-6可扩展方法
CN105630423A (zh) * 2015-12-25 2016-06-01 华中科技大学 一种基于数据缓存的纠删码集群存储扩容方法
CN111090394A (zh) * 2019-12-05 2020-05-01 烽火通信科技股份有限公司 一种基于卷级别raid的磁阵管理方法及装置
CN112130768A (zh) * 2020-09-18 2020-12-25 苏州浪潮智能科技有限公司 磁盘阵列在线扩容方法、装置及计算机可读存储介质
CN112114758A (zh) * 2020-10-12 2020-12-22 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列扩容的方法、装置及介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Yingxun Fu,et al..D-Code: An Efficient RAID-6 Code to Optimize I/O Loads and Read Performance.《2015 IEEE 29th International Parallel and Distributed Processing Symposium》.2015, *
Zhirong Shen,et al..HV Code: An All-Around MDS Code for RAID-6 Storage Systems.《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》.2016,第27卷(第6期), *
元铸,等..基于RAID-6的容量扩容布局研究.《重庆邮电大学学报( 自然科学版)》.2019,第31卷(第5期), *
高帅,等..基于轮转部署的RAID6分布式存储系统扩容方案.《计算机应用与软件》.2016,第33卷(第8期), *

Also Published As

Publication number Publication date
CN112799604A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN112799604B (zh) 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法
JP3587667B2 (ja) 外部記憶サブシステムのパリティ記憶及びデータ修復方法
US7188270B1 (en) Method and system for a disk fault tolerance in a disk array using rotating parity
JP5256149B2 (ja) Hdd障害からの高速データ回復
CN104407807B (zh) 一种针对rs编码存储集群的存储扩容方法
KR20040066638A (ko) 외부 저장 서브 시스템에서의 패리티 저장 방법 및에러블록 복구 방법
US10922201B2 (en) Method and device of data rebuilding in storage system
CN110297601B (zh) 固态硬盘阵列构建方法、电子设备及存储介质
CN111782439B (zh) 一种基于水平编码的双盘循环校验方法
CN106484559A (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN104714758B (zh) 一种基于校验raid加入镜像结构的阵列构建方法及读写系统
CN111459710B (zh) 感知热度与风险的纠删码内存恢复方法、设备及内存系统
US7133965B2 (en) Raid storage device
CN113258936B (zh) 一种基于循环移位的双重编码的构造方法
EP2889751B1 (en) Method and apparatus for determining redundant array of independent disks
US6792391B1 (en) Method and system for three disk fault tolerance in a disk array
CN110600070B (zh) 一种提升固态硬盘阵列系统修复性能的编码和修复方法
US20080104445A1 (en) Raid array
CN110268397A (zh) 应用于数据仓库系统的高效优化数据布局方法
CN115167787B (zh) 一种数据转存方法、系统、设备及计算机可读存储介质
CN116450048A (zh) Raid6磁盘阵列降级为raid5磁盘阵列的方法
Lee et al. Efficient parity placement schemes for tolerating up to two disk failures in disk arrays
CN110109621B (zh) 一种提升固态硬盘阵列系统性能和寿命的方法
US7062604B1 (en) Method and system for five-disk fault tolerance in a disk array
US7093159B1 (en) Method and system for four disk fault tolerance in a disk array

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant