Ubuntu RAID 1架設指南:步驟、設定、故障排除

目次

1. 前言

為什麼要在 Ubuntu 上建構 RAID 1?

Ubuntu 是一個從個人到企業等級都被廣泛使用的 Linux 發行版。由於其高度的可靠性和彈性,也經常被應用於伺服器用途。在這樣的 Ubuntu 環境中建構 RAID 1(磁碟鏡像),可以確保資料的冗餘性,並將因磁碟故障導致的資料遺失風險降到最低

RAID 1 的優點是,它會在兩顆或更多磁碟上即時寫入相同的資料,即使其中一顆磁碟發生故障,整個系統也能持續運作。因此,對於處理重要檔案或服務的 Ubuntu 環境來說,導入 RAID 1 是一個有效的保護措施。

軟體 RAID 和硬體 RAID 的差異

建構 RAID 的方法主要分為兩種。一種是硬體 RAID,它是使用專用的 RAID 控制器或主機板的 RAID 功能來建構的。另一種是軟體 RAID,它是使用作業系統上的軟體(在 Linux 中主要是 mdadm)來配置的。

在 Ubuntu 中,考量到成本和配置的彈性,選擇軟體 RAID 是主流。本文將以 Ubuntu 中 RAID 1 的建構方法為中心,全面解說安裝時的設定方法、運作與管理的重點,以及發生故障時的應對措施。

透過本文您可以學到

閱讀本指南後,您將獲得以下知識和技能:

  • RAID 1 的基礎知識和在 Ubuntu 上的運作方式
  • 使用軟體 RAID(mdadm)建構 RAID 1 的步驟
  • RAID 1 的重建、狀態確認和故障排除
  • Ubuntu Server 和 Desktop 版本的差異與注意事項
  • 實務上很有幫助的常見問題解答以及 GRUB 和 fstab 的設定知識

RAID 一旦建構完成後,就不太需要花費太多心思去管理,但初始設定的理解非常重要。本文將以初學者也能理解的方式,詳細且仔細地解說實用的資訊,請務必閱讀到最後。

2. RAID 1 的基礎知識

RAID 等級的種類與 RAID 1 的特點

RAID(Redundant Array of Independent Disks,獨立磁碟冗餘陣列)是一種結合多個硬碟以提高資料安全性與存取速度的技術。RAID 存在多個「等級」,每個等級都有其特點。

常見的 RAID 等級如下:

  • RAID 0:透過條帶化(striping)提高速度,但沒有冗餘性
  • RAID 1:透過鏡像(mirroring)確保冗餘性(本文的主題)
  • RAID 5:使用三顆以上的磁碟和同位檢查資訊(parity)來提供冗餘性
  • RAID 6:RAID 5 的強化版,具有兩個同位檢查資訊,提供更高的容錯能力
  • RAID 10 (1+0):結合 RAID 1 和 RAID 0 的配置

其中,RAID 1 採用將相同的資料寫入兩顆磁碟的「鏡像」方式。因此,即使其中一顆磁碟故障,也能從另一顆磁碟讀取資料,具有優異的可用性。

鏡像的運作機制(圖解示意)

RAID 1 的運作機制非常簡單。例如,假設有磁碟 A 和磁碟 B 如下:

[寫入]
使用者儲存檔案 A → 同時寫入磁碟 A 和磁碟 B

[讀取]
讀取可以從任何一顆磁碟進行,以優化效能

由此可見,資料總是會被複製,因此對於物理性故障具有很高的抵抗力,這是 RAID 1 最大的優點。

軟體 RAID 和硬體 RAID 的差異

RAID 的建構方法主要有以下兩種:

  • 軟體 RAID (例如 mdadm)
    這是 Ubuntu 主要使用的方式。它在作業系統層級進行 RAID 控制,具有彈性的設定和成本上的優勢。在 RAID 陣列的建構和管理方面,它提供了最高的自由度,並廣泛應用於一般的伺服器建構中。
  • 硬體 RAID (RAID 卡或 BIOS 內建功能)
    使用專用的控制器來配置 RAID。它的 CPU 負載較低,作業系統會將其視為單一磁碟。然而,當控制器發生故障時,修復難度會比較高,這也是其缺點。

什麼是假 RAID(BIOS RAID)?

某些主機板在 BIOS 層級提供了 RAID 功能,這也稱為「假 RAID (Fake RAID)」。

假 RAID 看起來像是硬體 RAID,但實際上它是透過驅動程式層級進行控制,其結構更接近於軟體 RAID。雖然 Ubuntu 也部分支援假 RAID,但由於使用 mdadm 進行軟體 RAID 更易於管理且具有較高的修復性,因此一般來說並不建議使用假 RAID。

