在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念

linux.cn發表於2015-08-25

RAID 的意思是廉價磁碟冗餘陣列(Redundant Array of Inexpensive Disks),但現在它被稱為獨立磁碟冗餘陣列(Redundant Array of Independent Drives)。早先一個容量很小的磁碟都是非常昂貴的,但是現在我們可以很便宜的買到一個更大的磁碟。Raid 是一系列放在一起,成為一個邏輯卷的磁碟集合。

在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念

在 Linux 中理解 RAID 設定

RAID 包含一組或者一個集合甚至一個陣列。使用一組磁碟結合驅動器組成 RAID 陣列或 RAID 集。將至少兩個磁碟連線到一個 RAID 控制器,而成為一個邏輯卷,也可以將多個驅動器放在一個組中。一組磁碟只能使用一個 RAID 級別。使用 RAID 可以提高伺服器的效能。不同 RAID 的級別,效能會有所不同。它通過容錯和高可用性來儲存我們的資料。

這個系列被命名為“在 Linux 下使用 RAID”,分為9個部分,包括以下主題:

  • 第1部分:介紹 RAID 的級別和概念
  • 第2部分:在Linux中如何設定 RAID0(條帶化)
  • 第3部分:在Linux中如何設定 RAID1(映象化)
  • 第4部分:在Linux中如何設定 RAID5(條帶化與分散式奇偶校驗)
  • 第5部分:在Linux中如何設定 RAID6(條帶雙分散式奇偶校驗)
  • 第6部分:在Linux中設定 RAID 10 或1 + 0(巢狀)
  • 第7部分:增加現有的 RAID 陣列並刪除損壞的磁碟
  • 第8部分:在 RAID 中恢復(重建)損壞的驅動器
  • 第9部分:在 Linux 中管理 RAID

這是9篇系列教程的第1部分,在這裡我們將介紹 RAID 的概念和 RAID 級別,這是在 Linux 中構建 RAID 需要理解的。

軟體 RAID 和硬體 RAID

軟體 RAID 的效能較低,因為其使用主機的資源。 需要載入 RAID 軟體以從軟體 RAID 卷中讀取資料。在載入 RAID 軟體前,作業系統需要引導起來才能載入 RAID 軟體。在軟體 RAID 中無需物理硬體。零成本投資。

硬體 RAID 的效能較高。他們採用 PCI Express 卡物理地提供有專用的 RAID 控制器。它不會使用主機資源。他們有 NVRAM 用於快取的讀取和寫入。快取用於 RAID 重建時,即使出現電源故障,它會使用後備的電池電源保持快取。對於大規模使用是非常昂貴的投資。

硬體 RAID 卡如下所示:

在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念

硬體 RAID

重要的 RAID 概念

  • 校驗方式用在 RAID 重建中從校驗所儲存的資訊中重新生成丟失的內容。 RAID 5,RAID 6 基於校驗。
  • 條帶化是將切片資料隨機儲存到多個磁碟。它不會在單個磁碟中儲存完整的資料。如果我們使用2個磁碟,則每個磁碟儲存我們的一半資料。
  • 映象被用於 RAID 1 和 RAID 10。映象會自動備份資料。在 RAID 1 中,它會儲存相同的內容到其他盤上。
  • 熱備份只是我們的伺服器上的一個備用驅動器,它可以自動更換髮生故障的驅動器。在我們的陣列中,如果任何一個驅動器損壞,熱備份驅動器會自動用於重建 RAID。
  • 是 RAID 控制器每次讀寫資料時的最小單位,最小 4KB。通過定義塊大小,我們可以增加 I/O 效能。

RAID有不同的級別。在這裡,我們僅列出在真實環境下的使用最多的 RAID 級別。

  • RAID0 = 條帶化
  • RAID1 = 映象
  • RAID5 = 單磁碟分散式奇偶校驗
  • RAID6 = 雙磁碟分散式奇偶校驗
  • RAID10 = 映象 + 條帶。(巢狀RAID)

RAID 在大多數 Linux 發行版上使用名為 mdadm 的軟體包進行管理。讓我們先對每個 RAID 級別認識一下。

RAID 0 / 條帶化

在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念

條帶化有很好的效能。在 RAID 0(條帶化)中資料將使用切片的方式被寫入到磁碟。一半的內容放在一個磁碟上,另一半內容將被寫入到另一個磁碟。

假設我們有2個磁碟驅動器,例如,如果我們將資料“TECMINT”寫到邏輯卷中,“T”將被儲存在第一盤中,“E”將儲存在第二盤,’C'將被儲存在第一盤,“M”將儲存在第二盤,它會一直繼續此迴圈過程。(LCTT 譯註:實際上不可能按位元組切片,是按資料塊切片的。)

