注意:

在 Oracle Linux 上建置軟體 RAID 陣列

簡介

獨立磁碟或 RAID 裝置的備援陣列是兩個或多個實際區塊裝置建立的虛擬裝置。此功能可將多個裝置 (通常是磁碟機或磁碟分割區) 組合成單一裝置,以保留單一檔案系統。部分 RAID 層次包含備援功能,允許檔案系統在某種程度的裝置故障時仍然存活。

Oracle Linux 核心使用多重裝置 (MD) 驅動程式來支援 Linux 軟體 RAID,並讓您將磁碟機組織成 RAID 裝置並實作不同的 RAID 層次。

如需這些不同 RAID 層次的詳細資訊,請參閱 Oracle 文件

本教學課程將與 MD 公用程式 (mdadm) 搭配使用,以建立含有備援功能的 RAID1 裝置,然後處理磁碟失敗。

目標

必要條件

具備下列配置的任何 Oracle Linux 8 系統:

設定實驗室環境

注意:使用免費實驗室環境時,請參閱 Oracle Linux Lab Basics,瞭解連線和其他使用指示。

  1. 如果尚未連線,請開啟終端機並透過 ssh 連線至上述每個執行處理。

    ssh oracle@<ip_address_of_instance>
    
  2. 確認區塊磁碟區存在。

    sudo lsblk
    

    免費實驗室環境的輸出應顯示現有檔案系統的 /dev/sda,以及可用的磁碟 /dev/sdb/dev/sdc/dev/sdd

安裝 MD 公用程式

  1. 如果系統上尚未提供,請安裝 MD 公用程式。

    檢查是否已安裝 mdadm

    sudo dnf list --installed mdadm
    

    若未安裝,請安裝 mdadm

    sudo dnf -y install mdadm
    

    注意:可用實驗室環境已安裝 MD 公用程式。

建立 RAID 裝置。

RAID1 透過將相同資料寫入陣列中的每個磁碟機,提供資料備援和抗逆力。如果一個磁碟機故障,鏡像可以滿足 I/O 要求。鏡像是一種昂貴的解決方案,因為系統會將相同資訊寫入陣列中的所有磁碟。

RAID1 的功能:

  1. 列出可用來建立 RAID 裝置的選項。

    使用 mdadm --help 顯示使用 --create 選項從未使用裝置建立新陣列。

    sudo mdadm --create --help
    
  2. 建立一個備用磁碟的 RAID1 裝置。

    sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=1 /dev/sdd
    
    • --create::建立新陣列
    • --level :RAID 層次
    • --raid-devices :陣列中的作用中裝置數目
    • --spare-devices:初始陣列中的備用 (額外) 裝置數目

    在此指令中,裝置 (陣列) 會命名為 /dev/md0,並使用 /dev/sdb/dev/sdc 建立 RAID1 裝置。裝置 /dev/sdd 會自動作為備用,以便從任何使用中裝置的故障中復原。

    輸入 y 並按下 ENTER,即可接受 Continue creating array? 提示。

    範例輸出:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=1 /dev/sdd
    mdadm: Note: this array has metadata at the start and
        may not be suitable as a boot device.  If you plan to
        store '/boot' on this device please ensure that
        your boot-loader understands md/v1.x metadata, or use
        --metadata=0.90
    mdadm: size set to 52395008K
    Continue creating array? y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    

建立檔案系統

  1. 在 RAID 裝置上建立 ext4 檔案系統並掛載。

    sudo mkfs.ext4 -F /dev/md0
    sudo mkdir /u01
    sudo mount /dev/md0 /u01
    
    
  2. 報告檔案系統磁碟用法。

    df -h
    

    範例輸出:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ df -h
    Filesystem                  Size  Used Avail Use% Mounted on
    ...
    /dev/md0                     49G   53M   47G   1% /u01
    
  3. 將項目增加到 /etc/fstab,使掛載點在重新啟動後持續保持不變。

    echo "/dev/md0    /data01    ext4    defaults    0 0" | sudo tee -a /etc/fstab > /dev/null
    

