Raid詳解

yepkeepmoving發表於2016-12-09

Raid卡管理

一、Raid簡介

RAIDRedundant Array of Independent Disks),即獨立磁碟冗餘陣列,其前身為Redundant Array of Inexpensive Disks,即廉價磁碟冗餘陣列。

其主要是用來將多個相對廉價的磁碟組合成一個磁碟陣列組,使其效能達到甚至超過一個價格昂貴的、容量巨大的硬碟。它可以增強資料整合度,增強容錯功能,增加處理量和容量。

二、Raid種類

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

軟體磁碟陣列(Software RAID),主要由電腦主機板CPU處理陣列儲存作業,缺點為耗損較多CPU資源運算RAID,優點則是價格偏低。分類有二種:純軟體磁碟陣列(Pure Software RAID):只需要主機板支援即可,不需要任何磁碟陣列卡。若主機板損壞,可能難以購買同款主機板重建RAID。硬體輔助磁碟陣列(Hardware-Assisted RAID):需要一張RAID卡,以及廠商所提供的驅動程式。這款RAID較易遷移到其他電腦。

硬體磁碟陣列(Hardware RAIDRAID卡上內建處理器,不需要伺服器的CPU運算。優點是讀寫效能最快,不佔用伺服器資源,可用於任何作業系統,也能在系統斷電後,透過備份電池模組(BBU, Backup Battery Unit)以及非易失性儲存器 (NVRAM)將硬碟讀寫日誌檔(Journal)包含的剩餘讀寫作業先紀錄在儲存器中,等待電力供應撤消後,再由NVRAM取回日誌檔資料,接著再完成讀寫作業,將剩餘讀寫作業安全完成以確保讀寫完整性。備份電池模組通常會配合陣列卡的Write-Back快取模式,藉由此儲存器快取讀寫作業以得到更高的讀寫效能;但是沒有備份電池模組的硬體磁碟陣列卡,切勿使用Write-Back快取模式以免遭遇斷電情形導致讀寫資料流失。此外,因為硬體磁碟陣列卡搭載CPU處理器,所以可以與系統分離出來,對硬碟進行各種作業,還原作業的速度也比軟體磁碟陣列快。缺點是其售價很高,通常只用於RAID 5RAID 6

其中標準的RaidRaid-0,Raid-1,Raid-2,Raid-3,Raid-4,Raid-5,Raid-6。擴充套件的RaidRaid7,Raid-10,Raid-01,Raid-50,Raid-53,Raid-60

l  RAID 0

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

l  RAID 1

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

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

l  RAID 2

這是RAID 0的改進版,以漢明碼(Hamming Code)的方式將資料進行編碼後分割槽為獨立的位元,並將資料分別寫入硬碟中。因在資料中加入了錯誤修正碼(ECCError Correction Code),所以資料整體的容量會比原始資料大一些,磁碟空間利用率下降,RAID2最少要三臺磁碟驅動器方能運作。

l  RAID 3

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

 

l  RAID 4

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

l  RAID 5

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

Size=(N-1) * Min(S1,S2,S3…Sn)

l  RAID 6

RAID 5相比,RAID 6增加第二個獨立的奇偶校驗資訊塊。兩個獨立的奇偶系統使用不同的演算法,資料的可靠性非常高,任意兩塊磁碟同時失效時不會影響資料完整性。RAID 6需要分配給奇偶校驗資訊更大的磁碟空間和額外的校驗計算,相對於RAID 5有更大的IO操作量和計算量,其“寫效能”強烈取決於具體的實現方案,因此RAID6通常不會透過軟體方式來實現,而更可能透過硬體/韌體方式實現。

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

         Size=(N-2) * Min(S1,S2,S3…Sn )

l  RAID 7

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

l  RAID 10

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

l  RAID 01

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

l  RAID 50


l  RAID 53

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

l  RAID 60


三、      Raid對比表

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

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

RAID等級

最少硬碟

最大容錯

可用容量

讀取效能

寫入效能

安全性

目的

應用產業

0

1*n

0

n

n

n

平行儲存(條帶)一個硬碟異常,全部硬碟都會異常

追求最大容量、速度

影片剪接快取用途

1

2*n

n-1

n/2

n

n/2

映象儲存,最高,一個正常即可

追求最大安全性,隨機寫效能低

個人、企業備份

10

4*n

n/2

n/2

n

n/2

安全性高

綜合RAID 0/1優點,理論速度較快

大型資料庫、伺服器

5

3

1

n-1

n-1

n-1

隨機和連續寫效能低,追求最大容量、最小預算

個人、企業備份

6

4

2

n-2

n-2

n-2

安全性較RAID 5

RAID 5,但較安全

個人、企業備份

JBOD

1

0

n

1

1

無(同RAID 0

增加容量

個人(暫時)儲存備份

單一硬碟

(參考)

0

1

1

1



 

四、 Raid資訊檢視

本手冊採用的是Megcli工具檢視raid陣列資訊,基本的軟raid可以透過cat /proc/mdstat檢視,基於硬raid可以透過dmesg |grep -i raid或者cat /proc/scsi/scsi或者/usr/dpt/raidutil -L all檢視,也可以在伺服器啟動的時候Ctrl+R檢視raid資訊。lspci可以看到RAID卡的型號。

l  安裝MegaCli軟體

rpm -ivh MegaCli-8.07.07-1.noarch.rpm

ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/MegaCli

l  常用命令

檢視Raid卡級別,顯示所有邏輯磁碟組資訊:MegaCli -LDInfo -LALL -aAll

顯示Raid卡型號,Raid設定,Disk相關資訊(壞塊檢查):MegaCli -cfgdsply -aALL

顯示所有的物理資訊,檢視硬碟資訊(硬碟狀態) :MegaCli -PDList -aAll

顯示所有介面卡資訊,支援的Raid卡種類:MegaCli -AdpAllInfo –aAll

檢視Raid卡電池資訊MegaCli -AdpBbuCmd –aAll

其他命令

顯示介面卡個數 MegaCli –adpCount

顯示介面卡時間 MegaCli -AdpGetTime –aALL

檢視raid卡日誌 MegaCli -FwTermLog -Dsply –aALL

檢視充電狀態 MegaCli -AdpBbuCmd -GetBbuStatus -aALL |grep  'Charger Status'

顯示BBU狀態資訊  MegaCli -AdpBbuCmd -GetBbuStatus –aALL

顯示BBU容量資訊  MegaCli -AdpBbuCmd -GetBbuCapacityInfo –aALL

顯示BBU設計引數  MegaCli -AdpBbuCmd -GetBbuDesignInfo -aALL  

顯示當前BBU屬性  MegaCli -AdpBbuCmd -GetBbuProperties -aALL

顯示硬碟重構進度:MegaCli -PDRbld -ShowProg -PhysDrv [32:3] -a0 

l  Raid級別資訊

RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0"         #代表Raid 1

RAID Level : Primary-0, Secondary-0, RAID Level Qualifier-0"         #代表Raid 0

RAID Level : Primary-5, Secondary-0, RAID Level Qualifier-3"         #代表Raid 5

RAID Level : Primary-1, Secondary-3, RAID Level Qualifier-0"         #代表Raid10

五、附錄

相關Raid的詳細介紹資訊可以透過維基百科檢視

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27067062/viewspace-2130146/,如需轉載,請註明出處,否則將追究法律責任。

相關文章