走近RAID

专题快递

诞生于1987年的RAID全称为Redundant Array of Disks,即冗余磁盘阵列,就是指用两个以上的物理硬盘进行串接,提供数据冗余容错协同工作能力,以此来全面提升磁盘子系统的性能。一般情况下,组成的逻辑磁盘驱动器的容量要小于各个磁盘驱动器容量的总和。
RAID的定义得追溯到大概十四年前,在1988年发表的A Case for Redundant Arrays of Inexpensive Disks (RAID)中,三位加州大学柏克莱分校的研究人员提出了这种阵列的发展方向。这个方法是利用“便宜”的硬盘来建立一个大型、快速和安全稳定的数据储存媒介。早期RAID一般是在SCSI磁盘驱动器上实现的,SCSI适配器保证每个SCSI通道随时都是畅通的,在同一时刻每个SCSI磁盘驱动器都能自由地向主机传送数据,不会出现像IDE磁盘驱动器争用设备通道的现象。
现在,由于IDE硬盘性能的突飞猛进以及价格的不断下降,IDE RAID技术已经趋于成熟。RAID技术经过不断的发展,现在已拥有了从RAID 0到RAID 6共七种基本的RAID级别。另外,还有一些基本RAID级别的组合形式,如RAID 10(RAID 0与RAID 1的组合),RAID 50(RAID 0与RAID 5的组合)等。不同的RAID级别代表着不同的存储性能、数据安全性和存储成本,它们的比较见附表(图1)

图1
图1

一、RAID 0

RAID 0是一种串行架构,其原理如(图2)。很多人认为RAID 0并不算是真正的RAID,因为它根本没有任何额外的备份装置。且RAID 0甚至比一般单一硬盘的可靠度还差,只要一个硬盘损坏,整个阵列里的数据都会损失掉。不过RAID 0还是很具吸引力,因为它的性能极佳。

图2
图2

RAID 0使用了一种名为“数据串行”的机制。它将数据对应储存在一堆不同硬盘所组成的大硬盘中。数据是用连续“串行”的形式,以规定的大小储存在实体硬盘上。这表示大于实际串行大小的文件将会被分散储存在硬盘阵列中,因此单一文件中的不同串行可以平行处理。在这个情况下,RAID 0阵列或“串行集合”的数据传输率即为阵列中最低速硬盘的数据传输率与该阵列硬盘数之乘积。若使用相同的硬盘,则数据传输带宽恰好为单个硬盘传输率的倍数。一个四块硬盘的数据传输率均为20MB/s的串行集合,其整体数据传输率可达80MB/s,因为数据可以在这四个硬盘上做并行存取。
我们在使用RAID 0或“串行集合”时,还必须注意以下要点:
●阵列容量大小永远等于阵列硬盘数乘以阵列中最小硬盘的容量。
●阵列的数据传输率永远等于阵列硬盘数乘以阵列中最低速硬盘的数据传输率。
●RAID 0阵列的存取时间和最低速硬盘的存取时间相同,如果使用完全相同的硬盘,则会等于或稍高于阵列中的硬盘存取时间。
●如果该阵列中有任何一块硬盘损坏,则所有数据都将损坏。

二、RAID 1

RAID 1是一种镜像架构,其原理见(图3)。RAID 1又称为Mirror或Mirroring(镜像),因为它就是将一块硬盘的内容完全复制到另一块上。一个两块硬盘所构成的RAID 1阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”。RAID 1显然是最可靠的一种阵列,因为它总是保持一份完整的数据备份。它的性能自然没有RAID 0那样好,但其数据读取确实较单一硬盘来得快,因为数据会从两块硬盘中较快的一块中读取。RAID 1的写入速度通常较慢,因为数据得分别写入两块硬盘中并作比较。

图3
图3

RAID 1一般支持“热交换”,就是说阵列中硬盘的移除或替换可以在系统运转时进行,无须中断退出系统。RAID 1是十分安全的,不过也是较贵的一种RAID解决方案,因为两快硬盘仅能提供一块硬盘的容量。

三、RAID 0+1