在這種情況下,如果驅動器中的任何一個發生故障,我們就會丟失資料,因為一個盤中只有一半的資料,不能用於重建 RAID。不過,當比較寫入速度和效能時,RAID 0 是非常好的。建立 RAID 0(條帶化)至少需要2個磁碟。如果你的資料是非常寶貴的,那麼不要使用此 RAID 級別。

  • 高效能。
  • RAID 0 中容量零損失。
  • 零容錯。
  • 寫和讀有很高的效能。

RAID 1 / 映象化

在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念

映象也有不錯的效能。映象可以對我們的資料做一份相同的副本。假設我們有兩個2TB的硬碟驅動器,我們總共有4TB,但在映象中,但是放在 RAID 控制器後面的驅動器形成了一個邏輯驅動器,我們只能看到這個邏輯驅動器有2TB。

當我們儲存資料時,它將同時寫入這兩個2TB驅動器中。建立 RAID 1(映象化)最少需要兩個驅動器。如果發生磁碟故障,我們可以通過更換一個新的磁碟恢復 RAID 。如果在 RAID 1 中任何一個磁碟發生故障,我們可以從另一個磁碟中獲取相同的資料,因為另外的磁碟中也有相同的資料。所以是零資料丟失。

  • 良好的效能。
  • 總容量丟失一半可用空間。
  • 完全容錯。
  • 重建會更快。
  • 寫效能變慢。
  • 讀效能變好。
  • 能用於作業系統和小規模的資料庫。

RAID 5 / 分散式奇偶校驗

在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念

RAID 5 多用於企業級。 RAID 5 的以分散式奇偶校驗的方式工作。奇偶校驗資訊將被用於重建資料。它從剩下的正常驅動器上的資訊來重建。在驅動器發生故障時,這可以保護我們的資料。

假設我們有4個驅動器,如果一個驅動器發生故障而後我們更換髮生故障的驅動器後,我們可以從奇偶校驗中重建資料到更換的驅動器上。奇偶校驗資訊儲存在所有的4個驅動器上,如果我們有4個 1TB 的驅動器。奇偶校驗資訊將被儲存在每個驅動器的256G中,而其它768GB是使用者自己使用的。單個驅動器故障後,RAID 5 依舊正常工作,如果驅動器損壞個數超過1個會導致資料的丟失。

  • 效能卓越
  • 讀速度將非常好。
  • 寫速度處於平均水準,如果我們不使用硬體 RAID 控制器,寫速度緩慢。
  • 從所有驅動器的奇偶校驗資訊中重建。
  • 完全容錯。
  • 1個磁碟空間將用於奇偶校驗。
  • 可以被用在檔案伺服器,Web伺服器,非常重要的備份中。

RAID 6 雙分散式奇偶校驗磁碟

在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念

RAID 6 和 RAID 5 相似但它有兩個分散式奇偶校驗。大多用在大數量的陣列中。我們最少需要4個驅動器,即使有2個驅動器發生故障,我們依然可以更換新的驅動器後重建資料。

它比 RAID 5 慢,因為它將資料同時寫到4個驅動器上。當我們使用硬體 RAID 控制器時速度就處於平均水準。如果我們有6個的1TB驅動器,4個驅動器將用於資料儲存,2個驅動器將用於校驗。

  • 效能不佳。
  • 讀的效能很好。
  • 如果我們不使用硬體 RAID 控制器寫的效能會很差。
  • 從兩個奇偶校驗驅動器上重建。
  • 完全容錯。
  • 2個磁碟空間將用於奇偶校驗。
  • 可用於大型陣列。
  • 用於備份和視訊流中,用於大規模。

RAID 10 / 映象+條帶

在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念

在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念

RAID 10 可以被稱為1 + 0或0 +1。它將做映象+條帶兩個工作。在 RAID 10 中首先做映象然後做條帶。在 RAID 01 上首先做條帶,然後做映象。RAID 10 比 01 好。

假設,我們有4個驅動器。當我邏輯捲上寫資料時,它會使用映象和條帶的方式將資料儲存到4個驅動器上。

如果我在 RAID 10 上寫入資料“TECMINT”,資料將使用如下方式儲存。首先將“T”同時寫入兩個磁碟,“E”也將同時寫入另外兩個磁碟,所有資料都寫入兩塊磁碟。這樣可以將每個資料複製到另外的磁碟。

同時它將使用 RAID 0 方式寫入資料,遵循將“T”寫入第一組盤,“E”寫入第二組盤。再次將“C”寫入第一組盤,“M”到第二組盤。

  • 良好的讀寫效能。
  • 總容量丟失一半的可用空間。
  • 容錯。
  • 從副本資料中快速重建。
  • 由於其高效能和高可用性,常被用於資料庫的儲存中。

結論

在這篇文章中,我們已經瞭解了什麼是 RAID 和在實際環境大多采用哪個級別的 RAID。希望你已經學會了上面所寫的。對於 RAID 的構建必須瞭解有關 RAID 的基本知識。以上內容可以基本滿足你對 RAID 的瞭解。

在接下來的文章中,我將介紹如何設定和使用各種級別建立 RAID,增加 RAID 組(陣列)和驅動器故障排除等。

相關文章