论文部分内容阅读
随着现代存储系统在规模和复杂性上的不断增长,硬盘(节点)故障已经成为系统运行中的一个日常事件。为了防止各类硬件故障造成数据丢失,存储系统一般使用两种方式对数据进行保护,即多路镜像和纠删编码。多路镜像虽然实现简单,但这种方式的存储效率通常较低;而纠删码技术由于可以灵活地调节存储效率而被越来越多的存储系统采用。最大距离可分的(MDS)阵列码是一类主要面向存储系统的纠删码,这类码可以使用最少的冗余来提供特定的容错能力,并且其编解码过程只需要用到简单的异或和循环移位运算,因此在近几年受到了越来越多的关注。本文主要针对纠双删和纠三删的MDS阵列码进行了深入的研究,并取得了以下几点成果:1、RAID-6正在逐步取代RAID-5成为RAID的主流形式,因为它可以在两个磁盘同时故障的情况下也能够恢复数据。有许多纠双删的MDS阵列码是专为实现RAID-6设计的,但是这些码都有它们各自的局限性。本文研究了其中一种有代表性的码(Blaum-Roth码),分析其优势及局限性,并对其编解码算法进行改进。改进后的Blaum-Roth码具有以下优秀特性:1)编码复杂度达到理论下界;2)解码复杂度接近理论下界;3)可以在几乎没有性能损失的前提下实现RAID-6的可扩展性。与其它最常用于RAID-6的MDS阵列码相比,改进后的Blaum-Roth码更适于构建高性能并且可伸缩的RAID-6磁盘阵列。2、纠双删的最低密度MDS阵列码是一类结构优美的纠删码,具有最优的编码、解码和更新复杂度。然而,现有的这类码或者对码长的限制过于严格,或者编码规则没有明显的几何规律,这使得它们的实用性较差。为此,本文构造了一种新的纠双删最低密度MDS阵列码,称为对称码。对称码的编码、解码和更新复杂度均达到最优,而且码长可以是素数或者素数减1。此外,对称码在恢复单个删除列时所需的I/O开销比大多数最低密度MDS阵列码要少,并且在码长较短时这个开销可以接近理论下界。3、最低密度MDS阵列码由于其编码和更新复杂度的最优性而广受欢迎。然而,目前已知的绝大多数最低密度MDS阵列码都只能纠两个删除列,虽然有少部分例外,但是它们对码长的限制非常严格。例如,现有的纠三删的最低密度MDS阵列码通常要求码长为p(或p-1),其中p必须是满足以下条件的素数:2为GF(p)的一个本原元且p-1能够被3整除。如此严格的码长限制使得这些码几乎无法被实际存储系统采用。为此,本文构造了一种实用的纠三删的最低密度MDS阵列码,能够纠正码字中的任意三个删除列或者一个删除列连同一个差错列。这类码的解码复杂度可以达到或接近理论下界(取决于删除模式),并且码长可以是p或p+1,其中p是一个奇素数。这是目前已知最具实用价值的纠三删的最低密度MDS阵列码。4、广义RDP码被认为是目前最实用和最高效的强系统的MDS码,因为其编码复杂度达到了理论下界,并且可以支持任意码长。然而,广义RDP码的现有解码算法的解码复杂度离理论下界有点远,还有一定的改进空间。本文对纠三删的广义RDP码的解码算法进行了研究,并提出了一种针对三个删除列的改进的解码算法。与原有的解码算法相比,本文提出的算法具有明显更低的解码复杂度,且当码长不等于10或11时这个复杂度最多只比理论下界高出8个百分点。