如何在 Ubuntu 22.04 上使用 mdadm 創建 RAID 數組

介紹

使用mdadm實用工具可以利用Linux軟體RAID功能來建立和管理儲存陣列。管理員在協調其各個儲存裝置並創建具有更高性能或冗餘特性的邏輯儲存裝置方面具有極大的靈活性。

在本指南中,您將執行可以在Ubuntu 22.04伺服器上設定的不同RAID配置。

先決條件

要按照本指南中的步驟進行操作,您將需要:

  • A non-root user with sudo privileges on an Ubuntu 22.04 server. To learn how to set up an account with these privileges, follow our Ubuntu 22.04 initial server setup guide.
  • A basic understanding of RAID terminology and concepts. To learn more about RAID and what RAID level is right for you, read our introduction to RAID article.
  • 伺服器上可用的多個原始儲存裝置。本教程中的示例演示了如何在伺服器上配置各種類型的陣列。因此,您需要一些驅動器來進行配置。
  • 根據陣列類型的不同,您將需要兩到四個儲存裝置。在按照本指南進行操作之前,這些驅動器無需格式化。

資訊:由於虛擬私有伺服器上RAID設置的效率低下,我們不建議在DigitalOcean droplets上部署RAID設置。數據中心磁碟複製的效率使得RAID的好處相對於在裸金屬硬件上的設置而言微不足道。本教程旨在成為傳統RAID設置的參考。

重設現有 RAID 裝置(可選)

如果您尚未設置任何數組,您可以暫時跳過此部分。本指南將介紹多種不同的 RAID 等級。如果您希望跟隨並完成每個 RAID 等級以配置您的設備,您可能會在每個部分之後想要重新使用您的存儲設備。這特定部分重設現有 RAID 裝置可用於在測試新的 RAID 等級之前重設您的元件存儲設備。

警告:此過程將完全摧毀數組和寫入其中的任何數據。請確保您正在操作正確的數組,並且在摧毀數組之前已經複製了任何需要保留的數據。

首先找到/proc/mdstat文件中的活動數組:

  1. cat /proc/mdstat
