Linux软件RAID方案-mdadm命令
在Linux系统中目前以MD(Multiple Devices)虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟设备,并且利用条带化(stripping)技术将数据块均匀分布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗祭算法来保护用户数据不会因为某个块设备的故障而完全丢失,而且还能在设备被替换后将丢失的数据恢复到新的设备上。
目前MD支持linear,multipath,raid0(stripping),raid1(mirror),raid4,raid5,raid6,raid10等不同的冗余级别和级成方式,当然也能支持多个RAID陈列的层叠组成raid1 0,raid5 1等类型的陈列。
语法格式:mdadm 参数 设备名
1.常用参数
- -a 向RAID中添加新设备
- -B 不把RAID信息写入每个成员的超级块中
- -c 设置数据块默认大小
- -C 把RAID信息写入每个成员的超级块中
- -D 显示RAID设备的详细信息
- -E 显示RAID设备成员的详细信息
- -f 将指定RAID设备成员设置为故障模式
- -F 使用监控模式
- -G 设置RAID设备大小
- -I 添加设备到RAID中
- -l 设置RAID设备级别
- -n 设置RAID中活动设备的数量
- -r 将指定成员移出RAID设备
- -R 开始部分组装RAID设备
- -s 扫描配置文件以搜寻丢失的信息
- -S 停用RAID设备,并释放所有资源
- -v 显示执行过程详细信息
- -x 设置初始RAID设备的备用成员数量
- -z 设置初始化RAID设备后,从每个成员获取的空间容量
- --zero-superblock 使用零覆盖RAID设备中的超级块
2.参考示例
(1)准备四块裸盘,查看磁盘列表
(2)使用4块硬盘设备创建一个指定名称且级别为RAID 10的磁盘阵列组:
root@10-60-190-45:~# mdadm -Cv /dev/md0 -n 4 -l 10 /dev/vdb /dev/vdc /dev/vdd /dev/vde(3)查看指定RAID设备的简要信息
root@10-60-190-45:~# mdadm -Q /dev/md0
root@10-60-190-45:~# mdadm -D /dev/md0
(5)扩容RAID组
前面我们使用了4块盘做了RAID10,根据RAID10特性,如果需要扩容RAID组,必须扩容磁盘数量为偶数个,即最小增加2块盘。
root@10-60-190-45:~# mdadm /dev/md0 -a /dev/vdf /dev/vdg
(6)格式化RAID组磁盘
root@10-60-190-45:~# mkfs.xfs /dev/md0
(7)磁盘挂载及持久化
root@10-60-190-45:~# mount /dev/md0 /data
root@10-60-190-45:~# vim /etc/fstab
UUID="26a9af57-eb94-4af4-9875-9b1b8eed876a" /data auto defaults,nofail,discard,comment=cloudconfig 0 2
3.高风险操作
(1)将指定的硬盘从RAID设备中停止root@10-60-190-45:~# mdadm /dev/md0 -f /dev/vdg
root@10-60-190-45:~# mdadm /dev/md0 -r /dev/vdg
(2)彻底停用一个RAID设备
root@10-60-190-45:~# mdadm --stop /dev/md0
随便看看
- 2021-11-09MySQL区分大小写参数配置
- 2021-01-23K8S Context和Namespace管理工具kubectx/kubens
- 2021-08-03Elastic stack日志分析集群部署
- 2021-04-25MySQL数据库时区设置
- 2021-09-04跨域访问和防盗链基本原理