Raid

独立磁盘冗余数组(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余数组(RAID, Redundant Array of Inexpensive Disks),简称硬盘阵列。由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任一颗硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。

   简单来说,RAID把多个硬盘组合成为一个逻辑扇区,因此,操作系统只会把它当作一个硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。

样式:

   磁盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。

   外接式磁盘阵列柜最常被使用大型服务器上,具可热抽换(Hot Swap)的特性,不过这类产品的价格都很贵。

内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作。

   利用软件仿真的方式,由于会拖累机器的速度,不适合×××量的服务器。

实现方式:

   磁盘阵列有两种方式可以实现,即“软件阵列”与“硬件阵列”

   软件阵列是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。
硬件阵列是使用专门的磁盘阵列卡来实现的。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能×××能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作,它的性能要远远高于常规非阵列硬盘,并且更安全更稳定。
   磁盘阵列其实也分为软阵列 (Software Raid)和硬阵列 (Hardware Raid) 两种。软阵列即通过软件程序并由计算机的 CPU提供运行能力所成。 由于软件程式不是一个完整系统故只能提供最基本的 RAID容错功能,其他如热备用硬盘的设置, 远程管理等功能均一一欠奉。硬阵列是由独立操作的硬件提供整个磁盘阵列的控制和计算功能,不依靠系统的CPU资源。由于硬阵列是一个完整的系统,所有需要的功能均可以做进去。所以硬阵列所提供的功能和性能均比软阵列好;而且,如果你想把系统也做到磁盘阵列中,硬阵列是唯一的选择。故我们可以看市场上 RAID 5 级的磁盘阵列均为硬阵列, 软阵列只适用于 Raid 0 和 Raid 1。对于我们做镜像用的镜像塔, 肯定不会用 Raid 0或 Raid 1。作为高性能的存储系统,已经得到了越来越广泛的应用。RAID的级别从RAID概念的提出到现在,已经发展了六个级别, 其级别分别是0、1、2、3、4、5等。但是最常用的是0、1、3、5四个级别。


Raid技术

Raid 0

将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失。理论上越多的磁盘性能就等于“单一磁盘性能”ד磁盘数”,但实际上受限于总线I/O瓶颈及其它因素的影响,RAID性能会随边际递减,也就是说,假设一个磁盘的性能是50MB每秒,两个磁盘的RAID 0性能约96MB每秒,三个磁盘的RAID 0也许是130MB每秒而不是150MB每秒,所以两个磁盘的RAID 0最能明显感受到性能的提升。但如果是以软件方式来实现RAID,则磁盘的空间则不见得受限于此(例如Linux Software RAID),通过软件实现可以经由不同的组合而善用所有的磁盘空间。

Raid基础_raid

Raid 1

RAID 1就是镜像。其原理是在主硬盘上存放数据的同时也在镜像硬盘上写同样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID上磁盘利用率最低的一个级别。

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

Raid基础_raid_02

Raid 5

RAID 5 是一种储存性能、数据安全和存储成本兼顾的存储解决方案。RAID 5 至少需要三颗硬盘,RAID 5是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据raid5这种存储方式只允许有一块硬盘出现故障,出现故障时需要尽快更换。 RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相当的慢,若使用“回写高速缓存”可以让性能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。Raid基础_raid_03

Raid 1+0

RAID 1+0是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。

RAID 0+1则是跟RAID 1+0的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。

性能上,RAID 0+1比RAID 1+0有着更快的读写速度。可靠性上,当RAID 1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。因此,RAID 10远较RAID 01常用,零售主板绝大部份支持RAID 0/1/5/10。

Raid基础_raid_04

总结:


类型读写性能安全性磁盘利用率成本应用方面
RAID0最好(因并行性而提高)最差(完全无安全保障)最高(100%)最低个人用户
RAID1读和单个磁盘无分别,写则要写两边最高(提供数据的百分之百备份)差(50%)最高适用于存放重要数据,如服务器和数据库存储等领域
RAID5

读:RAID 5=RAID 0(相近似的数据读取速度)

写:RAID 5<对单个磁盘进行写入操作(多了一个奇偶校验信息写入)

RAID 5<RAID 1RAID 5>RAID 1RAID 5<RAID 1是一种存储性能、数据安全和存储成本兼顾的存储解决方案。
RAID10

读:RAID10=RAID0

写:RAID10=RAID1

RAID10=RAID1RAID10=RAID1(50%)RAID10=RAID1集合了RAID0,RAID1的优点,但是空间上由于使用镜像,而不是类似RAID5的“奇偶校验信息”,磁盘利用率一样是50%