跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文件 / 儲存管理指南 / 軟體 RAID / 軟體 RAID 組態
適用範圍 SUSE Linux Enterprise Server 15 SP4

7 軟體 RAID 組態

RAID (獨立磁碟容錯陣列,Redundant Array of Independent Disks) 的用途是將數個硬碟分割區組合成一個大型「虛擬」硬碟,以達最佳化效能、資料安全性或是兩者兼具的功能。大部分 RAID 控制器使用 SCSI 通訊協定,因為與 IDE 通訊協定相比,它可利用更有效的方式處理更大量的硬碟,並且更適合指令的平行處理。有部分的 RAID 控制器支援 IDE 或 SATA 硬碟。軟體 RAID 可提供 RAID 系統的優點,卻不需要硬體 RAID 控制器的額外成本。但是這需要一些 CPU 時間,而且有一些記憶體需求,使它不適用於極高效能的電腦。

重要
重要:叢集檔案系統上的 RAID

需要使用叢集多裝置 (叢集 MD) 來設定叢集檔案系統下的軟體 RAID。請參閱 《SUSE Linux Enterprise High Availability Extension 管理指南》

SUSE Linux Enterprise 可讓您選擇將幾個硬碟組合為一個軟 RAID 系統。RAID 一詞是表示將數個硬碟結合成 RAID 系統的一些策略,每個都有不同的目標、優點及特色。這些變化通常稱為 RAID 層級

7.1 瞭解 RAID 層級

本節說明通用 RAID 層級 0、1、2、3、4、5 以及巢狀 RAID 層級。

7.1.1 RAID 0

此層級將每個檔案的區塊分散於多個磁碟,以提升您的資料存取效能。實際上,它不是 RAID,因為它不提供資料備份,但 RAID 0 已成為此系統類型的標準名稱。使用 RAID 0,就可將兩個以上的磁碟聚集在一起。效能非常好,但是如果其中一個硬碟錯誤,RAID 系統便會損毀而且資料會遺失。

7.1.2 RAID 1

此層級為您的資料提供了足夠的安全性,因為資料會 1:1 複製到另一個硬碟。這稱為硬碟鏡像。如果其中一個磁碟損毀,另一個鏡像複製磁碟上有其內容的複本。如果所有其他磁碟都受到損害,但有一個可用,就不會危害到資料。但是,如果未偵測到損毀的情況,則損毀的資料也可能會鏡射到正確的磁碟,因而造成資料損毀。在複製過程中的寫入效能比使用單一磁碟存取時稍差一些 (慢了百分之十到二十),但是讀取存取卻較任何一般實體硬碟快得多,因為資料已複製,因此可以平行掃描。一般而言,可以說 RAID 1 比單一磁碟的讀取異動率快了將近兩倍,而且與單一磁碟的寫入異動率幾乎相同。

7.1.3 RAID 2 與 RAID 3

這些都不是一般的 RAID 實作。「層級 2」在是位元層級分割資料,而不是在區塊層級。「層級 3」提供具有專用同位磁碟的位元層級分割,但是無法同時服務多個要求。這兩個層級都很少使用。

7.1.4 RAID 4

「層級 4」提供與「層級 0」類似的區塊層級分割,並且結合專用的同位磁碟。在資料磁碟失敗時,會使用同位資料建立替代的磁碟。不過,同位磁碟可能造成寫入存取的瓶頸。儘管如此,有時還是會使用「層級 4」。

7.1.5 RAID 5

RAID 5 是在「層級 0」與「層級 1」之間效能和備用方面最佳的折衷方法。硬碟空間等於使用的磁碟數減一。資料會分布至各個硬碟,這與 RAID 0 一樣。在其中一個分割區上建立的同位區塊是基於安全考慮。它們以 XOR 互相連結,使得系統失敗時,能夠藉由對應的同位區塊重新建構內容。使用 RAID 5,不會有一個以上的硬碟同時失敗。如果一個硬碟出現故障,必須立即更換以避免資料遺失的風險。

7.1.6 RAID 6

RAID 6 是 RAID 5 的延伸,它透過使用第二種獨立的分散式同位規劃 (雙同位) 來增加容錯能力。即使在資料復原過程中兩個硬碟都發生故障,系統也能繼續運作,且不遺失資料。

