RAID常見級別與JBOD概述


            RAID常見級別與JBOD概述

                              作者:尹正傑 

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

 

 

 

一.RAID概述

1>.什么是RAID

  1988年由加利福尼亞大學伯克利分校(University of CaliforniaBerkeley) 提出的將多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供。

  磁盤陣列(Redundant Arrays of Independent Drives,RAID),有“獨立磁盤構成的具有冗余能力的陣列”之意。

  磁盤陣列是由很多塊獨立的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。利用這項技術,將數據切割成許多區段,分別存放在各個硬盤上。
  
  磁盤陣列還能利用同位檢查(Parity Check)的觀念,在數組中任意一個硬盤故障時,仍可讀出數據,在數據重構時,將數據經計算后重新置入新硬盤中。

  RAID技術是由加利福尼亞大學伯克利分校(University of California-Berkeley)在1988年,發表的文章:“A Case for Redundant Arrays of Inexpensive Disks”中提出的,最初是為了組合多個小的廉價磁盤來代替昂貴磁盤,同時希望磁盤損壞時不會使數據的訪問受損而開發的一種數據保護技術。

  RAID可以提升硬盤速度和增大硬盤容量,並且提供容錯功能以確保數據安全性。它易於管理的優點使得在任何一塊磁盤出現問題的情況下都可以繼續工作,應用程序不易受到損壞硬盤的影響。

  溫馨提示:
    目前生產環境中RAID技術可以對某一塊磁盤單獨做RAID。

2>.磁盤陣列的特點

  提高IO能力:
    磁盤並行讀寫。

  提高耐用性:
    磁盤冗余來實現。

  RAID級別:
    多塊磁盤組織再一起的工作方式有所不同,下面我們會詳細介紹。

3>.磁盤陣列的實現方式

  磁盤陣列的常見實現方式有三種,一是外接式磁盤陣列櫃、二是內接式磁盤陣列卡,三是利用軟件來仿真。

  外接式磁盤陣列:
    通過擴展卡提供適配能力。
    外接式磁盤陣列櫃最常被使用大型服務器上,具可熱交換(Hot Swap)的特性,不過這類產品的價格都很貴。

  內接式磁盤陣列:
    主板集成RAID控制器,安裝OS前在BIOS里配置。
    內接式磁盤陣列卡,因為價格便宜,但需要較高的安裝技術,適合技術人員使用操作。硬件陣列能夠提供在線擴容、動態修改陣列級別、自動數據恢復、驅動器漫游、超高速緩沖等功能。它能提供性能、數據保護、可靠性、可用性和可管理性的解決方案。陣列卡專用的處理單元來進行操作。

  軟件RAID:
    通過操作系統實現。
    利用軟件仿真的方式,是指通過網絡操作系統自身提供的磁盤管理功能將連接的普通SCSI卡上的多塊硬盤配置成邏輯盤,組成陣列。軟件陣列可以提供數據冗余功能,但是磁盤子系統的性能會有所降低,有的降低幅度還比較大,達30%左右。因此會拖累機器的速度,不適合大數據流量的服務器。

 

二.RAID級別

1>.RAID 0

 

  工作原理:
    又稱“條帶卷”,Raid0是所有raid中存儲性能最強的陣列形式。其工作原理就是在多個磁盤上分散存取連續的數據,這樣,當需要存取數據是多個磁盤可以並排執行,每個磁盤執行屬於它自己的那部分數據請求,顯著提高磁盤整體存取性能。
  
  優點:
    讀寫能力提升,最少2塊磁盤及以上,生產環境中雖然已經可以一塊磁盤單獨做一個RAID 0,但其本質並沒有提升讀寫性能,究其原因還是一塊磁盤。
  
  缺點:
    無容錯能力,RAID 0磁盤陣列中只要有一塊磁盤損壞,就意味着數據丟失。因此需要運維工程師做好備份。
  適用場景:     至少需要兩塊磁盤,沒有容錯能力,讀寫性能都提示, 磁盤空間利用率提升了100
