Linux 软件 RAID10:将 /dev/md0 神秘地重命名为 /dev/md127:为什么?

Linux 软件 RAID10:将 /dev/md0 神秘地重命名为 /dev/md127:为什么?

在过去的两个晚上,我们在运行 Ubuntu Linux 12.04 LTS 和 Linux mdadm 软件 RAID10 的服务器上遇到了神秘事件:

DeviceDisappeared /dev/md0
NewArray /dev/md127

两条消息都出现在同一秒内,与 logrotate cron 操作发生的时间相同。尽管数组仍在/dev/md0中命名,但它在 的输出中/etc/mdadm/mdadm.conf显示为:/dev/md127cat /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>

为什么会这样?我该如何解决这个问题?

答案1

我搞清楚了:/etc/mdadm/mdadm.conf由于三天前发生了一些“不小心”的系统管理员活动,文件中的 UUID 与此服务器中实际软件 RAID 阵列的 UUID 不匹配。将此文件中的 UUID 编辑为以下命令显示的 UUID(就我而言,YMMV):

mdadm --examine /dev/sdb1 

并使用命令重新创建 initrd 映像(参见下面的 EDIT2021):

update-initramfs -u -k all

并且随后的重新启动将命名修复回/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:上面提到的命令:

update-initramfs

是 Debian/Ubuntu 衍生 Linux 发行版特有的脚本。在 RedHat 衍生发行版(Fedora、CentOS 等)上,可以使用以下命令为当前活动内核创建一个新的 initramfs 文件:

mkinitrd /boot/initramfs-`uname -r`.img `uname -r`

相关内容