驗證 RAID 裝置

  1. 取得陣列的詳細資訊。

    sudo mdadm --detail /dev/md0
    

    範例輸出:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --detail /dev/md0
    /dev/md0:
               Version : 1.2
         Creation Time : Sat Jun  4 20:08:32 2022
            Raid Level : raid1
            Array Size : 52395008 (49.97 GiB 53.65 GB)
         Used Dev Size : 52395008 (49.97 GiB 53.65 GB)
          Raid Devices : 2
         Total Devices : 3
           Persistence : Superblock is persistent
    
           Update Time : Sat Jun  4 20:28:58 2022
                 State : clean, resyncing 
        Active Devices : 2
       Working Devices : 3
        Failed Devices : 0
         Spare Devices : 1
    
    Consistency Policy : resync
    
         Resync Status : 59% complete
    
                  Name : ol-mdadm-2022-06-04-180415:0  (local to host ol-mdadm-2022-06-04-180415)
                  UUID : f6c35144:66a24ae9:5b96e616:f7252a9f
                Events : 9
    
        Number   Major   Minor   RaidDevice State
           0       8       16        0      active sync   /dev/sdb
           1       8       32        1      active sync   /dev/sdc
    
           2       8       48        -      spare   /dev/sdd
    

    在輸出中,State 顯示陣列是乾淨並重新同步。resysc 一律是在第一次建立陣列之後或是在復原之後發生。輸出顯示重新同步已完成 59%。

  2. 檢查核心的即時資訊。

    sudo cat /proc/mdstat
    

    範例輸出:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ cat /proc/mdstat 
    Personalities : [raid1] 
    md0 : active raid1 sdd[2](S) sdc[1] sdb[0]
          52395008 blocks super 1.2 [2/2] [UU]
          [==================>..]  resync = 92.2% (48341824/52395008) finish=2.7min speed=24677K/sec
          
    unused devices: <none>
    

建立 RAID 組態檔

  1. (可選擇) 將 RAID 配置增加到 /etc/mdadm.conf

    配置檔案可識別 RAID 裝置以及特定裝置所屬陣列的裝置。根據此配置檔案,mdadm 可在開機時組合陣列。

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

    範例輸出:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --examine --scan | sudo tee -a /etc/mdadm.conf
    ARRAY /dev/md/0  metadata=1.2 UUID=f6c35144:66a24ae9:5b96e616:f7252a9f name=ol-mdadm-2022-06-04-180415:0
       spares=1
    

管理 RAID 裝置

此選項用於管理陣列內的元件裝置,例如新增、移除或故障裝置。

  1. 列出可用來管理 RAID 裝置的選項。

    sudo mdadm --manage --help
    
    • --add :Hotadd 後續裝置。
    • --remove :移除後續的非作用中裝置。
    • --fail:將後續裝置標示為錯誤。
  2. 將快取的寫入同步至永久儲存。

    執行任何磁碟管理之前,必須先這樣做,才能確保所有磁碟快取都寫入磁碟。

    sudo sync
    
  3. 將磁碟標示為失敗。

    sudo mdadm --manage /dev/md0 --fail /dev/sdb
    
  4. 取得陣列詳細資料。

    sudo mdadm --detail /dev/md0 
    

    範例輸出:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --detail /dev/md0 
    /dev/md0:
               Version : 1.2
         Creation Time : Sat Jun  4 20:08:32 2022
            Raid Level : raid1
            Array Size : 52395008 (49.97 GiB 53.65 GB)
         Used Dev Size : 52395008 (49.97 GiB 53.65 GB)
          Raid Devices : 2
         Total Devices : 3
           Persistence : Superblock is persistent
    
           Update Time : Sat Jun  4 21:34:19 2022
                 State : clean, degraded, recovering 
        Active Devices : 1
       Working Devices : 2
        Failed Devices : 1
         Spare Devices : 1
    
    Consistency Policy : resync
    
        Rebuild Status : 1% complete
    
                  Name : ol-mdadm-2022-06-04-180415:0  (local to host ol-mdadm-2022-06-04-180415)
                  UUID : f6c35144:66a24ae9:5b96e616:f7252a9f
                Events : 19
    
        Number   Major   Minor   RaidDevice State
           2       8       48        0      spare rebuilding   /dev/sdd
           1       8       32        1      active sync   /dev/sdc
    
           0       8       16        -      faulty   /dev/sdb
    

    陣列會標示為降低復原。輸出也顯示備用裝置 /dev/sdd 會自動重建陣列,而 /dev/sdb 有錯誤。

  5. 移除失敗的磁碟。

    sudo mdadm --manage /dev/md0 --remove /dev/sdb
    
  6. 取代失敗的磁碟。

    以新的實體磁碟取代伺服器的失敗實體磁碟。

    注意:使用可用實驗室環境時,此步驟不需執行任何作業。此實驗室將重新設定現有的 dev/sdb 裝置。

  7. 移除之前的 linux_raid_member 簽名。

    在 RAID 陣列中使用簽名、中繼資料會寫入磁碟,在移除這些簽名之前,無法將磁碟移至其他系統或改變。

    sudo wipefs -a -f /dev/sdb
    

    警告:wipefs 指令具有破壞性,並移除目標磁碟 (/dev/sdb) 上的整個分割區表和任何簽章。

  8. 將新的備用新增至陣列。

    sudo mdadm --manage /dev/md0 --add /dev/sdb
    
  9. 檢查備用磁碟是否存在。

    sudo mdadm --detail /dev/md0 
    

    在輸出的底部,裝置 /dev/sdb 應顯示在清單中,並將 State 設為 spare

其他相關資訊:

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或前往 Oracle Learning YouTube 通道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請瀏覽 Oracle Help Center