RAID全称为Redundant Array of Disks,是“独立磁盘冗余阵列”(最初为“廉价磁盘冗余阵列”)的缩略语。1987年由Patterson,Gibson和Katz在加州大学伯克利分院的一篇文章中定义。RAID阵列技术允许将一系列磁盘分组,以实现为数据保护而必需的数据冗余,以及为提高读写性能而形成的数据条带分布。RAID最初用于高端服务器市场,不过随着计算机技术的快速发展,RAID技术已经渗透到计算机遍布的各个领域。如今,在家用电脑主板中,RAID控制芯片也随处可见。
一般,RAID系统可以存在于各种接口界面,就我们现时来说,PATA、SATA以及SCSI均有相应的硬盘可以组成RAID。随着Intel 865/875系列芯片组的发布,家用市场的硬盘接口开始转向SATA,而RAID方式也将从PATA过渡到SATA。
RAID技术伴随着人们的使用过程,经历了一系列的变迁与发展。而在家用市场上,我们一般只能看到RAID 0、RAID 1以及RAID 0+1这几种磁盘阵列方式。不过从DFI Lanparty主板的诞生开始,我们又迎来了第四种磁盘阵列方式,那就是RAID 1.5。
从实际应用来说,家用RAID的组建大多数情况是为了进一步提高磁盘的读写性能,而数据的备份可由其他方式达到(如刻录)。所以,在只有2个硬盘的情况下,人们愿意尝试的以RAID 0为主,不过RAID 1.5的诞生让我们改变了这一理念。究竟这两种相对廉价的磁盘阵列方式具有何等的性能?让我们来为大家揭晓。
RAID 0:
RAID 0使用一种称为“条带”(striping)的技术把数据分布到各个磁盘上。在那里每个“条带”被分散到连续“块”(block)上,数据被分成从512字节到数兆字节的若干块后,再交替写到磁盘中。第1块被写到磁盘1中,第2块被写到磁盘2中,如此类推。当系统到达阵列中的最后一个磁盘时,就写到磁盘1的下一分段,如此下去。
RAID 1:
RAID 1也被称为镜象,因为一个磁盘上的数据被完全复制到另一个磁盘上。如果一个磁盘的数据发生错误,或者硬盘出现了坏道,那么另一个硬盘可以补救回磁盘故障而造成的数据损失和系统中断。另外,RAID 1还可以实现双工——即可以复制整个控制器,这样在磁盘故障或控制器故障发生时,您的数据都可以得到保护。镜象和双工的缺点是需要多出一倍数量的驱动器来复制数据,但系统的读写性能并不会由此而提高,这可能是一笔不小的开支。RAID l可以由软件或硬件方式实现。
RAID 2:
RAID 2是为大型机和超级计算机开发的带海明码校验磁盘阵列。磁盘驱动器组中的第1个、第2个、第4个……第2的n次幂个磁盘驱动器是专门的校验盘,用于校验和纠错。如下图:七个磁盘驱动器组建的RAID 2,第1、2、4个磁盘驱动器(红色)是纠错盘,其余的(紫色)用于存放数据。RAID 2对大数据量的读写具有极高的性能,但少量数据的读写时性能反而不好,所以RAID 2实际使用较少。
由于RAID 2的特殊性,只要我们使用的磁盘驱动器越多,校验盘在其中占的百分比越少。如果希望达到比较理想的速度和较好的磁盘利用率,那最好可以增加保存校验码ECC码的硬盘,但是这就要付出更多硬盘的购买成本,来确保数据冗余。对于控制器的设计来说,它比下面所说的RAID 3,4或5要简单。
RAID 3:
RAID 3,即带有专用奇偶位(parity)的条带。每个条带片上都有相当于一“块”那么大的空间用来存储冗余信息,即奇偶位。奇偶位是编码信息,如果某个磁盘的数据有误,或者磁盘发生故障,就可以用它来恢复数据。在数据密集型环境或单一用户环境中,组建RAID 3对访问较长的连续记录有利,不过同RAID 2一样,访问较短记录时,性能会有所下降。
RAID 4:
RAID 4是带奇偶校验码的独立磁盘结构。它和RAID 3很相似,不同的是RAID 4对数据的访问是按数据块进行的。RAID 3是一次一横条,而RAID 4一次一竖条。所以RAID 3常须访问阵列中所有的硬盘驱动器,而RAID 4只须访问有用的硬盘驱动器。这样读数据的速度大大提高了,但在写数据方面,需将从数据硬盘驱动器和校验硬盘驱动器中恢复出的旧数据与新数据校验,然后再将更新后的数据和检验位写入硬盘驱动器,所以处理时间较RAID 3长。
RAID 5:
RAID 5也被叫做带分布式奇偶位的条带。每个条带上都有相当于一个“块”那么大的地方被用来存放奇偶位。与RAID 3不同的是,RAID 5把奇偶位信息也分布在所有的磁盘上,而并非一个磁盘上,大大减轻了奇偶校验盘的负担。尽管有一些容量上的损失,RAID 5却能提供较为完美的整体性能,因而也是被广泛应用的一种磁盘阵列方案。它适合于输入/输出密集、高读/写比率的应用程序,如事务处理等。
为了具有RAID 5级的冗余度,我们需要至少三个磁盘组成的磁盘阵列。RAID 5可以通过磁盘阵列控制器硬件实现,也可以通过某些网络操作系统软件实现。
RAID 6:
RAID 6是带有两种分布存储的奇偶校验码的独立磁盘结构。它使用了分配在不同的磁盘上的第二种奇偶校验来实现增强型的RAID 5。它能承受多个驱动器同时出现故障,但是,用于计算奇偶校验值和验证数据正确性所花费的时间比较多,造成了系统的负载较重,大大降低整体磁盘性能,而且,系统需要一个极为复杂的控制器。当然,由于引入了第二种奇偶校验值,我们所以需要的是N+2个磁盘。
RAID 7:
RAID 7自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。RAID 7存储计算机操作系统(Storage Computer Operating System)是一套实时事件驱动操作系统,主要用来进行系统初始化和安排RAID 7磁盘阵列的所有数据传输,并把它们转换到相应的物理存储驱动器上。通过Storage Computer Operating System来设定和控制读写速度,可使主机I/O传递性能达到最佳。如果一个磁盘出现故障,还可自动执行恢复操作,并可管理备份磁盘的重建过程。
RAID 7采用的是非同步访问方式,极大地减轻了数据写瓶颈,提高了I/O速度。(所谓非同步访问,即RAID 7的每个I/O接口都有一条专用的高速通道,作为数据或控制信息的流通路径,因此可独立地控制自身系统中每个磁盘的数据存取。)如果RAID 7有N个磁盘,那么除去一个校验盘(用作冗余计算)外,可同时处理N-1个主机系统随机发出的读/写指令,从而显著地改善了I/O应用。RAID 7系统内置实时操作系统还可自动对主机发送过来的读/写指令进行优化处理,以智能化方式将可能被读取的数据预先读入快速缓存中,从而大大减少了磁头的转动次数,提高了I/O速度。RAID 7可帮助用户有效地管理日益庞大的数据存储系统,并使系统的运行效率提高至少一倍以上,满足了各类用户的不同需求。
RAID 10(RAID 0+1):
RAID 10,也被称为镜象阵列条带,现在我们一般称它为RAID 0+1。RAID 10(RAID 0+1)提供100%的数据冗余,支持更大的卷尺寸。组建RAID 10(RAID 0+1)需要4个磁盘,其中两个为条带数据分布,提供了RAID 0的读写性能,而另外两个则为前面两个硬盘的镜像,保证了数据的完整备份。
RAID 30:
RAID 30也被称为专用奇偶位阵列条带。它具有RAID 0和RAID 3的特性,由两组RAID 3的磁盘(每组3个磁盘)组成阵列,使用专用奇偶位,而这两种磁盘再组成一个RAID 0的阵列,实现跨磁盘抽取数据。RAID 30提供容错能力,并支持更大的卷尺寸。象RAID 10一样,RAID 30也提供高可靠性,因为即使有两个物理磁盘驱动器失效(每个阵列中一个),数据仍然可用。
RAID 30最小要求有6个驱动器,它最适合非交互的应用程序,如视频流、图形和图象处理等。这些应用程序顺序处理大型文件,而且要求高可用性和高速度。
RAID 50:
RAID 50被称为分布奇偶位阵列条带。同RAID 30相仿的,它具有RAID 5和RAID 0的共同特性。它由两组RAID 5磁盘组成(每组最少3个),每一组都使用了分布式奇偶位,而两组硬盘再组建成RAID 0,实验跨磁盘抽取数据。RAID 50提供可靠的数据存储和优秀的整体性能,并支持更大的卷尺寸。即使两个物理磁盘发生故障(每个阵列中一个),数据也可以顺利恢复过来。
RAID 50最少需要6个驱动器,它最适合需要高可靠性存储、高读取速度、高数据传输性能的应用。这些应用包括事务处理和有许多用户存取小文件的办公应用程序。
RAID 53:
RAID 53称为高效数据传送磁盘结构。结构的实施同Level 0数据条阵列,其中,每一段都是一个RAID 3阵列。它的冗余与容错能力同RAID 3。这对需要具有高数据传输率的RAID 3配置的系统有益,但是它价格昂贵、效率偏低。
RAID 1.5:
RAID 1.5是一个新生的磁盘阵列方式,它具有RAID 0+1的特性,而不同的是,它的实现只需要2个硬盘。从表面上来看,组建RAID 1.5后的磁盘,两个都具有相同的数据。当然,RAID 1.5也是一种不能完全利用磁盘空间的磁盘阵列模式,因此,两个80GB的硬盘在组建RAID 1.5后,和RAID 1是一样的,即只有80GB的实际使用空间,另外80GB是它的备份数据。如果把两个硬盘分开,分别把他们运行在原系统,也是畅通无阻的。但通过实际应用,我们发现如果两个硬盘在分开运行后,其数据的轻微改变都会引起再次重组后的磁盘阵列,没法实现完全的数据恢复,而是以数据较少的磁盘为准。
既然RAID 1.5和RAID 1具有非常相似的效果,那么它是怎么实验RAID 0的条带式读写操作的呢?到目前为止,我们还没有确实的材料证明下面的假想:就是磁盘阵列控制芯片具有高级的控制功能,可以让两个磁盘同时以条带的方式记录相同的数据,但需要读取的时候,控制器却可以分辨出需要读取的程序条带,然后分别从不同的硬盘中读取不同的条带,以达到提高性能的RAID 0效果。
其实,对于家庭用户来说,RAID 1.5的实现大多数情况下还是在于性能有所提高,毕竟RAID 1.5具有RAID 0的特性。因此,这次我们针对RAID 1.5的性能做了一次对比测试。下面,让我们一起来看看RAID 1.5的性能:
RAID级别
|
RAID 0
|
RAID 1
|
RAID 0+1
|
RAID 1.5
|
---|---|---|---|---|
名称
|
条带
|
镜像
|
条带+镜像
|
条带+镜像
|
允许故障
|
否
|
是
|
是
|
是
|
冗余类型
|
无
|
副本
|
副本
|
副本
|
热备用操作
|
不可
|
可以
|
可以
|
可以
|
硬盘数量
|
1个以上
|
2个
|
4个
|
2个
|
可用容量
|
最大
|
最小
|
中间
|
中间
|
减少容量
|
无
|
50%
|
2个磁盘
|
1个磁盘
|
读性能
|
高(盘的数量决定)
|
中间
|
中间
|
高
|
随机写性能
|
最高
|
中间
|
中间
|
高
|
连续写性能
|
最高
|
中间
|
中间
|
高
|
典型应用
|
无故障的迅速读写
|
允许故障的小文件、随机数据写入
|
允许故障的小文件、连续数据传输
|
允许故障的小文件、随机数据传输
|
性能测试:
硬件平台
|
|
CPU
|
Intel Pentium4 3.0GHz(Northwood,800MHz FSB) |
显卡
|
启亨 大银家Ti4680 VIVO 驱动程序: |
内存
|
KingMax DDR400 DDRRAM 256MB×2 内存参数统一设置在DDR 400 AUTO模式下 |
硬盘
|
酷鱼V SATA 120G(7200rpm,8MB Cache)×2 |
主板
|
MSI(微星)875P NEO DFI(钻石)Lanparty PRO875 PS:板载声卡、网卡设备全部关闭 驱动程序: |
操作系统
|
Windows XP Professional+SP1 英文版 |
DirectX
|
DirectX 9.0 |
软件平台
|
|
测试软件
|
ZDNet WinBench 99 2.0 |
这次测试,我们采用了ICH 5的Soft RAID功能和Promise PDC20378的RAID功能组建了SATA的RAID 0系统,和Lanparty PRO875主板板载的Highpoint 372N组建的PATA RAID 1.5进行对比。组建的SATA磁盘阵列和PATA磁盘阵列所用的硬盘类型不同,所以测试成绩也仅供参考。
WinBench 99:
通过WinBench 99测试,我们可以了解到组建RAID之后,无论是商用磁盘性能还是高端磁盘性能,都得到了很大的提高。其中两个金钻9组成的RAID 1.5在商用磁盘性能方面最为强劲,达到了21200,而高端磁盘性能则由ICH 5 RAID 0控制的SATA磁盘阵列带头领先,成绩也是相当喜人。
为了进一步比较PATA RAID 1.5和SATA RAID 0的差别,我们做了以下的对比测试:
HighPoint PATA RAID 1.5
Promise 378 SATA RAID 0
通过两种RAID模式的对比,我们发现采用DiamondMax 9 Plus(金钻9代)硬盘组建的RAID 1.5系统成绩十分惊人,其磁盘传输率最高可以达到95KB/s,而平均传输率也接近70KB/s。数据传输过程中,其传输率的波动性比较有规律,传输性能稳定。而SATA作为优秀的新生代磁盘接口,当然也表现出非凡的实力。通过两个Baracuda V(酷鱼5代)组建的RAID 0系统在磁盘的最高传输率上没有RAID 1.5的表现突出,不过也可以超过90KB/s,但最低传输率方面要比RAID 1.5高出一定的距离,平均传输率更是比RAID 1.5优胜。
Sisoft Sandra 2003:
在Sisoft Sandra 2003的磁盘性能测试中,我们都采用了一个空磁盘分区作为测试的目标盘,容量均为20G。采用PATA组建的RAID 1.5系统,其性能没有在WinBench 99测试中那么优秀,与两种控制芯片构成的SATA RAID 0相差甚远。
HighPoint PATA RAID 1.5
Promise SATA RAID 0
ICH 5 SATA RAID 0
HD Tach 2.61:
HighPoint PATA RAID 1.5
Promise SATA RAID 0
ICH5 SATA RAID 0
在HD Tach 2.61测试中,RAID 1.5再展雄风,其平均47.8MB/s的读速度让平均只有31.1MB/s的SATA RAID 0俯首称臣。不过在CPU占用率方面,SATA RAID 0明显比PATA RAID 1.5小得多,其中最小是ICH5控制的RAID 0系统,仅为1.2%。不过就算是CPU占用率最高的RAID 1.5系统也只是2.8%,对于现今超过2GHz的主流机器配置来说,也是微不足道的。
在SYSMark 2002测试中,我们发现组建RAID之后的整机性能没有得到想象中那么大的改善,不过在办公性能方面也会有5%的提升。PATA硬盘组建的RAID 1.5和SATA硬盘组建的RAID 0差别不大。
不过在PCMark 2002测试中,RAID 1.5又一次超出RAID 0的水平,让人不得不佩服。
总结:
RAID是一种具有悠久的历史磁盘阵列技术。它的诞生不光是为了保证我们的重要数据在冗余的磁盘阵列中得以安全长久的储存下去,还是突破瓶颈、提升性能的重要手段。至今,RAID技术已经应用于计算机所渗透到的各个领域中,而家用计算机市场,这个本来不为RAID研发人员所考虑的市场,也已经具有好几年的发展历程。
在过去,PATA硬盘在家用市场组建的RAID通常仅有RAID 0、RAID 1和RAID 0+1,不过今天我们不但亲眼目睹了RAID 1.5的诞生,还感受到RAID 1.5的独特魅力。和即将成为主流的SATA硬盘组建的RAID 0系统相比,PATA硬盘组建的RAID 1.5不显一点的乏力,相反,RAID 1.5就仿佛是PATA硬盘提高性能和确保数据安全的最有效方式。