![mdadm 在启动过程中是如何执行的?](https://linux22.com/image/1586902/mdadm%20%E5%9C%A8%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B%E4%B8%AD%E6%98%AF%E5%A6%82%E4%BD%95%E6%89%A7%E8%A1%8C%E7%9A%84%EF%BC%9F.png)
我想我读完了文档/互联网,但我看不到任何信息,如何在系统启动期间调用 mdadm。我看不到任何东西/etc/rcX.d
,我看不到任何 systemd 服务,但我的阵列在启动时组装。怎么做到的?此外,我想检查已执行的命令以了解发生了什么以及监控是否正在进行。
发行版是 fedora/ubuntu。
谢谢。
答案1
mdadm 安装了几组 udev 规则,这些规则在检测到设备时触发:
/usr/lib/udev/rules.d/01-md-raid-creating.rules /usr/lib/udev/rules.d/63-md-raid-arrays.rules /usr/lib/udev/rules.d/64-md-raid-assembly.rules /usr/lib/udev/rules.d/69-md-clustered-confirm-device.rules
这些规则以增量汇编模式运行 mdadm:
[64-md-raid-assembly.规则] 31:# 记住,你可以限制自动/增量组装的内容 32:# mdadm.conf(5) 的 'AUTO' 和使用 'ARRAY' 选择性地列入白名单 33:操作==“添加|更改”,导入程序=“/usr/bin/mdadm--incremental--export$devnode--offroot$env{DEVLINKS}”
它们还启动 mdmonitor.service (mdadm --monitor) 来监测健康事件:
[63-md-raid 阵列.规则] 35:ENV {MD_LEVEL} ==“raid[1-9]*”,ENV {SYSTEMD_WANTS} +=“mdmonitor.service”