mdadm工具是一个管理RAID的程序

mdadm常用选项
-A <阵列设备名> #assemble: 加入一个以前定义的阵列
-C <阵列设备名> #–create: 创建一-个新的阵列
-D <阵列设备名> # –detail:显示md device的详细信息
-a yes #自动创建md阵列文件
-I #设定raid level
-s,–scan #扫描配置文件或/proc/mdstat 以搜寻丢失的信息
-n, -raid-devices=:指定阵列中可用device 数目,这个数目只能由–grow修改
-x, -pare-devices=:指定初始阵列的富余device数目

RAID 0实验

在做实验之前记得拍摄快照 ,后期要重置之后做RAID5

在虚拟机里创建3个1G硬盘

image-20221019120906169

扫描新硬盘

输入lsblk
lsblk #显示所有可用块设备的信息及其依赖关系

image-20221019144445890

没有发现新添加的硬盘,因为新硬盘还没有加载,需要将连接新硬盘的SCSI总线重新扫描才可以被系统识别。

输入ls /sys/class/scsi_host,显示主机总线号

image-20221019145102684

然后使用echo命令依次扫描这个三个设备

echo "- - -"> /sys/class/scsi_host/host0/scan
echo "- - -"> /sys/class/scsi_host/host1/scan
echo "- - -"> /sys/class/scsi_host/host2/scan

image-20221019145049659

再次使用lsblk显示所有可用块信息

image-20221019145135071

这样就扫描到了添加的硬盘

创建RAID

mdadm -C -v /dev/md0 -a yes -l 0 -n 2 /dev/sdb /dev/sdc
#-C是创建RAID,-v显示创建过程,创建的RAID分区是/dev/md0,-l 0【数字0】是指定RAID为RAID0,-n是用两块硬盘创建RAID0,后面的是两块硬盘的路径

image-20221019151254425

mdadm -D /dev/md0      #查看刚刚创建的RAID设备信息

image-20221019151418358

mkfs -t xfs /dev/md0      #使用mkfs格式化分区md0,创建xfs文件系统类型

image-20221019151813251

mount /dev/md0 /mnt      #挂载md0

image-20221019152337463

df -h      #查看挂载信息

image-20221019153035653

cat /proc/mdstat      #查看内核是否成功加载md驱动,是否创建成功

image-20221019153237653

mdadm -D --scan > /etc/mdadm.conf      #-D和--scan结合扫描磁盘阵列

image-20221019153443987

mdadm -D /dev/md0      #查看RAID信息

image-20221019153622443

到此,RAID0就可以正常使用,建议拍摄快照

这时,输入lsblk,应该是sdb和sbc组成了md0

image-20221019155115136

卸载

接着上面,

1.卸载RAID

umount /dev/md0      #解除挂载RAID0

image-20221019154204581

df -h      #查看挂载信息,查看卸载情况

image-20221019154326844

2.关闭/dev/md0

mdadm -S /dev/md0      #停止磁盘阵列

image-20221019154455713

3.重写/dev/sdb和/dev/sdc两块磁盘

mdadm --zero-superblock /dev/sdb      #重写/dev/sdb
mdadm --zero-superblock /dev/sdc      #重写/dev/sdc

image-20221019154743137

这时,输入lsblk,应该是下图,sdb和sdc磁盘重置了

image-20221019155231904

RAID5实验

创建RAID5

mdadm -C /dev/md0 -a yes -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd
#和创建RAID0大同小异,区别在于指定的RAID是RAID5,并且使用sdb,sdc,sdd这三块硬盘

image-20221019160118581

cat /proc/mdstat      #查看内核是否加载了md驱动

image-20221019160315067

mdadm -D /dev/md0      #查看RAID信息

image-20221019160611233

模拟损坏恢复

mdadm  /dev/md0 -f /dev/sdb      #设置硬盘故障,给sdb标记为fauity,模拟损坏

image-20221019161421653

这时查看RAID的信息

mdadm -D /dev/md0

image-20221019161702515

可以看出有变化,有一块硬盘因为被标记为fauity,被系统判断为损坏

接下来移除损坏的硬盘

mdadm /dev/md0 -r /dev/sdb      #移除损坏的硬盘/dev/sdb

image-20221019162259091

接下来要重新加载sdb硬盘,重复前文的相似操作

ls /sys/class/scsi_host/      #查看主机总线号
echo "- - -"> /sys/class/scsi_host/host0/scan    #扫描三个设备以加载硬盘
echo "- - -"> /sys/class/scsi_host/host1/scan
echo "- - -"> /sys/class/scsi_host/host2/scan
lsblk      #查看可用的块设备

image-20221019163100130

接下来添加新扫描到的的硬盘sdb到md0里,恢复RAID

mdadm /dev/md0 -a /dev/sdb    #添加新的硬盘到md0里

image-20221019163307115

接下来查看md0,发现已经恢复了

mdadm -D /dev/md0    #查看RAID信息

image-20221019163513222

写的好累😩-_-