Output
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdc[1] sdd[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

然後從文件系統中卸載該數組:

  1. sudo umount /dev/md0

現在停止並移除該數組:

  1. sudo mdadm --stop /dev/md0

使用以下命令找到用於構建數組的設備:

警告:請注意/dev/sd*名稱可能在重新啟動時隨時更改。每次檢查以確保您正在操作正確的設備。

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G linux_raid_member disk sdb 100G linux_raid_member disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

發現用於創建數組的設備後,將它們的超級區塊歸零,該區塊保存了 RAID 設置的元數據。將其歸零將刪除 RAID 元數據並將其重置為正常狀態:

  1. sudo mdadm --zero-superblock /dev/sda
  2. sudo mdadm --zero-superblock /dev/sdb

這裡建議同時刪除對陣列的任何持久性引用。編輯/etc/fstab文件,並對陣列的引用進行註釋或刪除。您可以通過在行的開頭插入井號符號#來進行註釋,使用nano或您偏好的文本編輯器:

  1. sudo nano /etc/fstab
/etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

同時,請註釋或從/etc/mdadm/mdadm.conf文件中刪除陣列定義:

  1. sudo nano /etc/mdadm/mdadm.conf
/etc/mdadm/mdadm.conf
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91

最後,再次更新initramfs,以使早期啟動過程不會試圖啟動不可用的陣列:

  1. sudo update-initramfs -u

從這裡開始,您應該準備好個別重用存儲設備,或者作為不同陣列的組件。

創建RAID 0陣列

RAID 0陣列的工作原理是將數據分為多個塊並在可用磁盤上進行條帶化。這意味著每個磁盤包含數據的一部分,檢索信息時將引用多個磁盤。

  • 要求:至少2個存儲設備
  • 主要優勢:讀/寫和容量的性能。
  • 需要注意的事項:確保您有可用的備份。單個設備故障將摧毀陣列中的所有數據。

識別元件裝置

首先,找到您將要使用的原始磁碟的標識符:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

在這個例子中,您有兩個沒有檔案系統的磁碟,每個大小為100G。這些裝置在此會被賦予/dev/sda/dev/sdb標識符,並將用於構建陣列的原始元件。

創建陣列

要使用這些元件創建RAID 0陣列,將它們傳遞給mdadm --create命令。您需要指定要創建的設備名稱、RAID級別和設備數量。在這個命令示例中,您將命名設備為/dev/md0,並包括用於構建陣列的兩個磁碟:

  1. sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb

通過檢查/proc/mdstat文件確認RAID是否成功創建:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdb[1] sda[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

此輸出顯示/dev/md0設備已使用/dev/sda/dev/sdb設備以RAID 0配置成功創建。

創建和掛載文件系統

接下來,在數組上創建文件系統:

  1. sudo mkfs.ext4 -F /dev/md0

然後,創建一個掛載點來連接新文件系統:

  1. sudo mkdir -p /mnt/md0

您可以使用以下命令掛載文件系統:

  1. sudo mount /dev/md0 /mnt/md0

之後,檢查新空間是否可用:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 196G 61M 186G 1% /mnt/md0

新文件系統現在已經掛載並且可訪問。

保存數組布局

為了確保在引導時自動重新組裝數組,您需要調整 /etc/mdadm/mdadm.conf 文件。您可以自動掃描活動數組並用以下內容追加該文件:

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

之後,您可以更新 initramfs,或者初始RAM文件系統,以便在引導過程的早期階段可用該數組:

  1. sudo update-initramfs -u

將新文件系統的掛載選項添加到 /etc/fstab 文件中,以便在引導時自動掛載:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

您的RAID 0數組現在將在每次引導時自動組裝和掛載。

您現在已完成RAID設置。如果您想嘗試其他RAID,請按照本教程開頭的重置說明繼續創建新的RAID數組類型。

創建RAID 1陣列

RAID 1陣列類型通過在所有可用磁盤上進行數據鏡像來實現。RAID 1陣列中的每個磁盤都獲得數據的完整副本,在設備故障時提供冗餘。

  • 需求:最少2個存儲設備
  • 主要好處:在兩個存儲設備之間實現冗餘。
  • 需要注意的事項:由於維護了兩份數據副本,因此只有一半的磁盤空間可用。

識別組件設備

首先,找到您將使用的原始磁盤的標識符:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

在此示例中,您有兩個沒有文件系統的磁盤,每個大小為100G。這些設備已被賦予本次會話的/dev/sda/dev/sdb標識符,將是您用來構建陣列的原始組件。

創建陣列

要使用這些元件創建 RAID 1 陣列,將它們傳遞給 mdadm --create 命令。您將需要指定您希望創建的設備名稱、RAID 等級和設備數量。在這個命令示例中,您將命名設備為 /dev/md0,並包含將構建陣列的磁碟:

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

如果您使用的元件設備不是啟用了 boot 標誌的分區,您可能會收到以下警告。可以安全地回應 y 並繼續:

Output
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 104792064K Continue creating array? y

mdadm 工具將開始鏡像驅動器。這可能需要一些時間才能完成,但在此期間可以使用陣列。您可以通過檢查 /proc/mdstat 文件來監控鏡像的進度:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb[1] sda[0] 104792064 blocks super 1.2 [2/2] [UU] [====>................] resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/sec unused devices: <none>

在第一個突出顯示的行中,使用 /dev/sda/dev/sdb 設備創建了 RAID 1 配置的 /dev/md0 設備。第二個突出顯示的行顯示了鏡像的進度。在此過程完成時,您可以繼續進行下一步:

創建和掛載文件系統

接下來,在陣列上創建文件系統:

  1. sudo mkfs.ext4 -F /dev/md0

然後,創建一個掛載點來連接新的文件系統:

  1. sudo mkdir -p /mnt/md0

您可以運行以下命令來掛載文件系統:

  1. sudo mount /dev/md0 /mnt/md0

檢查新空間是否可用:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 99G 60M 94G 1% /mnt/md0

新的文件系統已經掛載並可訪問。

保存數組佈局

為了確保數組在啟動時自動重新組裝,您需要調整/etc/mdadm/mdadm.conf文件。您可以自動掃描活動數組並將文件附加以下內容:

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

然後,您可以更新initramfs,或初始RAM文件系統,以便數組在早期啟動過程中可用:

  1. sudo update-initramfs -u

將新的文件系統掛載選項添加到/etc/fstab文件中,以便在啟動時自動掛載:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

您的RAID 1數組現在將在每次啟動時自動組裝和掛載。

您現在已經完成了RAID設置。如果您想嘗試不同的RAID,請按照本教程開頭的重置說明進行操作,以創建新的RAID數組類型。

創建RAID 5數組

RAID 5 阵列类型是通过在可用设备上条带化数据来实现的。每个条带的一个组成部分是一个计算出的奇偶校验块。如果一个设备失败,奇偶校验块和剩余的块可以用来计算丢失的数据。接收奇偶校验块的设备被旋转,以便每个设备都具有平衡的奇偶校验信息。

  • 要求:至少3个存储设备
  • 主要优势:冗余性与更多可用容量。
  • 需要注意的事项:虽然奇偶校验信息是分布的,但一个磁盘的容量将用于奇偶校验。当处于降级状态时,RAID 5 可能性能非常差。

识别组件设备

首先,找到您将要使用的原始磁盘的标识符:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

您有三个没有文件系统的磁盘,每个大小为100G。这些设备在本次会话中被赋予了/dev/sda/dev/sdb/dev/sdc的标识符,并且将是您用来构建阵列的原始组件。

创建阵列

將這些元件傳遞給mdadm --create命令以建立RAID 5陣列。您需要指定要建立的裝置名稱、RAID層級和裝置數量。在這個命令示例中,您將命名裝置為/dev/md0,並包括構建陣列的磁碟:

  1. sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

mdadm工具將開始配置陣列。它使用恢復過程來建立陣列以提高性能。這可能需要一些時間才能完成,但在此期間可以使用陣列。您可以通過檢查/proc/mdstat文件來監視鏡像的進度:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209582080 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [>....................] recovery = 0.9% (957244/104791040) finish=18.0min speed=95724K/sec unused devices: <none>

在第一個突顯的行中,使用/dev/sda/dev/sdb/dev/sdc設備在RAID 5配置中創建了/dev/md0裝置。第二個突顯的行顯示了構建的進度。

警告:由於mdadm構建RAID 5陣列的方式,當陣列仍在構建時,陣列中的冗餘數量將被不正確報告。這意味著您必須等待陣列完成組裝,然後再更新/etc/mdadm/mdadm.conf文件。如果在陣列仍在構建時更新配置文件,系統將對陣列狀態的信息不正確,無法在啟動時使用正確的名稱自動組裝它。

在此過程完成時,您可以繼續進行指南。

建立和掛載檔案系統

接下來,在陣列上建立檔案系統:

  1. sudo mkfs.ext4 -F /dev/md0

建立一個掛載點以附加新的檔案系統:

  1. sudo mkdir -p /mnt/md0

您可以使用以下方式掛載檔案系統:

  1. sudo mount /dev/md0 /mnt/md0

檢查新空間是否可用:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

新的檔案系統已經被掛載並且可以存取。

保存陣列佈局

為了確保陣列在開機時自動重新組裝,您必須調整 /etc/mdadm/mdadm.conf 檔案。

警告:如前所述,在調整配置之前,請再次檢查以確保陣列已經完成組裝。在建立陣列之前完成以下步驟將防止系統在重新啟動時正確組裝陣列。

您可以通過檢查 /proc/mdstat 檔案來監控鏡像的進度:

  1. cat /proc/mdstat
Output
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>

此輸出顯示重建已完成。現在,您可以自動掃描活動陣列並附加檔案:

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

之後,您可以更新 initramfs,或者初始 RAM 檔案系統,以便在早期啟動過程中使陣列可用。

  1. sudo update-initramfs -u

將新的檔案系統掛載選項添加到/etc/fstab文件中,以便在啟動時自動掛載:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

您的RAID 5陣列現在將在每次啟動時自動組裝和掛載。

您現在已完成RAID設置。如果您想嘗試不同的RAID,請按照本教程開頭的重置說明來創建新的RAID陣列類型。

創建RAID 6陣列

RAID 6陣列類型是通過將數據跨可用設備進行條帶化來實現的。每個條帶的兩個組件計算出奇偶塊。如果一兩個設備失效,則可以使用奇偶塊和剩餘塊來計算丟失的數據。接收奇偶塊的設備會旋轉,以便每個設備都具有平衡的奇偶信息量。這與RAID 5陣列類似,但允許兩個驅動器失效。

  • 要求:最少4個存儲設備
  • 主要優勢:雙冗餘,可使用的容量更多。
  • 需要注意的事項:儘管奇偶信息被分佈,但將使用兩個磁盤的容量用於奇偶校驗。RAID 6在降級狀態下可能性能非常差。

識別元件設備

要開始,找到您將要使用的原始磁盤的識別符:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

在這個例子中,您有四個沒有文件系統的磁盤,每個大小為100G。這些設備在本次會話中被賦予了/dev/sda/dev/sdb/dev/sdc/dev/sdd的識別符,將成為構建陣列所使用的原始元件。

建立陣列

要使用這些元件創建RAID 6陣列,將它們傳遞到mdadm --create命令中。您必須指定您希望創建的設備名稱、RAID 等級和設備數量。在以下命令示例中,您將命名設備為/dev/md0,並包括將構建陣列的磁盤:

  1. sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

mdadm工具將開始配置陣列。它使用恢復過程來為性能原因構建陣列。這可能需要一些時間來完成,但在此期間可以使用陣列。您可以通過檢查/proc/mdstat文件來監控鏡像的進度:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU] [>....................] resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/sec unused devices: <none>

在第一個突出顯示的行中,使用/dev/md0設備以RAID 6配置創建了,使用了/dev/sda/dev/sdb/dev/sdc/dev/sdd設備。第二個突出顯示的行顯示了構建的進度。您可以在此過程完成時繼續進行指南。

創建和掛載文件系統

接下來,在數組上創建文件系統:

  1. sudo mkfs.ext4 -F /dev/md0

創建一個掛載點以附加新的文件系統:

  1. sudo mkdir -p /mnt/md0

您可以使用以下命令掛載文件系統:

  1. sudo mount /dev/md0 /mnt/md0

檢查新空間是否可用:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

新文件系統已經掛載並可訪問。

保存數組布局

為了確保數組在啟動時自動重新組裝,您需要調整/etc/mdadm/mdadm.conf文件。您可以通過輸入以下命令自動掃描活動數組並附加文件:

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

之後,您可以更新initramfs,或初始RAM文件系統,以便在早期引導過程中數組可用:

  1. sudo update-initramfs -u

將新的檔案系統掛載選項添加到/etc/fstab檔案中,以便在開機時自動掛載:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

您的RAID 6陣列現在將在每次開機時自動組裝和掛載。

您現在已完成RAID設置。如果您想嘗試其他RAID,請按照本教程開頭的重置說明進行操作,以創建新的RAID陣列類型。

創建一個複雜的RAID 10陣列

RAID 10陣列類型通常是通過創建一組RAID 1陣列的RAID 0陣列來實現的。這種嵌套陣列類型既具有冗餘性又具有高性能,但要付出大量的磁盤空間。mdadm實用程序具有自己的RAID 10類型,它提供了相同類型的好處,並具有增強的靈活性。它不是通過嵌套陣列來創建的,但具有許多相同的特性和保證。您將在這裡使用mdadm RAID 10。

  • 要求:至少3個存儲設備
  • 主要好處:性能和冗餘。
  • 需要注意的事項:陣列的容量減少量由您選擇保留的數據副本數量確定。使用mdadm風格的RAID 10存儲的副本數量是可配置的。

默認情況下,每個數據塊將以所謂的“近”佈局存儲兩個副本。指定每個數據塊存儲方式的可能佈局如下:

  • :默認的佈局。在條帶化時,每個塊的副本連續寫入,這意味著數據塊的副本將寫入多個磁盤的相同部分周圍。
  • :第一個和後續的副本寫入數組中存儲設備的不同部分。例如,第一個塊可能被寫入磁盤的開始處,而第二個塊則在另一個磁盤的中間位置。這可以在傳統的旋轉磁盤上提供一些讀取性能提升,但以寫入性能為代價。
  • 偏移:每個條帶都會被複製,並且偏移一個驅動器。這意味著副本彼此偏移,但仍然緊密地放置在磁盤上。這有助於在某些工作負載期間減少過多的查找。

您可以通過查看本“man”頁面的“RAID10”部分了解更多關於這些佈局的信息:

  1. man 4 md

您也可以在線上找到這個“man”頁面。

識別組件設備

首先,找到您將使用的原始磁盤的標識符:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

在這個示例中,您有四個沒有文件系統的磁盤,每個大小為100G。這些設備在本次會話中已被賦予/dev/sda/dev/sdb/dev/sdc/dev/sdd的標識,將是構建陣列所使用的原始組件。

創建陣列

要使用這些組件創建RAID 10陣列,將它們傳遞到mdadm --create命令中。您必須指定要創建的設備名稱、RAID級別和設備數量。在以下命令示例中,您將命名設備為/dev/md0,並包括構建陣列的磁盤:

您可以使用近似佈局設置兩份副本,方法是不指定佈局和副本數:

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

如果您想使用不同的佈局或更改副本數量,您將需要使用--layout=選項,該選項需要一個佈局和副本標識符。佈局包括n表示近似,f表示遠距,o表示偏移。然後附加要存儲的副本數量。

例如,要創建一個使用偏移佈局的具有三個副本的陣列,命令將包括以下內容:

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

mdadm 工具將開始配置陣列。它使用恢復過程來建立陣列以提高性能。這可能需要一些時間來完成,但在此期間可以使用陣列。您可以通過檢查 /proc/mdstat 文件來監視鏡像的進度:

  1. cat /proc/mdstat
Output
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] [===>.................] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec unused devices: <none>

