H-Code: A Hybrid MDS Array Code to Optimize Partial Stripe Writes in RAID-6

H-Code: A Hybrid MDS Array Code to Optimize Partial Stripe Writes in RAID-6
复制标题

DOI:
10.1109/ipdps.2011.78
复制
发表时间:
2011-05
期刊:
2011 IEEE International Parallel & Distributed Processing Symposium
影响因子:
--
通讯作者:
Chentao Wu;Shenggang Wan;Xubin He;Q. Cao;C. Xie
Chentao Wu;Shenggang Wan;Xubin He;Q. Cao;C. Xie
中科院分区:
其他
文献类型:
--
作者:
Chentao Wu;Shenggang Wan;Xubin He;Q. Cao;C. Xie

文献摘要

被引文献

相似文献

RAID-6被广泛用于容忍任何两个磁盘的并发故障,以提供更高级别的可靠性和擦除码的支持。在许多实现中,一类称为最大距离({\bfseries{M}}aximum {\bfseries{D}}istance {\bfseries{S}}eparable,{\bfseries{MDS}})码的代码旨在以最佳存储效率提供针对磁盘故障的数据保护。典型的MDS码包含水平码和垂直码。由于水平奇偶校验,在一行中\n {部分条带写入}(指将新数据或更新数据写入阵列中磁盘子集的I/O操作)的情况下,水平代码在大多数情况下可能会获得较少的I/O操作,但会遭受不平衡的I/O分布。它们还具有高单次写入复杂性的限制。与水平代码相比,垂直代码提高了单次写入的复杂度,但它们在部分条带写入中仍然具有较差的性能。在本文中,我们提出了一种新的XOR为基础的MDS阵列码,命名为混合码(H码),优化部分条带写入RAID-6的水平和垂直代码的优点。H-Code是$(p+1)$磁盘阵列的解决方案,其中$p$是素数。与采用专用反对角奇偶校验条的其他代码不同,H-Code使用特殊的反对角奇偶校验布局,并将反对角奇偶校验元素分布在阵列中的磁盘之间,从而实现更平衡的I/O分布。另一方面,H-Code的水平奇偶校验确保对行中的连续数据元素的部分条带写入共享相同的行奇偶校验链,这可以实现最佳的部分条带写入性能。据我们所知,不仅在一行内,而且在一个条带内,H-Code为两个连续数据元素提供了最佳的部分条带写入复杂性,并在所有MDS代码中提供了最佳的部分条带写入性能。具体而言,与RDP和EVENODD代码相比,H-Code将I/O成本降低了15.54%和22.17%。总体而言,H码具有最佳的存储效率,最佳的编码/解码计算复杂度,最佳的单写和部分条带写的复杂度。
RAID-6 is widely used to tolerate concurrent failures of any two disks to provide a higher level of reliability with the support of erasure codes. Among many implementations, one class of codes called {\bfseries{M}}aximum {\bfseries{D}}istance {\bfseries{S}}eparable ({\bfseries{MDS}}) codes aims to offer data protection against disk failures with optimal storage efficiency. Typical MDS codes contain horizontal and vertical codes. Due to the horizontal parity, in the case of \emph{partial stripe write} (refers to I/O operations that write new data or update data to a subset of disks in an array) in a row, horizontal codes may get less I/O operations in most cases, but suffer from unbalanced I/O distribution. They also have limitation on high single write complexity. Vertical codes improve single write complexity compared to horizontal codes, while they still suffer from poor performance in partial stripe writes. In this paper, we propose a new XOR-based MDS array code, named Hybrid Code (H-Code), which optimizes partial stripe writes for RAID-6 by taking advantages of both horizontal and vertical codes. H-Code is a solution for an array of $(p+1)$ disks, where $p$ is a prime number. Unlike other codes taking a dedicated anti-diagonal parity strip, H-Code uses a special anti-diagonal parity layout and distributes the anti-diagonal parity elements among disks in the array, which achieves a more balanced I/O distribution. On the other hand, the horizontal parity of H-Code ensures a partial stripe write to continuous data elements in a row share the same row parity chain, which can achieve optimal partial stripe write performance. Not only within a row but also within a stripe, H-Code offers optimal partial stripe write complexity to two continuous data elements and optimal partial stripe write performance among all MDS codes to the best of our knowledge. Specifically, compared to RDP and EVENODD codes, H-Code reduces I/O cost by up to $15.54%$ and $22.17%$. Overall, H-code has optimal storage efficiency, optimal encoding/decoding computational complexity, optimal complexity of both single write and partial stripe write.