Raid級別結構知識淺析

jopen 9年前發布 | 11K 次閱讀 RAID

一、Raid介紹

</blockquote>

RAID是(Redundent Array of Inexpensive Disks)的縮寫,直譯為“廉價冗余磁盤陣列”,也簡稱為“磁盤陣列”。后來RAID中的字母I被改作了Independent,RAID就成了“獨立冗余磁盤陣列”,但這只是名稱的變化,實質性的內容并沒有改變。可以把RAID理解成一種使用磁盤驅動器的方法,它將一組磁盤驅動器用某種邏輯方式聯系起來,作為邏輯上的一個磁盤驅動器來使用。
RAID 包含一組或者一個集合甚至一個陣列。使用一組磁盤結合驅動器組成 RAID 陣列或 RAID 集。將至少兩個磁盤連接到一個 RAID 控制器,而成為一個邏輯卷,也可以將多個驅動器放在一個組中。一組磁盤只能使用一個 RAID 級別。使用 RAID 可以提高服務器的性能。不同 RAID 的級別,性能會有所不同。它通過容錯和高可用性來保存我們的數據。
RAID的優點:

  1. 傳輸速率高。在部分RAID模式中,可以讓很多磁盤驅動器同時傳輸數據,而這些磁盤驅動器在邏輯上又是一個磁盤驅動器,所以使用RAID 可以達到單個的磁盤驅動器幾倍的速率。因為CPU的速度增長很快,而磁盤驅動器的數據傳輸速率無法大幅提高,所以需要有一種方案解決二者之間的矛盾。
  2. 更高的安全性。相較于普通磁盤驅動器很多RAID模式都提供了多種數據修復功能,當RAID中的某一磁盤驅動器出現嚴重故障無法使用時,可以通過RAID中的其他磁盤驅動器來恢復此驅動器中的數據,而普通磁盤驅動器無法實現,這是使用RAID的第二個原因。
  3. </ol>

    二、Raid概念

    </blockquote>
    軟件 RAID 和硬件 RAID
    軟件 RAID 的性能較低,因為其使用主機的資源。 需要加載 RAID 軟件以從軟件 RAID 卷中讀取數據。在加載 RAID 軟件前,操作系統需要引導起來才能加載 RAID 軟件。在軟件 RAID 中無需物理硬件。零成本投資。
    硬件 RAID 的性能較高。他們采用 PCI Express 卡物理地提供有專用的 RAID 控制器。它不會使用主機資源。他們有 NVRAM 用于緩存的讀取和寫入。緩存用于 RAID 重建時,即使出現電源故障,它會使用后備的電池電源保持緩存。對于大規模使用是非常昂貴的投資。
    硬件 RAID 卡如下所示:
    yraid.png

    幾個重要Raid概念:

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

      三、Raid級別

      </blockquote>
      RAID有不同的級別,下面列舉比較常用的模式:

      • RAID0 = 條帶化
      • RAID1 = 鏡像
      • RAID5 = 單磁盤分布式奇偶校驗
      • RAID6 = 雙磁盤分布式奇偶校驗
      • RAID10 = 鏡像 + 條帶。(嵌套RAID)
      • </ul>  
        Raid 0
        raid0.png
        RAID 0,無冗余無校驗的磁盤陣列。數據同時分布在各個磁盤上,沒有容錯能力,讀寫速度在RAID中最快,但因為任何一個磁盤損壞都會使整個RAID系統失效,所以安全系數反倒比單個的磁盤還要低。一般用在對數據安全要求不高,但對速度要求很高的場合,如:大型游戲、圖形圖像編輯等。此種RAID模式至少需要2個磁盤,而更多的磁盤則能提供更高效的數據傳輸。
        條帶化有很好的性能。在RAID0(條帶化)中數據將使用切片的方式被寫入到磁盤。一半的內容放在一個磁盤上,另一半內容將被寫入到另一個磁盤。 
        假設我們有2個磁盤驅動器,例如,如果我們將數據“TECMINT”寫到邏輯卷中,“T”將被保存在第一盤中,“E”將保存在第二盤,'C'將被保存在第一盤,“M”將保存在第二盤,它會一直繼續此循環過程。(LCTT 譯注:實際上不可能按字節切片,是按數據塊切片的。)
        在這種情況下,如果驅動器中的任何一個發生故障,我們就會丟失數據,因為一個盤中只有一半的數據,不能用于重建 RAID。不過,當比較寫入速度和性能時,RAID 0 是非常好的。創建 RAID 0(條帶化)至少需要2個磁盤。如果你的數據是非常寶貴的,那么不要使用此 RAID 級別。
        特點:

        • 高性能。
        • RAID 0 中容量零損失。
        • 零容錯。
        • 寫和讀有很高的性能。
        • </ul>  
          Raid 1
          raid1.png
          RAID 1,鏡象磁盤陣列。每一個磁盤都有一個鏡像磁盤,鏡像磁盤隨時保持與原磁盤的內容一致。RAID1具有最高的安全性,但只有一半的磁盤空間被用來存儲數據。主要用在對數據安全性要求很高,而且要求能夠快速恢復被損壞的數據的場合。此種RAID模式每組僅需要2個磁盤。
          鏡像可以對我們的數據做一份相同的副本。假設我們有兩個2TB的硬盤驅動器,我們總共有4TB,但在鏡像中,但是放在RAID控制器后面的驅動器形成了一個邏輯驅動器,我們只能看到這個邏輯驅動器有2TB。
          當我們保存數據時,它將同時寫入這兩個2TB驅動器中。創建 RAID 1(鏡像化)最少需要兩個驅動器。如果發生磁盤故障,我們可以通過更換一個新的磁盤恢復 RAID 。如果在 RAID 1 中任何一個磁盤發生故障,我們可以從另一個磁盤中獲取相同的數據,因為另外的磁盤中也有相同的數據。所以是零數據丟失。
          特點:

          • 良好的性能。
          • 總容量丟失一半可用空間。
          • 完全容錯。
          • 重建會更快。
          • 寫性能變慢。
          • 讀性能變好。
          • 能用于操作系統和小規模的數據庫
          • </ul> Raid 5
            raid5.png
            RAID 5, 無獨立校驗盤的奇偶校驗磁盤陣列。同樣采用奇偶校驗來檢查錯誤,但沒有獨立的校驗盤,而是使用了一種特殊的算法,可以計算出任何一個帶區校驗塊的存放位置。這樣就可以確保任何對校驗塊進行的讀寫操作都會在所有的RAID磁盤中進行均衡,既提高了系統可靠性也消除了產生瓶頸的可能,對大小數據量的讀寫都有很好的性能。為了能跨越數組里的所有磁盤來寫入數據及校驗碼信息,RAID 5設定最少需要三個磁盤,因此在這種情況下,會有1/3的磁盤容量會被備份校驗碼占用而無法使用,當有四個磁盤時,則需要1/4的容量作為備份,才能讓最壞情況的發生率降到最低。當磁盤的數目增多時,每個磁盤上被備份校驗碼占用的磁盤容量就會降低,但是磁盤故障的風險率也同時增加了,一但同時有兩個磁盤故障,則無法進行數據恢復。
            RAID 5多用于企業級。 RAID 5的以分布式奇偶校驗的方式工作。奇偶校驗信息將被用于重建數據。它從剩下的正常驅動器上的信息來重建。在驅動器發生故障時,這可以保護我們的數據。
            假設我們有4個驅動器,如果一個驅動器發生故障而后我們更換發生故障的驅動器后,我們可以從奇偶校驗中重建數據到更換的驅動器上。奇偶校驗信息存儲在所有的4個驅動器上,如果我們有4個 1TB 的驅動器。奇偶校驗信息將被存儲在每個驅動器的256G中,而其它768GB是用戶自己使用的。單個驅動器故障后,RAID 5依舊正常工作,如果驅動器損壞個數超過1個會導致數據的丟失。
            特點:

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

              raid6.png
              RAID 6和RAID 5相似但它有兩個分布式奇偶校驗。大多用在大數量的陣列中。我們最少需要4個驅動器,即使有2個驅動器發生故障,我們依然可以更換新的驅動器后重建數據。
              它比RAID 5慢,因為它將數據同時寫到4個驅動器上。當我們使用硬件 RAID 控制器時速度就處于平均水準。如果我們有6個的1TB驅動器,4個驅動器將用于數據保存,2個驅動器將用于校驗。
              特點:

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

                raid10.png

                RAID 10可以被稱為1 + 0或0 +1。它將做鏡像+條帶兩個工作。在 RAID 10中首先做鏡像然后做條帶。在 RAID 01上首先做條帶,然后做鏡像。RAID 10比RAID 01好。
                假設,我們有4個驅動器。當我邏輯卷上寫數據時,它會使用鏡像和條帶的方式將數據保存到4個驅動器上。

                如果我在 RAID 10 上寫入數據“TECMINT”,數據將使用如下方式保存。首先將“T”同時寫入兩個磁盤,“E”也將同時寫入另外兩個磁盤,所有數據都寫入兩塊磁盤。這樣可以將每個數據復制到另外的磁盤。

                同時它將使用 RAID 0 方式寫入數據,遵循將“T”寫入第一組盤,“E”寫入第二組盤。再次將“C”寫入第一組盤,“M”到第二組盤。</pre>特點:

                • 良好的讀寫性能。
                • 總容量丟失一半的可用空間。
                • 容錯。
                • 從副本數據中快速重建。
                • 由于其高性能和高可用性,常被用于數據庫的存儲中。
                • </ul> 下面附錄幾張參考表:
                  針對不同RAID 模式在實際運用中可以使用的磁盤空間分別有多少,在用列表舉例說明:

                  raid_disk.png

                  所有Raid級別的一些特性:

                  raid_td.png
                  來自:http://openskill.cn/article/198

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!