Linux

如何修復損壞的 raid10 陣列

  • June 7, 2015

我有一個由 4x3TB 驅動器組成的 RAID 10。它已經降級(sdd 已經下降)。我以為我已經修復它並且它正在重建,但現在(我認為)sde 似乎正在引起問題。

root@tower:~# mdadm -A --force /dev/md127 /dev/sd[b-e]
mdadm: /dev/md127 assembled from 2 drives and  1 rebuilding - not enough to start the array.

這很奇怪——我用Google搜尋的所有內容都表明我應該在這裡看到設備名稱 /dev/md127,但沒有:

root@tower:~# mdadm --examine --scan
ARRAY /dev/md/4x3TB metadata=1.2 UUID=acaef996:1ea7102b:9cd52d00:af0ef09e name=omv:4x3TB

誰能推荐一個合適的行動方案?這是每個設備的輸出:

/dev/sdb:
魔術:a92b4efc
版本:1.2
特徵圖:0x0
數組 UUID:acaef996:1ea7102b:9cd52d00:af0ef09e
名稱 : omv:4x3TB
創建時間:2012年12月12日星期三13:48:21
突襲等級:raid10
突襲設備:4

可用開發大小:5860531120(2794.52 GiB 3000.59 GB)
陣列大小:5860530176(5589.04 GiB 6001.18 GB)
使用的開發大小:5860530176(2794.52 GiB 3000.59 GB)
數據偏移量:2048 個扇區
超級偏移:8 個扇區
狀態:乾淨
設備 UUID:08ee73a5:86c62890:3dba03bb:522093e8

更新時間:2015年6月7日星期日17:44:09
校驗和:d282c882 - 正確
活動:2589917

佈局:近=2
塊大小:512K

設備角色:活動設備 0
陣列狀態:AA.? ('A' == 活躍,'.' == 缺失)
/開發/sdc:
魔術:a92b4efc
版本:1.2
特徵圖:0x0
數組 UUID:acaef996:1ea7102b:9cd52d00:af0ef09e
名稱 : omv:4x3TB
創建時間:2012年12月12日星期三13:48:21
突襲等級:raid10
突襲設備:4

可用開發大小:5860531120(2794.52 GiB 3000.59 GB)
陣列大小:5860530176(5589.04 GiB 6001.18 GB)
使用的開發大小:5860530176(2794.52 GiB 3000.59 GB)
數據偏移量:2048 個扇區
超級偏移:8 個扇區
狀態:乾淨
設備 UUID:05c34f6d:8bead38f:99a01f60:e6518283

更新時間:2015年6月7日星期日17:44:09
校驗和:da150f20 - 正確
活動:2589917

佈局:近=2
塊大小:512K

設備角色:活動設備 1
陣列狀態:AA.? ('A' == 活躍,'.' == 缺失)
/dev/sdd:
魔術:a92b4efc
版本:1.2
特徵圖:0x12
數組 UUID:acaef996:1ea7102b:9cd52d00:af0ef09e
名稱 : omv:4x3TB
創建時間:2012年12月12日星期三13:48:21
突襲等級:raid10
突襲設備:4

可用開發大小:5860531120(2794.52 GiB 3000.59 GB)
陣列大小:5860530176(5589.04 GiB 6001.18 GB)
使用的開發大小:5860530176(2794.52 GiB 3000.59 GB)
數據偏移量:2048 個扇區
超級偏移:8 個扇區
恢復偏移量:670607488 個扇區
狀態:乾淨
設備 UUID:6d632b5f:5a22a515:5c63d798:f1b590ef

更新時間:2015年6月7日星期日17:44:09
校驗和:1e80b6bc - 正確
活動:2589917

佈局:近=2
塊大小:512K

設備角色:活動設備 3
陣列狀態:AA.? ('A' == 活躍,'.' == 缺失)
/dev/sde:
魔術:a92b4efc
版本:1.2
特徵圖:0x0
數組 UUID:acaef996:1ea7102b:9cd52d00:af0ef09e
名稱 : omv:4x3TB
創建時間:2012年12月12日星期三13:48:21
突襲等級:raid10
突襲設備:4

可用開發大小:5860531120(2794.52 GiB 3000.59 GB)
陣列大小:5860530176(5589.04 GiB 6001.18 GB)
使用的開發大小:5860530176(2794.52 GiB 3000.59 GB)
數據偏移量:2048 個扇區
超級偏移:8 個扇區
狀態:活躍
設備 UUID:e6a95b56:6541b0e1:6f3b9ce7:a392ceb9

更新時間:2015年6月7日星期日14:06:33
校驗和:d2c1c56c - 正確
活動:2589703

佈局:近=2
塊大小:512K

設備角色:活動設備 3
陣列狀態:AA.A('A' == 活動,'.' == 缺失)
貓 /proc/mdstat
個性:[線性] [多路徑] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : 不活動 sdb[4](S) sdd[5](S) sdc[1](S)
8790796680塊超級1.2

未使用的設備:

大胖警告:

您對陣列所做的任何事情(包括我建議的東西)都可能導致數據完全失去。如果有真正有價值(恢復成本很高)的未備份數據,請讓有經驗的人為您處理這種情況。包括製作所有四個驅動器的二進制副本。

從你的輸出看來你有

  Device Role : Active device 3

--examine在你的輸出中兩次。這將表明試圖恢復,但做錯了。

/proc/mdstat它看起來你的陣列被組裝,但沒有執行。有一些非常奇怪的設備編號 ( 4,5,1),而您的驅動器應該是0,1,2,3. 這也表明元數據存在差異。

另一個有趣的地方是Events驅動器元數據中的計數器。那些同意的sd[b-d],但似乎落後了sde。你確定那sdd是掉線的驅動器嗎?因為這寧願指向sde離開陣列一段時間。

您可以嘗試在沒有失去驅動器 (mdadm -A -R /dev/md127 /dev/sd[bcd]mdadm -A --force -R /dev/md127 /dev/sd[bce]) 的情況下組裝陣列。這樣做可以防止衝突。如果可行,即使可行,也不要向陣列寫入任何內容,備份數據,然後嘗試添加sdd回熱備件。

如果它不起作用,您可以嘗試mdadm -D /dev/md127在組裝數組後使用輸出更新您的問題(實際上都是建議的方式)。

引用自:https://serverfault.com/questions/697246