- 简介
RAIN-0:主要有任何一块磁盘损毁,在RAID上面的所有数据都会丢失而无法读取。(半对半)
RAID-1:最大的优点大概就在与数据的备份。不过由于磁盘容量有一半用在备份,因此总容量会是全部磁盘容量的一半而已。(镜像)
RAID 1+0,RAID 0+1:具有RAID-0的优点所以性能得以提升,具有RAID-1的优点所以数据得以备份。但是也有RAID-1的缺点,总容量会减少一半。
RAID-5的总容量会是整体磁盘数量减一块。RAID-5默认仅支持一块磁盘的损毁情况
RAID-6支持同时两块磁盘损毁 - 磁盘阵列的优点
当磁盘阵列的磁盘损毁时,就得要将坏掉的磁盘拔除,然后换一颗新的磁盘。换成新磁盘并且顺利启动磁盘阵列后, 磁盘阵列就会开始主动的重建 (rebuild) 原本坏掉的那颗磁盘数据到新的磁盘上!然后你磁盘阵列上面的数据就复原了! - mdadm:软磁盘阵列的设置
参数:
–create :为创建 RAID 的选项;
–auto=yes :决定创建后面接的软件磁盘阵列设备,亦即 /dev/md0, /dev/md1等
–chunk=Nk :决定这个设备的 chunk 大小,也可以当成 stripe 大小,一般是 64K 或 512K。
–raid-devices=N :使用几个磁盘 (partition) 作为磁盘阵列的设备
–spare-devices=N :使用几个磁盘作为备用 (spare) 设备
–level=[015] :设置这组磁盘阵列的等级。支持很多,不过建议0,1,5即可
–detail:后面所接的那个磁盘阵列的详细信息
–add:会将后面的设备加入到这个md中
–remove:会将后面的设备从md中删除
–fail:会将后面的设备设置成出错的状态
mdadm:创建RAID
# 给虚拟机添加6块硬盘(sdb,sdc,sdd,sde,sdf)(sdg备用) # 以mdadm创建RAID [root@CentOS ~]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd{b,c,d,e,f} mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@CentOS ~]# mdadm --detail /dev/md0 /dev/md0: # 设备文件名 Version : 1.2 Creation Time : Sat Mar 18 10:08:48 2017 Raid Level : raid5 Array Size : 62863872 (59.95 GiB 64.37 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 4 #用作RAID的数量为4 Total Devices : 5 #总设备数为5 Persistence : Superblock is persistent Update Time : Sat Mar 18 10:10:45 2017 State : clean Active Devices : 4 #启动的设备数 Working Devices : 5 #可工作的设备数 Failed Devices : 0 #出错的设备数 Spare Devices : 1 #预备磁盘的数量 Layout : left-symmetric Chunk Size : 512K Name : CentOS:0 (local to host CentOS) UUID : 2be487b3:4e6688cd:c5d5fbb4:991f3593(设备表示符) Events : 20 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 2 8 48 2 active sync /dev/sdd 5 8 64 3 active sync /dev/sde 4 8 80 - spare /dev/sdf # spare rebuilding是正在创建的过程(指未完成状态) # 四个active sync,一个spare # 查看系统RAID情况 [root@CentOS ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sde[5] sdf[4](S) sdd[2] sdc[1] sdb[0] 62863872 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU] unused devices: <none> # 上述表示md0是raid5,由五块磁盘组成(有顺序标识) # sdf[4](S):S代表spare [UUUU]代表四个设备正常 # 格式化与挂载RAID [root@CentOS ~]# mkfs -t ext4 /dev/md0 [root@CentOS ~]# mkdir /mnt/raid [root@CentOS ~]# mount /dev/md0 /mnt/raid [root@CentOS ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/md0 61876732 184136 58549404 1% /mnt/raid
仿真RAID错误的救援模式
# 复制一些东西到/mnt/raid中,假设RAID已经在使用了 [root@CentOS ~]# cp -a /etc/ /var/log /mnt/raid/ [root@CentOS ~]# df /mnt/raid/; du -sm /mnt/raid/* Filesystem 1K-blocks Used Available Use% Mounted on /dev/md0 61876732 236008 58497532 1% /mnt/raid 42 /mnt/raid/etc 9 /mnt/raid/log 1 /mnt/raid/lost+found # 假设/dev/sdd出错,实际模拟方式: [root@CentOS ~]# mdadm --manage /dev/md0 --fail /dev/sdd mdadm: set /dev/sdd faulty in /dev/md0 [root@CentOS ~]# mdadm --detail /dev/md0 /dev/md0: Active Devices : 3 Working Devices : 4 Failed Devices : 1 #出错一个 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Rebuild Status : 10% complete Name : CentOS:0 (local to host CentOS) UUID : 2be487b3:4e6688cd:c5d5fbb4:991f3593 Events : 23 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 4 8 80 2 spare rebuilding /dev/sdf 5 8 64 3 active sync /dev/sde 2 8 48 - faulty /dev/sdd # 显示正在恢复 [root@CentOS ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sde[5] sdf[4] sdd[2](F) sdc[1] sdb[0] 62863872 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UU_U] [===============>.....] recovery = 75.1% (15752192/20954624) finish=0.5min speed=152286K/sec unused devices: <none> [UU_U]:一块磁盘出错 # 重建过的RAID 5情况: [root@CentOS ~]# mdadm --detail /dev/md0 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 4 8 80 2 active sync /dev/sdf 5 8 64 3 active sync /dev/sde 2 8 48 - faulty /dev/sdd [root@CentOS ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sde[5] sdf[4] sdd[2](F) sdc[1] sdb[0] 62863872 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU] unused devices: <none> # 已恢复正常! # 给虚拟机增加一块新的相同大小的新磁盘 # 加入新的拔出有问题的磁盘 [root@CentOS ~]# mdadm --manage /dev/md0 --add /dev/sdg /remove /dev/sdd [root@CentOS ~]# mdadm --detail /dev/md0 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 4 8 80 2 active sync /dev/sdf 5 8 64 3 active sync /dev/sde 6 8 96 - spare /dev/sdg
设置自动挂载
[root@study ~]# mdadm --detail /dev/md0 | grep -i uuid UUID : 2256da5f:4870775e:cf2fe320:4dfabbc6 # 后面那一串数据,就是这个设备向系统注册的 UUID 识别码! # 开始设置 mdadm.conf [root@study ~]# vim /etc/mdadm.conf ARRAY /dev/md0 UUID=2256da5f:4870775e:cf2fe320:4dfabbc6 # RAID设备 识别码内容 # 开始设置开机自动挂载并测试 [root@study ~]# blkid /dev/md0 /dev/md0: UUID="494cb3e1-5659-4efc-873d-d0758baec523" [root@study ~]# vim /etc/fstab UUID=494cb3e1-5659-4efc-873d-d0758baec523 /srv/raid ext4 defaults 0 0 [root@study ~]# umount /dev/md0; mount -a [root@study ~]# df -Th /srv/raid Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 3.0G 111M 2.9G 4% /srv/raid # 你得确定可以顺利挂载,并且没有发生任何错误!
关闭RAID
如果你只是将 /dev/md0 卸载,然后忘记将 RAID 关闭, 结果就是….未
来你在重新分区 /dev/vdaX 时可能会出现一些莫名的错误状况# 1\. 先卸载且删除配置文件内与这个 /dev/md0 有关的设置: [root@study ~]# umount /srv/raid [root@study ~]# vim /etc/fstab UUID=494cb3e1-5659-4efc-873d-d0758baec523 /srv/raid xfs defaults 0 0 # 将这一行删除掉!或者是注解掉也可以! # 2\. 先覆盖掉 RAID 的 metadata 以及 XFS 的 superblock,才关闭 /dev/md0 的方法 [root@study ~]# dd if=/dev/zero of=/dev/md0 bs=1M count=50 [root@study ~]# mdadm --stop /dev/md0 mdadm: stopped /dev/md0 <==不啰唆!这样就关闭了! [root@study ~]# dd if=/dev/zero of=/dev/vda5 bs=1M count=10 [root@study ~]# dd if=/dev/zero of=/dev/vda6 bs=1M count=10 [root@study ~]# dd if=/dev/zero of=/dev/vda7 bs=1M count=10 [root@study ~]# dd if=/dev/zero of=/dev/vda8 bs=1M count=10 [root@study ~]# dd if=/dev/zero of=/dev/vda9 bs=1M count=10 [root@study ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] unused devices: <none> <==看吧!确实不存在任何阵列设备! [root@study ~]# vim /etc/mdadm.conf #ARRAY /dev/md0 UUID=2256da5f:4870775e:cf2fe320:4dfabbc6 # 一样啦!删除他或是注解他!
为啥上面会有数个 dd 的指令啊?干麻?这是因为 RAID 的相关数据其
实也会存一份在磁盘当中,因此,如果你只是将配置文件移除, 同时关闭了 RAID,但是分
区并没有重新规划过,那么重新开机过后,系统还是会将这颗磁盘阵列创建起来,只是名称
可能会变成 /dev/md127 就是了! 因此,移除掉 Software RAID 时,上述的 dd 指令不要忘
记!但是…千千万万不要 dd 到错误的磁盘
鸟哥的linux私房菜学习笔记《三十二》RAID软件磁盘阵列
最新推荐文章于 2022-05-12 19:58:48 发布