Linux软件RAID10:将/ dev / md0改名为/ dev / md127:为什么?

在过去的两个晚上,我们在运行Ubuntu Linux 12.04 LTS的服务器上使用Linux mdadm软件RAID10发现了一些神秘的事件:

DeviceDisappeared /dev/md0 NewArray /dev/md127 

这两条消息都是在同一时间出现的,与logrotate cron动作发生的时间相同。 尽pipe/dev/md127中的数组仍然名为/dev/md0 ,但在cat /proc/mdstat的输出中显示为/dev/md127

 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> 

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

我弄明白了:由于前三天发生的一些“不小心”的系统pipe理员活动,文件/etc/mdadm/mdadm.conf中的UUID与该服务器中实际软件RAIDarrays的UUID不匹配。 将这个文件中的UUID编辑为(在我的情况下是YMMV)显示的UUID命令:

 mdadm --examine /dev/sdb1 

并使用以下命令重新创buildinitrd映像:

 update-initramfs -u -k all 

并在接下来的重新启动将命名返回到/dev/md0
编辑: @Michael汉普顿评论:configuration文件/etc/mdadm/mdadm.conf中的ARRAY行中提到的设备名称/dev/md0可能可能被类似例如/dev/disk/by-label/DATA 。 但是我还没有尝试过:mdadm.conf手册页中的示例使用设备名称,例如/dev/md* 。 我不确定这样的replace是否可行:以后dynamic创build/dev/disk/by-label/*/dev/disk/by-uuid/*中更抽象的设备名称。