在过去的两个晚上,我们在一台运行 Ubuntu Linux 12.04 LTS 和 Linux mdadm 软件 RAID10 的服务器上发生了一些神秘事件:
DeviceDisappeared /dev/md0
NewArray /dev/md127
这两条消息出现在同一秒,与 logrotate cron 操作发生的同时。尽管该数组仍以 命名/dev/md0
,/etc/mdadm/mdadm.conf
但它/dev/md127
在 的输出中显示为cat /proc/mdstat
:
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md127 : active raid10 sdb1[0] sdg1[5] sdc1[1] sdh1[6] sdf1[4] sdd1[2] sdk1[9] sdj1[8] sde1[3] sdi1[7]
9746600960 blocks 512K chunks 2 near-copies [10/10] [UUUUUUUUUU]
unused devices: <none>
为什么会这样,我该如何解决?
我想通了:
/etc/mdadm/mdadm.conf
由于三天前发生的一些“不小心”的系统管理员活动,文件中的 UUID 与此服务器中实际软件 RAID 阵列的 UUID 不匹配。将此文件中的 UUID 编辑为(在我的情况下为 YMMV)命令显示的 UUID:并使用命令重新创建 initrd 映像(请参阅下面的 EDIT2021):
并且随后的重新启动将命名修复为
/dev/md0
.编辑: @Michael Hamptons 评论:配置文件行中
/dev/md0
提到的设备名称可能会被替换为例如. 但我还没有尝试过:mdadm.conf 手册页中的示例使用设备名称,例如. 我不确定这样的替换是否可能:更抽象的设备名称在或稍后动态创建。ARRAY
/etc/mdadm/mdadm.conf
/dev/disk/by-label/DATA
/dev/md*
/dev/disk/by-label/*
/dev/disk/by-uuid/*
编辑 2021:上述命令:
是特定于 Debian/Ubuntu 派生的 Linux 发行版的脚本。在 RedHat 派生发行版(Fedora、CentOS 等)上,可以使用以下命令为当前活动的内核创建一个新的 initramfs 文件: