什么是RAID
RAID是一项技术,通过软件或者硬件,可以将多块磁盘整合成为一个较大的磁盘设备, 而这个较大的磁盘除了存储数据外,根据不同RAID级别分类,还具有数据保护,提高性能等功能。
RAID的级别
RAID的级别不同,而整合的磁盘也具有不同的功能,常见的级别如下
-
RAID0 性能最佳
- 相同型号与容量的磁盘来组成,效果最佳
- 文件写入时会根据chunk(区块,4k-1M)大小切割好,再依次写入各个磁盘
- chunk会在RAID创建时生成好
- 数据会等量存放到各个磁盘,100M的文件,每个磁盘放50M
- 数据安全性低
-
RAID1 完全备份
- 同样最好是相同容量和型号的磁盘
- 让同一份数据分别在两个磁盘上保存,镜像
- 写入性能会很差(使用硬件RAID卡会好一些),但是读取好
- 数据安全性好
-
RAID5 性能与数据备份的均衡考虑
- 至少三块盘
- 数据写入类似RAID0,不过每次循环写入都会计算校验码,用于数据损毁时的恢复(只能损毁一个磁盘)
- 总容量比磁盘总量少一个磁盘
- 读性能ok,写性能欠佳,因为需要cpu计算校验码
- RAID6 可以损毁两个盘
-
RAID10
RAID0 的性能佳但是数据不安全,RAID-1 的数据安全但是性能不佳
- 先让两颗磁盘组成 RAID 1,并且这样的设置共有两组
- 将这两组 RAID 1 再组成一组 RAID 0
- RAID1与 RAID0不像RAID5,是不需要经过计算的,所以读写性能也比其他的 RAID 等级好太多了!
其他
-
Spare Disk:预备磁盘
- 在阵列中,磁盘坏掉后,插入新硬盘,数据会重建
- 使用预备磁盘可以免除动手拔插磁盘
-
磁盘阵列的优缺点
- 数据安全和可靠性(重点)
- 读写性能
- 容量
-
总结
相关命令
-
创建RAID
[root@lamp ~]# mdadm --create /dev/md0 --auto=yes --level=5 --chunk=256K --raid-devices=4 --spare-devices=1 /dev/sd{b,c,d,e,f}
-
查看RAID创建过程
[root@lamp ~]# cat /proc/mdstat
-
查看详细信息
[root@study ~]# mdadm --detail /dev/md0 /dev/md0: # RAID 的设备文件名 Version : 1.2 Creation Time : Mon Jul 27 15:17:20 2015 # 创建 RAID 的时间 Raid Level : raid5 # 这就是 RAID5 等级! Array Size : 3142656 (3.00 GiB 3.22 GB) # 整组 RAID 的可用容量 Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB) # 每颗磁盘(设备)的容量 Raid Devices : 4 # 组成 RAID 的磁盘数量 Total Devices : 5 # 包括 spare 的总磁盘数 Persistence : Superblock is persistent Update Time : Mon Jul 27 15:17:31 2015 State : clean # 目前这个磁盘阵列的使用状态 Active Devices : 4 # 启动(active)的设备数量 Working Devices : 5 # 目前使用于此阵列的设备数 Failed Devices : 0 # 损坏的设备数 Spare Devices : 1 # 预备磁盘的数量 Layout : left-symmetric Chunk Size : 256K # 就是 chunk 的小区块容量 Name : study.centos.vbird:0 (local to host study.centos.vbird) UUID : 2256da5f:4870775e:cf2fe320:4dfabbc6 Events : 18 Number Major Minor RaidDevice State 0 252 5 0 active sync /dev/sdb 1 252 6 1 active sync /dev/sdc 2 252 7 2 active sync /dev/sdd 5 252 8 3 active sync /dev/sde 4 252 9 - spare /dev/sdf # 最后五行就是这五个设备目前的情况,包括四个 active sync 一个 spare # 至于 RaidDevice 指的则是此 RAID 内的磁盘顺序
-
模拟磁盘故障,查看备用盘替换
[root@lamp ~]# mdadm --manage /dev/md0 --fail /dev/sdb [root@lamp ~]# mdadm --detail /dev/md0
-
将坏掉的磁盘剔除,加入新盘
[root@lamp ~]# mdadm --manage /dev/md0 --remove /dev/sdb [root@lamp ~]# mdadm --manage /dev/md0 --add /dev/sdg
-
开机RAID的自动挂载
有raid卡的raid不用担心开机自动挂载的问题,但是咱们的软raid有这个问题
[root@lamp ~]# mdadm --detail /dev/md0 [root@lamp ~]# vim /etc/mdadm.conf #配置文件 ARRAY /dev/md0 UUID=2256da5f:4870775e:cf2fe320:4dfabbc6 #UUID是设备向系统注册的 UUID 识别码 [root@lamp ~]# blkid /dev/md0 /dev/md0: UUID="494cb3e1-5659-4efc-873d-d0758baec523" TYPE="xfs" [root@lamp ~]# vim /etc/fstab UUID=494cb3e1-5659-4efc-873d-d0758baec523 /var/lib/mysql xfs defaults 0 0 [root@lamp ~]# umount /dev/md0; mount -a #确保能挂载成功
-
关闭RAID设备
[root@lamp ~]# umount /var/lib/mysql [root@lamp ~]# vim /etc/fstab #删除对应的行 [root@lamp ~]# mdadm --stop /dev/md0 [root@lamp ~]# dd if=/dev/zero of=/dev/md0 bs=1M count=50 #清空md0的superblock # 清空所有分区或者磁盘的superblock [root@lamp ~]# dd if=/dev/zero of=/dev/sdb bs=1M count=10 [root@lamp ~]# dd if=/dev/zero of=/dev/sdc bs=1M count=10 [root@lamp ~]# dd if=/dev/zero of=/dev/sdd bs=1M count=10 [root@lamp ~]# dd if=/dev/zero of=/dev/sde bs=1M count=10 [root@lamp ~]# dd if=/dev/zero of=/dev/sdf bs=1M count=10 [root@lamp ~]# cat /proc/mdstat #删除记录 [root@lamp ~]# vim /etc/mdadm.conf