獨立硬碟冗餘陣列與HDFS

來源:互聯網
上載者:User

標籤:http   使用   strong   os   檔案   資料   

http://zh.wikipedia.org/wiki/RAID

獨立硬碟冗餘陣列RAIDRedundant Array of Independent Disks),舊稱廉價磁碟冗餘陣列Redundant Array of Inexpensive Disks),簡稱硬碟陣列。其基本思想就是把多個相對便宜的硬碟組合起來,成為一個硬碟陣列組,使效能達到甚至超過一個價格昂貴、容量巨大的硬碟。根據選擇的版本不同,RAID比單顆硬碟有以下一個或多個方面的好處:增強Data Integration度,增強容錯功能,增加處理量或容量。另外,磁碟陣列對於電腦來說,看起來就像一個單獨的硬碟或邏輯儲存單元。分為RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50,RAID-60。

簡單來說,RAID把多個硬碟組合成為一個邏輯扇區,因此,作業系統只會把它當作一個硬碟。RAID常被用在伺服器電腦上,並且常使用完全相同的硬碟作為組合。由於硬碟價格的不斷下降與RAID功能更加有效地與主板整合,它也成為了玩家的一個選擇,特別是需要大型存放區空間的工作,如:視頻與音頻製作。

最初的RAID分成了不同的等級,每種等級都有其理論上的優缺點,不同的等級在兩個目標間取得平衡,分別是增加資料可靠性以及增加儲存空間(群)讀寫效能。這些年來,出現了對於RAID觀念不同的應用。

 

目錄  [隱藏] 
  • 1 標準RAID
    • 1.1 RAID 0
    • 1.2 RAID 1
    • 1.3 RAID 2
    • 1.4 RAID 3
    • 1.5 RAID 4
    • 1.6 RAID 5
    • 1.7 RAID 6
  • 2 混合RAID
    • 2.1 JBOD
    • 2.2 RAID 7
    • 2.3 RAID 10/01
    • 2.4 RAID 50
    • 2.5 RAID 53
    • 2.6 RAID 60
  • 3 應用
  • 4 磁碟陣列比較表
    • 4.1 種類
  • 5 磁碟陣列相關產品
  • 6 磁碟陣列相關客戶類型
  • 7 參考資料
  • 8 外部連結

 

標準RAID
RAID 0

RAID 0亦稱為帶區集。它將兩個以上的磁碟並列起來,成為一個大容量的磁碟。在存放資料時,分段後分散儲存在這些磁碟中,因為讀寫時都可以平行處理,所以在所有的層級中,RAID 0的速度是最快的。但是RAID 0既沒有冗餘功能,也不具備容錯能力,如果一個磁碟(物理)損壞,所有資料都會丟失,危險程度與JBOD相當。

RAID 1

兩組以上的N個磁碟相互作鏡像,在一些多線程作業系統中能有很好的讀取速度,理論上讀取速度等於硬碟數量的倍數,另外寫入速度有微小的降低。只要一個磁碟正常即可維持運作,可靠性最高。RAID 1就是鏡像,其原理為在主硬碟上存放資料的同時也在鏡像硬碟上寫一樣的資料。當主硬碟(物理)損壞時,鏡像硬碟則代替主硬碟的工作。因為有鏡像硬碟做資料備份,所以RAID 1的資料安全性在所有的RAID層級上來說是最好的。但無論用多少磁碟做RAID 1,僅算一個磁碟的容量,是所有RAID中磁碟利用率最低的一個層級。

如果用兩個不同大小的磁碟建RAID 1,可用空間為較小的那個磁碟,較大的磁碟多出來的空間也可以分區成一個區來使用,不會造成浪費。

 

RAID 2

這是RAID 0的改良版,以漢明碼(Hamming Code)的方式將資料進行編碼後分區為獨立的位元,並將資料分別寫入硬碟中。因為在資料中加入了錯誤修正碼(ECC,Error Correction Code),所以資料整體的容量會比未經處理資料大一些,RAID2最少要三台磁碟機方能運作。

RAID 3

