注意:
- 本教學課程包含在 Oracle 提供的免費實驗室環境中。
- 它會使用 Oracle Cloud Infrastructure 證明資料、租用戶以及區間的範例值。完成實驗室之後,請將這些值取代為您雲端環境特有的值。
在 Oracle Linux 上建置軟體 RAID 陣列
簡介
獨立磁碟或 RAID 裝置的備援陣列是兩個或多個實際區塊裝置建立的虛擬裝置。此功能可將多個裝置 (通常是磁碟機或磁碟分割區) 組合成單一裝置,以保留單一檔案系統。部分 RAID 層次包含備援功能,允許檔案系統在某種程度的裝置故障時仍然存活。
Oracle Linux 核心使用多重裝置 (MD) 驅動程式來支援 Linux 軟體 RAID,並讓您將磁碟機組織成 RAID 裝置並實作不同的 RAID 層次。
如需這些不同 RAID 層次的詳細資訊,請參閱 Oracle 文件。
本教學課程將與 MD 公用程式 (mdadm) 搭配使用,以建立含有備援功能的 RAID1 裝置,然後處理磁碟失敗。
目標
- 建立備援的 RAID1 裝置
- 復原失敗的 RAID1 裝置
必要條件
具備下列配置的任何 Oracle Linux 8 系統:
- 具有 sudo 權限的非 root 使用者
- 可與 Linux 軟體 RAID 搭配使用的額外區塊磁碟區
設定實驗室環境
注意:使用免費實驗室環境時,請參閱 Oracle Linux Lab Basics,瞭解連線和其他使用指示。
-
如果尚未連線,請開啟終端機並透過 ssh 連線至上述每個執行處理。
ssh oracle@<ip_address_of_instance> -
確認區塊磁碟區存在。
sudo lsblk免費實驗室環境的輸出應顯示現有檔案系統的
/dev/sda,以及可用的磁碟/dev/sdb、/dev/sdc和/dev/sdd。
安裝 MD 公用程式
-
如果系統上尚未提供,請安裝 MD 公用程式。
檢查是否已安裝
mdadm。sudo dnf list --installed mdadm若未安裝,請安裝
mdadm。sudo dnf -y install mdadm注意:可用實驗室環境已安裝 MD 公用程式。
建立 RAID 裝置。
RAID1 透過將相同資料寫入陣列中的每個磁碟機,提供資料備援和抗逆力。如果一個磁碟機故障,鏡像可以滿足 I/O 要求。鏡像是一種昂貴的解決方案,因為系統會將相同資訊寫入陣列中的所有磁碟。
RAID1 的功能:
- 包括備援功能。
- 使用兩個或更多具有零個或更多個備援磁碟的磁碟。
- 維護每個磁碟上寫入資料的確切鏡像。
- 磁碟裝置大小應該相同。
- 如果一個磁碟裝置大於另一個磁碟裝置,RAID 裝置將會是最小磁碟的大小。
- 允許在所有資料保持不變的情況下,移除或失敗最多 n-1 個磁碟裝置。
- 提供系統當機和備用磁碟時仍可繼續使用,在偵測錯誤時,會自動並立即復原 RAID1 鏡像。
- 相較於單一磁碟,因為在鏡像集中將相同的資料寫入多個磁碟,所以較慢的寫入效能。
-
列出可用來建立 RAID 裝置的選項。
使用
mdadm --help顯示使用--create選項從未使用裝置建立新陣列。sudo mdadm --create --help -
建立一個備用磁碟的 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.
建立檔案系統
-
在 RAID 裝置上建立 ext4 檔案系統並掛載。
sudo mkfs.ext4 -F /dev/md0 sudo mkdir /u01 sudo mount /dev/md0 /u01 -
報告檔案系統磁碟用法。
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 -
將項目增加到 /etc/fstab,使掛載點在重新啟動後持續保持不變。
echo "/dev/md0 /data01 ext4 defaults 0 0" | sudo tee -a /etc/fstab > /dev/null
驗證 RAID 裝置
-
取得陣列的詳細資訊。
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%。 -
檢查核心的即時資訊。
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 組態檔
-
(可選擇) 將 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 裝置
此選項用於管理陣列內的元件裝置,例如新增、移除或故障裝置。
-
列出可用來管理 RAID 裝置的選項。
sudo mdadm --manage --help--add:Hotadd 後續裝置。--remove:移除後續的非作用中裝置。--fail:將後續裝置標示為錯誤。
-
將快取的寫入同步至永久儲存。
執行任何磁碟管理之前,必須先這樣做,才能確保所有磁碟快取都寫入磁碟。
sudo sync -
將磁碟標示為失敗。
sudo mdadm --manage /dev/md0 --fail /dev/sdb -
取得陣列詳細資料。
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有錯誤。 -
移除失敗的磁碟。
sudo mdadm --manage /dev/md0 --remove /dev/sdb -
取代失敗的磁碟。
以新的實體磁碟取代伺服器的失敗實體磁碟。
注意:使用可用實驗室環境時,此步驟不需執行任何作業。此實驗室將重新設定現有的
dev/sdb裝置。 -
移除之前的 linux_raid_member 簽名。
在 RAID 陣列中使用簽名、中繼資料會寫入磁碟,在移除這些簽名之前,無法將磁碟移至其他系統或改變。
sudo wipefs -a -f /dev/sdb警告:
wipefs指令具有破壞性,並移除目標磁碟 (/dev/sdb) 上的整個分割區表和任何簽章。 -
將新的備用新增至陣列。
sudo mdadm --manage /dev/md0 --add /dev/sdb -
檢查備用磁碟是否存在。
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。
Build a Software RAID Array on Oracle Linux
F58430-01
June 2022
Copyright © 2022, Oracle and/or its affiliates.