%,兩塊磁盤型號最好要一樣,一般存放swap,或者/tmp目錄的,適用於低成本、低可靠性的台式系統。

2>.RAID 1

 

  工作原理:
    又稱鏡像盤,把一個磁盤的數據鏡像到另一個磁盤上,采用鏡像容錯來提高可靠性,具有raid中最高的數據冗余能力。存數據時會將數據同時寫入鏡像盤內,讀取數據則只從工作盤讀出。
    發生故障時,系統將從鏡像盤讀取數據,然后再恢復工作盤正確數據。這種陣列方式可靠性極高,但是其容量會減去一半。   
  優點:
    有冗余能力,讀性能提升。

  缺點:
    寫性能略有下降。

  適用場景:     至少需要兩塊磁盤,鏡像,具有硬件容錯能力,讀性能提升,寫性能下降,磁盤空間利用率只有50
%。廣泛用於數據要求極嚴的應用場合,如商業金融、檔案管理等領域。只允許一顆硬盤出故障。
  溫馨提示:
    具有硬件容錯能力
!= 你可以對數據不進行備份。換句話說,無論你寫入或刪除數據,兩塊鏡像盤做的操作是一樣的,RAID技術是對物理磁盤的數據做冗余(硬盤損壞可以找回數據,但你人為刪除數據就是刪除了,鏡像磁盤做的操作是一直的),因此對重要數據的備份一定要做好。

3>.RAID 4

  工作原理:
    至少需要三塊磁盤,兩塊盤存數據,一塊盤單獨用來存另外兩塊磁盤的校驗值。讀寫性能有所提升,讀寫性能(n-1)/n。

  優點:
    當一塊數據盤的數據損壞時,此時RAID 4陣列依舊可以訪問,因為可以根據校驗值和現有的數據計算出已經損壞的數據。因此該方案具有一定的容錯功能。

  缺點:
    需要單獨占用一塊磁盤存儲校驗值。

  適用場景:
    經過大量生產環境的使用發現存放校驗的磁盤總是頻繁的損壞,因此這種解決方案已經很少有人使用啦。人們會使用RAID 5來替代這種解決方案。

4>.RAID 5

 

  工作原理:
    和RAID 4相比,RAID 5並不會將校驗信息單獨用一塊磁盤存儲,由於RAID 4單獨用於存儲校驗信息的磁盤容易損壞,因此RAID 5並不會單獨用一塊磁盤存儲校驗信息,而是將校驗信息和數據信息混搭存儲。磁盤利用率和RAID 4一樣,即(n-1)/n。     Raid5可以看成是Raid0
+1的低成本方案。采用循環偶校驗獨立存取的陣列方式。將數據和相對應的奇偶校驗信息分布存儲到組成RAID5的各個磁盤上。當其中一個磁盤數據發生損壞后,利用剩下的磁盤和相應的奇偶校驗信息 重新恢復/生成丟失的數據而不影響數據的可用性。

  優點:
    擁有RAID 4一樣的容錯能力,允許最多一塊磁盤損壞。

  缺點:
    雖然有一塊磁盤損壞可以正常訪問,但是通過校驗位來計算損失的數據時會浪費服務器性能,尤其是在服務器壓力特別大的時間段損壞磁盤陣列時可能會導致服務崩潰。因此當有一塊磁盤損壞時,要及時解決。
  適用場景:     至少需要3個或以上的硬盤。適用於大數據量的操作。成本稍高、可靠性強的陣列方式。

  溫馨提示:
    生產環境中我們通常會用一塊控線磁盤,當一塊磁盤損壞后,該空閑磁盤立即“頂上去”,無需運維工程師手動處理,這個功能一般硬件的RAID陣列卡都自帶該功能。當然,最好和服務商溝通一下喲。

