Некоторое время назад у меня дома была система RAID5. Один из 4 дисков вышел из строя, но после извлечения и установки его снова все было в порядке, поэтому я начал повторную синхронизацию. Когда он закончился, к моему ужасу я понял, что 3 из 4 дисков вышли из строя. Однако я не верю, что это возможно. На дисках имеется несколько разделов, каждый из которых представляет собой отдельный массив RAID.
- md0 - это массив RAID1, состоящий из sda1, sdb1, sdc1 и sdd1.
- md1 - это массив RAID5, состоящий из sda2, sdb2, sdc2 и sdd2.
- md2 - это массив RAID0, состоящий из sda3, sdb3, sdc3 и sdd3.
md0 и md2 сообщают обо всех дисках, в то время как md1 сообщает о сбое 3 (sdb2, sdc2, sdd2). Я понимаю, что когда выходят из строя жесткие диски, все разделы должны быть потеряны, а не только средние.
В этот момент я выключил компьютер и отключил диски. С тех пор я использовал этот компьютер с новым меньшим диском.
Есть ли надежда на восстановление данных? Могу ли я как-то убедить mdadm, что мои диски действительно работают? Единственный диск, который действительно может иметь проблему, это sdc, но этот тоже сообщается другими массивами.
Обновить
Наконец-то я получил возможность подключить старые диски и загрузить эту машину из SystemRescueCd. Все выше было написано по памяти. Теперь у меня есть некоторые точные данные. Вот выводmdadm --examine /dev/sd*2
/dev/sda2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:40:48 2010
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 1
Spare Devices : 1
Checksum : 68b48835 - correct
Events : 53204
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 0 8 2 0 active sync /dev/sda2
0 0 8 2 0 active sync /dev/sda2
1 1 8 18 1 active sync /dev/sdb2
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
/dev/sdb2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:44:54 2010
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Checksum : 68b4894a - correct
Events : 53205
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 1 8 18 1 active sync /dev/sdb2
0 0 0 0 0 removed
1 1 8 18 1 active sync /dev/sdb2
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
/dev/sdc2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:44:54 2010
State : clean
Active Devices : 1
Working Devices : 2
Failed Devices : 2
Spare Devices : 1
Checksum : 68b48975 - correct
Events : 53210
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 2 8 34 2 active sync /dev/sdc2
0 0 0 0 0 removed
1 1 0 0 1 faulty removed
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
/dev/sdd2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:44:54 2010
State : clean
Active Devices : 1
Working Devices : 2
Failed Devices : 2
Spare Devices : 1
Checksum : 68b48983 - correct
Events : 53210
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 4 8 50 4 spare /dev/sdd2
0 0 0 0 0 removed
1 1 0 0 1 faulty removed
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
Похоже, что все изменилось с момента последней загрузки. Если я правильно читаю, sda2, sdb2 и sdc2 работают и содержат синхронизированные данные, а sdd2 - запасной. Я отчетливо помню, как увидел 3 неисправных диска, но это хорошая новость. Но массив все еще не работает:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md125 : inactive sda2[0](S) sdb2[1](S) sdc2[2](S)
1875194880 blocks
md126 : inactive sdd2[4](S)
625064960 blocks
md127 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
64128 blocks [4/4] [UUUU]
unused devices: <none>
Кажется, md0 переименован в md127. md125 и md126 очень странные. Они должны быть одним массивом, а не двумя. Это раньше называлось md1. MD2 полностью ушел, но это был мой обмен, поэтому мне все равно.
Я могу понять разные имена, и это не имеет значения. Но почему массив с 3-мя «активными синхронизирующими» дисками не читается? А что случилось с sdd2 в отдельном массиве?
Обновить
Я попробовал следующее после резервного копирования суперблоков:
root@sysresccd /root % mdadm --stop /dev/md125
mdadm: stopped /dev/md125
root@sysresccd /root % mdadm --stop /dev/md126
mdadm: stopped /dev/md126
Все идет нормально. Так как sdd2 запасной, я пока не хочу его добавлять.
root@sysresccd /root % mdadm --assemble /dev/md1 /dev/sd{a,b,c}2 missing
mdadm: cannot open device missing: No such file or directory
mdadm: missing has no superblock - assembly aborted
Видимо, я не могу этого сделать.
root@sysresccd /root % mdadm --assemble /dev/md1 /dev/sd{a,b,c}2
mdadm: /dev/md1 assembled from 1 drive - not enough to start the array.
root@sysresccd /root % cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : inactive sdc2[2](S) sdb2[1](S) sda2[0](S)
1875194880 blocks
md127 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
64128 blocks [4/4] [UUUU]
unused devices: <none>
Это тоже не сработало. Давайте попробуем со всеми дисками.
mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@sysresccd /root % mdadm --assemble /dev/md1 /dev/sd{a,b,c,d}2
mdadm: /dev/md1 assembled from 1 drive and 1 spare - not enough to start the array.
root@sysresccd /root % cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : inactive sdc2[2](S) sdd2[4](S) sdb2[1](S) sda2[0](S)
2500259840 blocks
md127 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
64128 blocks [4/4] [UUUU]
unused devices: <none>
Неудачно. На основании этого ответа я планирую попробовать:
mdadm --create /dev/md1 --assume-clean --metadata=0.90 --bitmap=/root/bitmapfile --level=5 --raid-devices=4 /dev/sd{a,b,c}2 missing
mdadm --add /dev/md1 /dev/sdd2
Это безопасно?
Обновить
Я публикую сценарий суперблока парсера, который использовал для создания этой таблицы в своем комментарии. Может быть, кто-то найдет это полезным. Спасибо за вашу помощь.
mdadm -A /dev/md1 /dev/sd{b,c,d}2
(возможно --force
)? (Если у вас нет, сначала сделайте резервную копию суперблоков.)
/dev/sdd2
может быть в отдельном массиве, несмотря на тот же UUID, что и sd{a,b,c}2
.
mdadm --re-add
это не то, что вы ищете. Вы недавно делали тест памяти? Есть ли у вас какие-либо сообщения журнала, связанные с ошибкой массива?