Debian

md raid 因缺少驅動器而無法啟動

  • May 3, 2017

我有一個帶有 Debian Jessie 的伺服器,4 個驅動器 sda 到 sdd,所有這些都同樣分區。系統處於對所有驅動器的 raid1 md RAID 中。所有驅動器都有 grub,我可以互相交換磁碟,每個驅動器都是可引導的,並且系統啟動愉快。所有驅動器都包含完全相同的格式:

 sdx1 - Boot Partition, GRUB installed
 sdx2 - Raid 1 /boot
 sdx3 - Raid 1 /
 sdx4 - Raid 10 swap
 sdx5 - non-md btrfs Raid 6 /data

數據分區是raid6 btrfs,我目前正在嘗試通過將驅動器換成更大的驅動器來升級容量,因為我可能有兩次失敗,我的第一反應是更換一個驅動器並重新啟動,恢復使用新安裝的驅動器出現故障的 RAID 陣列,重建後一切恢復正常。

但是,一旦我將驅動器交換為使 RAID 陣列無效的東西,機器(遺憾的是目前是無頭的)就無法啟動。我可以整天互相交換光碟,並且可以愉快地啟動。但是,如果我移除磁碟或換入不屬於 raid 的任何內容,則無法啟動。

我錯過了什麼嗎?我如何告訴 md 可以在缺少磁碟/降級的陣列的情況下自動啟動?最後,就 md 而言,即使四張光碟中的一張也可以自己支持整個系統,數據分區是另一隻野獸,因為它至少需要兩個驅動器,但 md 不應該擔心,因為那是純 btrfs襲擊。

我知道對於目前的案例,我可以從 raid 中刪除驅動器,對其進行升級,然後將其放回原處,但是如果發生故障,如果系統確實無法啟動,我就無法刪除驅動器向上。

作為更新和答案 - 同時我發現這裡唯一真正缺少的是 fstab 中的 nofail 標誌。文件系統已降級,如果沒有設置 nofail 選項,它將不會以降級狀態掛載文件系統。

據我所知,目前還不可能使用 mdadm 創建一個 raid,您可以在沒有單獨的引導分區的情況下從中引導。我假設您以與此處所述類似的方式設置它,它使用 raid10,但適用於其他 raid 級別:

如何使用 3 或 4(或更多)磁碟軟體 raid10 創建可引導的冗餘 Debian 系統?

可能你沒有在bios中配置其他磁碟啟動?否則引導分區不完全相同,即具有相同 UUID 的精確副本。

要使特定磁碟能夠引導,它需要有一個引導扇區,並且需要將 bios 配置為從它引導(以及作為 raid 一部分的其他引導磁碟的列表)。當然,要成功完成引導,磁碟還需要有一個引導分區。由於這些引導分區不是 raid 的一部分,因此每個引導磁碟都有自己的。如果您確保每個引導分區包含完全相同的文件系統(例如,使用 dd 將其複製過來)並且每個磁碟都有一個使用該引導分區上的映像創建的引導扇區,那麼系統應該能夠從任何磁碟引導. 即使 raid 降級,降級的 raid 也不應該阻止成功引導。否則,這會給進行突襲辯論帶來很大的好處。

引用連結:

屬於 raid 的每個磁碟都應該有一個不屬於 raid 的大約 1 GB 的可引導分區。像往常一樣創建這些分區,它們的大小必須完全相同。將它們標記為可引導,其中一個磁碟上的掛載點應為 /boot,您可以將其他磁碟保留為未掛載。

使用 dd 製作引導分區的精確副本後:

現在確保您的 BIOS 配置為嘗試從所有 3 個磁碟啟動,順序無關緊要。只要 bios 會嘗試從任何磁碟啟動,那麼萬一其中一個磁碟發生故障,系統就會自動從另一個磁碟啟動,因為 UUID 完全相同。

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