Linux

嘗試組裝在另一台電腦上創建的 RAID 陣列時,驅動器報告失敗

  • April 5, 2019

我正在編寫一個腳本來自動化創建 RAID 陣列的過程,目前正在嘗試弄清楚如何讓多台機器辨識陣列,以便在收集後可以傳輸數據。

最終目標是在 RAID 5 陣列中使用一組 5 個 SATA 驅動器,但我目前正在使用 3 個 USB 驅動器進行概念驗證。我認為在嘗試將其組裝到另一台機器上之前停止原始機器上的 RAID 陣列時,我在此過程中遺漏了一些東西。/etc/fstab我將數組的條目從原始機器複製/etc/mdadm.conf到另一台機器(我不確定這是否有必要……我假設我可以在沒有這個的情況下完成它,只需使用更長的--assemble命令)。我不得不改變/dev位置,因為/dev/md0已經存在於第二個系統上,但沒有進行其他更改。然而,在第二台機器上組裝它時,3 個驅動器中只有兩個報告為活動的,第三個驅動器被忽略,因為它報告其他驅動器之一發生故障。使用--examine時,數組狀態資訊如下:

/dev/sdd - Array State: AA.
/dev/sde - Array State: AA.
/dev/sdf - Array State: ..A

/dev/sdf驅動器是被忽略的驅動器。所以看起來前兩個驅動器報告sdf失去,但sdf認為其他兩個驅動器失去。

要停止第一個系統上的陣列,我只需解除安裝 RAID 位置,然後--failed 和--removed 驅動器並--stopped RAID。還有什麼我忘了做的嗎?還是我手動複製 RAID 配置資訊造成的這種混亂?或者是其他東西?

不要--fail開車出去,也不要--remove他們。通常,您手動將驅動器從陣列中排除故障的唯一時間是驅動器實際上是烤麵包時,或者如果您需要回收驅動器以用於其他目的。

您應該能夠按照您的程序進行操作,但跳過失敗並移除驅動器。

當陣列中的某個驅動器出現故障時,其他陣列成員會說“該驅動器不再是該陣列的一部分”。你不能用它組裝。陣列組裝好後,您必須重新添加它。這就是你看到“AA”的原因。在兩個驅動器上。看起來元數據也被刷新到您失敗的驅動器中,因為他認為他也不在陣列中。當您嘗試--fail將第二個驅動器移出時,它會創建一個不起作用的數組,因此它不會寫出元數據。

所以你應該在第一個系統上:

  1. 解除安裝您在第一台機器上的陣列上創建的文件系統。
  2. mdadm --stop第一台機器上的陣列。
  3. 由於它們是 USB 驅動器,因此您應該使用eject它們。

然後將它們移動到第二台機器並執行mdadm --assemble /dev/mdX /dev/sdX /dev/sdY /dev/sdZ.

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