鏡像 RAID 設置中的磁碟是否可以互換?
人們經常寫道,鏡像 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:
mdadm -r /dev/md0 /dev/sdb1
- 卸下驅動器
- 裝上新驅動
- 對新驅動器進行分區(通常,但不總是,將再次成為 sdb)。
mdadm -a /dev/md0 /dev/sdb1
這不需要任何停機時間。
另請注意,如果您從鏡像引導,則需要確保引導載入程序(例如,grub)安裝到兩個磁碟。如何執行此操作取決於您的發行版。
還要別的嗎?
是的。
mdadm --create
不是恢復步驟。它用於創建一個新的空白數組,下一步通常是pvcreate
ormkfs
。已經存在的數組開始使用mdadm --assemble
. (這似乎是一個足夠常見的錯誤,並且有可能破壞數據。)最後的評論
您可能應該花點時間熟悉一下 mdraid 文件(畢竟您信任它的數據)*。*特別是,通讀
mdadm
手冊頁、發行版發布的任何 RAID 文件和 Documentation/md.txt(來自核心原始碼,與您的核心版本相對應)。這些可能不是最容易理解的文件,但它們通常都是最新的。還有一個Linux Raid wiki,但要注意並非所有內容都是最新的。
那裡還有其他頁面,但要特別小心提及
mkraid
或/etc/raidtab
作為歷史記錄以外的任何內容,因為這些工具已經過時了十年。