独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列,简称硬盘阵列。
其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。简单来说,RAID把多个硬盘组合成为一个逻辑扇区,因此,操作系统只会把它当作一个硬盘。
常分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50,RAID-60。
RAID 0
RAID 0亦称为带区集,它是将多个磁盘并列起来,成为一个大磁盘,需要2块以上的磁盘。并行I/O,不具备冗余,速度最快,性能和容量与磁盘数成正比。
在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进磁盘中,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失,风险最高。
RAID 1
RAID1也即数据镜像,需要两块以上的磁盘。数据在两块磁盘中各保留一份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但利用率是最低的。
数据读取时从多块磁盘同时读取不同的分块,理论上读取速度等于硬盘数量的倍数,写入速度有微小的降低。
如果用两个不同大小的磁盘建RAID 1,可用空间为较小的那个磁盘,较大的磁盘多出来的空间也可以分区成一个区来使用,不会造成浪费。
RAID5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。因此,RAID2,RAID3,RAID4,RAID6很少被使用。
RAID5使用的是DiskStriping(硬盘分区)技术,至少需要三颗硬盘,允许一块磁盘故障。
RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当任意一块磁盘损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID 5可以理解为是RAID0和RAID 1的折衷方案。
RAID 5对数据的保障程度要比RAID1低,而磁盘利用率要比RAID1高。
RAID 5具有和RAID0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度比RAID0略慢,若使用“回写高速缓存”可以让性能改善不少。
RAID 10和RAID01是结合RAID1和RAID0,至少需要4块硬盘。
RAID10是先做RAID1,再对两组及以上的RAID1做RAID0。当一块磁盘损坏,当前RAID1仍然能提供服务,另一组RAID1也可以同时坏掉一块磁盘。
RAID01则刚好相反,先做RAID0,再对两组RAID0做RAID1。当一块磁盘损坏时,当前RAID0受损,只有另一组RAID0提供服务,如果另一组RAID0也损坏一块磁盘,数据将会丢失。因此,可靠性较低。
因此,我们通常使用RAID10,而不用RAID01。
RAID 5与RAID0的组合,先作RAID 5,再作RAID 0,也就是对多组RAID 5彼此构成Stripe访问。至少需要6台硬盘
RAID 50在底层的任一组或多组RAID5中出现1台硬盘损坏时,仍能维持运作,不过如果任一组RAID5中出现2台或两台以上硬盘损毁,整组RAID 50就会失效。
RAID 50由于在上层把多组RAID5构成Stripe,性能比RAID 5高,容量利用率比RAID5要低。
常用磁盘陈列性能比较表
RAID 等级 |
最少硬盘数量 |
最大容错 |
可用容量 |
读取性能 |
写入性能 |
备注 |
RAID0 |
2 |
0 |
n |
n |
n |
高速度和大容量,可靠性差 |
RAID1 |
2 |
n/2 |
n/2 |
2 |
1 |
最大安全性能,利用率最低 |
RAID5 |
3 |
1 |
n-1 |
n-1 |
n-1 |
性价比高 |
RAID10 |
4 |
n/2 |
n/2 |
n |
n/2 |
综合RAID1/0的优点,适用于数据库,服务器 |
备注:RAID1的可用容量,维基百科中记载为n/2,但我认为从技术角度来讲应该是1.
RAID空间计算
假设都以6块600G SAS硬盘
RAID等级 |
计算方法 |
可用容量 |
RAID0 |
6 * 600G |
3600GB |
RAID1 |
6/2 * 600G |
1800GB |
RAID5 |
(6-1) * 600G |
3000GB |
RAID10 |
6/2 * 600G |
1800GB |
RAID50 |
(6/2-1) * 2 * 600G |
2400GB |