2. RAID 1 的基礎知識

RAID 等級的種類與 RAID 1 的特點

RAID(Redundant Array of Independent Disks,獨立磁碟冗餘陣列)是一種結合多個硬碟以提高資料安全性與存取速度的技術。RAID 存在多個「等級」,每個等級都有其特點。

常見的 RAID 等級如下:

  • RAID 0:透過條帶化(striping)提高速度,但沒有冗餘性
  • RAID 1:透過鏡像(mirroring)確保冗餘性(本文的主題)
  • RAID 5:使用三顆以上的磁碟和同位檢查資訊(parity)來提供冗餘性
  • RAID 6:RAID 5 的強化版,具有兩個同位檢查資訊,提供更高的容錯能力
  • RAID 10 (1+0):結合 RAID 1 和 RAID 0 的配置

其中,RAID 1 採用將相同的資料寫入兩顆磁碟的「鏡像」方式。因此,即使其中一顆磁碟故障,也能從另一顆磁碟讀取資料,具有優異的可用性。

鏡像的運作機制(圖解示意)

RAID 1 的運作機制非常簡單。例如,假設有磁碟 A 和磁碟 B 如下:

[寫入]
使用者儲存檔案 A → 同時寫入磁碟 A 和磁碟 B

[讀取]
讀取可以從任何一顆磁碟進行,以優化效能

由此可見,資料總是會被複製,因此對於物理性故障具有很高的抵抗力,這是 RAID 1 最大的優點。

軟體 RAID 和硬體 RAID 的差異

RAID 的建構方法主要有以下兩種:

  • 軟體 RAID (例如 mdadm)
    這是 Ubuntu 主要使用的方式。它在作業系統層級進行 RAID 控制,具有彈性的設定和成本上的優勢。在 RAID 陣列的建構和管理方面,它提供了最高的自由度,並廣泛應用於一般的伺服器建構中。
  • 硬體 RAID (RAID 卡或 BIOS 內建功能)
    使用專用的控制器來配置 RAID。它的 CPU 負載較低,作業系統會將其視為單一磁碟。然而,當控制器發生故障時,修復難度會比較高,這也是其缺點。

什麼是假 RAID(BIOS RAID)?

某些主機板在 BIOS 層級提供了 RAID 功能,這也稱為「假 RAID (Fake RAID)」。

假 RAID 看起來像是硬體 RAID,但實際上它是透過驅動程式層級進行控制,其結構更接近於軟體 RAID。雖然 Ubuntu 也部分支援假 RAID,但由於使用 mdadm 進行軟體 RAID 更易於管理且具有較高的修復性,因此一般來說並不建議使用假 RAID。

3. 軟體 RAID(mdadm)による RAID 1 構築

3.1 建構前的準備與需求確認

要建構 RAID 1,至少需要兩顆物理磁碟(或未使用的分割區)。已經作為系統磁碟使用的磁碟不適用,因此請準備專用的儲存裝置。

首先,請確認目標磁碟。

lsblk

或者,您可以使用以下指令查看更詳細的資訊:

sudo fdisk -l

假設您的磁碟是 /dev/sdb/dev/sdc,我們將以此為例繼續說明。

※在建構之前,請務必確認目標磁碟不包含任何重要資料。建立 RAID 時會格式化磁碟,所有資料都將被清除。

3.2 安裝 mdadm

mdadm 包含在 Ubuntu 的標準軟體庫中,您可以使用以下指令輕鬆安裝:

sudo apt update
sudo apt install mdadm

在安裝過程中,可能會詢問您「關於郵件通知的設定」,您可以稍後再進行變更。一開始使用預設設定即可。

3.3 建立 RAID 1 陣列的步驟

確認目標磁碟後,請使用以下指令建立 RAID 1 陣列:

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

指令說明:

  • /dev/md0:新建立的 RAID 裝置名稱
  • --level=1:指定 RAID 等級 1(鏡像)
  • --raid-devices=2:配置中使用的裝置數量
  • /dev/sdb /dev/sdc:實際使用的磁碟

建立完成後,您可以使用以下指令查看狀態:

cat /proc/mdstat

如果輸出中顯示 /dev/md0 以及同步中的資訊,則表示 RAID 1 的建立已成功。

3.4 RAID 配置的永久化設定(mdadm.conf 和 fstab)

僅建立 RAID 陣列並不足以在重新啟動後自動識別,因此需要進行永久化設定。

首先,將目前的 RAID 配置儲存到 mdadm.conf 檔案中:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

接下來,在 RAID 陣列上建立檔案系統(例如:ext4):

