四大RAID存儲(chǔ)詳解
隨著NAS和SAN存儲(chǔ)應(yīng)用的出現(xiàn),使用物理存儲(chǔ)的技巧和利用這些技巧來滿足系統(tǒng)需求快速地消失了。這并不是一件好事。因?yàn)槲覀儗⒋鎯?chǔ)卸載到外置設(shè)備上的做法并沒有改變這樣一個(gè)事實(shí),我們需要從根本上了解我們的存儲(chǔ)情況,通過配置存儲(chǔ)來滿足系統(tǒng)的特定需求。
最近五到十年似乎出現(xiàn)這樣一種誤解,認(rèn)為RAID可以等同于系統(tǒng)備份。而事實(shí)并非如此。RAID只是容錯(cuò)的一種形式。
備份和容錯(cuò)從概念上來講是完全不同的。備份讓我們可以在災(zāi)難發(fā)生之后實(shí)施恢復(fù)。而容錯(cuò)旨在降低災(zāi)難發(fā)生的幾率。容錯(cuò)就像是在懸崖上搭建一個(gè)防護(hù)網(wǎng),而備份就像是懸崖下面建造一座醫(yī)院。你恐怕永遠(yuǎn)也不希望既沒有防護(hù)網(wǎng)也沒有醫(yī)院,但他們是完全不同的兩個(gè)事物。
一旦我們?yōu)轵?qū)動(dòng)器部署了RAID,不管是本地附加還是在存儲(chǔ)網(wǎng)絡(luò)中的遠(yuǎn)程應(yīng)用,現(xiàn)在我們有四種主要的RAID解決方案可以用于業(yè)務(wù)中:RAID 1(鏡像)、RAID 5(帶校驗(yàn)的磁盤條帶)、RAID 6(帶雙重校驗(yàn)的磁盤條帶)以及RAID 10(帶有條帶的鏡像)。
還有其他類型的等解決方案,例如RAID 0,但如果你真正了解你的驅(qū)動(dòng)器子系統(tǒng)需求,那么你就知道這些只能用于少數(shù)環(huán)境中。另外人們使用的還有RAID 50和RAID 51,但是更加少見,而且效率并不那么高。十年前,RAID 1和RAID 5是很常見的,但是今天我們已經(jīng)有了更多的選擇。
下面讓我們來逐個(gè)分析這些選擇并討論一些基本的數(shù)據(jù)。在我們的例子中,我們將使用“n”來代表陣列中的驅(qū)動(dòng)器數(shù)量,“s”代表任何單個(gè)驅(qū)動(dòng)器的大小,以此來表示一個(gè)陣列的可用存儲(chǔ)空間,更直觀地進(jìn)行存儲(chǔ)容量對(duì)比。
RAID 1
這種類型的RAID是對(duì)驅(qū)動(dòng)器進(jìn)行鏡像。你有兩個(gè)驅(qū)動(dòng)器,它們同時(shí)在一起做所有事情,因此稱做“鏡像”。因?yàn)檫@個(gè)過程非常簡(jiǎn)單,所以鏡像是非常穩(wěn)定的,但是如果你之前從來沒有使用過RAID的話,這就要求你必須購買是實(shí)際需要兩倍的驅(qū)動(dòng)器,因?yàn)榈诙€(gè)驅(qū)動(dòng)器作為冗余之用。
RAID 1的好處在于你可以確保寫入到磁盤中的每個(gè)字位都被寫入兩遍以達(dá)到保護(hù)的目的。因此,使用RAID 1我們的存儲(chǔ)容量應(yīng)該是(n*s/2)。RAID 1比非RAID驅(qū)動(dòng)器性能要略高一些,寫入速度接近于非RAID系統(tǒng),而讀取速度幾乎是大多數(shù)情況下的兩倍,因?yàn)樵谧x取操作過程中驅(qū)動(dòng)器可以并行地進(jìn)行訪問,從而提高了吞吐量。RAID 1限制于兩個(gè)驅(qū)動(dòng)器。
RAID 5
帶校驗(yàn)的磁盤條帶。在這種類型的RAID中,數(shù)據(jù)以復(fù)雜條帶的形式寫入到陣列中的所有驅(qū)動(dòng)器中,同時(shí)所有驅(qū)動(dòng)器中都有分布數(shù)校驗(yàn)塊。這樣 RAID 5就可能使用三個(gè)或者更多磁盤組成的任意大小的陣列,只犧牲相當(dāng)于一個(gè)磁盤的存儲(chǔ)容量用于校驗(yàn)。但是這種校驗(yàn)是分布式的,并不單獨(dú)存在于任何一個(gè)物理磁盤中。
RAID 5由于在大型陣列中犧牲的存儲(chǔ)容量較少,所以它具有成本效益的特點(diǎn),從而被人們所廣泛使用。與鏡像不同的是,帶有校驗(yàn)的條帶要求必須在磁盤之間進(jìn)行針對(duì)每個(gè)寫入條帶的計(jì)算,這造成了一部分的開銷。因此,吞吐量并不總是一個(gè)容易計(jì)算的項(xiàng)目,它在很大程度上取決于系統(tǒng)在做校驗(yàn)計(jì)算時(shí)候的計(jì)算能力。
計(jì)算RAID 5的容量非常簡(jiǎn)單:就是((n-1)*s)。RAID 5陣列可以避免這列中任何單個(gè)磁盤的丟失。
RAID 6
帶雙重校驗(yàn)的磁盤條帶。RAID 6與RAID 5非常相似,但它的每個(gè)條帶使用兩個(gè)校驗(yàn)塊,而不是一個(gè),這加強(qiáng)了應(yīng)對(duì)磁盤故障的保護(hù)能力。
RAID 6是RAID家族中的新成員。RAID 6是其他幾個(gè)RAID類型實(shí)現(xiàn)標(biāo)準(zhǔn)化幾年之后增加的。RAID 6比較特殊,因?yàn)樗梢猿惺荜嚵兄腥我鈨蓚€(gè)驅(qū)動(dòng)器的故障,同時(shí)防止數(shù)據(jù)丟失。但是為了配合額外的冗余度,RAID 6陣列需要犧牲陣列中相當(dāng)于兩個(gè)驅(qū)動(dòng)器的容量,并要求真列中最少有四個(gè)驅(qū)動(dòng)器。RAID 6的容量可以用((n-2)*s)來計(jì)算。
RAID 10
帶條帶的鏡像。從技術(shù)上來說,RAID 10是一種混合的RAID,包括存在于一個(gè)非校驗(yàn)條帶(RAID 0)中的一對(duì)RAID鏡像。
當(dāng)一個(gè)陣列中只有兩個(gè)驅(qū)動(dòng)器的時(shí)候,很多廠商會(huì)稱其為RAID 10(或者RAID 10+),但從技術(shù)上來說這應(yīng)該是RAID 1,因?yàn)殛嚵兄兄辽儆兴膫€(gè)驅(qū)動(dòng)器才會(huì)發(fā)生條帶化。對(duì)于RAID 10來說,驅(qū)動(dòng)器必須是一對(duì)一對(duì)添加的,因此陣列中的驅(qū)動(dòng)器數(shù)量只可能是偶數(shù)。
RAID 10可以在丟失近半數(shù)驅(qū)動(dòng)器組的情況下正常運(yùn)轉(zhuǎn),同是最多只能承受每個(gè)驅(qū)動(dòng)器中一個(gè)驅(qū)動(dòng)器發(fā)生故障或者丟失。RAID 10不包含校驗(yàn)計(jì)算,這使得它相對(duì)RAID 5和RAID 6來說具有一定的性能優(yōu)勢(shì),而且陣列對(duì)計(jì)算能力的要求也更低。RAID 10提供了超過任何一種常見類型RAID的讀取性能,因?yàn)樵谧x取操作中陣列中的所有驅(qū)動(dòng)器都可同時(shí)使用。但是RAID 10的寫入性能要低很多。RAID 10的容量計(jì)算方法和RAID 1相同,都是(n*s/2)。