10.2 使用 mdadm 建立巢狀 RAID 10 設備

10.2.1 瞭解巢狀 RAID 設備

巢狀 RAID 設備由 RAID 陣列構成,它使用其他 RAID 陣列取代實體磁碟做為其基本元素。此組態的目標是提高 RAID 的效能和容錯能力。

Linux 支援巢狀化 RAID 1 (鏡像) 與 RAID 0 (分割) 陣列。通常,此組合又稱為 RAID 10。為了辨識巢狀的順序,此文件使用下列術語︰

  • RAID 1+0: 首先建立 RAID 1 (鏡像) 陣列,然後再結合以形成 RAID 0 (分割) 陣列。

  • RAID 0+1: 首先建立 RAID 0 (分割) 陣列,然後再結合以形成 RAID 1 (鏡像) 陣列。

下表描述 RAID 10 巢狀化為 1+0 與 0+1 的優點和缺點。假設使用的儲存物件位於不同的磁碟,且每個物件都有專屬的 I/O 功能。

表 10-2 巢狀 RAID 層級

RAID 層級

描述

效能與容錯

10 (1+0)

使用 RAID 1 (鏡像) 陣列建立 RAID 0 (分割)

RAID 1+0 提供高層級的 I/O 效能、資料備援及磁碟容錯。因為 RAID 0 中的每個成員設備都是個別鏡像的,所以只要發生故障的磁碟處於不同的鏡像複製,這些故障磁碟都可進行容錯,且保持資料可用。

可以選擇性為每個基礎鏡像複製陣列設定備用,或者為服務所有鏡像複製的備用群組設定所用備用。

10 (0+1)

使用 RAID 0 (分割) 陣列建立 RAID 1 (鏡像)

RAID 0+1 提供高層級的 I/O 效能和資料備援,但容錯能力略低於 RAID 1+0。如果同側鏡像複製中的多個磁碟發生故障,則另一側的鏡像複製仍可用。但是,如果兩側鏡像複製中的磁碟同時發生故障,則會遺失所有資料。

此解決方案的磁碟容錯能力低於 1+0 解決方案,但如果要執行維護操作或維護其他位置的鏡像複製,則可使鏡像複製的一側完全處於離線狀態,此時仍可擁有儲存設備的完整功能。同樣地,如果兩個位置之間斷開連接,則每個位置都可獨立進行操作。但如果分割經過鏡像處理的區段,則上述說法不正確,因為鏡像複製的管理處於較低層級。

如果設備發生故障,則位於那側的鏡像複製將失敗,因為 RAID 1 不具容錯能力。建立新 RAID 0 以取代發生故障的那一側,然後重新同步鏡像複製。

10.2.2 使用 mdadm 建立巢狀 RAID 10 (1+0)

建立巢狀 RAID 1+0 的方法是︰建立兩個或更多 RAID 1 (鏡像) 設備,然後將其做為元件設備用於 RAID 0。

重要: 如果需要管理與設備的多個連線,您必須在設定 RAID 設備之前設定多重路徑 I/O。如需更多資訊,請參閱節 7.0, 管理設備的多重路徑 I/O

此節的程序使用下表顯示的設備名稱。請確保將設備名稱修改為自己設備的名稱。

表 10-3 經由巢狀化建立 RAID 10 (1+0) 的案例

Raw 設備

RAID 1 (鏡像)

RAID 1+0 (分割的鏡像)

  • /dev/sdb1
  • /dev/sdc1

/dev/md0

/dev/md2

  • /dev/sdd1
  • /dev/sde1

/dev/md1

  1. 開啟終端機主控台,以 root 使用者或同等身分登入。

  2. 建立兩個軟體 RAID 1 設備,每個 RAID 1 設備使用兩個不同設備。在指令提示符下,輸入下列兩個指令︰

    mdadm --create /dev/md0 --run --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
    
    mdadm --create /dev/md1 --run --level=1 --raid-devices=2 /dev/sdd1 /dev/sde1
    
  3. 建立巢狀 RAID 1+0 設備。在指令提示符下,使用您在步驟 2 建立的軟體 RAID 1 設備輸入以下指令︰

    mdadm --create /dev/md2 --run --level=0 --chunk=64 --raid-devices=2 /dev/md0 /dev/md1
    

    預設區塊大小為 64 KB。

  4. 在 RAID 1+0 設備 /dev/md2 上建立檔案系統,如 Reiser 檔案系統 (reiserfs)。例如,在指令提示符下輸入

    mkfs.reiserfs /dev/md2
    

    如果要使用其他檔案系統,請修改指令。

  5. 編輯 /etc/mdadm.conf 檔案,以新增元件設備和 RAID 設備 /dev/md2 的項目。

  6. 編輯 /etc/fstab 檔案以新增 RAID 1+0 設備 /dev/md2 的項目。

  7. 重新載入伺服器。

    RAID 1+0 設備已掛接到 /local

10.2.3 使用 mdadm 建立巢狀 RAID 10 (0+1)

建立巢狀 RAID 0+1 的方法是︰建立兩到四個 RAID 0 (分割) 設備,然後將其進行鏡像處理並做為元件設備用於 RAID 1。

重要: 如果需要管理與設備的多個連線,您必須在設定 RAID 設備之前設定多重路徑 I/O。如需更多資訊,請參閱節 7.0, 管理設備的多重路徑 I/O

在這一組態中,因為 RAID 0 無法容錯設備遺失,所以無法為基礎 RAID 0 設備指定備用設備。如果鏡像複製某側的設備發生故障,則必須建立取代 RAID 0 設備,然後將其新增至鏡像複製。

此節的程序使用下表顯示的設備名稱。請確保將設備名稱修改為自己設備的名稱。

表 10-4 經由巢狀化建立 RAID 10 (0+1) 的案例

Raw 設備

RAID 0 (分割)

RAID 0+1 (鏡像的分割)

  • /dev/sdb1
  • /dev/sdc1

/dev/md0

/dev/md2

  • /dev/sdd1
  • /dev/sde1

/dev/md1

  1. 開啟終端機主控台,然後以 root 使用者或同等身分登入。

  2. 建立兩個軟體 RAID 0 設備,每個 RAID 0 設備使用兩個不同設備。在指令提示符下,輸入下列兩個指令︰

    mdadm --create /dev/md0 --run --level=0 --chunk=64 --raid-devices=2 /dev/sdb1 /dev/sdc1
    
    mdadm --create /dev/md1 --run --level=0 --chunk=64 --raid-devices=2 /dev/sdd1 /dev/sde1
    

    預設區塊大小為 64 KB。

  3. 建立巢狀 RAID 0+1 設備。在指令提示符下,使用您在步驟 2 建立的軟體 RAID 0 設備輸入以下指令︰

    mdadm --create /dev/md2 --run --level=1 --raid-devices=2 /dev/md0 /dev/md1
    
  4. 在 RAID 0+1 設備 /dev/md2 上建立檔案系統,如 Reiser 檔案系統 (reiserfs)。例如,在指令提示符下輸入

    mkfs.reiserfs /dev/md2
    

    如果要使用其他檔案系統,請修改指令。

  5. 編輯 /etc/mdadm.conf 檔案,以新增元件設備和 RAID 設備 /dev/md2 的項目。

  6. 編輯 /etc/fstab 檔案以新增 RAID 0+1 設備 /dev/md2 的項目。

  7. 重新載入伺服器。

    RAID 0+1 設備已掛接到 /local