Raid

RAID级别的选择有三个主要因素:可用性(数据冗余)、性能和成本。如果不要求可用性,选择RAID0以获得最佳性能。如果可用性和性能是重要的而成本不是一个主要因素,则根据硬盘数量选择RAID 1。如果可用性、成本和性能都同样重要,则根据一般的数据传输和硬盘的数量选择RAID3、RAID5。

1. RAID的种类

RAID的英文全称为Redundant Array of Inexpensive(或Independent) Disks,而不是某些词典中所说的“ Redundant Access Independent Disks”。中文名称是廉价(独立)磁盘冗余阵列。

RAID的初衷主要是为了大型服务器提供高端的存储功能和冗余的数据安全。在系统中,RAID被看作是一个逻辑分区,但是它是由多个硬盘组成的(最少两块)。它通过在多个硬盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput),而且在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性,这也是Redundant一词的由来。

RAID以前一直是SCSI领域的独有产品,因为它当时的技术与成本也限制了其在低端市场的发展。今天,随着RAID技术的日益成熟与厂商的不断努力,我们已经能够享受到相对成本低廉得多的IDE-RAID系统,虽然稳定与可靠性还不可能与SCSI-RAID相比,但它相对于单个硬盘的性能优势对广大玩家是一个不小的诱惑。事实上,对于日常的低强度操作,IDE-RAID已足能胜任了。

与Modem一样,RAID也有全软、半软半硬与全硬之分,全软RAID就是指RAID的所有功能都是操作系统(OS)与CPU来完成,没有第三方的控制/处理(业界称其为RAID协处理器——RAID Co-Processor)与I/O芯片。这样,有关RAID的所有任务的处理都由CPU来完成,可想而知这是效率最低的一种RAID。半软半硬RAID则主要缺乏自己的I/O处理芯片,所以这方面的工作仍要由CPU与驱动程序来完成。而且,半软半硬RAID所采用的RAID控制/处理芯片的能力一般都比较弱,不能支持高的RAID等级。全硬的RAID则全面具备了自己的RAID控制/处理与I/O处理芯片,甚至还有阵列缓冲(Array Buffer),对CPU的占用率以及整体性能是这三种类型中最优势的,但设备成本也是三种类型中最高的。早期市场上所出现的使用HighPoint HPT 368、370以及PROMISE芯片的IDE RAID卡与集成它们的主板都是半软半硬的RAID,并不是真正的硬RAID,因为它们没有自己专用的I/O处理器。而且,这两个公司的RAID控制/处理芯片的能力较弱,不能完成复杂的处理任务,因此还不支持RAID 5等级。著名的Adpatec公司所出品的AAA-UDMA RAID卡则是全硬RAID的代表之作,其上有专用的高级RAID Co-Processor和Intel 960专用I/O处理器,完全支持RAID 5等级,是目前最高级的IDE-RAID产品。表1 就是典型的软件RAID与硬RAID在行业应用中的比较。

2. RAID-0

RAID-0等级

Striped Disk Array without Fault Tolerance(没有容错设计的条带磁盘阵列)

图中一个圆柱就是一块磁盘(以下均是),它们并联在一起。从图中可以看出,RAID 0在存储数据时由RAID控制器(硬件或软件)分割成大小相同的数据条,同时写入阵列中的磁盘。如果发挥一下想象力,你会觉得数据象一条带子横跨过所有的阵列磁盘,每个磁盘上的条带深度则是一样的。至于每个条带的深度则要看所采用的RAID类型,在NT系统的软RAID 0等级中,每个条带深度只有64KB一种选项,而在硬RAID 0等级,可以提供8、16、32、64以及128KB等多种深度参数。Striped是RAID的一种典型方式,在很多RAID术语解释中,都把Striped指向RAID 0。在读取时,也是顺序从阵列磁盘中读取后再由RAID控制器进行组合再传送给系统,这也是RAID的一个最重要的特点。

这样,数据就等于并行的写入和读取,从而非常有助于提高存储系统的性能。对于两个硬盘的RAID 0系统,提高一倍的读写性能可能有些夸张,毕竟要考虑到也同时缯加的数据分割与组合等与RAID相关的操作处理时间,但比单个硬盘提高50%的性能是完全可以的。

不过,RAID 0还不能算是真正的RAID,因为它没有数据冗余能力。由于没有备份或校验恢复设计,在RAID 0阵列中任何一个硬盘损坏就可导致整个阵列数据的损坏,因为数据都是分布存储的。下面总结一下RAID 0的特点:

ch3n2k.com | Copyright (c) 2004-2020 czk.