sudo mkfs.ext4 /dev/md0

建立掛載點並嘗試掛載:

sudo mkdir -p /mnt/raid1
sudo mount /dev/md0 /mnt/raid1

確認運作正常後,為了在開機時自動掛載,請使用 UUID 將其添加到 /etc/fstab 檔案中:

sudo blkid /dev/md0

根據輸出的 UUID,如下所示編輯 /etc/fstab 檔案:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/raid1 ext4 defaults 0 0

這樣設定後,RAID 1 將在重新啟動後自動掛載。

4. 在 Ubuntu 安裝時配置 RAID 1 的方法

4.1 在 Ubuntu Server 版本的安裝程式中配置 RAID 的步驟

Ubuntu Server 的安裝程式支援 RAID 和 LVM 等進階儲存設定。以下將介紹 RAID 1 的配置步驟。

步驟 1:從安裝媒體開機
將 Ubuntu Server ISO 寫入 USB 隨身碟等裝置,然後啟動目標機器。

步驟 2:完成網路和基本設定
依序完成語言、鍵盤、網路設定等初始設定。

步驟 3:進入儲存設定
請選擇「Custom Storage Layout(自訂儲存配置)」,而不是「Guided(導引式)」。

步驟 4:配置 RAID

  1. 選擇兩顆空的磁碟
  2. 建立分割區(例如:/boot、swap、/ 等)
  3. 選擇「Create Software RAID(建立軟體 RAID)」
  4. 選擇 RAID 1,然後選擇目標裝置以配置陣列
  5. 將檔案系統指派給 RAID 陣列,並指定掛載點

步驟 5:安裝開機載入程式(GRUB)
在 RAID 配置中,建議將 GRUB 安裝到兩顆磁碟上。這樣即使其中一顆磁碟損壞,系統也能正常啟動。

4.2 如果想在 Ubuntu Desktop 版本中使用 RAID

Ubuntu Desktop 版本標準情況下不包含安裝時的 RAID 配置功能。因此,如果您想使用 RAID 1,需要採取以下步驟:

方法 1:從 Live 環境手動配置 RAID → 安裝 Desktop 環境

  1. 從 Live USB 開機
  2. 使用 mdadm 建構 RAID 1
  3. 將 Desktop 環境安裝到 RAID 裝置(例如:/dev/md0)
  4. 調整 grubfstab 的設定

這種方法稍微複雜,但彈性較高,如果您想在 GUI 環境中使用 RAID 1,這是一個有效的方法

方法 2:在 Server 版本中配置 RAID → 之後再新增 GUI 套件
先安裝可以配置 RAID 的 Server 版本,然後再新增 ubuntu-desktop 元套件來建構 GUI 環境。

sudo apt update
sudo apt install ubuntu-desktop

這種方法的穩定性較高,如果您想在已配置 RAID 的環境中新增 GUI,這是推薦的方法

Desktop 和 Server 版本的選擇基準

比較項目Server 版Desktop 版
RAID 配置的容易度◎ 內建於安裝程式中△ 需要手動建構
GUI 介面×(以 CLI 為主)◎(標準配備 GUI)
適合初學者△ 需要一些經驗◎ 安裝簡單
彈性◎ 專為伺服器用途設計○ 可透過客製化來對應

如果主要考量是 RAID 的運作,一開始就選擇 Server 版本會更順利地完成建構。如果堅持使用 Desktop 版本,則適合使用 Live 環境建構或之後再新增 GUI 的方法。

5. RAID 1 的運作與故障排除

5.1 RAID 陣列的狀態監控與確認方法

日常監控 RAID 1 的狀態對於及早發現故障至關重要。您可以使用以下指令查看目前 RAID 陣列的狀態:

cat /proc/mdstat

此指令會顯示 RAID 陣列的同步狀態以及是否有故障的磁碟。如果正在同步,會顯示類似 [UU] 的資訊;如果包含底線,例如 [_U],則表示有一顆磁碟已從陣列中移除。

若要取得更詳細的資訊,請使用以下指令:

sudo mdadm --detail /dev/md0

輸出結果會顯示每個裝置的狀態、UUID 和重建進度等資訊。建議定期檢查日誌並設定郵件通知。

5.2 磁碟故障時的應對與重建步驟

RAID 1 的主要優勢在於,即使其中一顆磁碟故障,系統也能持續運作。然而,一旦發生故障,您需要迅速採取行動。

【步驟 1】找出故障的磁碟
mdadm --detail 的結果中,如果看到標示為「Removed」或「Faulty」的裝置,那就是有問題的磁碟。

