“拆”解RAID工作原理

一、什么是RAID

RAID:Redundant Arrays of InexpensiveIndependentDisks,廉價(獨立)的冗余磁盤陣列。1988年由加利福尼亞大學伯克利分校提出。使用多個相對便宜的磁盤通過某種方式組合成一個陣列,來提供更好的性能、冗余,或兩者同時提供。

性能提高:

         磁盤并行讀寫,可提高I/O能力。

穩定性提高:

         磁盤冗余來實現。

RAID實現的方式:

         外接式磁盤陣列:通過擴展卡提供適配能力。

         內接式磁盤陣列:主板集成RAID控制器。安裝OS前在BIOS里配置

         軟件RAID:通過OS實現。

RAID有級別之分,不同的級別僅代表磁盤組織工作的方式不同,并未有優劣之分。

常用的RAID級別有:

RAID-0:條帶卷

RAID-1:鏡像卷

RAID-5:單磁盤分布式奇偶校驗

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

RAID-10RAID-1嵌套在RAID-0中使用

RAID-01RAID-0嵌套在RAID-1中使用

二、RAID級別詳解

         RAID-0:條帶化

                   存儲時,把數據條帶化,并切成塊(chunk),分散存入磁盤陣列下的不同磁盤中。

“拆”解RAID工作原理圖示RAID-0可以看出,數據在條帶化后被分隔存儲,讀取時再分別從不同的磁盤中讀取數據進行組合。這樣就能實現并行讀寫,大大提升I/o能力。但沒有磁盤備份數據,所以無容錯性,任何一塊磁盤損壞,都會導致數據損壞,從而使業務中止。

總結:RAID-0

1、讀寫能力明顯提升;

2、實際可用空間:N*min(S1,S2…)   N為組成磁盤陣列的磁盤數。下同。)

3、無容錯能力;

4、磁盤陣列最小使用磁盤數:2。

         RAID-1:鏡像卷

                   存儲時,每塊磁盤設備中都存儲了完整的數據塊。由于數據被存儲了兩次,所以寫性能是有所下降的,但讀取時可以分散讀取,所有讀性能是有提升的。兩塊磁盤中存儲的數據完全相同,這就意味當有一塊設備壞掉的時候,另一塊設備是完全不受影響的,業務也就不會終止。

總結:RAID-1“拆”解RAID工作原理

1、  讀性能提升、寫性能略有下降;

2、  實際可用空間:1*minS1,S2…);

3、  有容錯能力;

4、  最少磁盤數:2。

RAID-5:單磁盤分布式奇偶校驗

         其實,還存在一種RAID-4的排列方式,類似于RAID-0,只是額外多了一塊硬盤用來存儲數據的校驗為。并且數據的讀寫也不是簡單的分散存儲以及合并讀取了。而是通過把兩塊(chunk)數據進行異或運算得到一個校驗位,把校驗位一并存儲到第三塊磁盤中。當其中一塊數據盤損壞時,就可以通過把校驗位與另一塊數據盤的數據異或運算,得到缺失的數據。

         但人們發現把校驗位集中存放在同一個設備上,導致該設備的讀寫負擔過重,該磁盤經常損壞,所以在RAID-4的基礎上設計了RAID-5。AID-5不再區分數據盤和校驗盤,而是把校驗位循環分散存儲到各個磁盤上。RAID-5如圖所示(x代表校驗位。),校驗位也可以左對齊排列。這樣一來便分散了校驗盤的負擔。

總結:RAID-5“拆”解RAID工作原理

1、  同樣實現數據的分散并行存儲,提高了讀、寫性能

2、  存在校驗位,有容錯能力,但只允許一塊磁盤損壞。

3、  實際可用空間:校驗位占用了一個磁盤,所以 (N-1)*min(S1,S2…)

4、  最少磁盤數:3。

RARD-6:雙磁盤分布式奇偶校驗

         RAID-6類似與RAID-5的工作方式,在RAID-5的基礎上再添一塊校驗位硬盤,即存在兩個校驗位。大家都知道,一個方程組中,兩個方程式可以求出兩個未知數,同樣的兩個校驗位也可以算出兩個缺失的數據。因此,RAID-6最大可以允許兩塊磁盤損壞。

總結:RAID-6

1、  讀、寫性能提升