採用Bit-interleaving(資料交錯儲存)技術,它需要通過編碼再將資料位元分割後分別存在硬碟中,而將同位元檢查後單獨存在一個硬碟中,但由於資料內的位元分散在不同的硬碟上,因此就算要讀取一小段資料資料都可能需要所有的硬碟進行工作,所以這種規格比較適於讀取大量資料時使用。

RAID 4

它與RAID 3不同的是它在分區時是以區塊為單位分別存在硬碟中,但每次的資料訪問都必須從同位元檢查的那個硬碟中取出對應的同位元資料進行核對,由於過於頻繁的使用,所以對硬碟的損耗可能會提高。(塊交織技術,Block interleaving)

RAID 5

RAID Level 5是一種儲存效能、資料安全和儲存成本兼顧的儲存解決方案。它使用的是Disk Striping(硬碟分區)技術。RAID 5至少需要三顆硬碟,RAID 5不是對儲存的資料進行備份,而是把資料和相對應的同位資訊儲存到組成RAID5的各個磁碟上,並且同位資訊和相對應的資料分別儲存於不同的磁碟上。當RAID5的一個磁碟資料發生損壞後,可以利用剩下的資料和相應的同位資訊去恢複被損壞的資料。RAID 5可以理解為是RAID 0和RAID 1的折衷方案。RAID 5可以為系統提供資料安全保障,但保障程度要比鏡像低而磁碟空間利用率要比鏡像高。RAID 5具有和RAID 0相近似的資料讀取速度,只是因為多了一個同位資訊,寫入資料的速度相對單獨寫入一塊硬碟的速度略慢,若使用“回寫快取”可以讓效能改善不少。同時由於多個資料對應一個同位資訊,RAID 5的磁碟空間利用率要比RAID 1高,儲存成本相對較便宜。

 

RAID 6

與RAID 5相比,RAID 6增加了第二個獨立的同位資訊塊。兩個獨立的奇偶系統使用不同的演算法,資料的可靠性非常高,即使兩塊磁碟同時失效也不會影響資料的使用。但RAID 6需要分配給同位資訊更大的磁碟空間,相對於RAID 5有更大的“寫損失”,因此“寫效能”非常差。較差的效能和複雜的實作方式使得RAID 6很少得到實際應用。

同一數組中最多容許兩個磁碟損壞。更換新磁碟後,資料將會重新算出並寫入新的磁碟中。依照設計理論,RAID 6必須具備四個以上的磁碟才會生效。

可使用的容量為硬碟總數減去2的差,乘以最小容量,公式為:

同理,資料保護地區容量則為最小容量乘以2。

RAID 6在硬體磁碟陣列卡的功能中,也是最常見的磁碟陣列等級。

混合RAID
JBOD

JBOD( Just a Bunch Of Disks)在分類上,JBOD並不是RAID的等級。由於並沒有規範,市場上有兩類主流的做法

  1. 使用單獨的連結連接埠如SATA、USB或1394同時控制多個各別獨立的硬碟,使用這種模式通常是較進階的裝置,還具備有RAID的功能,不需要依靠JBOD達到合并邏輯扇區的目的。
  2. 只是將多個硬碟空間合并成一個大的邏輯硬碟,沒有錯誤備援機制。

資料的存放機制是由第一顆硬碟開始依序往後存放,即作業系統看到的是一個大硬碟(由許多小硬碟組成的)。但如果硬碟損毀,則該顆硬碟上的所有資料將無法救回。若第一顆硬碟損壞,通常無法作救援(因為大部分檔案系統將磁碟分割表(partition table)‎存在磁碟前端,即第一顆),失去磁碟分割表即失去一切資料,若遭遇磁碟陣列資料或硬碟出錯的狀況,危險程度較RAID 0更劇。它的好處是不會像RAID,每次訪問都要讀寫全部硬碟。

 

RAID 7

RAID 7並非公開的RAID標準,而是Storage Computer Corporation的專利硬體產品名稱,RAID 7是以RAID 3及RAID 4為基礎所發展,但是經過強化以解決原來的一些限制。另外,在實現中使用大量的快取以及用以實現非同步數組管理的專用即時處理器,使得RAID 7可以同時處理大量的IO要求,所以效能甚至超越了許多其他RAID標準的實做產品。但也因為如此,在價格方面非常的高昂。[1]