【步驟 2】從 RAID 陣列中移除故障的磁碟

sudo mdadm /dev/md0 --remove /dev/sdX

(請將 /dev/sdX 替換為實際的磁碟名稱)

【步驟 3】準備新的磁碟
安裝新的磁碟,如果需要建立分割區,請使用以下指令:

sudo fdisk /dev/sdX

建議將其設定為 RAID 專用的 fd(Linux RAID 自動偵測)類型。

【步驟 4】將新磁碟加入 RAID 陣列並開始重新同步

sudo mdadm /dev/md0 --add /dev/sdX

之後,您可以使用 cat /proc/mdstat 查看重建的進度。這可能需要幾分鐘到幾小時不等。

5.3 GRUB 的安裝與冗餘性確保

在 RAID 1 配置中,將開機載入程式(GRUB)安裝到兩顆磁碟上,可以確保即使其中一顆磁碟故障,系統也能繼續啟動。

若要在已安裝的系統中將 GRUB 安裝到另一顆磁碟上:

sudo grub-install /dev/sdX
sudo update-grub

/dev/sdX 是新的磁碟)

請更新 GRUB 的設定:

sudo update-grub

執行這些步驟後,即使其中一顆磁碟故障,您只需切換 BIOS 中的開機順序即可啟動系統。要最大限度地發揮 RAID 的冗餘性,多重安裝 GRUB 是必要的步驟

6. 使用硬體 RAID 的情況

6.1 什麼是硬體 RAID?

硬體 RAID 是使用專用的 RAID 控制器(RAID 卡)來配置 RAID 陣列。RAID 的處理不是由作業系統或 CPU 負責,而是由控制器端處理,因此具有較佳的效能,並能減輕 CPU 的負載

此外,作業系統會將其視為單一磁碟,因此無需進行 mdadm 等設定,即可作為一般的儲存裝置使用。

6.2 在 Ubuntu 上使用硬體 RAID 的優缺點

優點:

  • RAID 處理完全由硬體完成,因此 CPU 負載較低
  • 可在 BIOS 層級配置 RAID,因此不依賴特定的作業系統即可導入
  • 故障時的資料復原速度快,許多型號支援熱插拔

缺點:

  • RAID 卡本身如果故障,除非使用相同型號和韌體的卡,否則難以復原
  • 由於依賴 RAID 卡,彈性的遷移和除錯較為困難
  • 成本較高(RAID 卡的價格從數千到數十萬日元不等)

6.3 Ubuntu 中硬體 RAID 的確認與對應方法

如果安裝 Ubuntu 的機器連接了 RAID 卡,作業系統會將 RAID 陣列視為一般的區塊裝置(例如:/dev/sda)顯示。因此,mdadm 指令無法識別它

要確認 RAID 陣列的狀態,您需要使用 RAID 卡製造商提供的專用工具

常見的 RAID 卡和工具:

製造商工具名稱(範例)備註
LSI / BroadcomstorcliMegaCLI許多伺服器都搭載
HP / HPEhpssaclissacli適用於 ProLiant 系列
Dellomreport(OpenManage)適用於 Dell 專用伺服器
IntelIntel RAID Web Console部分提供 GUI 介面

在 Ubuntu 中使用這些工具時,您需要從製造商的官方網站下載 Linux 相容的套件(.deb)並進行安裝。

6.4 注意與假 RAID(BIOS RAID)的差異

有些看似硬體 RAID,但實際上是 在 BIOS 層級模擬 RAID 的「假 RAID」。這種方式透過提供驅動程式給作業系統來配置 RAID,因此實質上其行為更接近於軟體 RAID。

在 Ubuntu 中使用假 RAID 需要 dmraidmdadm 的特殊設定,且 在復原和相容性方面容易發生問題,因此不太建議初學者使用。

6.5 應該選擇硬體 RAID 的情況?

在以下情況下,導入硬體 RAID 會比較適合:

  • 需要集中管理大量儲存空間的中大型伺服器用途
  • 需要熱插拔或具備電池備份快取等 RAID 卡特有的功能
  • 希望將 CPU 資源專注於儲存控制以外的任務
  • 希望比軟體 RAID 更嚴格地進行故障偵測和日誌管理

反之,如果是小型檔案伺服器或個人使用,使用 mdadm 進行軟體 RAID 在成本效益和彈性方面更具優勢

7. 常見問題(FAQ)

Q1. RAID 1 可以取代備份嗎?

A1. 不,RAID 1 無法取代備份。

RAID 1 是一種 透過冗餘配置來防止因磁碟故障導致系統停止運作 的技術。如果您因為操作錯誤刪除檔案、遭受惡意軟體攻擊或因作業系統問題導致資料損毀,這些問題會同時影響兩顆磁碟上的相同資料。因此,務必與備份一起使用。

