Hard-Disk

鏡像 RAID 設置中的磁碟是否可以互換?

  • October 23, 2013

人們經常寫道,鏡像 RAID(如 RAID 1)中的磁碟是彼此的精確鏡像副本。

那麼我可以關閉機器並簡單地交換兩條硬碟電纜嗎?

如果兩個磁碟中的一個崩潰並且永遠死了,我可以簡單地關閉機器,放置第三個(新)硬碟而不是死一個,從活動 CD 啟動並“dd”磁碟的全部內容是不是還是把新盤好然後用RAID 1開機再開機就可以了?

如果不是那麼簡單,為什麼不是這樣?

您的數據的相同副本儲存在每個磁碟上(前提是陣列不是“臟”的——例如,如果在寫入磁碟 0 之後但在寫入磁碟 1 之前斷電)。但是,元數據是不同的;它允許 mdadm & md 區分兩個磁碟。

可以換線嗎?

可以交換兩個磁碟上的電纜。當您(或您的發行版的啟動腳本)mdadm --assemble在陣列上執行操作時,mdadm 會查看每個磁碟上的元數據,並從中找出哪個是磁碟 1,哪個是磁碟 2。

這實際上非常靈活——例如,您可以移除其中一個磁碟,將其放入 USB-SATA 機箱中,然後將其連接到 USB 埠,mdraid 仍然會非常滿意。

我可以使用 恢復降級的陣列dd嗎?

不。如果你這樣做了,你會有兩個磁碟 1 或兩個磁碟 2,mdadm 會感到困惑(而且,我還沒有測試過這個,但我認為它會拒絕組裝陣列)。

通常,所有陣列管理都已完成,mdadm而且繞過 mdraid 很少是一個好主意。要恢復您的陣列,請將新磁碟/分區添加到其中。像這樣,假設sdb1是替換磁碟上的分區:

mdadm --add /dev/md0 /dev/sdb1

然後 mdraid 將複製數據,您可以通過cat /proc/mdstat. 您可以在重新同步期間繼續使用該陣列。無需從 Live CD 或類似設備啟動(您應該能夠從降級的陣列啟動)。事實上,如果你的機器上有熱插拔托盤,你可以像這樣替換一個失敗的 sdb:

  1. mdadm -r /dev/md0 /dev/sdb1
  2. 卸下驅動器
  3. 裝上新驅動
  4. 對新驅動器進行分區(通常,但不總是,將再次成為 sdb)。
  5. mdadm -a /dev/md0 /dev/sdb1

這不需要任何停機時間。

另請注意,如果您從鏡像引導,則需要確保引導載入程序(例如,grub)安裝到兩個磁碟。如何執行此操作取決於您的發行版。

還要別的嗎?

是的。mdadm --create不是恢復步驟。它用於創建一個的空白數組,下一步通常是pvcreateor mkfs。已經存在的數組開始使用mdadm --assemble. (這似乎是一個足夠常見的錯誤,並且有可能破壞數據。)

最後的評論

您可能應該花點時間熟悉一下 mdraid 文件(畢竟您信任它的數據)*。*特別是,通讀mdadm手冊頁、發行版發布的任何 RAID 文件和 Documentation/md.txt(來自核心原始碼,與您的核心版本相對應)。這些可能不是最容易理解的文件,但它們通常都是最新的。

還有一個Linux Raid wiki,但要注意並非所有內容都是最新的。

那裡還有其他頁面,但要特別小心提及mkraid/etc/raidtab作為歷史記錄以外的任何內容,因為這些工具已經過時了十年。

引用自:https://unix.stackexchange.com/questions/97189