RAID 10/01

RAID 10是先鏡射再分區資料,再將所有硬碟分為兩組,視為是RAID 0的最低組合,然後將這兩組各自視為RAID 1運作。

RAID 01則是跟RAID 10的程式相反,是先分區再將資料鏡射到兩組硬碟。它將所有的硬碟分為兩組,變成RAID 1的最低組合,而將兩組硬碟各自視為RAID 0運作。

當RAID 10有一個硬碟受損,其餘硬碟會繼續運作。RAID 01隻要有一個硬碟受損,同組RAID 0的所有硬碟都會停止運作,只剩下其他組的硬碟運作,可靠性較低。如果以六個硬碟建RAID 01,鏡射再用三個建RAID 0,那麼壞一個硬碟便會有三個硬碟離線。因此,RAID 10遠較RAID 01常用,零售主板絕大部份支援RAID 0/1/5/10,但不支援RAID 01。

RAID 50
RAID 50

RAID 5與RAID 0的組合,先作RAID 5,再作RAID 0,也就是對多組RAID 5彼此構成Stripe訪問。由於RAID 50是以RAID 5為基礎,而RAID 5至少需要3台硬碟,因此要以多組RAID 5構成RAID 50,至少需要6台硬碟。以RAID 50最小的6台硬碟組態為例,先把6台硬碟分為2組,每組3台構成RAID 5,如此就得到兩組RAID 5,然後再把兩組RAID 5構成RAID 0。

RAID 50在底層的任一組或多組RAID 5中出現1台硬碟損壞時,仍能維持運作,不過如果任一組RAID 5中出現2台或兩台以上硬碟損毀,整組RAID 50就會失效。

RAID 50由於在上層把多組RAID 5構成Stripe,效能比起單純的RAID 5高,容量利用率比RAID5要低。比如同樣9塊硬碟,RAID 50則3個RAID 5組成RAID 0,每個RAID 5會浪費一塊硬碟,利用率為(1-3/9),RAID 5則為(1-1/9)。

RAID 53

它擁有一個鏡射條帶數組,硬碟裡其中一個條帶就是一個是由3組以上的RAID 5組成RAID 3硬碟陣列。

RAID 60
raid 60

RAID 6與RAID 0的組合:先作RAID 6,再作RAID 0。換句話說,就是對兩組以上的RAID 6作Stripe訪問。RAID 6至少需具備4台硬碟,所以RAID 60的最小需求是8台硬碟。

由於底層是以RAID 6組成,所以RAID 60可以容許任一組RAID 6中損毀最多2台硬碟,而系統仍能維持運作;不過只要底層任一組RAID 6中損毀3台硬碟,整組RAID 60就會失效,當然這種情況的機率相當低。

比起單純的RAID 6,RAID 60的上層通過結合多組RAID 6構成Stripe訪問,因此效能較高。不過使用門檻高,而且容量利用率低是較大的問題。

應用

RAID2、3、4較少實際應用,因為RAID5已經涵蓋了所需的功能,因此RAID2、3、4大多隻在研究領域有實現,而實際應用上則以RAID5為主。

RAID4有應用在某些商用機器上,像是NetApp公司設計的NAS系統就是使用RAID4的設計概念。

磁碟陣列比較表
RAID等級 最少硬碟 最大容錯 可用容量 讀取效能 寫入效能 安全性 目的 應用產業
單一硬碟 (參考) 0 1 1 1    
JBOD 1 0 n 1 1 無(同RAID 0) 增加容量 個人(暫時)儲存備份
0 2 0 n n n 一個硬碟異常,全部硬碟都會異常 追求最大容量、速度 3D產業即時渲染、視頻剪接快取用途
1 2 n-1 1 n 1 最高,一個正常即可 追求最大安全性 個人、企業備份
5 3 1 n-1 n-1 n-1 追求最大容量、最小預算 個人、企業備份
6 4 2 n-2 n-2 n-2 安全性較RAID 5高 同RAID 5,但較安全 個人、企業備份
10 4 n/2 n/2 n n/2 安全性高 綜合RAID 0/1優點,理論速度較快 大型資料庫、伺服器

