一种提高raid-6可扩展性的数据迁移方法_2

文档序号:8905182阅读:来源:国知局
校验块迁移的优先级, 更高的优先级意味着在I/O与校验计算上有更小的总开销,根据图3中各种优先级,我们可 W评估一次移动是否高效。例如,如图4所示,块0从磁盘2迁移到了磁盘0,而别的块都得 W保留而没有移动。W水平校验的观点来看(如图4(a)所示),块0依旧停留在原先的水 平校验链上且与其相关的校验P。不必变化。另一方面,考虑斜向校验(如图4(b)所示), 块0依然与别的块共享同一校验链(例如,块11,14,Pi与Q。),而且相关的校验元素会被保 留。因此,块0的移动不会改变任何校验并在扩展过程中有最高的优先级(优先级1);
[0039] 步骤S2,布局比较;比较扩展前后的编码矩阵的陈列布局并寻找一个代价最小的 方式改变扩展前的使用中的条带的陈列布局,确定移动扩展前的使用中的条带中具有最高 的移动优先级的数据块与校验块;其中,〇US(01dUsedStripe)为扩展前的使用中的条带, NUS(NewUsedStripe)为扩展后的使用中的条带;
[0040] 步骤S3,均衡检查:完成布局比较后,根据编码矩阵的条带中数据块的分布,确定 选择一组条带中的一小部分条带W进行后续平衡工作负载,该一步的数据块与校验块移动 的开销在可接受的范围内,尽管选择最高优先级的数据或校验移动能够最小化扩展过程的 开销,但是会导致不均衡的负载该一RAID系统中的一个严重的问题。为了解决该个问题, 负载平衡检查被用于实现平衡的负载;
[0041] 步骤S4,根据确定的移动扩展前的使用中的条带中具有最高的移动优先级的数据 块与校验块和确定选择的一组条带中的一小部分条带为每个条带进行数据迁移。布局比较 W及负载平衡检查步骤之后,一个综合的迁移策略能够被得出,之后系统可W开始数据迁 移过程。
[0042] 本发明提高RAID-6可扩展性的数据迁移方法的一优选的实施例中,对比扩展前 与扩展后的校验布局,我们提出了针对水平与垂直编码的不同的规则,由于水平与垂直编 码矩阵的不同,我们设计了不同的扩展方案并将分别讨论它们,
[0043] 当所述编码矩阵为水平编码矩阵,步骤S2,布局比较;比较扩展前后的编码矩阵 的陈列布局并寻找一个代价最小的方式改变扩展前的使用中的条带的陈列布局,确定移动 扩展前的使用中的条带中具有最高的移动优先级的数据块与校验块包括:
[0044] 标记扩展后的校验盘,其中,校验盘保留,扩展的磁盘均作为数据盘使用;
[0045] 标记扩展后的磁盘,其中,将m块磁盘添加到磁盘阵列中,新添加的磁盘被插在所 有数据磁盘的中间,m为正整数;
[0046] 进行行标记,其中,如果一个扩展前的使用中的条带包含了n,个数据行,则会在扩 展后的使用中的条带标记上相同的行标识(ID),n,为正整数;
[0047] 进行特殊校验处理,其中,如果水平校验块参加构成了斜向或反斜向校验块,那么 水平链中数据块或校验块有着比斜向或反斜向校验链中更高的优先级,相反地,如果斜向 或反斜向校验块参与构成了水平校验块,那么斜向或反斜向校验块中的数据块与校验块移 动有着比水平链中更高的优先级。后续即可选择正确的具有最高的移动优先级的数据块与 校验块进行迁移。
[004引具体的,我们WRDP编码(一种水平编码)为例,分别将其从6块磁盘扩展到8块 磁盘和从6块磁盘扩展到7块磁盘,来展示在RAID-6中该扩展方案是如何工作的。例如, 如果我们希望将一个使用RDP编码的RAID-6阵列由6块磁盘扩展为8块磁盘,比较图1中 的布局,根据上述规则我们有如下的策略,
[0049] 校验盘标记;图1 (a)和1化)中的列4和5作为校验盘保留,列ID将变为列6和 7,如图1(c)和1(d)所示。
[0050] 扩展盘标记;根据图5所示,两块扩展盘被视为数据盘,若被标记为列2和3,则迁 移开销最小。
[005。 行标记海个0US中的行ID都被保留,由于增多了磁盘,条带的大小将会变大,包 含更多行,该在扩容过程该被称作幽灵行。
[0052] 特殊校验处理:水平链中数据与校验移动的优先级高于斜向或反斜向校验。
[0053] 数据与校验迁移:块2,6, 3,和13被选择进行迁移,如图6所示,而且所有的数据 块均在相同的校验布局下共享相同的校验。因此,所有的校验块都被保留,而且他们的移动 有着最高的有优先级。
[0054] 当所述编码矩阵为垂直编码矩阵,步骤S2,布局比较;比较扩展前后的编码矩阵 的陈列布局并寻找一个代价最小的方式改变扩展前的使用中的条带的陈列布局,确定移动 扩展前的使用中的条带中具有最高的移动优先级的数据块与校验块包括:
[00巧]进行原始盘标记,其中,原始磁盘标识(ID)被保留,而扩展磁盘将用作数据盘;
[0056] 进行扩展盘标记,将m块盘加入一个阵列中,新加入的m块盘被标记为最后的m 列。后续即可选择具有最高优先级的数据块与校验块迁移。具体的,我们WP-Code(垂直 编码)为例,分别将其从6块磁盘扩展到8块磁盘和从6块磁盘扩展到7块磁盘,来展示在 RAID-6中该扩展方案是如何工作的。例如,如果我们希望将一个使用P-Code的RAID-6阵 列从6盘扩展至7盘,通过和图2中的布局进行比较,根据W上的规则,我们有如下的策略,
[0057] 磁盘标记;如图7 (a)所示,原始列ID被保留,新的磁盘被标记为列6。
[005引行标记海个OUS中的行ID被保留。
[0059] 数据与校验迁移:块0和1被选择用于迁移,如图7化),他们有着最高的优先级而 且有S块校验任3,?4和Pg)在每个条带中均被修改。
[0060] 步骤S3,均衡检查中,首先我们在布局比较后获取数据块分布的统计信息。例如, 图8和图9显示了在RDP和P-Code中第二行(条带0)的数据分布情况。我们注意到条带 里每一列数据的个数扩展后会不平衡,不同的列有不同数量的数据块。
[0061] 对于水平和垂直编码,下面的方法可W用于实现一致的数据分布。
[00的]1)水平编码
[0063] 大多数的水平编码具有不对称的数据与校验分布,因此一小部分条带因为较高的 迁移代价而进行平衡工作负载牺牲(称作"牺牲的条带")。在负载平衡检查的步骤中,该 部分的条带会被进行平衡工作负载,而且条带中部分的块会被迁移W实现平衡的负载。
[0064]。垂直编码
[0065] 大多数的垂直编码有着对称的数据块与校验块分布,每个条带中的数据元素都被 交替地迁移,而条带的一小部分不会移动(称为"保留的条带")。
[0066] 水平编码中,为了计算牺牲与保留条带的百分比,我们将"条带集"定义为具有同 一数据分布的n,个条带,n,-个条带集里条带的个数。假设n是扩展后数据磁盘的数量, n。是扩容前数据元素的总数。n,可W被如下公式计算:
确定选择一组条带 中的一小部分条带进行平衡工作负载。因此在一个条带集中,每列数据元素的总数(表示 为nJ是
图8 (2)所示在每个条带集,一小部分条带被选择作为牺牲保留 的条带。例如,如图8所示,每个条带集包含了 =个条带
,其 中最后一个条带被选择作为牺牲的条带。
[0067] 在每一个条带集中,每一列需要包含8个数据元素
因此牺牲的条带(条带ID为2)中的数据分布是0, 2,4,4,4,4, 2 (例如,列0的数据元素个 数为nee-2X4 = 8-8 = 0)。
[006引垂直编码中,类似地,如图9所示,P-Code的条带大小是7,
而最后一个条带是保留条带。
[0069] 我们总结了在负载平衡步骤中基于优先级的
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1