雲端技術介紹3 – 磁碟陣列

之前在惡魔島發表了兩篇雲端相關的文章, http://www.wretch.cc/blog/KisPlay/1310237 http://www.wretch.cc/blog/KisPlay/1268404

引起大家小小的討論, 今天就來第三部曲吧! 希望各位多多給點批評與指教啊! 小弟會努力做筆記與給分的!

在談完了雲端技術的架構, 雲端伺服器的介紹以後, 接著來聊聊磁碟陣列吧! 在雲端運算的環境中, “使用者端”資料的完整性, 是最基本的服務. 如何還原遺失的資料、增加讀取效能, 就有賴磁碟陣列(RAID, Redundant Arrays of Inexpensive Disks)的協助了. 概念是多顆硬碟透過RAID控制器(分硬體、軟體方式)結合成虛擬單顆大容量的硬碟使用, 作業系統只會把RAID看成一個大硬碟; 實際上, 是將資料分散到每一個硬碟, 多台硬碟同時讀取, 速度加快; 並且在大部分磁碟陣列模式下, 可以強化硬碟毀損時的資料還原能力. 接下來就介紹一下各種模式的磁碟陣列原理囉~

 

RAID 0:Striping/Span (切分/延展)

RAID0將資料儲存在N (N≧2) 個以上的硬碟, 在寫入時, 將資料分割成N個小區塊, 在同一時間分別存到每一顆硬碟裡, 因此可以提升寫入速度.當需要讀取時, 再分別由所有硬碟裡同時將小區塊抓出來, 所以也有較高的讀取速度.藉由將資料平均分割到全部的硬碟上, 進行平行讀寫, 而達到提高讀寫的效能, 相對的也提高整體儲存的容量. 但是缺點是完全沒有更正錯誤的能力, 所以只要有一個硬碟故障, 就會造成所有的磁碟陣列, 毀於一旦無法挽回了.

 

圖 1  RAID 0 示意圖

RAID 1 : Mirroring (磁碟鏡射)

必須由偶數個硬碟所組成, 將這些硬碟分成兩組, 而資料同時寫入第1組與第2組的所有硬碟, 所以這2組硬碟上的資料完全相同, 也就是其中一組的硬碟是專門用來作備份用途. 因此當其中一組的任一個硬碟故障時, 備份的另一組硬碟內的資料就可以發揮功能, 系統依然可以正常運作不受影響.RAID 1是所有磁碟陣列模式中, 擁有最佳的資料安全性. 但是, 唯一的缺點就是, 磁碟陣列的容量是全部硬碟容量的一半.

 

圖 2   RAID 1 示意圖

RAID 2

是RAID 0的改良版, 以位元(bit)為單位.將資料利用錯誤更正碼 (ECC, Error Correction Code) 中的漢明碼(Hamming Code)進行編解碼, 而達到更正錯誤的能力.例如原始資料(data):0111, 編碼(encode)之後的碼字(codeword): 0111110, 將碼字傳送過程當中發生一個位元(bit)的錯誤, 結果接收端接收到的碼字: 0111111, 此時接收端會將此碼字0111111跟資料庫的所有碼字比對(假設資料庫全部只有4個碼字, 分別是0000000, 0011100, 0111110, 1111111), 結果會發現與0111110最相似, 因為只有一個位元的差異, 所以接收端會判斷原始資料是0111, 也就更正了一個位元的錯誤了.

RAID 2最少要三顆硬碟才能運作, 所以當只有一硬碟毀損時, 可以藉由另兩顆硬碟的資料, 將毀損的那一顆硬碟中的資料還原回來.也因為在資料中加入了漢明碼的內容, 所以資料整體的容量會比原始資料大一些.

 

圖 3   RAID 2 示意圖

RAID 3:Parallel with Parity (平行同位檢查)

最少須三個硬碟, 利用其中一個硬碟專門來儲存根據資料運算出來的檢查碼.當磁碟陣列中有一個硬碟發生故障時(當然不能是儲存檢查碼的硬碟), 只要換上新硬碟後, 系統就能利用檢查碼碟的資料, 重新計算得到其舊有資料並寫回建立.檢查碼資料運算的方式是將資料以Bytes為單位來計算, 然後依序將每Byte寫入不同硬碟, 同時將每Byte的檢查碼寫入儲存檢查碼的硬碟.

 

圖 4   RAID 3示意圖

RAID 4

最少須三個硬碟, 其工作原理跟RAID 3相似, 主要差別是:檢查碼資料運算的方式是將資料切割成數個區塊(1區塊= N Byte, N >1).然後依序將每區塊寫入不同硬碟, 同時將每區塊的檢查碼寫入儲存檢查碼的硬碟.

 

圖 5   RAID 4示意圖

RAID 5:Striping with Rotating Parity

