Mdadm
從 raid-5 恢復到 raid-6 重塑和崩潰,mdadm 報告 0K/sec 重建
我有一個類似於舊執行緒的問題,但我並沒有被 100% 的 CPU 使用率困住。
我在我的 5x3TB raid-5 陣列中添加了一個磁碟 (sdd1),並將其升級到 raid-6,一切順利,直到電源背板出現故障並且伺服器在寫入過程中崩潰。
mdadm –assemble 需要一個臨時文件,我在升級時確實指定了該文件,並且使用 –assemble –temporary-file=,它將數組設置為活動並重塑。問題是,它正在以 0K/秒的速度重塑並且不會完成。
順便說一下,臨時文件是零字節。
我有哪些選擇?我現在可以訪問我的文件,所以如果我能找到 7 TB 的儲存空間,我可以花幾天時間複製所有內容、失敗並從頭開始重建陣列,但有更簡單的選擇嗎?
**我可以讓 sdd1(我試圖添加的新驅動器)失敗並重新啟動一個新的五磁碟 raid-5 到六磁碟 raid-6 陣列重建嗎?**或者這是否會擾亂假定的 raid-6 陣列,但實際上大部分是 raid-5,因為它沒有完成 raid-5 -> raid-6 的重塑?
cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md127 : active raid6 sdd[0] sdb1[6] sdf[5] sde[3] sda[2] sdc[1] 11721060352 blocks super 1.2 level 6, 512k chunk, algorithm 18 [6/5] [UUUUU_] [=>...................] reshape = 8.4% (247529472/2930265088) finish=3353419520.0min speed=0K/sec unused devices: <none>
嘗試:
echo frozen > /sys/block/md127/md/sync_action echo reshape > /sys/block/md127/md/sync_action
此時您可能會有一個降級的 RAID-6(
/dev/sdd
失去),所以:
- 執行
watch cat /proc/mdstat
並密切關注它,直到沒有重新同步或重塑活動。- 跑
mdadm --add /dev/md127 /dev/sdd
- 再次執行
watch cat /proc/mdstat
。那應該使重塑以不錯的速度執行。
順便說一句,每 2 秒執行一次不應該是顯著
cat /proc/mdstat
的watch
CPU 負載,但是對於要執行數小時的東西,您可能不需要 2 秒更新。每 10 或 30 秒更新一次就足夠了,例如watch -n 30 cat /proc/mdstat
在上面的步驟 3 中使用。