如何為伺服器系統碟配置軟體 RAID 1 備援

你可以使用軟體 RAID 1 鏡像伺服器的系統碟,並在單一磁碟發生故障後,依然讓伺服器維持運作並繼續啟動。如此一來,作業系統就會以兩份完全相同的副本存在,分別位於兩顆磁碟上。在 Linux 上,你將使用 mdadm;在 Windows Server 上,你將使用「磁碟管理」。本指南將帶你了解前提條件、如何在兩種平台上配置軟體 RAID 1、如何驗證鏡像在故障後確實能夠啟動,以及如何透過日常維護來保持其健康狀態。在變更任何 RAID 設定之前,請先備份伺服器。要把鏡像視為一項持續承擔的責任,而不是一次性完成的任務。
前提條件與工具
硬體與軟體需求
RAID 1 透過在兩顆或更多磁碟之間精確鏡像資料,提供完整的資料備援。如果其中一顆磁碟發生故障,另一顆就會接手。對於系統碟而言,這表示作業系統能夠在單碟損壞後繼續存活,伺服器也能繼續啟動。
在你配置軟體 RAID 1 之前,請確認你擁有兩顆相同或規格接近的磁碟。容量不匹配會浪費較大磁碟上的空間,因為鏡像容量只能與較小成員碟保持一致。檢查你的 Linux 發行版是否內建 mdadm,或者你的 Windows Server 版本是否支援在「磁碟管理」中建立鏡像磁碟區。提前安排維護時段,並確認備份已經過驗證。
將 RAID 1 用於作業系統開機碟,可以為實體伺服器上的作業系統提供備援保護。有些裸機服務供應商會直接提供帶有作業系統備援的軟體 RAID,例如某些預裝 Windows Server 2022 的映像檔。在修改任何現有配置之前,請先確認你的服務供應商已預先設定了哪些內容。
軟體 RAID 1 最適合的情境
軟體 RAID 與硬體 RAID 是互補方案,各自適用於不同情境。軟體 RAID 執行於主機 CPU 上,不需要額外的 RAID 控制卡。硬體 RAID 則將同位元校驗與鏡像工作卸載到專用控制器上,通常還具備自己的快取與電池備援。
| 因素 | 軟體 RAID 1 | 硬體 RAID 1 |
|---|---|---|
| 成本 | 無需購買控制器 | 需要 RAID 控制卡 |
| 可攜性 | 陣列可隨作業系統遷移 | 依賴特定控制器型號 |
| CPU 負載 | 占用主機 CPU | 由控制器卸載處理 |
如果你想在單台伺服器上以較低成本實現簡單鏡像,並且重視跨硬體遷移的便利性,那麼軟體 RAID 1 是合適的選擇。如果你需要控制器層級快取、熱插拔管理,或希望在多台機器上保持一致行為,那麼硬體 RAID 會更適合。兩種方式並不存在絕對優劣,關鍵在於讓方案與工作負載相匹配。
逐步配置軟體 RAID 1
在變更任何 RAID 設定之前,請先備份伺服器。既有的 RAID 配置可能需要先刪除,而這一步會毀損資料。
在 Linux 上使用 mdadm 建立陣列
你可以在 Live 環境中操作,也可以在已安裝好的系統中操作,具體取決於作業系統是否已經部署。下面的流程假設你有兩顆空白磁碟:/dev/sda 和 /dev/sdb。
- 使用
fdisk或parted對兩顆磁碟進行分割。在每顆磁碟上建立大小相同的分割區,並將分割區類型設定為 Linux RAID autodetect(fd)。 - 使用
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1建立鏡像陣列。確認陣列已正常組裝完成。 - 在陣列上建立你選擇的檔案系統,例如
mkfs.ext4 /dev/md0。 - 將陣列掛載到目標掛載點,然後把作業系統複製或安裝到該陣列上。
- 在兩顆磁碟上都安裝開機載入程式,而不只是第一顆。對於 GRUB,請對
/dev/sda執行一次grub-install,再對/dev/sdb再執行一次。大多數鏡像失敗的問題,往往都出在這一步。 - 將陣列定義寫入
mdadm.conf,以便系統在開機時重新組裝鏡像陣列。
當你要在現有系統上配置軟體 RAID 1 時,通常需要先縮減分割區、建立鏡像陣列,再遷移資料。請務必先在備用機器上測試這一路徑。
在 Windows Server 上配置軟體 RAID 1
Windows Server 透過「磁碟管理」來處理鏡像。按下 Windows 鍵 + R,輸入 diskmgmt.msc,然後按 Enter。
- 確認兩顆磁碟都已顯示;如果有磁碟狀態為「未初始化」,先進行初始化。
- 在開機磁碟區上按一下右鍵,選擇「新增鏡像」。
- 選擇第二顆磁碟作為鏡像目標,然後確認。
- 等待重新同步完成後,再進行重新開機或其他變更。
「磁碟管理」是在磁碟區層級對開機磁碟區進行鏡像,因此你不需要手動分割。在複製完成之前,鏡像狀態會顯示為「正在重新同步(Resynching)」。如果你是在一台已經存在 RAID 陣列的伺服器上配置軟體 RAID 1,請先刪除舊配置,並確認磁碟已經清理乾淨。
驗證鏡像系統碟
檢查陣列狀態與開機完整性
一個從未測試過的鏡像,只能算是猜測。在真正信任陣列之前,請先執行一次重新開機測試。在 Linux 上,使用 mdadm --manage /dev/md0 --fail /dev/sdb1 將一顆磁碟標記為故障,然後將其移除並重新開機。伺服器應當能夠依靠剩餘那顆磁碟正常啟動。在 Windows Server 上,請先關機,斷開其中一顆磁碟,再次啟動。確認作業系統能夠載入,且你的服務能夠正常啟動。之後重新接上磁碟,並等待鏡像重新同步。這個測試能夠證明開機載入程式確實安裝在兩顆磁碟上,而這恰恰是大多數人在配置軟體 RAID 1 時最容易做錯的一步。
請定期讀取陣列健康狀態輸出。在 Linux 上,cat /proc/mdstat 會顯示每個陣列及其狀態。健康的鏡像會將兩個成員碟都標記為作用中,狀態顯示為 [UU]。降級陣列則會顯示 [U_],表示有一個成員遺失或故障。使用 mdadm --detail /dev/md0 可以查看更詳細的資訊,包括故障裝置和重建進度。在 Windows Server 上,開啟「磁碟管理」,查看磁碟區狀態。健康鏡像會顯示為 Healthy;損壞的鏡像則會顯示為 Failed Redundancy 或 At Risk。將滑鼠懸停在磁碟區上,可以查看是哪一顆磁碟離線。
每次重新開機後,以及每次發生磁碟事件後,都應檢查這些輸出。鏡像可能會悄無聲息地損壞,而狀態列往往是你最早收到的警告。請把健康狀態下的輸出記錄一次,作為後續比對的基準。
維護與疑難排解
更換故障磁碟並重建
降級陣列仍然可以繼續運作。只是其中一個成員已經離線,鏡像現在只能依靠剩餘磁碟提供讀寫服務。在重建完成之前,你已不再具備備援,因此應將這種狀態視為緊急情況,而不是「還能勉強使用」。
首先確認故障。執行 cat /proc/mdstat,查找類似 [2/1] [U_] 的狀態,這表示有一顆磁碟遺失或故障。然後按照以下順序操作:
- 實體更換故障磁碟,並在新磁碟上建立新的 RAID-autodetect 分割區,使其分割區類型與仍在運作的成員碟一致。
- 使用
mdadm --manage /dev/md0 --add /dev/sdc1將新分割區加入陣列。工具會確認裝置已新增。 - 再次執行
cat /proc/mdstat,確認同步已經開始。輸出中會顯示新裝置,例如sdc1[2],以及復原進度列。 - 等待同步完成後再次檢查。健康且已重建完成的陣列會顯示
[2/2] [UU],表示兩個成員都處於作用中且同步完成的狀態。
在復原期間,不要重新開機,也不要拔掉另一顆磁碟。務必讓複製過程先完成。
設定監控與警示
鏡像可能在沒有任何明顯症狀的情況下損壞。伺服器依舊可以繼續提供服務,因為它只是從單一磁碟上讀寫,而畫面上不會出現任何警告。真正的危險正在於這種沉默,因為一旦第二顆磁碟再出問題,系統就會在毫無備援的情況下直接中斷。
請設定定期讀取陣列狀態的監控,並在狀態偏離健康值時立即發出警示。在 Linux 上,可以監控 /proc/mdstat,或者執行 mdadm --detail,一旦狀態不是 [UU] 就觸發警示。在 Windows Server 上,則應監控「磁碟管理」中的磁碟區狀態,並在出現 Failed Redundancy 或 At Risk 時發出警報。將警示傳送到真正有人查看的管道,並至少測試一次警示鏈路,確保它確實會觸發。
每次重新開機後、每次發生磁碟事件後,都要重新檢查狀態。保留一份健康輸出的基準記錄。配置軟體 RAID 1 只是容易的開始;在第二顆磁碟損壞之前及時發現第一次「靜默損壞」,才是真正保護伺服器的關鍵。
現在你已經掌握完整路徑:檢查前提條件、在 Linux 或 Windows Server 上建立鏡像、驗證鏡像,並持續維護它。其中有兩個步驟尤其需要格外謹慎:第一,在兩顆磁碟上都安裝開機載入程式,而不是只裝在第一顆上;第二,親自驗證在移除其中一顆磁碟後,伺服器是否仍能正常啟動。只要跳過其中任一步,鏡像就可能在你最需要它的時候失效。
請把陣列視為一項持續性的職責。每次重新開機後、每次磁碟事件後,都要檢查它的狀態。一次靜默損壞,意味著你實際上只剩下一顆磁碟,卻沒有任何警告。軟體 RAID 1 只需配置一次,但檢查它的狀態必須長期堅持。
常見問題
RAID 1 能取代一般備份嗎?
不能。鏡像只能防止單一磁碟故障,除此之外並不能保護你。它會即時複製每一個錯誤,包括誤刪檔案和資料損壞。你仍然需要獨立備份,以應對誤刪、勒索軟體和站點層級災難。
兩顆磁碟必須一樣大嗎?
盡量讓它們盡可能接近。鏡像只能使用較小成員碟的容量,因此更大的那顆磁碟會浪費空間。使用相同型號的磁碟,也能讓效能表現更可預測,並簡化後續更換流程。
可以為已經運行在單碟上的系統新增鏡像嗎?
可以,但路徑因平台而異。Windows Server 可以直接為開機磁碟區新增鏡像;而在 Linux 上,你通常需要縮減分割區、建立陣列並遷移資料。請先在備用機器上測試該流程。
重建期間會對伺服器效能造成什麼影響?
陣列會在提供正常業務讀寫的同時,把資料複製到新成員碟上。在同步完成之前,磁碟回應速度通常會變慢。應避免高寫入負載,也絕不要在重建過程中重新開機或拔掉另一顆磁碟。
軟體 RAID 1 能在虛擬機中使用嗎?
可以,但通常虛擬化平台本身已經提供了備援。在新增來賓系統層級鏡像之前,請先確認你的服務供應商或虛擬化環境的儲存配置。在兩個層面重複做保護,往往只會增加負擔,而不會帶來額外安全性。