最少須三個硬碟, 其工作原理與RAID 4相似, 主要差別是其檢查碼資料沒有固定儲存在同一顆硬碟, 而是輪流儲存在每個硬碟上.目前RAID 5普遍應用於業界, 因為它可以為系統提供安全保障(雖然保障程度比RAID 1低, 但是硬碟容量利用率要比RAID 1高), 存儲成本又相對較低廉.而RAID 2~4在業界很少見, 因為RAID 5集合了它們的優點, 因此RAID 2~4一般只用於學術研究領域, 而在實際應用上則以RAID5或RAID6為主.

 

圖 6   RAID 5 示意圖

RAID 6

最少須四個硬碟, RAID 6是在RAID 5的基礎上發展而成, 由一些大企業提出來的標準, 全名「Independent Data disks with two independent distributed parity schemes, 帶有兩個獨立分散式檢查碼的獨立資料磁碟」.主要差異是將檢查碼寫入到兩個硬碟裏面, 這樣就可以增強錯誤更正的能力.不過, 缺點是成本較高.

 

圖 7   RAID 6示意圖

RAID 7

RAID 7與RAID 0~RAID 6不同, 除了它並非一個開放式的商用標準之外, 連架構也存在很大的差異.主要是因為RAID 7的架構中, 不僅具備了資料還原能力, 同時更內建了屬於自己的處理器、快取記憶體, 來提高資料讀取效能.

RAID 0+1 (RAID 01)

結合了RAID 0與1兩種模式, 這個磁碟陣列模式須具備4個以上的雙數硬碟.先由2個以上硬碟遵守RAID 0規範, 設定成一組;再由每組間遵循RAID 1的規範, 使RAID 0+1擁有錯誤更正能力及資料讀寫速度.

 

圖 8   RAID 0+1示意圖

RAID 1+0 (RAID 10)

結合了RAID 1與0兩種模式, 是將所有硬碟分為兩組, 視為RAID 0的最低組合, 然後將這兩組各自視為RAID 1運作, 使RAID 1+0擁有錯誤更正能力及資料讀寫速度.RAID 10的優缺點與RAID 01類似, 不過, 就可靠性來說, RAID 10較01略佳, 除非底層兩組RAID 1發生其中1組的2顆硬碟同時損毀, 才會完全失效.如果只是兩組RAID 1各損壞1顆硬碟, RAID 10還能維持正常運作.

 

圖 9   RAID 1+0示意圖

RAID 5+0 (RAID 50)

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.

 

圖 10   RAID 5+0示意圖

JBOD (Just Bunch of Disks)

這不算RAID, 因為它的功能就只是「將多顆磁碟湊在一起」, 讓作業系統當作是一顆超大硬碟來用.假設是4顆500GB的大硬碟, 在JBOD模式下就成了一顆2TB﹙1TB=1000GB﹚的超高容量硬碟.這種模式除了硬碟容量提升之外, 速度還是跟單一硬碟相同, 也完全沒有安全性可言.

 

圖 11   JBOD示意圖

以上就是目前磁碟陣列模式的大致說明, 有些磁碟陣列模式是由儲存設備廠商自行開發的私有技術, 用來解決現存磁碟陣列模式的缺點、增加資料保存安全性、提高資料還原能力、降低建置成本…當然這些技術並非國際標準, 所以只能說是廠商之間產品差異化的一個特徵, 例如: RAID 5E, RAID 5E, RAID 1E, RAID DP, RAID ADG….

在商用磁碟陣列的應用當中, 幾乎都是使用硬體方式的磁碟陣列(Hardware RAID), 原因在於不會增加儲存設備系統運算的負擔, 一切的資料運算與還原都是由RAID控制器來完成了~

科技學堂

SayDigi 點子生活是結合新聞性與實用性的共筆網站,內容包含 科技新聞頻道、3C產品訊息、科技專欄與各種有趣新奇周邊小物,除了科技議題外,還包含旅遊美食、親子生活、與職場甘苦。讓個多好用的資訊新知,藉由精彩文字與豐富圖片傳達給每位讀者。

More in 科技學堂

太陽能發電新進展 Perovskite 鈣鈦礦電池是什麼?有機會成為綠能發電的新技術?

Kisplay2024/08/12

【電信】無框行動 466元不限速吃到飽,吃不完還給你! 每月依用量退款!

大口2023/01/16

終結實體遙控器殺手,輕鬆呼喚掌控居家家電用品 X 中嘉寬頻 智慧遙控器好神器

尼力2022/08/10

超狂放大137倍的DYSON V10 科技博物館,快閃高雄漢神巨蛋廣場(超狂吸引力)

尼力2018/12/05

Google 聖誕老人追蹤器 12/4 開張 打造自己的聖誕小精靈!

Candice2018/12/03

【Maker Hatch Day】5 公分小方塊,讓你的創意輕鬆實現沒有邊界-「Cubiio 掌上型雷射雕刻機」團隊專訪

點子生活2018/11/21
-->
一起用好點子過好生活吧!