1. n代表硬碟總數
2. JBOD可接到現有硬碟,直接增加容量

 種類

根據實現模式,分為軟體和硬體兩種:[2][3]

軟體磁碟陣列(Software RAID)
主要由電腦主板CPU處理數組儲存作業,缺點為耗損較多CPU資源運算RAID,優點則是價格偏低。分類有二種:
  • 純軟體磁碟陣列(Pure Software RAID):只需要主板支援即可,不需要任何磁碟陣列卡。若主板損壞,可能難以購買同款主板重建RAID。
  • 硬體輔助磁碟陣列(Hardware-Assisted RAID):需要一張RAID卡,以及廠商所提供的驅動程式。這款RAID較易遷移到其他電腦。
硬體磁碟陣列(Hardware RAID)
RAID卡上內建處理器,不需要伺服器的CPU運算。優點是讀寫效能最快,不佔用伺服器資源,可用於任何作業系統,也能在系統斷電後,通過備份電池模組(BBU, Backup Battery Unit)以及非易失性儲存空間 (NVRAM)將硬碟讀寫記錄檔(Journal)包含的剩餘讀寫作業先紀錄在儲存空間中,等待電力供應撤消後,再由NVRAM取回記錄檔資料,接著再完成讀寫作業,將剩餘讀寫作業安全完成以確保讀寫完整性。備份電池模組通常會配合數組卡的Write-Back快取模式,藉由此儲存空間快取讀寫作業以得到更高的讀寫效能;但是沒有備份電池模組的硬體磁碟陣列卡,切勿使用Write-Back快取模式以免遭遇斷電情形導致讀寫資料流失。此外,因為硬體磁碟陣列卡搭載CPU處理器,所以可以與系統分離出來,對硬碟進行各種作業,還原作業的速度也比軟體磁碟陣列快。缺點是其售價很高,通常只用於RAID 5和RAID 6。
常見RAID產品種類磁碟陣列相關產品

使用磁碟陣列技術的產品,可依照該產品位於電腦主機中的位置來區分,在電腦主機內部運作的數組產品,包括了主板內建的磁碟陣列、磁碟陣列卡;在電腦主機外部運作的數組產品,則包括硬碟外接盒(別名:磁碟陣列裝置)、NAS網路存放裝置、硬碟外接座、儲存卡數組盒。

  • 主板
磁碟陣列技術內建於主板的廠商,常見的有:“英特爾”(Intel)、“超微”(AMD)二家廠商,還有採用Intel晶片集的相關主板廠商,例如:“華碩”(ASUS)、“技嘉”(GIGABYTE)、“微星”(MSI)、“華擎”(ASROCK)等等。
  • 磁碟陣列卡
磁碟陣列技術應用於磁碟陣列卡的廠商,常見的有:“艾薩”(LSI)、“峰際科技”(HighPoint)、“HP”、“Adaptec”、“Areca”、“Supermicro”、“登昌恒興業”(UPMOST)等等。
  • 硬碟外接盒
磁碟陣列技術應用於硬碟外接盒的廠商,常見的有:“世特力”(Century)、“艾客優品”(AKITIO)、“大衛肯尼”(CyberSLIM)、“中銨”(ICY DOCK)、“銳銨”(STARDOM)。
具備RAID功能的硬碟外接盒,通常也叫“磁碟陣列裝置”。
  • 硬碟陣列系統
磁碟陣列技術應用於磁碟陣列系統的廠商有:“普安”(Infotrend)、“商丞”(Unifosa)、“普樺(現為商丞旗下儲存事業群)”(Proware)、“濰進”(Netstor)、“喬鼎”(Promise)、“Sans Digital”、“G-Technology”、“Accusys ExaSAN”(ExaSAN)等等。
通常指大型儲存系統Rackmount等大容量的機箱,16Bay以上的多層式機箱內,還會配上主板與CPU成為一個獨立的系統。
  • NAS網路存放裝置
