Linux

mdadm:驅動器更換顯示為備用並拒絕同步

  • March 19, 2015

序幕

我的/dev/md0RAID 6 中有以下設備:/dev/sd[abcdef]

還存在以下驅動器,與 RAID 無關:/dev/sd[gh]

以下驅動器是已連接的讀卡器的一部分,但又不相關:/dev/sd[ijkl]

分析

sdf的 SATA 電纜壞了(你可以說它在使用時被拔掉了),sdf隨後被/dev/md0陣列拒絕。我更換了電纜,驅動器又回來了,現在在/dev/sdm. 請不要質疑我的診斷,驅動器沒有問題。

mdadm --detail /dev/md0顯示sdf(F),即,這sdf是錯誤的。所以我過去常常mdadm --manage /dev/md0 --remove faulty刪除有故障的驅動器。

現在mdadm --detail /dev/md0在原來的空間中顯示“已刪除” sdf

root@galaxy:~# mdadm --detail /dev/md0
/dev/md0:
版本:1.2
創建時間:2014年7月30日星期三13:17:25
突襲等級:raid6
陣列大小:15627548672(14903.59 GiB 16002.61 GB)
使用的開發大小:3906887168(3725.90 GiB 4000.65 GB)
突襲設備:6
設備總數:5
持久性:超級塊是持久的

意圖點陣圖:內部

更新時間:2015年3月17日星期二21:16:14
狀態:活躍,降級
有源設備:5
工作裝置:5
失敗的設備:0
備用設備:0

佈局:左對稱
塊大小:512K

名稱:日食:0
UUID:cc7dac66:f6ac1117:ca75576​​9:0e59d5c5
活動:67205

編號 主要次要 RaidDevice 狀態
0 8 0 0 主動同步 /dev/sda
1 8 32 1 主動同步 /dev/sdc
4 0 0 4 已刪除
3 8 48 3 主動同步 /dev/sdd
4 8 64 4 主動同步 /dev/sde
5 8 16 5 主動同步 /dev/sdb

出於某種原因,“已移除”設備的 RaidDevice 現在與處於活動狀態的設備匹配。無論如何,讓我們嘗試添加以前的設備(現在稱為/dev/sdm),因為這是最初的意圖:

root@galaxy:~# mdadm --add /dev/md0 /dev/sdm
mdadm:添加 /dev/sdm
root@galaxy:~# mdadm --detail /dev/md0
/dev/md0:
版本:1.2
創建時間:2014年7月30日星期三13:17:25
突襲等級:raid6
陣列大小:15627548672(14903.59 GiB 16002.61 GB)
使用的開發大小:3906887168(3725.90 GiB 4000.65 GB)
突襲設備:6
設備總數:6
持久性:超級塊是持久的

意圖點陣圖:內部

更新時間:2015年3月17日星期二21:19:30
狀態:活躍,降級
有源設備:5
工作裝置:6
失敗的設備:0
備用設備:1

佈局:左對稱
塊大小:512K

名稱:日食:0
UUID:cc7dac66:f6ac1117:ca75576​​9:0e59d5c5
活動:67623

編號 主要次要 RaidDevice 狀態
0 8 0 0 主動同步 /dev/sda
1 8 32 1 主動同步 /dev/sdc
4 0 0 4 已刪除
3 8 48 3 主動同步 /dev/sdd
4 8 64 4 主動同步 /dev/sde
5 8 16 5 主動同步 /dev/sdb

6 8 192 - 備用 /dev/sdm

如您所見,該設備顯示為備用設備並拒絕與陣列的其餘部分同步:

root@galaxy:~# cat /proc/mdstat
個性:[raid6] [raid5] [raid4]
md0 : 活動 raid6 sdm[6](S) sdb[5] sda[0] sde[4] sdd[3] sdc[1]
15627548672 塊超級 1.2 級別 6,512k 塊,算法 2 [6/5] [UU_UUU]
點陣圖:17/30 頁 [68KB],65536KB 塊

未使用的設備:

我也嘗試過mdadm --zero-superblock /dev/sdm在添加之前使用,結果相同。

我使用 RAID 6 的原因是為了提供高可用性。我不會接受停止/dev/md0並使用或類似的解決方法重新組裝它--assume-clean來解決這個問題。這個需要線上解決,不然看不出使用mdadm的意義。

經過數小時的Google搜尋和 JyZyXEL 在#linux-raid Freenode 頻道中的一些極其明智的幫助,我們有了一個解決方案!在此過程中,RAID 陣列沒有任何中斷——這正是我對 mdadm 的需要和期望。

由於某些(目前未知)原因,RAID 狀態被凍結。解決這個問題的獲勝命令是cat /sys/block/md0/md/sync_action

root@galaxy:~# cat /sys/block/md0/md/sync_action
冷凍

簡而言之,這就是它沒有使用可用備件的原因。以一個簡單的 cat 命令為代價,我所有的頭髮都消失了!

所以,只需解凍數組:

root@galaxy:~# echo idle > /sys/block/md0/md/sync_action

而你走了!

root@galaxy:~# cat /sys/block/md0/md/sync_action
恢復
root@galaxy:~# cat /proc/mdstat
個性:[raid6] [raid5] [raid4]
md0 : 活動 raid6 sdm[6] sdb[5] sda[0] sde[4] sdd[3] sdc[1]
15627548672 塊超級 1.2 級別 6,512k 塊,算法 2 [6/5] [UU_UUU]
[>........] 恢復 = 0.0% (129664/3906887168) 完成=4016.8min 速度=16208K/sec
點陣圖:17/30 頁 [68KB],65536KB 塊

未使用的設備:
root@galaxy:~# mdadm --detail /dev/md0
/dev/md0:
版本:1.2
創建時間:2014年7月30日星期三13:17:25
突襲等級:raid6
陣列大小:15627548672(14903.59 GiB 16002.61 GB)
使用的開發大小:3906887168(3725.90 GiB 4000.65 GB)
突襲設備:6
設備總數:6
持久性:超級塊是持久的

意圖點陣圖:內部

更新時間:2015年3月17日星期二22:05:30
狀態:活動、降級、恢復
有源設備:5
工作裝置:6
失敗的設備:0
備用設備:1

佈局:左對稱
塊大小:512K

重建狀態:0% 完成

名稱:日食:0
UUID:cc7dac66:f6ac1117:ca75576​​9:0e59d5c5
活動:73562

編號 主要次要 RaidDevice 狀態
0 8 0 0 主動同步 /dev/sda
1 8 32 1 主動同步 /dev/sdc
6 8 192 2 備用重建 /dev/sdm
3 8 48 3 主動同步 /dev/sdd
4 8 64 4 主動同步 /dev/sde
5 8 16 5 主動同步 /dev/sdb

幸福:-)

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