在第一個突出顯示的行中,使用 /dev/md0 設備在 RAID 10 配置中創建了陣列,使用了 /dev/sda/dev/sdb/dev/sdc/dev/sdd 設備。第二個突出顯示的區域顯示了此示例使用的佈局(在近配置中有兩份副本)。第三個突出顯示的區域顯示了建立的進度。您可以在此過程完成時繼續進行指南。

創建和掛載文件系統

接下來,在陣列上創建文件系統:

  1. sudo mkfs.ext4 -F /dev/md0

創建一個掛載點以附加新文件系統:

  1. sudo mkdir -p /mnt/md0

您可以使用以下命令掛載文件系統:

  1. sudo mount /dev/md0 /mnt/md0

檢查新空間是否可用:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

新文件系統已掛載並可訪問。

保存陣列佈局

為確保陣列在啟動時能夠自動重新組裝,您需要調整 /etc/mdadm/mdadm.conf 檔案。您可以執行以下命令,自動掃描活動陣列並附加到該檔案:

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

之後,您可以更新 initramfs(初始 RAM 檔案系統),以便在早期引導過程中使用陣列:

  1. sudo update-initramfs -u

將新的檔案系統掛載選項添加到 /etc/fstab 檔案,實現在啟動時的自動掛載:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

您的 RAID 10 陣列現在將在每次啟動時自動組裝和掛載。

結論

在本指南中,您學會了如何使用 Linux 的 mdadm 軟體 RAID 實用程式創建各種類型的陣列。與單獨使用多個磁碟相比,RAID 陣列提供了一些引人注目的冗餘性和性能增強。

一旦您確定了環境所需的陣列類型並創建了裝置,您可以學習如何使用 mdadm 進行日常管理。我們的指南 如何在 Ubuntu 上使用 mdadm 管理 RAID 陣列 可以幫助您入門。

Source:
https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-22-04