2024年3月26日发(作者:)

  附录A  Disk Array磁盘阵列基本原理 

A.1 我们为什幺需要磁盘阵列 

目前人们逐渐认识了磁盘阵列技术。磁盘阵列技术可以详细地划分为若干个级别0-5 RAID技术,并且又发展了所谓的 RAID 

Level 10, 30, 50的新的级别,本章节都会一一介绍。RAID是廉价冗余磁盘阵列(Redundant Array of Inexpensive Disk)

的简称。用RAID的好处简单的说就是: 

安全性高,速度快,数据容量超大 

某些级别的RAID技术可以把速度提高到单个硬盘驱动器的400%。磁盘阵列把多个硬盘驱动器连接在一起协同工作,大大提高

了速度,同时把硬盘系统的可靠性提高到接近无错的境界。这些“容错”系统速度极快,同时可靠性极高。 

这本小册子将讨论这些新技术,以及不同级别RAID的优缺点。我们并不想涉及那些关键性的技术细节问题,而是将磁盘阵列

和RAID技术介绍给对它们尚不熟悉的人们。相信这将帮助你选用合适的RAID技术。 

A.2 RAID级别的定义 

下表提供了6级RAID的简单定义,本书其后部分将对各级RAID进行更详尽的描述。 

 

RAID级别 描述 速度* 容错性能 

RAID 0 

RAID 1 

RAID 2 

RAID 3 

RAID 4 

RAID 5 

硬盘分段 

硬盘镜像 

硬盘分段加汉明码纠错 

硬盘分段加专用 

奇偶校验盘 

硬盘分段加专用 

奇偶校验盘需异步硬盘 

硬盘分段加奇偶校验 

分布在各硬盘 

硬盘并行输入/出 

没有提高 

没有提高 

硬盘并行输入/出 

硬盘并行输入/出 

硬盘并行输入/出比 

RAID0稍慢 

无 

有(允许单个硬盘错) 

有(允许单个硬盘错) 

有(允许单个硬盘错) 

有(允许单个硬盘错) 

有(允许单个硬盘错) 

 

*对于单一容量昂贵硬盘(SLED)的性能提高 

A.3 硬盘数据跨盘(Spanning) 

 

数据跨盘技术使多个硬盘像一个硬盘那样工作,这使用户通过组合已有的资源或增加一些资源来廉价地突破现有的硬盘空间限

制。 

图2所示为4个300兆字节的硬盘驱动器连结在一起,构成一个SCSI系统。用户只看到一个有1200兆字节的C盘,而不是看

到C, D, E, F, 4个300兆字节的硬盘。在这样的环境中,系统管理员不必担心某个硬盘上会发生硬盘安全检空间不够的情况。

因为现在1200兆字节的容量全在一个卷(Volume)上(例如硬盘C上)。系统管理员可以安全地建立所需要的任何层次的文件

系统,而不需要在多个单独硬盘环境的限制下,计划他的文件系统。 

硬盘数据跨盘本身并不是RAID,它不能改善硬盘的可靠性和速度。但是它有这样的好处,即多个小型廉价硬盘可以根据需要

增加到硬盘子系统上。 

 

图2硬盘数据跨盘 

 

A.4 硬盘分段(Disk Striping,  

 RAID 0) 

硬盘分段的方法把数据写到多个硬盘,而不是只写到一个盘上,这也叫作RAID O,在磁盘阵列子系统中,数据按系统规定的

“段”(Segment)为单位依次写入多个硬盘,例如数据段1写入硬盘0,段2写入硬盘1,段3写入硬盘2等等。当数据写完

最后一个硬盘时,它就重新从盘0的下一可用段开始写入,写数据的全过程按此重复直至数据写完。 

段由块组成,而块又由字节组成。因此,当段的大小为4个块,而块又由256个字节组成时,依字节大小计算,段的大小等于

1024个字节。第1~1024字节写入盘0,第1025~2048字节写盘1等。假如我们的硬盘子系统有5个硬盘,我们要写20,000

个字节,则数据将如图3那样存储。 

112 whitepaper

图3硬盘分段 

 

 

总之,由于硬盘分段的方法,是把数据立即写入(读出)多个硬盘,因此它的速度比较快。实际上,数据的传输是顺序的,但

多个读(或写)操作则可以相互重迭进行。这就是说,正当段1在写入驱动器0时,段2写入驱动器1的操作也开始了;而当

段2尚在写盘驱动器1时,段3数据已送驱动器2;如此类推,在同一时刻有几个盘(即使不是所有的盘)在同时写数据。因

为数据送入盘驱动器的速度要远大于写入物理盘的速度。因此只要根据这个特点编制出控制软件,就能实现上述数据同时写盘

的操作。 

遗憾的是RAID 0不是提供冗余的数据,这是非常危险的。因为必须保证整个硬盘子系统都正常工作,计算器才能正常工作,

例如,假使一个文件的段1(在驱动器0),段2(在驱动器1),段3(在驱动器2),则只要驱动器0, 1, 2中有一个产生故障,

就会引起问题;如果驱动器1故障,则我们只能从驱动器物理地取得段1和段3的数据。幸运的是可以找到一个解决办法,这

就是硬盘分段和数据冗余。下面一小节将讨论这个问题。 

 

 

A.5 硬盘镜像(RAID 1) 

硬盘镜像(RAID 1)是容错磁盘阵列技术最传统的一种形式,在工业界中相对地最被了解,它最重要的优点是百分之百的数据

冗余。RAID 0通过简单地将一个盘上的所有数据拷贝到第二个盘上(或等价的存储设备上)来实现数据冗余,这种方法虽然

简单且实现起来相对较容易,但它的缺点是要比单个无冗余硬盘贵一倍,因为必须购买另一个硬盘用作第一个硬盘的镜像。 

 

 

图4硬盘镜像 

硬盘镜像最简单的形式,是通过把二个硬盘连结在一个控制器上来实现的。图4说明了硬盘镜像。数据写在某一硬盘上时,它

同时被写在相应的镜像盘上。当一个盘驱动器发生故障,计算器系统仍能正常工作,因为它可以在剩下的那块好盘上操作数据。 

 

因为二个盘互为镜像,哪个盘出故障都无关紧要,二是盘在任何时间都包含相同的数据,任何一个都可以当作工作盘。 

在硬盘镜像这个简单的RAID方式中,仍能采用一些优化速度的方法,例如平衡读请求负荷。当多个用户同时请求得到数据时,

可以将读数据的请示分散到二个硬盘中去,使读负荷平均地分布在二个硬盘上。这种方法可观地提高了读数据的性能,因为二

个硬盘在同一时刻读取不同的数据片。但是硬盘镜像不能改善写数据的性能。 

被“镜像”的硬盘也可被镜像到其它存储设备上,例如可擦写光盘驱动器,虽然以光盘作镜像盘没有用硬盘的速度快,但这种

方法比没有使用镜像盘毕竟减少了丢失数据的危险性。 

 

总之,镜像系统容错性能非常好,并可以提高读数据的速度;它的缺点是需要双份硬盘,因此价格较高。 

whitepaper 113