天天看點

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

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個部分,包括以下主題:

這是9篇系列教程的第1部分,在這裡我們将介紹 raid 的概念和 raid 級别,這是在 linux 中建構 raid 需要了解的。

<a target="_blank"></a>

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

硬體 raid 的性能較高。他們采用 pci express 卡實體地提供有專用的 raid 控制器。它不會使用主機資源。他們有 nvram 用于緩存的讀取和寫入。緩存用于 raid 重建時,即使出現電源故障,它會使用後備的電池電源保持緩存。對于大規模使用是非常昂貴的投資。

硬體 raid 卡如下所示:

在 Linux 下使用 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 級别認識一下。

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

條帶化有很好的性能。在 raid 0(條帶化)中資料将使用切片的方式被寫入到磁盤。一半的内容放在一個磁盤上,另一半内容将被寫入到另一個磁盤。

假設我們有2個磁盤驅動器,例如,如果我們将資料“tecmint”寫到邏輯卷中,“t”将被儲存在第一盤中,“e”将儲存在第二盤,'c'将被儲存在第一盤,“m”将儲存在第二盤,它會一直繼續此循環過程。(lctt 譯注:實際上不可能按位元組切片,是按資料塊切片的。)

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

高性能。

raid 0 中容量零損失。

零容錯。

寫和讀有很高的性能。

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

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

當我們儲存資料時,它将同時寫入這兩個2tb驅動器中。建立 raid 1(鏡像化)最少需要兩個驅動器。如果發生磁盤故障,我們可以通過更換一個新的磁盤恢複 raid 。如果在 raid 1 中任何一個磁盤發生故障,我們可以從另一個磁盤中擷取相同的資料,因為另外的磁盤中也有相同的資料。是以是零資料丢失。

良好的性能。

總容量丢失一半可用空間。

完全容錯。

重建會更快。

寫性能變慢。

讀性能變好。

能用于作業系統和小規模的資料庫。

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

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

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

性能卓越

讀速度将非常好。

寫速度處于平均水準,如果我們不使用硬體 raid 控制器,寫速度緩慢。

從所有驅動器的奇偶校驗資訊中重建。

1個磁盤空間将用于奇偶校驗。

可以被用在檔案伺服器,web伺服器,非常重要的備份中。

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

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

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

性能不佳。

讀的性能很好。

如果我們不使用硬體 raid 控制器寫的性能會很差。

從兩個奇偶校驗驅動器上重建。

2個磁盤空間将用于奇偶校驗。

可用于大型陣列。

用于備份和視訊流中,用于大規模。

在 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 組(陣列)和驅動器故障排除等。

本文來自雲栖社群合作夥伴“linux中國”,原文釋出日期:2015-08-24