Около полутора месяцев назад я заметил, что два жестких диска на сервере (OpenSuSE 11.3) умирают. Догадываясь на основе данных SMART, я сначала заменил / dev / sdb; для этого я удалил диск из массива, выключил сервер, заменил диск, перезагрузился и добавил новый диск в массив. Все идет нормально. IIRC, я также установил GRUB на этот диск. Затем я начал заменять и перестраивать / dev / sda. Я не могу вспомнить, выключил ли я или не заменил / dev / sda (диски находятся в держателях / отсеках для горячей замены), но при первой перезагрузке у меня были все виды проблем с GRUB, которые мешали загрузке в ОС. Я наконец загрузил его, но заметил странное поведение. Например, согласно / proc / mdstat в массиве активен только один диск:
openvpn01:/home/Kendall # cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[2]
20972784 blocks super 1.0 [2/1] [_U]
bitmap: 1/161 pages [4KB], 64KB chunk
md1 : active raid1 sdb2[2]
5245208 blocks super 1.0 [2/1] [_U]
bitmap: 2/11 pages [8KB], 256KB chunk
md0 : active raid1 sdb1[2]
1052212 blocks super 1.0 [2/1] [_U]
bitmap: 0/9 pages [0KB], 64KB chunk
unused devices: <none>
Хм, хорошо, поэтому я пытаюсь добавить / dev / sda обратно в массив:
mdadm --manage /dev/md0 --add /dev/sda1
mdadm: add new device failed for /dev/sda1 as 3: Device or resource busy
Это странно ... но обратите внимание, что показывает нам lsof:
openvpn01:/home/Kendall # lsof /dev/sda3 | head -15
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 8,3 4096 128 /
init 1 root rtd DIR 8,3 4096 128 /
init 1 root txt REG 8,3 39468 404103 /sbin/init
init 1 root mem REG 8,3 91812 33849572 /lib/libaudit.so.1.0.0
init 1 root mem REG 8,3 17392 33648690 /lib/libdl-2.11.2.so
init 1 root mem REG 8,3 1674953 33683537 /lib/libc-2.11.2.so
init 1 root mem REG 8,3 55024 33994082 /lib/libpam.so.0.82.2
init 1 root mem REG 8,3 120868 33828745 /lib/libselinux.so.1
init 1 root mem REG 8,3 143978 33683531 /lib/ld-2.11.2.so
kthreadd 2 root cwd DIR 8,3 4096 128 /
... так что похоже, что корневая файловая система действительно работает с / dev / sda3. В настройке MD-RAID md2 - это корневой массив FS, а / dev / sd [ab] 3 - разделы в массиве. Глядя на крепления
openvpn01:/home/Kendall # cat /proc/mounts
/dev/sda3 / xfs rw,relatime,attr2,noquota 0 0
/dev/md1 /boot ext4 rw,relatime,user_xattr,acl,barrier=1,data=ordered 0 0
/ dev / sda3 определенно смонтирована корневая файловая система, но / boot использует массив.
Вдобавок, когда я перехожу к экрану конфигурации загрузчика через yast2 и смотрю на сведения о загрузчике, старые диски все еще отображаются в разделе «Настройки порядка дисков» (я знаю это по серийным номерам).
В основном сейчас меня беспокоит массив. ОС считает, что в массиве только один диск, и это НЕ тот диск, на котором смонтирована корневая файловая система! Я планирую попытаться исправить оставшиеся проблемы с GRUB в ближайшие несколько дней, но тогда я беспокоюсь о том, что произойдет с данными в массиве; в основном, сможет ли он восстановить себя, не передавая какие-либо / все мои данные?
Надеюсь, я предоставил достаточно подробностей; Если нет, прокомментируйте, и я добавлю все, что сочтет нужным.
Спасибо,
Кендалл
Вероятно, произошло то, что ваш initrd решил использовать /dev/sda3
в качестве корневой файловой системы, но когда он строил массивы MD, /dev/sdb3
имел более позднее время модификации, чем /dev/sda3
и использовался для поддержки массивов.
# mdadm --examine /dev/sd??
и # mdadm --detail /dev/md?
может дать вам дополнительные подсказки относительно того, что происходит.
Самый безопасный путь - это просто сделать резервную копию и восстановить с живого компакт-диска, как рекомендует Zoredache. Убедитесь, что вы сделали резервную копию обоих / dev / sda? и массивы MD - один или оба могут иметь более свежие данные, чем другой.