RAID

RAID0 、RAID1 、RAID0+1 、RAID5 原理介绍。RAID 是通过磁盘阵列与数据条块化方法相结合, 以提高数据可用率的一种结构。IBM早于1970年就开始研究此项技术 。RAID是英文Redundant Array of Inexpensive Disks的缩写,中文简称为独立磁盘冗余阵列。RAID 就是一种由多块硬盘构成的冗余阵列。虽然RAID 包含多块硬盘,但是在操作系统下是作为一个独立的大型存储设备出现。利用RAID 技术于存储系统的好处主要有以下三种:

  1. 通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能;
  2. 通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度;
  3. 通过镜像或校验操作提供容错能力。

最初开发RAID 的主要目的是节省成本,当时几块小容量硬盘的价格总和要低于大容量的硬盘。目前来看RAID 在节省成本方面的作用并不明显,但是RAID可以充分发挥出多块硬盘的优势,实现远远超出任何一块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID 还可以提供良好的容错能力,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。RAID 可分为RAID级别1 到级别6, 通常称为: RAID0 , RAID1 , RAID2, RAID3 ,RAID4 ,RAID5 ,RAID6 。目前经常使用的是RAID5 和RAID0+1。每一个RAID 级别都有自己的强项和弱项。 “奇偶校验”定义为用户数据的冗余信息, 当硬盘失效时, 可以重新产生数据。

RAID0

RAID0 又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID0 提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。

RAID0 并不是真正的RAID结构, 没有数据冗余。 RAID0 连续地分割数据并并行地读/写于多个磁盘上。 因此具有很高的数据传输率。 但RAID0 在提高性能的同时,并没有提供数据可靠性,如果一个磁盘失效, 将影响整个数据.因此RAID0 不可应用于需要数据高可用性的关键应用。

RAID1

RAID1 又称为Mirror或Mirroring,它的宗旨是最大限度的保证用户数据的可用性和可修复性。 RAID1 的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID1 提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror 的磁盘空间利用率低,存储成本高。Mirror 虽不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据,如服务器和数据库存储等领域。

RAID1 通过数据镜像实现数据冗余备份, 在两对分离的磁盘上产生互为备份的数据。 RAID1 可以提高读的性能,当原始数据繁忙时, 可直接从镜像拷贝中读取数据。RAID1 是磁盘阵列中费用最高的, 但提供了最高的数据可用率。当一个磁盘失效, 系统可以自动地交换到镜像磁盘上, 而不需要重组失效的数据。

RAID0+1

RAID0+1 :正如其名字一样RAID0+1 是RAID0 和RAID1 的组合形式,也称为RAID10。RAID0+1 是存储性能和数据安全兼顾的方案。它在提供与RAID1 一样的数据安全保障的同时,也提供了与RAID0 近似的存储性能。由于RAID0+1 也通过数据的100%备份提供数据安全保障,因此RAID0+1 的磁盘空间利用率与RAID1 相同,存储成本高。RAID0+1 的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。

RAID5

RAID5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID5 不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5 的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5 的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。RAID5 可以理解为是RAID0 和RAID1 的折衷方案。RAID5 可以为系统提供数据安全保障,但保障程度要比RAID1 低而磁盘空间利用率要比RAID1 高。RAID5 具有和RAID0 相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID5 的磁盘空间利用率要比RAID1 高,存储成本相对较低。

RAID5 没有单独指定的奇偶盘, 而是交叉地存取数据及奇偶校验信息于所有磁盘上。 在RAID5 上, 读/写指针可同时对阵列设备进行操作, 提供了更高的数据流量。 RAID5 更适合于小数据块,随机读写的数据.RAID3 与RAID5 相比, 重要的区别在于RAID3 每进行一次数据传输,需涉及到所有的阵列盘。而对于RAID5 来说, 大部分数据传输只对一块磁盘操作, 可进行并行操作。在RAID5 中有“写损失”, 即每一次写操作,将产生四个实际的读/写操作, 其中两次读旧的数据及奇偶信息, 两次写新的数据及奇偶信息。

商业很少使用的RAID

RAID2: 从概念上讲, RAID2 同RAID3 类似, 两者都是将数据条块化分布于不同的硬盘上, 条块单位为位或字节。然而RAID2 使用称为“加重平均纠错码”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息, 使得RAID2技术实施更复杂。 因此,在商业环境中很少使用。

RAID3 :不同于RAID2, RAID3 使用单块磁盘存放奇偶校验信息。 如果一块磁盘失效, 奇偶盘及其他数据盘可以重新产生数据。 如果奇偶盘失效,则不影响数据使用。RAID3 对于大量的连续数据可提供很好的传输率, 但对于随机数据, 奇偶盘会成为写操作的瓶颈。

RAID4 : 同RAID2, RAID3 一样, RAID4 , RAID5 也同样将数据条块化并分布于不同的磁盘上, 但条块单位为块或记录。 RAID4 使用一块磁盘作为奇偶校验盘, 每次写操作都需要访问奇偶盘, 成为写操作的瓶颈。 在商业应用中很少使用。

RAID6 :RAID6 与RAID5 相比,增加了第二个独立的奇偶校验信息块。 两个独立的奇偶系统使用不同的算法, 数据的可靠性非常高. 即使两块磁盘同时失效,也不会影响数据的使用。 但需要分配给奇偶校验信息更大的磁盘空间,相对于RAID5 有更大的“写损失”。RAID6 的写性能非常差, 较差的性能和复杂的实施使得RAID6 很少使用。