这种RAID就像是由RAID 0和RAID 1组合而成,也称为RAID 10,原理如(图4)。方法就是镜像一个串行集和将镜像做串行格式化。因为使用了串行结构,所以读写性能极佳,只要没有损坏的硬盘需要重新镜像。系统也十分可靠。不过必须比RAID 0多用一倍的硬盘数来达到相同的容量。RAID 0+1的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。

图4
图4

四、RAID 3

RAID 3也被称为带有专用奇偶位的条带,每个条带片上都有相当于一“块”那么大的空间用来有效存储冗余信息,即奇偶位,原理如(图5)。奇偶位是数据编码信息,如果某个磁盘发生故障,可以用来恢复数据。在数据密集型环境或单一用户环境中尤其有益于访问较长的连续记录。RAID 3需要同步主轴驱动器来预防较短记录导致的性能下降。

图5
图5

五、RAID 5

RAID 5也被叫做带分布式奇偶位的条带,每个条带片上都有相当于一个“块”那么大的地方被用来存放奇偶位。与RAID 3不同的是,RAID 5像分布条带片上的数据那样把奇偶位信息也分布在所有的磁盘上。尽管有一些容量上的损失,RAID 5能提供最佳的整体性能,因而也是被广泛使用的一种数据保护方案。它适合于输入/输出密集、高读/写比率的应用程序,如事务处理等。为了具有RAID 5级的冗余度,需要最少由三个磁盘组成的磁盘阵列(不包括一个热备用)。RAID 5可以通过磁盘阵列控制器硬件实现,也可以通过某些网络操作系统软件实现。
RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。

六、RAID 50

RAID 50也被称为分布奇偶位阵列条带,RAID 50其实就是RAID 0与RAID 5的组合。它像RAID 0一样,跨磁盘存取数据;又像RAID 5一样,使用分布式奇偶位。RAID 50提供数据可靠性,优秀的整体性能,并支持更大的卷尺寸。像RAID-10和RAID-30一样,即使两个物理磁盘发生故障(每个阵列中一个),也不会有数据丢失。RAID-50最少需要六个驱动器,而且只能通过HP NetRaid磁盘阵列控制器实现。它最适合需要高可靠性存储、高读取速度、高数据传输性能的应用。这些应用包括事务处理和有许多用户存取小文件的办公应用程序。

七、RAID 7

新一代RAID标准RAID 7也已出现。其实,RAID 7不仅仅是一种技术,还是一种存储计算机(Storage Computer)。因为它与RAID 0、1、5标准有明显区别,RAID 7自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。RAID 7不仅具有更高的性能和卓越的存储管理能力,而且集普通RAID标准的所有优点于一身,因而RAID 7系统整体性能极佳。
RAID 7存储计算机操作系统(Storage Computer Operating System)是一套实时事件驱动操作系统,主要用来进行系统初始化和安排RAID 7磁盘阵列的所有数据传输,并把它们转换到相应的物理存储驱动器上。通过自身系统中的阵列电脑板来设定和控制读写速度,存储计算机操作系统可使主机I/O传递性能达到最佳。如果一个磁盘出现故障,还可自动执行恢复操作,并可管理备份磁盘的重建过程。
RAID 7突破了以往RAID标准的技术架构,采用了非同步访问方式,极大地减轻了写数据的瓶颈,提高了I/O速度。所谓非同步访问,即RAID 7的每个I/O接口都有一条专用的高速通道,作为数据或控制信息的流通路径,因此可独立地控制自身系统中每个磁盘的数据存取。如果RAID 7有N个磁盘,那么除去一个校验盘(用作冗余计算)外,可同时处理N-1个主机系统随机发出的读/写指令,从而显著地改善了I/O性能。RAID 7系统内置实时操作系统还可自动对主机发送过来的读/写指令进行优化处理,以智能化方式将可能被读取的数据预先读入快速缓存中,提高了I/O速度。RAID 7可帮助用户有效地管理日益庞大的数据存储系统,并使系统的运行效率提高至少一倍以上,满足了各类用户的不同需求。