RAID 的意思是廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),但现在它被称为独立磁盘冗余阵列(Redundant Array of Independent Drives).
1.RAID0
RAID的工作原理就是通过多块硬盘并行运行来提高整个计算机的I/O存储性能。所以如果是RAID0这个级别,我们至少需要2块硬盘,在读写数据时,RAID0是通过将数据分开读写到多块硬盘的方式来提高读写性能的。RAID0至少需要两块硬盘,当使用RAID0时,我们在读写数据的时候是将数据分开读写到多块硬盘上,所以其读写速度是最快的,但是因为多块硬盘上保存了数据的一部分,所以当一块硬盘发生损坏时,其整个RAID的数据也就损坏了。
①空间利用率:所有硬盘空间之和
②性能:所有硬盘读写速度之和
③冗余能力:无
2.RAID1
RAID1也是至少需要2块硬盘,在写数据的时候就不同于RAID0了,RAID1在写数据时会将数据复制到多块硬盘上,即每块硬盘都会保存该数据的一个备份,在读数据时,以提高冗余性。读的时候同时从多块硬盘上读取数据,以提高读的性能。
①空间利用率:所有磁盘中最小的那块(其实在使用RAID时,最好每块硬盘的大小及型号都一样)
②性能:读性能是所有硬盘之和,写性能有所减弱
③冗余能力:只要有一块硬盘正常,数据就正常
3.RAID5
RAID5至少需要3块硬盘,RAID5与RAID0类似,读写数据的时候会将数据分布的读写到所有硬盘上。但是在写数据的时候RAID5会对数据进行奇偶校验运算,并将校验信息也保存在了硬盘上,所以即使我们其中一块硬盘发生了损坏,RAID5也能通过其他硬盘以及校验信息对数据进行恢复使用。但是如果2块或者2块以上的硬盘发生了损坏,整个数据也就损坏了。
①空间利用率:1 - 1/n
②性能:读性能接近RAID0,写性能相比RAID0要弱一些
③冗余能力:可以接受1块硬盘的损坏
4.RAID6
RAID6至少需要4块硬盘,RAID6与RAID5相类似,读写数据的时候会将数据分布的读写到所有硬盘上。在写数据的时候RAID5会对数据进行奇偶校验运算,并将校验信息也保存在了硬盘上,但是RAID6会比RAID5多保存一份校验信息,所以RAID6的冗余性比RAID5就有所提升,可以允许2块硬盘发生损坏。
①空间利用率:1 - 2/n
②性能:读性能接近RAID5,写性能相比RAID5还要弱一些
③冗余能力:可以接受2块硬盘的损坏
以上四种RAID级别是我们最常用的四种级别,对于个人PC机来说,可能我们最需要提高的是硬盘存储性能,所以基本上使用的是RAID0,其读写性能得到了最大的提高,但是其冗余性为0,当硬盘发生损坏时,数据也就损坏了。而在生产环境下的服务器,使用的最多是RAID5或者RAID6,其即提供了读写性能,也提供了冗余性。RAID1通常会对于那些对数据准确性要求及其严格的场合才会使用。
我们来总结一下这4个常用的RAID级别各自的优缺点:
RAID级别 | 速度 | 冗余性 | 磁盘利用率 |
RAID 0 | 读写速度均有提升 | 0 | 所有磁盘之和 |
RAID 1 | 读速度有提示 | n | 一个磁盘大小 |
RAID 5 | 读写速度均有提升 | 1 | 1-1/n |
RAID 6 | 读写速度均有提升 | 2 | 1-2/n |
如何创建RAID
1..创建三个设备
[root@localhost /]# partprobe
[root@localhost /]# cat /proc/partitions
2.创建RAID
[root@localhost ~]# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}
# -a yes 创建文件dev/md0原来没有
# -l 是RAID的等级
# -x 备份的设备有几个
[root@localhost ~]# mkfs.xfs /dev/md0
##格式化分区
[root@localhost ~]# mount /dev/md0 /mnt/
[root@localhost ~]# df
[root@localhost ~]# mdadm -D /dev/md0
#查看raid的设备
[root@localhost ~]# mdadm -f /dev/md0 /dev/vdb2
#强行停止设备
[root@localhost ~]# mdadm -D /dev/md0
[root@localhost ~]# mdadm -r /dev/md0 /dev/vdb2
#移除设备
[root@localhost ~]# mdadm -D /dev/md0
#添加设备
[root@localhost ~]# mdadm -a /dev/md0 /dev/vdb2
[root@localhost ~]# mdadm -D /dev/md0
#####卸载RAID
#卸载
[root@localhost ~]# umount /mnt/
#停止RAID
[root@localhost ~]# mdadm -S /dev/md0
#删除分区
[root@localhost ~]# fdisk /dev/vdb
[root@localhost ~]# partprobe
[root@localhost ~]# cat /proc/partitions