在多個磁碟機同時發生故障的情況下,RAID 6 可提供極高的資料容錯能力。它能夠處理兩個裝置的遺失,不會遺失資料。相應地,它需要 N+2 個磁碟機來儲存 N 個磁碟機的重要資料。至少需要四個裝置。

在正常模式以及有一個硬碟發生故障的模式下,RAID 6 的效能比 RAID 5 略低,但相差不多。處於雙磁碟機故障模式下時,其速度會變得很慢。RAID 6 組態需要將相當多的 CPU 時間和記憶體用於寫入操作。

表 7.1︰ 比較 RAID 5 與 RAID 6

特性

RAID 5

RAID 6

裝置數量

N+1,最小值為 3

N+2,最小值為 4

同位元

分散式,單一

分散式,兩個

效能

對寫入與重建有中等程度的影響

對連續寫入的影響比 RAID 5 要大

容錯

一個元件裝置發生故障

兩個元件裝置發生故障

7.1.7 巢狀和複雜 RAID 層級

現已開發出其他的 RAID 層級,如 RAIDn、RAID 10、RAID 0+1、RAID 30 和 RAID 50。有些是硬體廠商所建立的專用實作。建立 RAID 10 組態的範例可在第 9 章 「建立軟體 RAID 10 裝置中找到。

7.2 使用 YaST 設定軟體 RAID 組態

YaST 軟體 RAID 組態可以透過 YaST 進階磁碟分割程式完成。這個磁碟分割工具還可讓您編輯和刪除現有分割區,以及建立應該與軟體 RAID 一起使用的新分割區。下列指示適用於設定 RAID 層級 0、1、5 和 6。設定 RAID 10 組態的方法在第 9 章 「建立軟體 RAID 10 裝置中做了說明。

  1. 啟動 YaST 並開啟磁碟分割程式

  2. 如果需要,建立應該與 RAID 組態配合使用的分割區。不要將它們格式化,也不要將分割區類型設定為 0xFD Linux RAID。使用現有分割區時,不需要變更它們的分割區類型 — YaST 會自動變更。如需詳細資訊,請參閱第 10.1 節 「使用進階磁碟分割程式

    強烈建議您使用儲存在不同硬碟中的分割區,如此可降低當其中一個 (RAID 1 和 5) 損壞時遺失資料的風險,同時又可最佳化 RAID 0 的效能。

    RAID 0 至少需要兩個分割區。RAID 1 只需要兩個分割區,而 RAID 5 至少需要三個分割區。RAID 6 設定至少需要四個分割區。建議您僅使用大小相同的分割區,因為每個節區只能提供相同容量的空間做為最小的分割區。

  3. 在左側面板中,選取 RAID

    右側面板中即會開啟一份現有 RAID 組態的清單。

  4. 在 RAID 頁面的左下方,按一下新增 RAID

  5. 選取 RAID 類型,然後從可用的裝置對話方塊中新增適當數量的分割區。

    您可以選擇為您的 RAID 指定 RAID 名稱。這樣,RAID 的名稱將是 /dev/md/NAME。如需詳細資訊,請參閱第 7.2.1 節 「RAID 名稱」

    RAID 5 組態範例
    圖 7.1︰ RAID 5 組態範例

    繼續以繼續。

  6. 選取區塊大小,如果適用,同時選取同位演算法。最佳區塊大小視資料類型和 RAID 類型而定。如需詳細資訊,請參閱https://raid.wiki.kernel.org/index.php/RAID_setup#Chunk_sizes。如需同位演算法的詳細資訊,請使用 man 8 mdadm 搜尋 --layout 選項。如果不確定,請使用預設值。

  7. 選擇磁碟區的角色。您在此處所做的選擇只會影響即將開啟之對話方塊的預設值。它們可以在下一步中變更。如果不確定,請選擇原始磁碟區 (未格式化)

  8. 格式化選項下,選取格式化分割區,然後選取檔案系統選項功能表的內容視檔案系統而定。一般不需要變更預設值。

    掛接選項下,選取掛接分割區,然後選取掛接點。按一下Fstab 選項可為磁碟區新增特殊掛接選項。

  9. 按一下 Finish (完成)。

  10. 下一步,確認變更有列出,然後按一下完成