磁碟陣列技術應用於NAS網路存放裝置的廠商,常見的有:“群暉”(Synology)、“威聯通”(QNAP)、“色卡司”(Thecus)、“凡達克”(Vantec)、“華芸”(Asustor)等等。
  • 硬碟外接座
磁碟陣列技術應用於硬碟外接座的廠商,常見的有:“世特力”(Century)、“峰際科技”(HighPoint)、“弘拓”(ONNTO)、“中銨”(ICY DOCK)、“大衛肯尼”(CyberSLIM)等等。
  • 儲存卡數組盒
磁碟陣列技術應用於儲存卡的廠商,目前可見的有“信億”(ARACRD)、“登昌恒興業”(UPMOST)、“致宇”(Bplus)等等。
  • 轉換器
磁碟陣列技術應用於轉換器的廠商,目前可見的有“峰際科技”(HighPoint)。
磁碟陣列相關客戶類型
    • 一般消費者備份資料之用、企業建立ERP系統或NAS系統時的重要資料備份。
    • 影音多媒體數字內容創作公司、個人影音剪輯數字內容工作室。
    • 數字監控系統(DVR)、網路監控系統(NVR)等等需要大量儲存視頻的監控系統業者,軍方、賭場因為需要大量監控系統也是常見使用磁碟陣列的客戶。
    • 證券、銀行等金融行業保管重要客戶資料。

RAID vs. HDFS(http://book.51cto.com/art/201310/412864.htm)

RAID技術可以通過硬體實現,比如專用的RAID卡或者主板直接支援,也可以通過軟體實現。RAID技術在傳統關聯式資料庫及檔案系統中應用比較廣泛,但是在大型網站比較喜歡使用的NoSQL,以及Distributed File System中,RAID技術卻遭到冷落。

例如在HDFS(Hadoop Distributed File System)中,系統在整個儲存叢集的多台伺服器上進行資料並發讀寫和備份,可以看作在伺服器叢集規模上實現了類似RAID的功能,因此不需要磁碟RAID。

HDFS以塊(Block)為單位管理檔案內容,一個檔案被分割成若干個Block,當應用程式寫檔案時,每寫完一個Block,HDFS就將其自動複製到另外兩台機器上,保證每個Block有三個副本,即使有兩台伺服器宕機,資料依然可以訪問,相當於實現了RAID1的資料複製功能。

當對檔案進行處理計算時,通過MapReduce並發計算任務架構,可以啟動多個計運算元任務(MapReduce Task),同時讀取檔案的多個Block,並發處理,相當於實現了RAID0的並發訪問功能。

HDFS架構4.23所示。

 

 

在HDFS中有兩種重要的伺服器角色:NameNode(名字服務節點)和DataNode(資料存放區節點)。NameNode在整個HDFS中只部署一個執行個體,提供中繼資料服務,相當於作業系統中的檔案配置表(FAT),管理檔案名稱Block的分配,維護整個檔案系統的分類樹結構。DataNode則部署在HDFS叢集中其他所有伺服器上,提供真正的資料存放區服務。

和作業系統一樣,HDFS對資料存放區空間的管理以資料區塊(Block)為單位,只是比作業系統中的資料區塊(512位元組)要大得多,預設為64MB。HDFS將DataNode上的磁碟空間分成N個這樣的塊,供應用程式使用。

應用程式(Client)需要寫檔案時,首先訪問NameNode,請求分配資料區塊,NameNode根據管理的DataNode伺服器的磁碟空間,按照一定的負載平衡策略,分配若干資料區塊供Client使用。

當Client寫完一個資料區塊時,HDFS會將這個資料區塊再複製兩份儲存在其他DataNode伺服器上,HDFS預設同一份資料有三個副本,保證資料可靠性。因此在HDFS中,即使DataNode伺服器有多塊磁碟,也不需要使用RAID進行資料備份,而是在整個叢集上進行資料複製,而且系統一旦發現某台伺服器宕機,會自動利用其他機器上的資料將這台伺服器上儲存的資料區塊自動再備份一份,從而獲得更高的資料可靠性。

HDFS配合MapReduce等並行計算架構進行大資料處理時,可以在整個叢集上並發讀寫訪問所有的磁碟,無需RAID支援。

 

 

   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.