raid 的意思是廉價磁盤備援陣列(redundant array of inexpensive disks),但現在它被稱為獨立磁盤備援陣列(redundant array of independent drives)。早先一個容量很小的磁盤都是非常昂貴的,但是現在我們可以很便宜的買到一個更大的磁盤。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 卡如下所示:
硬體 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(條帶化)中資料将使用切片的方式被寫入到磁盤。一半的内容放在一個磁盤上,另一半内容将被寫入到另一個磁盤。
假設我們有2個磁盤驅動器,例如,如果我們将資料“tecmint”寫到邏輯卷中,“t”将被儲存在第一盤中,“e”将儲存在第二盤,'c'将被儲存在第一盤,“m”将儲存在第二盤,它會一直繼續此循環過程。(lctt 譯注:實際上不可能按位元組切片,是按資料塊切片的。)
在這種情況下,如果驅動器中的任何一個發生故障,我們就會丢失資料,因為一個盤中隻有一半的資料,不能用于重建 raid。不過,當比較寫入速度和性能時,raid 0 是非常好的。建立 raid 0(條帶化)至少需要2個磁盤。如果你的資料是非常寶貴的,那麼不要使用此 raid 級别。
高性能。
raid 0 中容量零損失。
零容錯。
寫和讀有很高的性能。
鏡像也有不錯的性能。鏡像可以對我們的資料做一份相同的副本。假設我們有兩個2tb的硬碟驅動器,我們總共有4tb,但在鏡像中,但是放在 raid 控制器後面的驅動器形成了一個邏輯驅動器,我們隻能看到這個邏輯驅動器有2tb。
當我們儲存資料時,它将同時寫入這兩個2tb驅動器中。建立 raid 1(鏡像化)最少需要兩個驅動器。如果發生磁盤故障,我們可以通過更換一個新的磁盤恢複 raid 。如果在 raid 1 中任何一個磁盤發生故障,我們可以從另一個磁盤中擷取相同的資料,因為另外的磁盤中也有相同的資料。是以是零資料丢失。
良好的性能。
總容量丢失一半可用空間。
完全容錯。
重建會更快。
寫性能變慢。
讀性能變好。
能用于作業系統和小規模的資料庫。
raid 5 多用于企業級。 raid 5 的以分布式奇偶校驗的方式工作。奇偶校驗資訊将被用于重建資料。它從剩下的正常驅動器上的資訊來重建。在驅動器發生故障時,這可以保護我們的資料。
假設我們有4個驅動器,如果一個驅動器發生故障而後我們更換發生故障的驅動器後,我們可以從奇偶校驗中重建資料到更換的驅動器上。奇偶校驗資訊存儲在所有的4個驅動器上,如果我們有4個 1tb 的驅動器。奇偶校驗資訊将被存儲在每個驅動器的256g中,而其它768gb是使用者自己使用的。單個驅動器故障後,raid 5 依舊正常工作,如果驅動器損壞個數超過1個會導緻資料的丢失。
性能卓越
讀速度将非常好。
寫速度處于平均水準,如果我們不使用硬體 raid 控制器,寫速度緩慢。
從所有驅動器的奇偶校驗資訊中重建。
1個磁盤空間将用于奇偶校驗。
可以被用在檔案伺服器,web伺服器,非常重要的備份中。
raid 6 和 raid 5 相似但它有兩個分布式奇偶校驗。大多用在大數量的陣列中。我們最少需要4個驅動器,即使有2個驅動器發生故障,我們依然可以更換新的驅動器後重建資料。
它比 raid 5 慢,因為它将資料同時寫到4個驅動器上。當我們使用硬體 raid 控制器時速度就處于平均水準。如果我們有6個的1tb驅動器,4個驅動器将用于資料儲存,2個驅動器将用于校驗。
性能不佳。
讀的性能很好。
如果我們不使用硬體 raid 控制器寫的性能會很差。
從兩個奇偶校驗驅動器上重建。
2個磁盤空間将用于奇偶校驗。
可用于大型陣列。
用于備份和視訊流中,用于大規模。
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