我基本上是尝试配置 mdadm.conf,以便启动时 RAID 组件以等效方式运行:
mdadm --assemble --scan --no-degraded
而不是:
mdadm --assemble --scan
否则,如果我暂时拔掉一个或两个 RAID6 设备以释放 SATA 端口,MDADM 会在下次启动时以降级状态组装阵列,拔掉的设备将变得不同步,我需要重新添加并重建它们,这可能需要一两天的时间。
我没有在 mdadm.conf(5) 或 MDADM 文档中找到任何内容,但我很确定这是一个相当常见的情况,并且有一个简单的解决方案。
如果您已在 中配置了 md 阵列
mdadm.conf
,那么据我所知,有几种简单的方法可以阻止在操作系统启动期间组装您选择的 md raid 设备。但是,这些解决方案仅适用于您知道哪个特定的 md 阵列会因拔出磁盘而进入降级状态的情况。第一种方法是使用
<IGNORE>
特殊关键字。假设你mdadm.conf
的 md 阵列(下次启动时其磁盘将会丢失)的条目如下:更改为:
initramfs
如果mdadm.conf
图像中的与您在根文件系统中更改的initramfs
不一样,请在此之后进行更新。mdadm.conf
重启后,您将看到
/dev/md0
输出中没有组装cat /proc/mdstat
相关手册页文档
mdadm.conf
:第二种方法是使用
AUTO
关键字。假设你mdadm.conf
有几个 md 数组的条目,如下所示:如果下次重新启动时磁盘
/dev/md1
丢失,请将其更改为:按照前面提到的方法更新
initramfs
镜像。重启后,你会看到/dev/md1
输出中没有cat /proc/mdstat
相关
mdadm.conf
手册页文档涉及AUTO
:上述两种方法在 Ubuntu 18.04 上均对我有效。
可能还有其他方法可以实现这一点。但是,如果您需要自动阻止
mdadm
组装任何已进入降级状态的 md 阵列,则可能需要修改mdadm
udev
规则,甚至编写一些脚本。不用说,如果您有为
fstab
这些 md 设备安装文件系统的条目,请确保已注释掉或删除已降级的 md 阵列的条目,否则您的系统将在启动期间进入维护模式。