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
功能:将多块磁盘的空间合并一个大的连续空间使用
第一块硬盘存放所有磁盘的分段信息,如果损坏,整个阵列会失败
后续磁盘损坏只会影响本块磁盘的数据
不提升读写
没有容错能力