重要
重要:磁碟上的 RAID

雖然使用分割程式可以在磁碟 (而不是分割區) 的頂層建立 RAID,但出於多個原因,我們不建議使用此方法。不支援在此類 RAID 上安裝開機載入程式,因此您需要使用獨立的裝置進行開機。諸如 fdiskparted 之類的工具在此類 RAID 上無法正常工作,不清楚 RAID 特定設定的人員在使用這些工具時,可能會做出錯誤的診斷或執行錯誤的動作。

7.2.1 RAID 名稱

依預設,軟體 RAID 裝置使用遵循 mdN 模式的數值名稱,其中 N 是數字。因此,可以使用 /dev/md127 形式來存取它們,並且在 /proc/mdstat/proc/partitions 中,它們也被列為 md127,但使用這些名稱不大方便。SUSE Linux Enterprise Server 提供了兩種方法來解決此問題:

提供指向裝置的具名連結

當您透過 YaST 或在指令行上使用 mdadm --create '/dev/md/ NAME' 來建立 RAID 裝置時,可以選擇為 RAID 裝置指定一個名稱。裝置名稱仍然是 mdN,但系統會建立一個連結 /dev/md/NAME

> ls -og /dev/md
total 0
lrwxrwxrwx 1 8 Dec  9 15:11 myRAID -> ../md127

裝置在 /proc 下仍列為 md127

提供具名裝置

如果指向裝置的具名連結不足以滿足您的設定要求,請執行下列指令將 CREATE names=yes 行新增至 /etc/mdadm.conf

> sudo echo "CREATE names=yes" >> /etc/mdadm.conf

如此,系統將使用 myRAID 之類的名稱做為實際的裝置名稱。您不但可以採用 /dev/myRAID 形式存取裝置,它們在 /proc 下也會列為 myRAID。請注意,這只適用於在變更組態檔案之後設定的 RAID。作用中的 RAID 將繼續使用 mdN 名稱,直到被停止並被重新組合為止。

警告
警告:不相容的工具

可能並非所有工具都支援具名 RAID 裝置。如果某個工具需要 RAID 裝置命名為 mdN,它將無法識別具名裝置。

7.3 在 AArch64 上的 RAID 5 中設定等量磁碟區大小

依預設,等量磁碟區大小設定為 4kB。如果您需要變更預設的等量磁碟區大小 (例如,使該大小與 AArch64 上的一般頁面大小 64kB 相符),可以使用 CLI 手動設定等量磁碟區大小:

> sudo echo 16384  > /sys/block/md1/md/stripe_size

以上指令將等量磁碟區大小設定為 16kB。您可以設定其他值 (例如 4096、8192),但該值必須是 2 的冪。

7.4 監控軟體 RAID

您可以在 monitor 模式下做為精靈執行 mdadm 來監控軟體 RAID。在 monitor 模式下,mdadm 會定期檢查陣列中的磁碟故障。如果發生故障,mdadm 會向管理員傳送一封電子郵件。若要定義檢查的時間間隔,請執行以下指令:

mdadm --monitor --mail=root@localhost --delay=1800 /dev/md2

上面的指令會每隔 1800 秒開啟一次 /dev/md2 陣列監控。如果發生故障,將向 root@localhost 傳送一封電子郵件。

注意
注意:預設會啟用 RAID 檢查

依預設,RAID 檢查處於啟用狀態。如果每次檢查之間的間隔時間不夠長,您可能會遇到警告。因此,您可以使用 delay 選項設定更大的值來增加時間間隔。

7.5 更多資訊

可在下列網址的 HOWTO 中找到組態指南及軟體 RAID 的詳細資訊:

  • Linux RAID Wikihttps://raid.wiki.kernel.org/

  • /usr/share/doc/packages/mdadm/Software-RAID.HOWTO.html 檔案中的The Software RAID HOWTO (軟體 RAID HOWTO)

此外,您還可參考 Linux RAID 郵寄清單,如 http://marc.info/?l=linux-raid 上的 linux-raid