ก่อนหน้านี้ฉันมีระบบ RAID5 ที่บ้าน หนึ่งในสี่ดิสก์ล้มเหลว แต่หลังจากลบแล้วนำกลับมามันก็ดูเหมือนว่าจะตกลงดังนั้นฉันจึงเริ่มซิงค์ใหม่ เมื่อเสร็จฉันก็ตระหนักถึงความสยองขวัญของฉันว่า 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 ที่กำลังอยู่ในอาร์เรย์ที่แยกจากกัน
ปรับปรุง
ฉันลองทำสิ่งต่อไปนี้หลังจากทำการสำรอง superblocks:
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
ปลอดภัยไหม
ปรับปรุง
ฉันเผยแพร่สคริปต์ตัวแยกวิเคราะห์ superblock ที่ฉันใช้ทำตารางนั้นในความคิดเห็นของฉัน บางทีบางคนอาจพบว่ามีประโยชน์ ขอบคุณสำหรับความช่วยเหลือของคุณ
mdadm -A /dev/md1 /dev/sd{b,c,d}2
(อาจ--force
) หรือไม่ (ถ้าคุณยังไม่ได้สำรอง superblock ก่อน)
/dev/sdd2
จะอยู่ในอาร์เรย์แยกกันได้อย่างไรแม้ว่าจะมี UUID เช่นsd{a,b,c}2
เดียวกัน
mdadm --re-add
ไม่ใช่สิ่งที่คุณกำลังมองหา คุณทำการทดสอบความจำเมื่อเร็ว ๆ นี้หรือไม่? คุณมีข้อความบันทึกที่เกี่ยวข้องกับความล้มเหลวของแถวลำดับหรือไม่?