
我有一台帶有 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 中刪除驅動器,升級它,然後將其放回原處,但如果發生故障,如果系統無法啟動,我將無法刪除驅動器向上。
答案1
作為更新和答案 - 同時,我發現這裡唯一真正缺少的是 fstab 中的 nofail 標誌。檔案系統已降級,如果沒有設定 nofail 選項,則不會以降級狀態掛載檔案系統。
答案2
據我所知,目前還不可能使用 mdadm 建立一個 raid,您可以從中啟動而無需單獨的啟動分割區。我假設您以與此處描述的類似方式進行設置,它使用 raid10,但適用於其他 raid 級別:
如何使用 3 或 4(或更多)磁碟軟體 raid10 建立可引導的冗餘 Debian 系統?
您可能沒有在BIOS中配置從其他磁碟啟動嗎?否則引導分割區不完全相同,即具有相同 UUID 的精確副本。
要使特定磁碟能夠啟動,它需要有一個啟動磁區,並且需要將 BIOS 配置為從該磁碟啟動(以及屬於 raid 一部分的其他啟動磁碟的清單)。當然,要成功完成啟動,磁碟還需要有一個啟動分割區。由於這些引導分割區不是 raid 的一部分,因此每個開機磁碟都有自己的開機分割區。如果您確保每個開機分割區包含完全相同的檔案系統(例如使用 dd 將其複製過來)並且每個磁碟都有一個使用該開機分割區上的映像建立的開機磁區,則系統應該能夠從任何磁碟開機。即使 raid 降級,降級的 raid 也不應該妨礙成功啟動。否則的話,突襲就會帶來巨大的好處。
引用自連結:
屬於 raid 的每個磁碟都應該有一個大約 1 GB 的可開機分割區,該分割區不屬於 raid 的一部分。正常建立這些分區,它們的大小必須完全相同。將它們標記為可引導,其中一個磁碟上的掛載點應該是 /boot,您可以將其他磁碟保留為未掛載。
使用 dd 製作啟動分區的精確副本後:
現在確保您的 BIOS 配置為嘗試從所有 3 個磁碟啟動,順序並不重要。只要 BIOS 嘗試從任何磁碟啟動,那麼萬一其中一個磁碟出現故障,系統就會自動從另一個磁碟啟動,因為 UUID 完全相同。