官方名称:
RAID arrays
MD (multiple device)
内核选项:
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+# CONFIG_MD_BITMAP_FILE is not set
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
mdadm在管理RAID的时候,会自动安装内核模块。
mdadm --create sys /dev/vdc /dev/vdd --level=1 --raid-devices=2 --metadata=1.0 --bitmap=internal
mdadm --create /dev/md0 /dev/vdc /dev/vdd --level=1 --raid-devices=2 --metadata=1.0 --bitmap=internal
第一种方式指定名字,自动选择id。
ls -l /dev/md/sys
lrwxrwxrwx 1 root 0 10 Jan 2 04:48 /dev/md/sys -> /dev/md127
metadata指定md的super block的版本
1.0 放在device的end
1.1 放在device的start
1.2 放在device的start的4K处
bitmap
internal,开启bitmap用来追踪哪些chunk被修改,可以用来快速同步。
但是由于要保存bitmap,开启它有轻微的性能损失。
mdadm --stop /dev/md/sys
mdadm --stop /dev/md127
停止后块设备将被删除。
将一个停止的RAID,重新组装出来,使其处于可用状态。
mdadm --assemble /dev/md0 /dev/vdc /dev/vdd
还有其他一些可选的参数
--force
--run
--readonly
assemble的时候,可能会拒绝之前移除的盘。
需要两条命令,先标记为fail,然后再移除
mdadm --fail /dev/md0 /dev/vdc
mdadm --remove /dev/md0 /dev/vdc
mdadm --add /dev/md0 /dev/vdc
mdadm --re-add /dev/md0 /dev/vdc
RAID1添加第3块盘,其变成spare disk。当某一块盘fail的时候,spare立即转正。
Number Major Minor RaidDevice State 0 254 32 0 active sync /dev/vdc 1 254 48 1 active sync /dev/vdd 2 254 64 - spare /dev/vde
当某一块盘fail的时候,spare立即转正。
Number Major Minor RaidDevice State 2 254 64 0 spare rebuilding /dev/vde 1 254 48 1 active sync /dev/vdd 0 254 32 - faulty /dev/vdc
有好一些方式,可以查看RAID的状态。
系统提供了:
/proc/mdstat
/sys/block/md0/md/
mdadm命令提供了
mdadm --detail /dev/md0
mdadm --query /dev/vdc
mdadm --examine /dev/vdc
mdadm --examine-bitmap /dev/vdc
参考:
RAID arrays
这是当前官方的文档,但是主要介绍内核方面
https://docs.kernel.org/admin-guide/md.html
The Software-RAID HOWTO
这篇比较古老,但是介绍的比较全面
https://tldp.org/HOWTO/Software-RAID-HOWTO.html
A guide to mdadm
https://archive.kernel.org/oldwiki/raid.wiki.kernel.org/index.php/A_guide_to_mdadm.html
Linux Raid
https://archive.kernel.org/oldwiki/raid.wiki.kernel.org/
这是个目录,有很多文档
https://archive.kernel.org/oldwiki/raid.wiki.kernel.org/index.php/
详细介绍了mdadm的所有用法
man mdadm