Thời gian trước tôi có một hệ thống RAID5 ở nhà. Một trong 4 đĩa không thành công nhưng sau khi gỡ bỏ và đặt lại thì có vẻ vẫn ổn nên tôi bắt đầu đồng bộ lại. Khi nó kết thúc tôi nhận ra, điều kinh hoàng của tôi là 3 trong số 4 đĩa không thành công. Tuy nhiên tôi không tin điều đó là có thể. Có nhiều phân vùng trên các đĩa, mỗi phần của một mảng RAID khác nhau.
- md0 là một mảng RAID1 bao gồm sda1, sdb1, sdc1 và sdd1.
- md1 là một mảng RAID5 bao gồm sda2, sdb2, sdc2 và sdd2.
- md2 là một mảng RAID0 bao gồm sda3, sdb3, sdc3 và sdd3.
md0 và md2 báo cáo tất cả các đĩa lên trong khi md1 báo cáo 3 lỗi (sdb2, sdc2, sdd2). Đó là sự hiểu biết của tôi rằng khi các ổ đĩa cứng bị hỏng, tất cả các phân vùng sẽ bị mất không chỉ các ổ giữa.
Lúc đó tôi tắt máy tính và rút ổ đĩa ra. Kể từ đó tôi đã sử dụng máy tính đó với một đĩa mới nhỏ hơn.
Có bất kỳ hy vọng phục hồi dữ liệu? Tôi có thể bằng cách nào đó thuyết phục mdadm rằng các đĩa của tôi trong thực tế đang hoạt động? Đĩa duy nhất có thể thực sự có vấn đề là sdc nhưng đĩa đó cũng được báo cáo bởi các mảng khác.
Cập nhật
Cuối cùng tôi cũng có cơ hội kết nối các đĩa cũ và khởi động máy này từ SystemResTHERCd. Tất cả mọi thứ ở trên được viết từ bộ nhớ. Bây giờ tôi có một số dữ liệu cứng. Đây là đầu ra củamdadm --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
Có vẻ như mọi thứ đã thay đổi kể từ lần khởi động cuối cùng. Nếu tôi đọc chính xác sda2 này, sdb2 và sdc2 đang hoạt động và chứa dữ liệu được đồng bộ hóa và sdd2 là phụ tùng. Tôi nhớ rõ ràng nhìn thấy 3 đĩa thất bại nhưng đây là tin tốt. Tuy nhiên, mảng vẫn không hoạt động:
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 dường như được đổi tên thành md127. md125 và md126 rất lạ. Chúng nên là một mảng chứ không phải hai. Điều đó từng được gọi là md1. md2 đã biến mất hoàn toàn nhưng đó là sự hoán đổi của tôi nên tôi không quan tâm.
Tôi có thể hiểu các tên khác nhau và nó không thực sự quan trọng. Nhưng tại sao một mảng với 3 đĩa "đồng bộ hóa hoạt động" không thể đọc được? Và những gì với sdd2 là trong một mảng riêng biệt?
Cập nhật
Tôi đã thử như sau sau khi sao lưu các siêu khóa:
root@sysresccd /root % mdadm --stop /dev/md125
mdadm: stopped /dev/md125
root@sysresccd /root % mdadm --stop /dev/md126
mdadm: stopped /dev/md126
Càng xa càng tốt. Vì sdd2 là phụ tùng nên tôi không muốn thêm nó vào.
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
Rõ ràng tôi không thể làm điều đó.
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>
Điều đó cũng không hiệu quả. Hãy thử với tất cả các đĩa.
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>
Không may mắn. Dựa trên câu trả lời này, tôi dự định thử:
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
Nó có an toàn không?
Cập nhật
Tôi xuất bản tập lệnh phân tích cú pháp siêu khối mà tôi đã sử dụng để tạo bảng đó trong nhận xét của mình. Có lẽ ai đó sẽ thấy nó hữu ích. Cảm ơn tất cả sự giúp đỡ của bạn.
mdadm -A /dev/md1 /dev/sd{b,c,d}2
(có lẽ --force
) chưa? (Nếu bạn không có, hãy sao lưu các siêu khóa trước.)
/dev/sdd2
có thể ở trong một mảng riêng biệt mặc dù có cùng UUID như sd{a,b,c}2
.
mdadm --re-add
không phải là những gì bạn đang tìm kiếm. Bạn đã làm một bài kiểm tra trí nhớ gần đây? Bạn có bất kỳ thông điệp tường trình liên quan đến lỗi mảng?