RAID

详细介绍了常用的RAID级别

1.什么是RAID

独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。

简单来说,RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为普通用户的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。

1.1. RAID功能实现

提高IO能力,磁盘并行读写 提高耐用性,磁盘冗余算法来实现

1.2.RAID实现的方式

外接式磁盘阵列:通过扩展卡提供适配能力 内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置 软件RAID:通过OS实现,比如:群晖的NAS

2. RAID级别

2.1.RAID-0

以块为单位,读写数据,因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。 但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失


读、写性能提升

磁盘利用率100%

无容错能力

最少磁盘数:1+(一块时没有实际意义,真正能起到提升读写速度至少需要两块)

2.2.RAID-1

也称为镜像, 两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,与RAID 0相同。另外写入速度有微小的降低。


读性能提升、写性能略有下降

磁盘利用率 50%

有冗余能力

最少磁盘数:2+

2.3.RAID-4

在RAID-0的基础上添加一块硬盘用以提升冗余性 。通过多块数据盘异或运算值存于专用校验盘,当任一数据盘出现故障,可以通过校验盘计算出出现故障的数据盘的数据用以恢复


磁盘利用率 (N-1)/N

有冗余能力:允许除了校验盘的任一一块数据盘损坏

至少3块硬盘才可以实现

2.4.RAID-5

在RAID-4的基础上提升可靠性,因为生产中单纯的校验盘很容易损坏就失去了冗余性,所以可以每块硬盘互为数据盘和校验盘。此时任何一块出现故障都可以进行恢复


读、写性能提升

有容错能力:允许最多1块磁盘损坏

最少磁盘数:3, 3+

2.5.RAID-6

在RAID-5的基础上提升可靠性,如果有两块磁盘损坏RAID-5就无能为力了。 RAID-6通过双份校验位,算法更复杂


读、写性能提升

有容错能力:允许最多2块磁盘损坏

最少磁盘数:4, 4+

2.6.RAID-10

RAID-1与RAID-0的组合,先做镜像再做负载


读、写性能提升

空间利用率50%

有容错能力:每组镜像最多只能坏一块

最少磁盘数:4, 4+

2.7.RAID-01

RAID-0与RAID-1的组合,先做负载再做镜像


读、写性能提升

空间利用率50%

有容错能力:但是没有RAID-10的容错能力强。坏一块没事,但是如果坏两块除非正好两块都在一个组中否则都会无法正常工作。

以图片为例RAID-01正常的可能性为三分之一,而RAID-10正常的可能性为三分之二

2.8.RAID-50

RAID-5与RAID-0的组合

2.9. RAID-60

RAID-6与RAID-0的组合

2.10.其它级别

2.10.1.JBOD

功能:将多块磁盘的空间合并一个大的连续空间使用
第一块硬盘存放所有磁盘的分段信息,如果损坏,整个阵列会失败
后续磁盘损坏只会影响本块磁盘的数据

不提升读写

没有容错能力

2.11.RAID总结