2、  有容錯能力:最多允許壞兩塊磁盤

3、  可用空間:(N-2)*min(S1,S2…)

4、  最少磁盤數:4。

RAID-10RAID-1嵌套在RAID-0中使用

         如圖:可以看出,從底層往上,先用四個磁盤,兩兩一組做成RAID-1鏡像組,把兩組RAID-1做成RAID-0條帶卷。這樣簡單的組合便可以把RAID-1RAID-0的優勢組合起來利用。

總結:RAID-10“拆”解RAID工作原理

1、  讀、寫性能提升

2、  有容錯能力:每組鏡像最多只能壞一塊

3、  實際空用空間:N*min(S1,S2…)/2

4、  最少磁盤數:4。

RAID-01 RAID-0嵌套在RAID-1中使用

         RAID-10原理相似,只是順序顛倒,先組成RAID-0,再把RAID-0組成RAID-1

個人認為其實RAID-01RAID-10來說更有優勢,RAID-10只允許每個條帶組中最多有一個磁盤損壞,而RAID-01還可以允許其中一整個鏡像組損壞。

總結:RAID-01“拆”解RAID工作原理

1、  讀、寫性能提升

2、  有容錯能力:可以允許整個鏡像組的磁盤全數損壞;

3、  實際空用空間:N*min(S1,S2…)/2

4、  最少磁盤數:4。

三、注意:

        RAID磁盤陣列不同于備份,只是為日常業務的高效穩定運行提供了更多的保障機制,并不能替代備份。因為所有的冗余磁盤在讀寫時都是同步進行的,一個文件改了就全改了,刪了也就全刪了。所以,RAID并不能替代日常的備份工作。

原創文章,作者:Hulk,如若轉載,請注明出處:http://www.www58058.com/58833

(0)
HulkHulk
上一篇 2016-11-22
下一篇 2016-11-23

相關推薦

  • Linux之旅1

    Linux之旅1  一、描述計算機的組成及其功能 計算機的組成: 1、計算機主要由:CPU(控制器、運算器)、存儲器、輸入設備、和輸出設備(輸入設備、和輸出設備又稱為I/O設備)四部分組成; 計算機個組成部分的功能: CPU:主要有控制器和運算器組成; 控制器:控制器是整個計算機的中樞神經;其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,…

    2016-09-12
  • TCP 的那些事兒(上)

       TCP是一個巨復雜的協議,因為他要解決很多問題,而這些問題又帶出了很多子問題和陰暗面。所以學習TCP本身是個比較痛苦的過程,但對于學習的過程卻能讓人有很多收獲。關于TCP這個協議的細節,我還是推薦你去看W.Richard Stevens的《TCP/IP 詳解 卷1:協議》(當然,你也可以去讀一下RFC793以及后面N多的RFC)。另…

    Linux干貨 2015-04-01
  • Linux第三周總結

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 ~]# who | cut -d ” -f1 | uniq 2、取出最后登錄到當前系統的用戶的相關信息。 ~]# who|tail -1 3、取出當前系統上被用戶當作其默認shell的最多的那個shell ~]# cut -d’:’…

    2017-07-16
  • vim編譯器與shell腳本簡介

    一、vim文本編譯器       vi:Visual Interface,文本編輯器;   文本: ASCII Unicode  文本編輯種類:行編輯器:sed  ;全屏編輯器:nano,vi ,vim ;其他編輯器:gedit(圖形),g…

    Linux干貨 2016-11-24
  • 一鍵搭建mysql集群系列一

    一鍵自動安裝mysql 5.7 shell腳本自動化安裝二進制mysql-5.7 本節主要用到四個shell腳本 和 一臺資料存儲機器(IP:192.168.42.26) install_mysql.sh 自動化安裝mysql腳本 ntpdate.sh 時間同步腳本 system_init.sh 系統初始化腳本 yum.sh yum源配置腳本 執行步驟: 1…

    2017-05-13
  • 配置邏輯卷·設定LVM快照·btrfs文件系統

    _ueditor_page_break_tag_ 配置邏輯卷,設定LVM快照,btrfs文件系統                 邏輯卷管理器( LVM)v允許對卷進行方便操作的抽象層,包括重新設定文…

    Linux干貨 2016-09-01
欧美性久久久久