В течение последних двух ночей у нас были загадочные события на сервере под управлением 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>
Почему это так и как это исправить?
Я разобрался: UUID в файле /etc/mdadm/mdadm.conf
не совпал с UUID фактического массива программных рейдов на этом сервере из-за некоторой «небрежной» активности системного администратора, которая произошла три дня назад. Редактирование UUID в этом файле на UUID, отображаемый (в моем случае YMMV) командой:
mdadm --examine /dev/sdb1
и воссоздавая образы initrd с помощью команды:
update-initramfs -u -k all
и следующая перезагрузка вернула именование к /dev/md0
.
РЕДАКТИРОВАТЬ: Комментарий @Michael Hamptons: имя устройства /dev/md0
упомянутый в ARRAY
строка в файле конфигурации /etc/mdadm/mdadm.conf
может быть заменен чем-то вроде, например, /dev/disk/by-label/DATA
. Но я еще не пробовал этого: в примерах на странице руководства mdadm.conf используются имена устройств, такие как /dev/md*
. Я не уверен, возможна ли такая замена: более абстрактные названия устройств в /dev/disk/by-label/*
или /dev/disk/by-uuid/*
создаются динамически позже.