5>.RAID 6

 

  工作原理:
    RAID 6和RAID 5在存儲機制上是類似的,只不過校驗信息相比AID 5要多存儲一份,磁盤利用率是(n-2)/n。
  
  優點:
    提升讀寫性能,可用性比RAID 5更強,允許最多2快磁盤損壞。

  缺點:
    校驗信息要多存儲一份。磁盤的利用率要比RAID 5方案低。
  適用場景:     至少需要四塊磁盤,允許兩塊盤出錯,讀寫性能提升,磁盤利用率(n
-2)/n

6>.RAID 7

  可以理解為一個獨立存儲計算機,自身帶有操作系統和管理工具,可以獨立 運行,理論上性能最高的RAID模式。

7>.RAD 10

 

  工作原理:
    其實就是Raid1+Raid0的組合,至少需要四塊磁盤,允許不同組內各壞一塊磁盤,讀寫性能提升,磁盤使用率50%。

  優點:
    具有容錯能力,每組鏡像最多只能壞一塊。

  缺點:
    磁盤使用率較低,僅有50%,會很浪費成本。以四塊磁盤陣列為例,若已經損壞一塊磁盤,那么接下來磁盤陣列的損壞率是1/3
  使用場景:     如果有重要數據的話,建議用這種模式,該模式是就有冗余能力的。不建議用Raid5或者Raid01來存取重要的數據,因為Raid5不靠譜,當一塊磁盤壞掉的話,工作性能變得特別差!如果在壞一塊的話就徹底不能工作了。

8>.RAID 01

  工作原理:
    其實就是Raid0+Raid1的組合,至少需要四塊磁盤,允許同組內任意磁盤塊磁盤損壞,但不同組的磁盤陣列中最少有一組陣列是正常工作的。

  優點:
    具有容錯能力,但僅允許一組磁盤由損壞,若兩組磁盤均有損壞則RAID10陣列不可用。

  缺點:
    磁盤使用率較低,僅有50%,會很浪費成本。以四塊磁盤陣列為例,若已經損壞一塊磁盤,那么接下來磁盤陣列的損壞率是2/3。

  溫馨提示:
    綜上所述,從理論上來講,RAID 10可用性要比RAID 01的容錯率更強。

9>.RAID 50

  多塊磁盤先實現RAID 5,再組合成RAID 0。

10>.JBOD

 

  工作原理:
    將多塊磁盤的空間合並一個大的連續空間使用,如上圖所示,服務器有3塊磁盤,通過JBOD技術可用將三塊磁盤容量合並成一個磁盤容量對外提供服務。這樣客戶端以為是一塊磁盤的容量。
    JBOD的工作方式是將多塊磁盤合並程一塊磁盤,但在使用過程中,當第一塊磁盤使用完畢后,才會適用第二塊磁盤,當第二塊的磁盤容量適用完畢后,才能使用第三塊磁盤,因此其讀寫性能並沒有提高,始終是單塊磁盤的讀寫性能。

  優點:
    可用將多塊磁盤合並程一塊磁盤對外提供服務。

  缺點:
    JBOD和RAID相比,JBOD並沒有提高磁盤的讀寫性能,JBOD無論磁盤數量有多少,其讀寫性能僅有一塊磁盤的讀寫性能。而RAID 0則隨着磁盤的數量越多,其讀寫性能越強。

 

三.博主推薦閱讀

1>.JBOD與RAID比較 

2>.沒有陣列卡的服務器是否能識別磁盤?

  答案是肯定的,沒配置陣列卡的服務器一定可以識別到硬盤。

  相反,配置了陣列卡的服務器,無論是獨立的還是主板自帶的都有可能不做陣列識別不了硬盤,而主板自帶陣列卡的服務器很多時候都要做陣列才可以識別硬盤的,因為服務器是這樣設計的,硬盤接陣列卡再進主板,所以必須做陣列。

3>.軟件RAID的實現

  博主推薦閱讀:
    https://www.cnblogs.com/yinzhengjie/p/12995834.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM