歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念

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

日期:2017/2/28 13:58:35   编辑:Linux教程

RAID 的意思是廉價磁盤冗余陣列(Redundant Array of Inexpensive Disks),但現在它被稱為獨立磁盤冗余陣列(Redundant Array of Independent Drives)。早先一個容量很小的磁盤都是非常昂貴的,但是現在我們可以很便宜的買到一個更大的磁盤。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 卡如下所示:

硬件 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 / 條帶化

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

假設我們有2個磁盤驅動器,例如,如果我們將數據“TECMINT”寫到邏輯卷中,“T”將被保存在第一盤中,“E”將保存在第二盤,'C'將被保存在第一盤,“M”將保存在第二盤,它會一直繼續此循環過程。(LCTT 譯注:實際上不可能按字節切片,是按數據塊切片的。)

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

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

RAID 1 / 鏡像化

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

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

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

RAID 5 / 分布式奇偶校驗

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

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

  • 性能卓越
  • 讀速度將非常好。
  • 寫速度處於平均水准,如果我們不使用硬件 RAID 控制器,寫速度緩慢。
  • 從所有驅動器的奇偶校驗信息中重建。
  • 完全容錯。
  • 1個磁盤空間將用於奇偶校驗。
  • 可以被用在文件服務器,Web服務器,非常重要的備份中。

RAID 6 雙分布式奇偶校驗磁盤

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

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

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

RAID 10 / 鏡像+條帶

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上構建 RAID 10陣列 http://www.linuxidc.com/Linux/2014-12/110318.htm

Debian軟RAID安裝筆記 - 使用mdadm安裝RAID1 http://www.linuxidc.com/Linux/2013-06/86487.htm

常用RAID技術介紹以及示例演示(多圖) http://www.linuxidc.com/Linux/2013-03/81481.htm

Linux實現最常用的磁盤陣列-- RAID5 http://www.linuxidc.com/Linux/2013-01/77880.htm

RAID0+1和RAID5的性能測試結果 http://www.linuxidc.com/Linux/2012-07/65567.htm

Linux入門教程:磁盤陣列(RAID) http://www.linuxidc.com/Linux/2014-07/104444.htm


via: Introduction to RAID, Concepts of RAID and RAID Levels

作者:Babin Lonston 譯者:strugglingyouth 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

Copyright © Linux教程網 All Rights Reserved