【廣告】
什么是RAID
RAID,中文名稱叫獨(dú)立磁盤冗余陣列(廉價(jià)磁盤冗余陣列),簡(jiǎn)稱磁盤陣列。它的作用呢,是在多塊硬盤組成的陣列系統(tǒng)中,犧牲一塊至多塊硬盤的容量,來對(duì)數(shù)據(jù)的存儲(chǔ)提供一定的容錯(cuò)能力。
我們先來簡(jiǎn)單假設(shè)一種使用情況:你擁有一些重要的數(shù)據(jù),但是你并沒有將這些數(shù)據(jù)進(jìn)行備份,他們只存在于你臺(tái)式機(jī)的單一硬盤中。那么一旦遇到臺(tái)式機(jī)的硬盤損壞,你的這些數(shù)據(jù)只能去找數(shù)據(jù)恢復(fù)公司了;而如果你的臺(tái)式機(jī)做了磁盤陣列,那么只需要替換陣列中壞掉的硬盤就可以重新恢復(fù)數(shù)據(jù)了。
這正是RAID的魅力所在。如果你只組建一個(gè)相對(duì)廉價(jià)的陣列,甚至不需要額外的硬件成本,只要你的主板支持RAID功能,就可以體驗(yàn)RAID給你帶來的好處。
磁盤陣列
獨(dú)立磁盤冗余陣列是把相同的數(shù)據(jù)存儲(chǔ)在多個(gè)硬盤的不同的地方的方法。通過把數(shù)據(jù)放在多個(gè)硬盤上,輸入輸出操作能以平衡的方式交疊,改良性能。因?yàn)槎鄠€(gè)硬盤增加了平均故障間隔時(shí)間(MTBF),儲(chǔ)存冗余數(shù)據(jù)也增加了容錯(cuò)。 由加利福尼亞大學(xué)伯克利分校(University of California-Berkeley)在1988年,發(fā)表的文章:“A Case for Redundant Arrays of Inexpensive Disks”。文章中,談到了RAID這個(gè)詞匯,而且定義了RAID的5層級(jí)。伯克利大學(xué)研究目的是反映當(dāng)時(shí)CPU快速的性能。CPU效能每年大約成長(zhǎng)30~50%,而硬磁機(jī)只能成長(zhǎng)約7%。研究小組希望能找出一種新的技術(shù),在短期內(nèi),立即提升效能來平衡計(jì)算機(jī)的運(yùn)算能力。在當(dāng)時(shí),柏克萊研究小組的主要研究目的是效能與成本。 另外,研究小組也設(shè)計(jì)出容錯(cuò)(fault-tolerance),邏輯數(shù)據(jù)備份(logical data redundancy),而產(chǎn)生了RAID理論。研究初期,便宜(Inexpensive)的磁盤也是主要的重點(diǎn),但后來發(fā)現(xiàn),大量便宜磁盤組合并不能適用于現(xiàn)實(shí)的生產(chǎn)環(huán)境,后來Inexpensive被改為independent,許多獨(dú)立的磁盤組
那么服務(wù)器為啥要做磁盤陣列呢?
主要有兩個(gè)作用:
提供容錯(cuò)功能
普通的磁盤驅(qū)動(dòng)器是無法提供容錯(cuò)功能的,而磁盤陣列可以通過數(shù)據(jù)校驗(yàn)提供容錯(cuò)功能,服務(wù)器會(huì)將數(shù)據(jù)寫入多個(gè)磁盤,如果某個(gè)磁盤發(fā)生故障時(shí),此時(shí)仍能保證信息的可用性,重要數(shù)據(jù)不會(huì)丟失,也不會(huì)耽誤服務(wù)器的正常運(yùn)轉(zhuǎn)。
提高傳輸速率
磁盤陣列將多個(gè)磁盤組成一個(gè)陣列,當(dāng)做一個(gè)單一的磁盤使用,把數(shù)據(jù)已分段的形式存儲(chǔ)到不同的硬盤之中,發(fā)生數(shù)據(jù)存取變動(dòng)時(shí),陣列中的相關(guān)磁盤一起工作,這就可以大幅的降低數(shù)據(jù)存儲(chǔ)的時(shí)間,同時(shí)還能擁有更佳的空間和使用率。
磁盤陣列 RAID 技術(shù)基本原理
RAID 技術(shù)可以將一個(gè)硬盤上的任務(wù)分散或copy到多個(gè)(少則兩個(gè))磁盤上,借此來提高了性能或建立數(shù)據(jù)冗余以防驅(qū)動(dòng)器發(fā)生故障??梢酝ㄟ^設(shè)定設(shè)備的 RAID 模式來決定設(shè)備以何種方式處理數(shù)據(jù)。RAID 配置可讓多個(gè)硬盤驅(qū)動(dòng)器以不同的方式(例如使用條帶技術(shù)或鏡像技術(shù))組合成單一的運(yùn)行單元。
RAID 的兩個(gè)關(guān)鍵目標(biāo)是提高數(shù)據(jù)可靠性和 I/O 性能。磁盤陣列中,數(shù)據(jù)分散在多個(gè)磁盤中,然而對(duì)于計(jì)算機(jī)系統(tǒng)來說,就像一個(gè)單獨(dú)的磁盤。通過把相同數(shù)據(jù)同時(shí)寫入到多塊磁盤(典型地如鏡像),或者將計(jì)算的校驗(yàn)數(shù)據(jù)寫入陣列中來獲得冗余能力,當(dāng)單塊磁盤出現(xiàn)故障時(shí)可以保證不會(huì)導(dǎo)致數(shù)據(jù)丟失。有些 RAID 等級(jí)允許更多地 磁盤同時(shí)發(fā)生故障。在這樣的冗余機(jī)制下,可以用新磁盤替換故障磁盤, RAID 會(huì)自動(dòng)根據(jù)剩余磁盤中的數(shù)據(jù)和校驗(yàn)數(shù)據(jù)重建丟失的數(shù)據(jù),保證數(shù)據(jù)一致性和完整性。數(shù)據(jù)分散保存在 RAID 中的多個(gè)不同磁盤上,并發(fā)數(shù)據(jù)讀寫要大大優(yōu)于單個(gè)磁盤,因此可以獲得更高的聚合 I/O 帶寬。當(dāng)然,磁盤陣列會(huì)減少全體磁盤的總可用存儲(chǔ)空間,犧牲空間換取更高的可靠性和性能。比如, RAID1 存儲(chǔ)空間利用率僅有 50% , RAID5 會(huì)損失其中一個(gè)磁盤的存儲(chǔ)容量,空間利用率為 (n-1)/n 。