使用分割區或直接使用整個磁碟建立 mdadm 陣列有什麼區別

使用分割區或直接使用整個磁碟建立 mdadm 陣列有什麼區別

mdadm有人可以向我解釋一下,使用分割區或直接使用整個磁碟建立陣列有什麼不同嗎?假設我打算使用整個驅動器。

想像一下以兩種方式建立的 RAID6:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

或者:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

這兩種變體有什麼區別以及可能出現的問題?

例如,我指的是此類陣列上的可靠性或可管理性或復原操作等。

答案1

最重要的區別是它允許您增加磁碟更換的靈活性。下面更詳細地介紹了它以及許多其他建議。

人們應該考慮使用一個分割區而不是整個磁碟。這應該是設置陣列的一般建議,並且在將來需要進一步更換磁碟時肯定可以讓您免去一些麻煩。

最重要的論點是:

來自不同製造商的磁碟(甚至來自同一製造商的“相同”容量的不同型號)不一定具有完全相同的磁碟大小,即使是最小的大小差異,也會阻止您用更新的磁碟替換故障磁碟如果第二個小於第一個。分區可以解決這個問題;

關於為什麼使用不同製造商的磁碟的旁注: 磁碟會發生故障,這不是「如果」的問題,而是「何時」的問題。同一製造商和相同型號的磁碟具有相似的特性,因此在相同的條件和使用時間下,故障的可能性更高。所以建議使用不同廠商、不同型號的硬碟,特別是不同批次的硬碟(如果購買同一廠商、同一型號的硬碟,可以考慮從不同的商店購買)。當使用同批次的磁碟時,更換磁碟後恢復時發生第二塊磁碟故障的情況並不罕見。你當然不希望這種事發生在你身上。

所以建議:

1)對磁碟進行分割區將與使用容量稍小比總體磁碟空間(例如,我有一個 2TB 磁碟的 RAID5 陣列,我故意對它們進行分割區,每個磁碟浪費了大約 100MB)。然後,使用每個 /dev/sd?1 來組成陣列 - 這將增加一個安全裕度,以防新的替換磁碟的空間小於創建陣列時用於組裝陣列的原始磁碟的空間;

2)使用不同廠商的磁碟;

3) 如果不同製造商不適合您,請使用不同型號的磁碟;

4)使用不同批次的磁碟;

5) 在磁碟發生故障之前主動更換磁碟,而不是同時更換全部磁碟。這可能有點偏執,實際上取決於您所擁有的數據的關鍵程度。我曾經使用過的磁碟的年齡相差 6 個月;

6) 定期進行備份(始終進行備份,無論您是否使用陣列)。 Raid 的用途與備份不同。陣列可確保您的高可用性,備份可讓您恢復遺失的文件(包括意外刪除或被病毒損壞的文件,使用陣列無法保護您免受病毒損壞的一些範例)。

OBS:除了所有不可忽視的如上所述,使用 /dev/sd 之間沒有更多的技術差異嗎?與 /dev/sd?# 比較。

祝你好運

答案2

另一個重要的論點是,有些主機板可能會刪除您的 RAID 超級塊如果您使用整個磁碟設備,並且在將磁碟新增至曾經是 GPT 設備的 RAID 陣列時沒有非常小心地擦除它們。

當我的華擎主機板的 UEFI 導致我的 RAID 無法使用時,我經歷了慘痛的教訓:

為了防止這種情況發生,請始終在sgdisk --zap要用於全設備 RAID 的先前的 GPT 格式磁碟上執行。

wipefs -a 也可能有效在將裝置新增至磁碟之前擦除所有剩餘的分割區資訊(不僅是 GPT)。


也就是說,僅使用分區似乎是減少這種情況發生的最佳實踐

我從來不知道什麼是真實的爭論是為了這種最佳實踐(除了 @Marcelo 的回答解釋它可以處理稍微不同大小的磁碟)。現在我明白了。

順便說一句,如果您遇到這種情況,您的資料不會遺失。您很可能只需要sgdisk --zap設備,然後使用例如重新建立 RAID mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd(mdadm 會告訴您它已經偵測到過去的數據,並詢問您是否要繼續重新使用該數據)。我嘗試了多次並且有效,但我仍然建議您在執行此操作之前進行備份。

答案3

有幾篇文章引用了使用整個設備作為 RAID 成員而不是分區的問題,這裡有一個。我可以確認情況確實如此。

因此,如果您使用整個裝置建立 RAID(例如,/dev/sda, /dev/sdb, ... 而不是/dev/sda1, /dev/sdb1, ...),則 RAID 裝置在重新啟動後不會重新組裝,即使您將設定儲存在mdadm.conf.主機板韌體也有可能覆蓋或刪除 RAID 超級塊。在我的設置中,運行mdadm --assemble --scan --verbose無法讓我恢復 RAID 設置,並且 RAID 超級塊似乎不可用。

答案4

將磁碟而不是分割區一起組成 RAID,然後再對 RAID 進行分割的情況並不罕見。特別是,大多數硬體 RAID 控制器甚至無法讀取分割區表,因此它們總是在整個磁碟上操作。但軟體 RAID 也可以達到相同的效果。如果配置正確,軟體 RAID 將在重新啟動時正常重新組裝。當然,請確保磁碟上沒有留下任何先前的分割表的痕跡。這一點尤其重要,因為許多磁碟在交付時都已預先格式化,並且許多工具(軟體RAID、文件系統等)往往會在開始時留下“空扇區”,而以前分區表的這些痕跡可以保留在其中。

當您設定 RAID 時,購買一兩個額外的磁碟作為備用也是值得的。如果任何磁碟發生故障,您可以快速更換它,這在 RAID5 或兩磁碟 RAID1 中尤其重要,在單一磁碟發生故障後,您將沒有冗餘,直到故障磁碟被更換並且 RAID 已完成重新同步。透過擁有精確匹配的備用磁碟,您還可以避免 RAID 中「弱」磁碟可能引起的問題,例如新磁碟比舊磁碟速度慢或小一點。

儘管如此,無論您是否有分區,“小一點”的問題都可以解決。只需使用裝置映射器建立虛擬磁碟,即可從新磁碟取得 99.9% 的容量,並從系統磁碟或 SSD 取得缺少的 0.1%。或者,您可以在 initramfs 階段重新啟動期間收縮檔案系統(請參閱https://serverfault.com/a/888830如何做到這一點),然後縮小 RAID,您也可以恢復線上狀態。

換句話說:將整個磁碟用於硬體或軟體 RAID 或 ZFS 記憶體池是完全可以的。

相關內容