Raid
RAID 10 無法啟動
我有一個管理
mdadm
失敗的 RAID 10 陣列。症狀是 X 崩潰了,我無法從終端登錄。我重新啟動了電腦,/dev/md1
但沒有啟動。我收集了以下資訊 - 有些資訊不完整,因為我手動將其複製到另一台電腦:
$ cat /proc/mdstat .... md1 : inactive sdb3[1](S) sdd1[3](S) sdc2[2](S) sda1[0](S) 1250273760 blocks super 1.0
掛載失敗
$ mount /dev/md1 EXT4-fs (md1): unable to read superblock
掃描確實找到了元數據
$ mdadm --examine --scan ... ARRAY /dev/md/1 metadata=1.0 UUID=2c... name=linux:1
由於缺少操作鏡像,執行失敗
$ mdadm --run /dev/md1 md/raid0:md1: not enough operational mirrors. md: pers->run() failed... mdadm:failed to run array /dev/md1: Input/output error
執行嘗試後,陣列中只有兩個磁碟
$ cat /proc/mdstat .... md1 : inactive sdd1[3] sdc2[2] 62513638 blocks super 1.0
嘗試重新添加一個磁碟失敗
$ mdadm /dev/md1 --add /dev/sda1 mdadm: /dev/sda1 reports being an active member for /dev/md1, but --re-add fails mdadm: not performing --add as that would convert /dev/sda1 in to a spare mdadm: To make this a spare, use "mdadm --zero-superblock /dev/sda1" first
我已經記錄了一些元數據,以便嘗試重新創建數組
$ mdadm --examine /dev/sdb3 /dev/sdd1 /dev/sdc2 /dev/sda1 | grep -E 'dev|Update|Role|State|Chunk Size' /dev/sdb3: State: active Update time: Mon May 14 21:51:41 2012 Chunk Size: 256K Device Role: Active device 1 Array State : AAAA /dev/sdd1: State: active Update time: Mon May 14 22:11:11 2012 Chunk Size: 256K Device Role: Active device 3 Array State : ..AA /dev/sdc2: State: active Update time: Mon May 14 22:11:11 2012 Chunk Size: 256K Device Role: Active device 2 Array State : ..AA /dev/sda1: State: active Update time: Mon May 14 21:51:41 2012 Chunk Size: 256K Device Role: Active device 0 Array State : AAAA
我已經嘗試根據之前記錄的資訊手動重新創建數組
$ mdadm --create --metadata=1.0 --assume-clean --level=10 --raid-devices=4 --chunk=256K /dev/md1 /dev/sda1 /dev/sdb3 /dev/sdc2 /dev/sdd1 mdadm: /dev/sda1 appears to contain an ext2fs file system mdadm: /dev/sda1 appears to be part of a raid array mdadm: /dev/sdb3 appears to contain an ext2fs file system mdadm: /dev/sdb3 appears to be part of a raid array mdadmin: /dev/sdc2 appears to be part of a raid aray mdadmin: /dev/sdd1 appears to be part of a raid aray
掛載再次失敗,這可能意味著沒有正確創建 raid
$ 安裝 /dev/md1 /mnt
EXT4-fs (md1): ext4_check_descriptors: Checksum forgroup 0 failed (54076!=0) EXT4-fs (md1): group descriptors corrupted!
執行 fsck 產生了太多錯誤,無法認真考慮,所以我沒有讓它執行。
我嘗試使用“缺少”設備和兩個磁碟重新創建陣列,但沒有成功組合。我不確定我是否都嘗試過,但我確實嘗試了很多。
一些細節:
mdadm
是版本 2.3.2,在 OpenSUSE 12.1、核心 3.1.10、x86_64 上執行- 所有硬碟都已完成
smartctl -t short
,沒有任何錯誤如何在不失去資訊的情況下重建 RAID 陣列,或者只是提取資訊並將其複製到其他地方?我也很想知道在嘗試重新創建數組時是否在上面做錯了什麼。
在一些幫助下,我設法通過以下方式重建了一個降級的陣列:
- 使用testdisk實用程序並註意
/dev/sdc
和/dev/sdd
磁碟被標記為 GPT 分區表- 修復分區表
/dev/sdd
以將分區類型列為fd
而不是83
/dev/sda1
僅使用和創建 RAID 陣列/dev/sdd1
- 執行
e2fsck -y /dev/md1
(期待很多修復)重建 RAID 陣列時的一個有用提示是查看原始設備的前 100 MB,看看它是否看起來像應該傳遞給 e2fsck 的有效 ext2:
dd if=/dev/md1 of=/tmp/md1.img bs=1k count=1024 strings md1.img | lesss