RAID2是什么

2023-08-01 10:16:00 生活常识 投稿:这条河叫时光

RAID 2是RAID 0的改良版,以汉明码(Hamming Code)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC),所以数据整体的容量会比原始数据大一些。

RAID 2 是 RAID 0 的改良版,以汉明码(Hamming Code)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些。

RAID2是什么

工作原理

RAID 2 是为大型机和超级计算机开发的带汉明码校验磁盘阵列。它是将数据条带化地分布于不同的硬盘上,条块单位为位或者字节,并使用“加重平均纠错码”的编码技术来提供错误检查及恢复,这种纠错码也被称为“海明码”。海明码需要多个磁盘存放检查及恢复信息,使得 RAID2 技术实施更复杂,因此在商业环境中很少使用。

海明码在磁盘陈列中被间隔写入到磁盘上,而且地址都一样,也就是在各个磁盘中,其数据都在相同的磁道及扇区中。

RAID2 的设计是使用共轴同步的技术,存取数据时整个磁盘陈列一起工作,在各个磁盘的相同位置做平行存取,所以有最短的存取时间,其总线是特别的设计,以大带宽并行传输所存取的数据。在大型文件的存取应用中,RAID2 有最好的性能,但是如果文件太小,将会影响其性能,因为磁盘的存取是以扇区为单位,而 RAID2 的存取是所以磁盘平行动作,而且是进行位的存取,所以小于一个扇区的数据量会使其性能大打折扣。

RAID2 是设计给需要连续存取大量数据的计算机使用的,如进行影像处理或者 CAD/CAM 的工作站等,并不适用于一般的多用户环境、网络服务器和 PC。

汉明码原理

汉明码是一个在原有数据中插入若干校验码来进行错误检查和纠正的编码技术。以典型的 4 位数据编码为例,汉明码将加入 3 个校验码,从而使实际传输的数据位达到 7 个(位)。

现以数据码 1101 为例讲讲汉明码的编码原理,此时 D8=1、D4=1、D2=0、D1=1,在 P1 编码时,先将 D8、D4、D1 的二进制码相加,结果为奇数 3,汉明码对奇数结果编码为 1,偶数结果为 0,因此 P1 值为 1,D8+D2+D1=2,为偶数,那么 P2 值为 0,D4+D2+D1=2,为偶数,P3 值为 0。这样,参照上文的位置表,汉明码处理的结果就是 1010101。在这个 4 位数据码的例子中,我们可以发现每个汉明码都是以三个数据码为基准进行编码的。

从编码形式上,我们可以发现汉明码是一个校验很严谨的编码方式。在这个例子中,通过对 4 个数据位的 3 个位的 3 次组合检测来达到具体码位的校验与修正目的(不过只允许一个位出错,两个出错就无法检查出来了,这从下面的纠错例子中就能体现出来)。在校验时则把每个汉明码与各自对应的数据位值相加,如果结果为偶数(纠错代码为 0)就是正确,如果为奇数(纠错代码为 1)则说明当前汉明码所对应的三个数据位中有错误,此时再通过其他两个汉明码各自的运算来确定具体是哪个位出了问题。

还是刚才的 1101 的例子,正确的编码应该是 1010101,如果第三个数据位在传输途中因干扰而变成了 1,就成了 1010111。检测时,P1+D8+D4+D1 的结果是偶数 4,第一位纠错代码为 0,正确。P1+D8+D2+D1 的结果是奇数 3,第二位纠错代码为 1,有错误。P3+D4+D2+D1 的结果是奇数 3,第三但纠错代码代码为 1,有错误。那么具体是哪个位有错误呢?三个纠错代码从高到低排列为二进制编码 110,换算成十进制就是 6,也就是说第 6 位数据错了,而数据第三位在汉明码编码后的位置正好是第 6 位。

那么汉明码的数量与数据位的数量之间有何比例呢?上面的例子中数据位是 4 位,加上 3 位汉明码是 7 位,而 2 的 3 次幂是 8。这其中就存在一个规律,即 2≥P+D+1,其中 P 代表汉明码的个数,D 代表数据位的个数,比如 4 位数据,加上 1 就是 5,而能大于 5 的 2 的幂数就是 3(2=8,2=4)。这样,我们就能算出任何数据位时所需要的汉明码位数:7 位数据时需要 4 位汉明码(2>4+7+1),64 位数据时就需要 7 位汉明码(2>64+7+1),大家可以依此推算。此时,它们的编码规也与 4 位时不一样了。

另外,汉明码加插的位置也是有规律的。以四位数据为例,第一个是汉明码是第一位,第二个是第二位,第三个是第四位,1、2、4 都是 2 的整数幂结果,而这个幂次数是从 0 开始的整数。这样我们可以推断出来,汉明码的插入位置为 1(2)、2(2)、4(2)、8(2)、16(2)、32(2)……

优缺点

在写入时,RAID 2 在写入数据位同时还要计算出它们的汉明码并写入校验阵列,读取时也要对数据即时地进行校验,最后再发向系统。通过上文的介绍,我们知道汉明码只能纠正一个位的错误,所以 RAID 2 也只能允许一个硬盘出问题,如果两个或以上的硬盘出问题,RAID 2 的数据就将受到破坏。但由于数据是以位为单位并行传输,所以传输率也相当快。

RAID 2 是早期为了能进行即时的数据校验而研制的一种技术(这在当时的 RAID 0、1 等级中是无法做到的),从它的设计上看也是主要为了即时校验以保证数据安全,针对了当时对数据即时安全性非常敏感的领域,如服务器、金融服务等。但由于花费太大(其实,从上面的分析中可以看出如果数据位宽越大,用于校验阵列的相对投资就会越小,就如上面的 4:3 与 64:7),成本昂贵,目前已基本不再使用,转而以更高级的即时检验 RAID 所代替,如 RAID 3、5 等。

声明:犀牛文库所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系admin@qq.com