Деякий час тому в мене була система 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
це не те, що ви шукаєте. Ви нещодавно зробили тест пам’яті? Чи є у вас повідомлення з журналу, пов'язані з помилкою масиву?