基干纠错码ECc的数据冗余编码及分布技术经验

2013-02-04    来源:机房360    编辑:佚名
R-ADMAD基于ECC的数据封装、编码和分布流程如图4.18所示。为了简化示意图,每个最终存储在ISN中的对象用表示。其中,odata_or_check表明该对象是一个数据对象还是一个校验块对象。如果有

  R-ADMAD基于ECC的数据封装、编码和分布流程如图4.18所示。为了简化示意图,每个最终存储在ISN中的对象用表示。其中,odata_or_check表明该对象是一个数据对象还是一个校验块对象。如果有新的艾件被存储到对象中,MDS通知客户端将这些块存储到哪些ISN上,这些lSN称为代表性ISN(简称R-ISN)。

  客户端从MDS获取R-ISN标志符后,将这些最新添加的文件块打包成若干定长的对象 (假设有m个数拥对象)发送到指定的R-lSN上。ECC编码模块通过对这们个数据对象进行编码,获得n个数据对象 (其中包含n-m个校验码对象),并将这n个对象作为一个冗余组分布到指定的lSN上去。

  冗余组的分布方案由MDS通过哈希算法或手动指定的策略预先决定[11]。在实现过程中,由于某些lSN存在一定的关联,如在物理位置上更靠近,共享电源和网络等,它们之间更容易一起出错(即处于同一个出锚域中)。如果同一个冗余组中的对象分布到在同一个出错域中的ISN上,则容易出现一个冗余组中的几个对象同时不可用的情况。当出错的对象数目超过了冗余算法的容错能力时,恢复就无法完成,从而导致系统的可靠性降低。为了解抉这个问题,在进择lSN时,应尽可能将一个冗余组分布到不同出锗域的ISN,如选择那些来自不同机柜,不同电源供应和控制,或物理位置不同的ISN。另外,数据的负载平衡性也是选择ISN的一个重要考虑因素。热点对象应该尽量均匀地分散到不同的ISN上去,以防某个ISN的负载过重。每个lSN的空间利用率也应尽可能均衡,防止某个ISN空余空间过少而影响系统的性能。

  R-MDM肋选择Reed-Solomon编码和而m咐。编码作为ECC码的典型代表。ECC编解码模块提供一组统一的API函数供调用,参见表4.3。

  其他的可靠性保证方案,如数据复制、类MuD机制等也可以通过实现上述接口集成到R-ADMAD。

  因为R-ADMAD中每个ISN都可以作为R-ISN,所以ECC的计算和数据分布都是分布式的,每个ISN的I/O和计算资源都可以被充分利用。该系统具有很好的并行性和综合性能。

1
3