Q2. 在 RAID 1 配置中,如果其中一顆磁碟故障會怎麼樣?

A2. 系統會使用另一顆正常的磁碟繼續正常運作。

由於 RAID 1 是鏡像配置,即使其中一顆磁碟發生物理性損壞,系統也會持續運作。在日誌中確認異常後,更換故障的磁碟並將新磁碟重新加入 RAID 陣列進行重新同步即可完成修復。

Q3. Ubuntu Desktop 版本也可以使用 RAID 1 嗎?

A3. 是的,可以。但無法在安裝程式中直接配置 RAID。

由於 Ubuntu Desktop 的標準安裝程式沒有 RAID 建構功能,您可以使用以下兩種方法來實現:

  • 從 Live USB 手動建構 RAID 後再安裝作業系統
  • 先在 Ubuntu Server 上配置 RAID 後再安裝 GUI 環境

後者發生問題的機率較低,也更推薦給初學者。

Q4. RAID 1 配置後,如何定期檢查 RAID 的狀態?

A4. 使用 cat /proc/mdstatmdadm --detail /dev/md0 指令。

要檢查 RAID 的運作狀態,請使用以下指令:

cat /proc/mdstat
sudo mdadm --detail /dev/md0

此外,您也可以在 /etc/mdadm/mdadm.conf 中設定通知,以透過 電子郵件接收警報通知

Q5. 更換 RAID 1 中的磁碟後,需要重新安裝 GRUB 嗎?

A5. 是的,您需要在更換後的磁碟上也安裝 GRUB。

在 RAID 1 配置中,將 GRUB 安裝到兩顆磁碟上才能確保冗餘性。如果只安裝在一顆磁碟上,當該磁碟故障時,系統可能會無法啟動。

sudo grub-install /dev/sdX
sudo update-grub

/dev/sdX 是新的磁碟)

Q6. mdadm 和硬體 RAID 哪個比較安全?

A6. 視使用環境而定,但對於個人用途或小型伺服器來說,mdadm 通常更容易管理且安全。

硬體 RAID 雖然效能高且可靠性佳,但 當 RAID 卡故障時,復原難度較高,甚至可能需要相同型號的卡才能復原。另一方面,mdadm 在 Linux 上運作,發生問題時可以找到更多相關資訊,也更容易處理

Q7. 可以暫停或重新啟動 RAID 陣列嗎?

A7. 是的,可以停止和重新啟動陣列。但需要注意。

停止指令範例:

sudo mdadm --stop /dev/md0

重新啟動(重新組裝)範例:

sudo mdadm --assemble --scan

※請務必設定 mdadm.confinitramfs,以確保開機時陣列能夠自動組裝。

8. 總結

RAID 1 的目的是「確保冗餘性」

RAID 1 最主要的特點是 即時複製資料,即使其中一顆磁碟故障也能持續運作。這有助於避免因意外的硬體故障導致服務中斷。然而,請務必記住 RAID 並非備份的替代方案。對於誤刪、覆寫或病毒攻擊等情況,仍然需要額外的備份機制。

Ubuntu 中 RAID 的選擇

在 Ubuntu 中,您可以根據情況和目的選擇不同的 RAID 配置方法:

配置方法特點推薦用途
mdadm(軟體 RAID)建構彈性且成本較低,資訊豐富個人用戶、小型伺服器
硬體 RAID效能高、CPU 負載低,但成本高且復原難度較高企業用途、大型儲存環境
假 RAID(BIOS RAID)性質介於兩者之間,不建議在 Ubuntu 中使用基本上應避免使用

特別是使用 mdadm 進行建構,對於 Ubuntu 用戶來說是最實用的選擇。

建構後的運作與維護將左右可靠性

RAID 的建構只是開始。定期檢查狀態、發生故障時迅速處理,以及適當設定 GRUB 和 fstab 才是實現長期穩定運作的關鍵。以下是需要注意的維護重點:

  • 使用 cat /proc/mdstatmdadm --detail 定期檢查
  • 了解 RAID 陣列的重建步驟
  • 透過多重安裝 GRUB 確保開機冗餘性
  • 定期進行備份

最後

RAID 看似複雜,但如果您使用 Ubuntu 和 mdadm只需透過指令即可簡單地完成建構。參考本文的內容,即使是第一次接觸 RAID 的人,也能建立一個不易發生問題的穩固系統環境。

在未來的伺服器運作和系統設計中,善用 RAID 1,享受安心穩定的 Linux 生活。

年収訴求