文章教程

中级通信工程师考试15.1.2独立冗余硬盘阵列

8/24/2020 11:08:17 PM 人评论 次浏览

15.1.2 独立冗余硬盘阵列

本节首先简述RAID磁盘阵列,然后介绍RAID各级别的特点。

1.RAID磁盘阵列简述

在计算机发展的初期,“大容量”硬盘的价格还相当高,解决数据存储安全性问题的主要方法是使用磁带机等设备进行备份。这种方法虽然可以保证数据的安全,但查阅和备份工作都相当烦琐。

1987年,Patterson、Gibson和Katz这三位工程师在加州大学伯克利分校发表了题为“A Case of Redundant Array of Inexpensive Disks(廉价磁盘冗余阵列方案)”的论文,其基本思想就是将多个容量较小的、相对廉价的硬盘驱动器进行有机组合,使其性能超过一只昂贵的大硬盘。这一设计思想很快被业界接受,从此RAID技术得到了广泛应用,数据存储进入了更快速、更安全、更廉价的新时代。

RAID的基本目的是把多个小型廉价的磁盘驱动器合并成一组阵列来实现大型昂贵的驱动器所无法达到的性能或冗余性。这个驱动器阵列在计算机眼中就如同一个单一的逻辑存储单元或驱动器。

RAID的基本原理是数据被分割成大小一致的“块”,条带化分散存储到阵列中一个硬盘。读取数据时,这个进程就会反过来进行。多个驱动器好像是一个大驱动器,这个过程是并行进行的,从而大大提高了数据传输速率。

RAID通过奇偶校验来实现容错功能,当RAID系统的一个磁盘发生故障时,其他磁盘能够重建该故障磁盘。这些功能由磁盘阵列控制器完成,对于操作系统都是透明的。

条带化存储、奇偶校验和镜像是RAID系统的三个主要技术。

开始时,RAID方案主要针对SCSI硬盘系统,系统成本比较昂贵。1993年,HighPoint公司推出了第一款IDE-RAID控制芯片,能够利用相对廉价的IDE硬盘来组建RAID系统。

RAID包括硬件RAID和软件RAID两种。

基于硬件的系统独立于主机,在主机处用一个磁盘来代表一组RAID阵列。

连接到SCSI控制器,把RAID阵列表示为单个SCSI驱动器的设备就是一个硬件RAID。Linux内核的MD驱动程序就是软件RAID的一个例子,它完全独立于硬件。

2.RAID级别

RAID主要包含RAID 0~RAID 7等数个规范,它们的侧重点各不相同。不同等级的RAID提供不同的速度和不同程度的数据保护。

(1)RAID 0

RAID 0连续以位或字节为单位分割数据,并行读写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID0不能应用于数据安全性要求高的场合。

(2)RAID 1

RAID 1通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像副本中读取数据,因此RAID 1可以提高读取性能。RAID 1是单位成本最高的磁盘阵列,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

(3)RAID 0+1

RAID 0+1也被称为RAID 10标准,实际是将RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样高,而且硬盘的利用率比较低。

(4)RAID 2

RAID 2将数据条块化地分布于不同的硬盘上,条块单位为位或字节,并使用称为“加重平均纠错码(海明码)”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,因此在商业环境中很少使用。

(5)RAID 3

RAID 3同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效,则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。

(6)RAID 4

RAID 4同样将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。

(7)RAID 5

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

(8)RAID 6

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

(9)RAID 7

RAID 7这是一种新的RAID标准,其自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。RAID 7可以看做是一种存储计算机。

除了以上的各种标准,可以如RAID 0+1那样结合多种RAID规范来构筑所需的RAID阵列,如RAID 5+3就是一种应用较为广泛的阵列形式。用户一般可以通过灵活配置磁盘阵列来获得更加符合其要求的磁盘存储系统。

教程类别