mdadm使用小记
- 安装mdadm工具(用于创建RAID磁盘)
- 创建分区
- 创建raid0,1,5
- Raid 0
- Raid 1
- Raid 5
- 开机自动挂载
- 停止raid
- 重新启用
- 重组
- 损坏
- 移除
- 添加
- 热备
- Raid1覆盖
- 检查
- 监控RAID
安装mdadm工具(用于创建RAID磁盘)
yum -y install mdadm #如果是最小化安装需要手动安装该工具
lsblk
用于列出所有可用块设备的信息
创建分区
sdb sdc sdd上新建几个分区用来做raid(若不划分区直接 fdisk /dev/sdb{c,d},t->fd->wq)
fdisk /dev/sdb ,n->p->回车->回车-> +100M ->t->回车->fd->wq
此时所有可用块设备的信息
格式化分区
创建raid0,1,5
Raid 0
mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdc1
-C :创建
-v :打印信息
-l :指定raid级别
-n :使用的设备数量
注意:在创建raid前,应该先查看磁盘是否被识别,如果内核还未识别,创建Raid时会报错:
cat /proc/partitions
如果没有被识别,可以执行命令:
partx –a /dev/sdb或者partprobe/dev/sdb
mdadm -Ds >/etc/mdadm.conf #将输出的raid信息导入到/etc/mdadm.conf中
mdadm -D /dev/md0 #查看某个raid 详细信息
Raid 1
mdadm -C -v /dev/md1 -l 1 -n 2 /dev/sdb2 /dev/sdc2
mdadm -Ds >/etc/mdadm.conf #将输出的信息导入到/etc/mdadm.conf中
Raid 5
mdadm -C -v /dev/md5 -l 5 -n 3 /dev/sdb3 /dev/sdc3 /dev/sdd1
mdadm -Ds >/etc/mdadm.conf #将输出的信息导入到/etc/mdadm.conf中
格式化
mkfs.ext4 /dev/md1
mkfs.ext4 /dev/md0
mkfs.ext4 /dev/md5
创建挂载点
挂载
mount /dev/md0 /mnt/raid0
mount /dev/md1 /mnt/raid1
mount /dev/md5 /mnt/raid5
查看挂载是否正常
ls /mnt/raid0 #显示lost+found为正常
查看本机所有的raid状态
cat /proc/mdstat
正常的情况会是[UUU],若第一个磁盘损坏则显示[ _UU ]
开机自动挂载
查看raid的UUID
blkid | grep md
编辑/etc/fstab
vi /etc/fstab
停止raid
先卸载
umount /dev/md0
再停止
mdadm -Dsv > /etc/mdadm.conf #停止前,一定要先保存配置文件
mdadm --stop /dev/md0
重新启用
mdadm -A /dev/md0
清除组件设备中的信息(该操作会将磁盘中的信息归零导致不能再重组,需要先停止raid,一般不操作,若要删除raid可以操作)
mdadm --zero-superblock /dev/sdb1
重组
磁盘被移除以后数据未损坏,可以停掉raid进行重组之后再启用
例子:#
mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1
说明:把sdb1和sdc1重组成/dev/md0
将阵列保存到配置文件
mdadm -D --scan >/etc/mdadm.conf
损坏
Raid1模拟损坏(raid5类似)
mdadm /dev/md1 –f /dev/sdc2 #模拟sdc2损坏
查看状态
移除
mdadm /dev/md1 –r /dev/sdc2 #移除损坏的磁盘,只有标记为损坏才能移除
添加
mdadm /dev/md1 -a /dev/sdd2
问题
删除损坏的分区sdc2之后重新制作的分区sdc2信息没有识别到
partx -d /dev/sdc2 #先将原有信息清除
partx -a /dev/sdc2 #添加调整后的磁盘分区信息
partx -s /dev/sdc #显示磁盘分区信息
热备
给RAID增加热备盘
mdadm /dev/md5 -a /dev/sdd1
也可创建的时候使用-x指定热备
mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sda{5,6,7,8}
模拟损坏
mdadm /dev/md5 -f /dev/sdc3
查看详情,可以看到sdc3已自动更换成了sdd1,状态(State)recovering表示正在恢复,重建进度为30%,等待一会再查看就是正常的clean了
Raid1覆盖
mdadm --zero-superblock /dev/sdb1
mdadm --assemble --run /dev/md/test /dev/sda1 #强制启动
mdadm /dev/md/test --add /dev/sdb1 #sda1 的内容完全覆盖 sdb1 的内容
检查
检查设备是否已经做过raid
mdadm -E /dev/sd{b,c}1
监控RAID
mdadm的监控模式提供一些实用的功能,你可以使用下列命令来监控/dev/md0,delay参数意味着检测的时间间隔,这样紧急事件和严重的错误会及时发送给系统管理员:
mdadm --monitor --mail=root@localhost --delay=300 /dev/md0