CentOS 7.9正常运行的RAID 1系统中修复错误mdadm.conf配置的方法
嘿,我来帮你搞定这个问题!你的CentOS 7.9服务器上的软件RAID 1其实运行状态完全正常——从你执行cat /proc/mdstat的输出就能看出来,所有RAID设备都是[UU]状态,没有故障。那Logwatch里出现的mdadm报错,完全是因为/etc/mdadm.conf配置文件里还残留着旧的RAID设备名(/dev/md2、/dev/md3、/dev/md4、/dev/md5),而现在系统实际使用的是动态分配的设备名md124到md127,两者不匹配导致的。
下面是具体的修复步骤,一步步来就行:
1. 确认当前RAID设备的正确配置信息
先运行这条命令,获取当前所有活跃RAID设备的标准配置条目:
mdadm --detail --scan
这条命令会输出类似这样的内容(对应你的RAID设备):
ARRAY /dev/md124 metadata=1.2 name=localhost.localdomain:124 UUID=xxxxxx:xxxxxx:xxxxxx:xxxxxx ARRAY /dev/md125 metadata=1.2 name=localhost.localdomain:125 UUID=xxxxxx:xxxxxx:xxxxxx:xxxxxx ARRAY /dev/md126 metadata=1.2 name=localhost.localdomain:126 UUID=xxxxxx:xxxxxx:xxxxxx:xxxxxx ARRAY /dev/md127 metadata=1.2 name=localhost.localdomain:127 UUID=xxxxxx:xxxxxx:xxxxxx:xxxxxx
2. 备份原有配置文件
在修改配置前,先做个备份,防止万一改错了能恢复:
sudo cp /etc/mdadm.conf /etc/mdadm.conf.bak
3. 更新mdadm.conf配置文件
接下来我们用第一步获取的正确配置,替换掉文件里旧的RAID条目。最简单的方式是直接用命令生成的内容覆盖配置文件(如果原来的文件里还有其他自定义配置,比如邮件通知地址MAILADDR,记得之后手动加回去):
sudo mdadm --detail --scan > /etc/mdadm.conf
如果你不想完全覆盖,也可以手动编辑/etc/mdadm.conf,删除所有以ARRAY开头的旧条目,然后把第一步输出的新ARRAY条目粘贴进去。
4. 更新initramfs
为了让系统重启后能正确识别新的RAID配置,需要更新initramfs镜像:
sudo dracut -f
5. 验证修复效果
完成上面的步骤后,你可以先手动检查配置是否正确:
mdadm --examine --scan
输出的内容应该和/etc/mdadm.conf里的ARRAY条目一致。之后再观察下一次的Logwatch报告,那些“cannot open /dev/mdX”的错误应该就消失了。
另外,再贴一下你提供的当前RAID状态和报错信息,方便对照:
当前RAID状态(cat /proc/mdstat输出)
Personalities : [raid1] md124 : active raid1 sda5[0] sdb5[1] 1943943232 blocks super 1.2 [2/2] [UU] bitmap: 2/15 pages [8KB], 65536KB chunk md125 : active raid1 sdb4[1] sda4[0] 4189184 blocks super 1.2 [2/2] [UU] md126 : active raid1 sdb3[1] sda3[0] 4189184 blocks super 1.2 [2/2] [UU] md127 : active raid1 sdb2[1] sda2[0] 1048512 blocks [2/2] [UU] unused devices: <none>
Logwatch中的mdadm报错
mdadm: cannot open /dev/md2: No such file or directory /dev/md2 : mdadm: cannot open /dev/md3: No such file or directory /dev/md3 : mdadm: cannot open /dev/md4: No such file or directory /dev/md4 : mdadm: cannot open /dev/md5: No such file or directory /dev/md5 :
备注:内容来源于stack exchange,提问作者Castellino Roberto

