簡(jiǎn)述RAID磁盤陣列技術(shù)
瀏覽量: 次 發(fā)布日期:2023-08-25 18:51:21
簡(jiǎn)述RAID磁盤陣列技術(shù)
RAID,獨(dú)立硬盤冗余陣列(RAID, Redundant Array of Independent Disks),簡(jiǎn)稱磁盤陣列。其基本思想就是把多個(gè)相對(duì)便宜的硬盤組合起來(lái),成為一個(gè)硬盤陣列組,使性能達(dá)到甚至超過(guò)一個(gè)價(jià)格昂貴、容量巨大的硬盤。
根據(jù)選擇的版本不同,RAID比單顆硬盤有以下一個(gè)或多個(gè)方面的好處:增強(qiáng)數(shù)據(jù)集成度,增強(qiáng)容錯(cuò)功能,增加處理量或容量。另外,磁盤陣列對(duì)于電腦來(lái)說(shuō),看起來(lái)就像一個(gè)單獨(dú)的硬盤或邏輯存儲(chǔ)單元。
RAID ( Redundant Array of Independent Disks )即獨(dú)立磁盤冗余陣列,通常簡(jiǎn)稱為磁盤陣列。簡(jiǎn)單地說(shuō), RAID 是由多個(gè)獨(dú)立的高性能磁盤驅(qū)動(dòng)器組成的磁盤子系統(tǒng),從而提供比單個(gè)磁盤更高的存儲(chǔ)性能和數(shù)據(jù)冗余的技術(shù)。 RAID 是一類多磁盤管理技術(shù),其向主機(jī)環(huán)境提供了成本適中、數(shù)據(jù)可靠性高的高性能存儲(chǔ)。 SNIA 對(duì) RAID 的定義是 :一種磁盤陣列,部分物理存儲(chǔ)空間用來(lái)記錄保存在剩余空間上的用戶數(shù)據(jù)的冗余信息。當(dāng)其中某一個(gè)磁盤或訪問(wèn)路徑發(fā)生故障時(shí),冗余信息可用來(lái)重建用戶數(shù)據(jù)。磁盤條帶化雖然與 RAID 定義不符,通常還是稱為 RAID (即 RAID0 )。
RAID 的初衷是為大型服務(wù)器提供高端的存儲(chǔ)功能和冗余的數(shù)據(jù)安全。在整個(gè)系統(tǒng)中, RAID 被看作是由兩個(gè)或更多磁盤組成的存儲(chǔ)空間,通過(guò)并發(fā)地在多個(gè)磁盤上讀寫數(shù)據(jù)來(lái)提高存儲(chǔ)系統(tǒng)的 I/O 性能。大多數(shù) RAID 等級(jí)具有完備的數(shù)據(jù)校驗(yàn)、糾正措施,從而提高系統(tǒng)的容錯(cuò)性,甚至鏡像方式,大大增強(qiáng)系統(tǒng)的可靠性, Redundant 也由此而來(lái)。
RAID 的兩個(gè)關(guān)鍵目標(biāo)是提高數(shù)據(jù)可靠性和 I/O 性能。磁盤陣列中,數(shù)據(jù)分散在多個(gè)磁盤中,然而對(duì)于計(jì)算機(jī)系統(tǒng)來(lái)說(shuō),就像一個(gè)單獨(dú)的磁盤。通過(guò)把相同數(shù)據(jù)同時(shí)寫入到多塊磁盤(典型地如鏡像),或者將計(jì)算的校驗(yàn)數(shù)據(jù)寫入陣列中來(lái)獲得冗余能力,當(dāng)單塊磁盤出現(xiàn)故障時(shí)可以保證不會(huì)導(dǎo)致數(shù)據(jù)丟失。有些 RAID 等級(jí)允許更多地 磁盤同時(shí)發(fā)生故障,比如 RAID6 ,可以是兩塊磁盤同時(shí)損壞。在這樣的冗余機(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 。
磁盤陣列可以在部分磁盤(單塊或多塊,根據(jù)實(shí)現(xiàn)而論)損壞的情況下,仍能保證系統(tǒng)不中斷地連續(xù)運(yùn)行。在重建故障磁盤數(shù)據(jù)至新磁盤的過(guò)程中,系統(tǒng)可以繼續(xù)正常運(yùn)行,但是性能方面會(huì)有一定程度上的降低。一些磁盤陣列在添加或刪除磁盤時(shí)必須停機(jī),而有些則支持熱交換 ( Hot Swapping ),允許不停機(jī)下替換磁盤驅(qū)動(dòng)器。這種高端磁盤陣列主要用于要求高可能性的應(yīng)用系統(tǒng),系統(tǒng)不能停機(jī)或盡可能少的停機(jī)時(shí)間。一般來(lái)說(shuō), RAID 不可作為數(shù)據(jù)備份的替代方案,它對(duì)非磁盤故障等造成的數(shù)據(jù)丟失無(wú)能為力,比如病毒、人為破壞、意外刪除等情形。此時(shí)的數(shù)據(jù)丟失是相對(duì)操作系統(tǒng)、文件系統(tǒng)、卷管理器或者應(yīng)用系統(tǒng)來(lái)說(shuō)的,對(duì)于 RAID 系統(tǒng)來(lái)身,數(shù)據(jù)都是完好的,沒(méi)有發(fā)生丟失。所以,數(shù)據(jù)備份、災(zāi) 備等數(shù)據(jù)保護(hù)措施是非常必要的,與 RAID 相輔相成,保護(hù)數(shù)據(jù)在不同層次的安全性,防止發(fā)生數(shù)據(jù)丟失。
RAID 中主要有三個(gè)關(guān)鍵概念和技術(shù):鏡像( Mirroring )、數(shù)據(jù)條帶( Data Stripping )和數(shù)據(jù)校驗(yàn)( Data parity )。鏡像,將數(shù)據(jù)復(fù)制到多個(gè)磁盤,一方面可以提高可靠性,另一方面可并發(fā)從兩個(gè)或多個(gè)副本讀取數(shù)據(jù)來(lái)提高讀性能。顯而易見(jiàn),鏡像的寫性能要稍低, 確保數(shù)據(jù)正確地寫到多個(gè)磁盤需要更多的時(shí)間消耗。數(shù)據(jù)條帶,將數(shù)據(jù)分片保存在多個(gè)不同的磁盤,多個(gè)數(shù)據(jù)分片共同組成一個(gè)完整數(shù)據(jù)副本,這與鏡像的多個(gè)副本是不同的,它通常用于性能考慮。數(shù)據(jù)條帶具有更高的并發(fā)粒度,當(dāng)訪問(wèn)數(shù)據(jù)時(shí),可以同時(shí)對(duì)位于不同磁盤上數(shù)據(jù)進(jìn)行讀寫操作, 從而獲得非??捎^的 I/O 性能提升 。數(shù)據(jù)校驗(yàn),利用冗余數(shù)據(jù)進(jìn)行數(shù)據(jù)錯(cuò)誤檢測(cè)和修復(fù),冗余數(shù)據(jù)通常采用海明碼、異或操作等算法來(lái)計(jì)算獲得。利用校驗(yàn)功能,可以很大程度上提高磁盤陣列的可靠性、魯棒性和容錯(cuò)能力。不過(guò),數(shù)據(jù)校驗(yàn)需要從多處讀取數(shù)據(jù)并進(jìn)行計(jì)算和對(duì)比,會(huì)影響系統(tǒng)性能。 不同等級(jí)的 RAID 采用一個(gè)或多個(gè)以上的三種技術(shù),來(lái)獲得不同的數(shù)據(jù)可靠性、可用性和 I/O 性能。至于設(shè)計(jì)何種 RAID (甚至新的等級(jí)或類型)或采用何種模式的 RAID ,需要在深入理解系統(tǒng)需求的前提下進(jìn)行合理選擇,綜合評(píng)估可靠性、性能和成本來(lái)進(jìn)行折中的選擇。
RAID 思想從提出后就廣泛被業(yè)界所接納,存儲(chǔ)工業(yè)界投入了大量的時(shí)間和財(cái)力來(lái)研究和開(kāi)發(fā)相關(guān)產(chǎn)品。而且,隨著處理器、內(nèi)存、計(jì)算機(jī)接口等技術(shù)的不斷發(fā)展, RAID 不斷地發(fā)展和革新,在計(jì)算機(jī)存儲(chǔ)領(lǐng)域得到了廣泛的應(yīng)用,從高端系統(tǒng)逐漸延伸到普通的中低端系統(tǒng)。 RAID 技術(shù)如此流行,源于其具有顯著的特征和優(yōu)勢(shì),基本可以滿足大部分的數(shù)據(jù)存儲(chǔ)需求??傮w說(shuō)來(lái), RAID 主要優(yōu)勢(shì)有如下幾點(diǎn):(1) 大容量 這是 RAID 的一個(gè)顯然優(yōu)勢(shì),它擴(kuò)大了磁盤的容量,由多個(gè)磁盤組成的 RAID 系統(tǒng)具有海量的存儲(chǔ)空間?,F(xiàn)在單個(gè)磁盤的容量就可以到 1TB 以上,這樣 RAID 的存儲(chǔ)容量就可以達(dá)到 PB 級(jí),大多數(shù)的存儲(chǔ)需求都可以滿足。一般來(lái)說(shuō), RAID 可用容量要小于所有成員磁盤的總?cè)萘?。不同等?jí)的 RAID 算法需要一定的冗余開(kāi)銷,具體容量開(kāi)銷與采用算法相關(guān)。如果已知 RAID 算法和容量,可以計(jì)算出 RAID 的可用容量。通常, RAID 容量利用率在 50% ~ 90% 之間。(2) 高性能 RAID 的高性能受益于數(shù)據(jù)條帶化技術(shù)。單個(gè)磁盤的 I/O 性能受到接口、帶寬等計(jì)算機(jī)技術(shù)的限制,性能往往很有 限,容易成為系統(tǒng)性能的瓶頸。通過(guò)數(shù)據(jù)條帶化, RAID 將數(shù)據(jù) I/O 分散到各個(gè)成員磁盤上,從而獲得比單個(gè)磁盤成倍增長(zhǎng)的聚合 I/O 性能。(3) 可靠性 可用性和可靠性是 RAID 的另一個(gè)重要特征。從理論上講,由多個(gè)磁盤組成的 RAID 系統(tǒng)在可靠性方面應(yīng)該比單個(gè)磁盤要差。這里有個(gè)隱含假定:?jiǎn)蝹€(gè)磁盤故障將導(dǎo)致整個(gè) RAID 不可用。 RAID 采用鏡像和數(shù)據(jù)校驗(yàn)等數(shù)據(jù)冗余技術(shù),打破了這個(gè)假定。 鏡像是最為原始的冗余技術(shù),把某組磁盤驅(qū)動(dòng)器上的數(shù)據(jù)完全復(fù)制到另一組磁盤驅(qū)動(dòng)器上,保證總有數(shù)據(jù)副本可用。 比起鏡像 50% 的冗余開(kāi)銷 ,數(shù)據(jù)校驗(yàn)要小很多,它利用校驗(yàn)冗余信息對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)和糾錯(cuò)。 RAID 冗余技術(shù)大幅提升數(shù)據(jù)可用性和可靠性,保證了若干磁盤出錯(cuò)時(shí),不 會(huì)導(dǎo)致數(shù)據(jù)的丟失,不影響系統(tǒng)的連續(xù)運(yùn)行。(4) 可管理性 實(shí)際上, RAID 是一種虛擬化技術(shù),它對(duì)多個(gè)物理磁盤驅(qū)動(dòng)器虛擬成一個(gè)大容量的邏輯驅(qū)動(dòng)器。對(duì)于外部主機(jī)系統(tǒng)來(lái)說(shuō), RAID 是一個(gè)單一的、快速可靠的大容量磁盤驅(qū)動(dòng)器。這樣,用戶就可以在這個(gè)虛擬驅(qū)動(dòng)器上來(lái)組織和存儲(chǔ)應(yīng)用系統(tǒng)數(shù)據(jù)。 從用戶應(yīng)用角度看,可使存儲(chǔ)系統(tǒng)簡(jiǎn)單易用,管理也很便利。 由于 RAID 內(nèi)部完成了大量的存儲(chǔ)管理工作,管理員只需要管理單個(gè)虛擬驅(qū)動(dòng)器,可以節(jié)省大量的管理工作。 RAID 可以動(dòng)態(tài)增減磁盤驅(qū)動(dòng)器,可自動(dòng)進(jìn)行數(shù)據(jù)校驗(yàn)和數(shù)據(jù)重建,這些都可以 大大簡(jiǎn)化管理工作。
鏡像
鏡像是一種冗余技術(shù),為磁盤提供保護(hù)功能,防止磁盤發(fā)生故障而造成數(shù)據(jù)丟失。對(duì)于 RAID 而言,采用鏡像技術(shù) 典型地 將會(huì)同時(shí)在陣列中產(chǎn)生兩個(gè)完全相同的數(shù)據(jù)副本,分布在兩個(gè)不同的磁盤驅(qū)動(dòng)器組上。鏡像提供了完全的數(shù)據(jù)冗余能力,當(dāng)一個(gè)數(shù)據(jù)副本失效不可用時(shí),外部系統(tǒng)仍可正常訪問(wèn)另一副本,不會(huì)對(duì)應(yīng)用系統(tǒng)運(yùn)行和性能產(chǎn)生影響。而且,鏡像不需要額外的計(jì)算和校驗(yàn),故障修復(fù)非常快,直接復(fù)制即可。鏡像技術(shù)可以從多個(gè)副本進(jìn)行并發(fā)讀取數(shù)據(jù),提供更高的讀 I/O 性能,但不能并行寫數(shù)據(jù),寫多個(gè)副本會(huì)會(huì)導(dǎo)致一定的 I/O 性能降低。
鏡像技術(shù)提供了非常高的數(shù)據(jù)安全性,其代價(jià)也是非常昂貴的,需要至少雙倍的存儲(chǔ)空間。高成本限制了鏡像的廣泛應(yīng)用,主要應(yīng)用于至關(guān)重要的數(shù)據(jù)保護(hù),這種場(chǎng)合下數(shù)據(jù)丟失會(huì)造成巨大的損失。另外,鏡像通過(guò) “ 拆分 ” 能獲得特定時(shí)間點(diǎn)的上數(shù)據(jù)快照,從而可以實(shí)現(xiàn)一種備份窗口幾乎為零的數(shù)據(jù)備份技術(shù)。
數(shù)據(jù)條帶
磁盤存儲(chǔ)的性能瓶頸在于磁頭尋道定位,它是一種慢速機(jī)械運(yùn)動(dòng),無(wú)法與高速的 CPU 匹配。再者,單個(gè)磁盤驅(qū)動(dòng)器性能存在物理極限, I/O 性能非常有限。 RAID 由多塊磁盤組成,數(shù)據(jù)條帶技術(shù)將數(shù)據(jù)以塊的方式分布存儲(chǔ)在多個(gè)磁盤中,從而可以對(duì)數(shù)據(jù)進(jìn)行并發(fā)處理。這樣寫入和讀取數(shù)據(jù)就可以在多個(gè)磁盤上同時(shí)進(jìn)行,并發(fā)產(chǎn)生非常高的聚合 I/O ,有效提高了整體 I/O 性能,而且具有良好的線性擴(kuò)展性。這對(duì)大容量數(shù)據(jù)尤其顯著,如果不分塊,數(shù)據(jù)只能按順序存儲(chǔ)在磁盤陣列的磁盤上,需要時(shí)再按順序讀取。而通過(guò)條帶技術(shù),可獲得數(shù)倍與順序訪問(wèn)的性能提升。
數(shù)據(jù)條帶技術(shù)的分塊大小選擇非常關(guān)鍵。條帶粒度可以是一個(gè)字節(jié)至幾 KB 大小,分塊越小,并行處理能力就越強(qiáng),數(shù)據(jù)存取速度就越高,但同時(shí)就會(huì)增加塊存取的隨機(jī)性和塊尋址時(shí)間。實(shí)際應(yīng)用中,要根據(jù)數(shù)據(jù)特征和需求來(lái)選擇合適的分塊大小,在數(shù)據(jù)存取隨機(jī)性和并發(fā)處理能力之間進(jìn)行平衡,以爭(zhēng)取盡可能高的整體性能。
數(shù)據(jù)條帶是基于提高 I/O 性能而提出的,也就是說(shuō)它只關(guān)注性能, 而對(duì)數(shù)據(jù)可靠性、可用性沒(méi)有任何改善。實(shí)際上,其中任何一個(gè)數(shù)據(jù)條帶損壞都會(huì)導(dǎo)致整個(gè)數(shù)據(jù)不可用,采用數(shù)據(jù)條帶技術(shù)反而增加了數(shù)據(jù)發(fā)生丟失的概念率。
數(shù)據(jù)校驗(yàn)
鏡像具有高安全性、高讀性能,但冗余開(kāi)銷太昂貴。數(shù)據(jù)條帶通過(guò)并發(fā)性來(lái)大幅提高性能,然而對(duì)數(shù)據(jù)安全性、可靠性未作考慮。數(shù)據(jù)校驗(yàn)是一種冗余技術(shù),它用校驗(yàn)數(shù)據(jù)來(lái)提供數(shù)據(jù)的安全,可以檢測(cè)數(shù)據(jù)錯(cuò)誤,并在能力允許的前提下進(jìn)行數(shù)據(jù)重構(gòu)。相對(duì)鏡像,數(shù)據(jù)校驗(yàn)大幅縮減了冗余開(kāi)銷,用較小的代價(jià)換取了極佳的數(shù)據(jù)完整性和可靠性。數(shù)據(jù)條帶技術(shù)提供高性能,數(shù)據(jù)校驗(yàn)提供數(shù)據(jù)安全性, RAID 不同等級(jí)往往同時(shí)結(jié)合使用這兩種技術(shù)。
采用數(shù)據(jù)校驗(yàn)時(shí), RAID 要在寫入數(shù)據(jù)同時(shí)進(jìn)行校驗(yàn)計(jì)算,并將得到的校驗(yàn)數(shù)據(jù)存儲(chǔ)在 RAID 成員磁盤中。校驗(yàn)數(shù)據(jù)可以集中保存在某個(gè)磁盤或分散存儲(chǔ)在多個(gè)不同磁盤中,甚至校驗(yàn)數(shù)據(jù)也可以分塊,不同 RAID 等級(jí)實(shí)現(xiàn)各不相同。當(dāng)其中一部分?jǐn)?shù)據(jù)出錯(cuò)時(shí),就可以對(duì)剩余數(shù)據(jù)和校驗(yàn)數(shù)據(jù)進(jìn)行反校驗(yàn)計(jì)算重建丟失的數(shù)據(jù)。校驗(yàn)技術(shù)相對(duì)于鏡像技術(shù)的優(yōu)勢(shì)在于節(jié)省大量開(kāi)銷,但由于每次數(shù)據(jù)讀寫都要進(jìn)行大量的校驗(yàn)運(yùn)算,對(duì)計(jì)算機(jī)的運(yùn)算速度要求很高,必須使用硬件 RAID 控制器。在數(shù)據(jù)重建恢復(fù)方面,檢驗(yàn)技術(shù)比鏡像技術(shù)復(fù)雜得多且慢得多。
海明校驗(yàn)碼和 異或校驗(yàn)是兩種最為常用的 數(shù)據(jù)校驗(yàn)算法。海明校驗(yàn)碼是由理查德 · 海明提出的,不僅能檢測(cè)錯(cuò)誤,還能給出錯(cuò)誤位置并自動(dòng)糾正。海明校驗(yàn)的基本思想是:將有效信息按照某種規(guī)律分成若干組,對(duì)每一個(gè)組作奇偶測(cè)試并安排一個(gè)校驗(yàn)位,從而能提供多位檢錯(cuò)信息,以定位錯(cuò)誤點(diǎn)并糾正??梢?jiàn)海明校驗(yàn)實(shí)質(zhì)上是一種多重奇偶校驗(yàn)。異或校驗(yàn)通過(guò)異或邏輯運(yùn)算產(chǎn)生,將一個(gè)有效信息與一個(gè)給定的初始值進(jìn)行異或運(yùn)算,會(huì)得到校驗(yàn)信息。如果有效信息出現(xiàn)錯(cuò)誤,通過(guò)校驗(yàn)信息與初始值的異或運(yùn)算能還原正確的有效信息。
常見(jiàn)5種RAID類型對(duì)比,n位磁盤數(shù)量。
RAID 等級(jí)RAID0RAID1RAID5RAID6RAID10別名條帶鏡像分布奇偶校驗(yàn)條帶雙重奇偶校驗(yàn)條帶鏡像加條帶容錯(cuò)性無(wú)有有有有冗余類型無(wú)有有有有熱備盤無(wú)有有有有讀性能高低高高高隨機(jī)寫性能高低一般低一般連續(xù)寫性能高低低低一般需要磁盤數(shù)n≥12n (n≥1)n≥3n≥42n(n≥2)≥4可用容量全部50%(n-1)/n(n-2)/n50%
SNIA 、 Berkeley 等組織機(jī)構(gòu)把 RAID0 、 RAID1 、 RAID2 、 RAID3 、 RAID4 、 RAID5 、 RAID6 七個(gè)等級(jí)定為標(biāo)準(zhǔn)的 RAID 等級(jí),這也被業(yè)界和學(xué)術(shù)界所公認(rèn)。標(biāo)準(zhǔn)等級(jí)是最基本的 RAID 配置集合,單獨(dú)或綜合利用數(shù)據(jù)條帶、鏡像和數(shù)據(jù)校驗(yàn)技術(shù)。標(biāo)準(zhǔn) RAID 可以組合,即 RAID 組合等級(jí),滿足 對(duì)性能、安全性、可靠性要求更高的存儲(chǔ)應(yīng)用需求。
JBOD ( Just a Bunch Of Disks )不是標(biāo)準(zhǔn)的 RAID 等級(jí),它通常用來(lái)表示一個(gè)沒(méi)有控制軟件提供協(xié)調(diào)控制的磁盤集合。 JBOD 將多個(gè)物理磁盤串聯(lián)起來(lái),提供一個(gè)巨大的邏輯磁盤。 JBOD 的數(shù)據(jù)存放機(jī)制是由第一塊磁盤開(kāi)始按順序往后存儲(chǔ),當(dāng)前磁盤存儲(chǔ)空間用完后,再依次往后面的磁盤存儲(chǔ)數(shù)據(jù)。 JBOD 存儲(chǔ)性能完全等同于單塊磁盤,而且也不提供數(shù)據(jù)安全保護(hù)。它只是簡(jiǎn)單提供一種擴(kuò)展存儲(chǔ)空間的機(jī)制, JBOD 可用存儲(chǔ)容量等于所有成員磁盤的存儲(chǔ)空間之和。目前 JBOD 常指磁盤柜,而不論其是否提供 RAID 功能。
RAID0 是一種簡(jiǎn)單的、無(wú)數(shù)據(jù)校驗(yàn)的數(shù)據(jù)條帶化技術(shù)。實(shí)際上不是一種真正的 RAID ,因?yàn)樗⒉惶峁┤魏涡问降娜哂嗖呗浴?RAID0 將所在磁盤條帶化后組成大容量的存儲(chǔ)空間,將數(shù)據(jù)分散存儲(chǔ)在所有磁盤中,以獨(dú)立訪問(wèn)方式實(shí)現(xiàn)多塊磁盤的并讀訪問(wèn)。由于可以并發(fā)執(zhí)行 I/O 操作,總線帶寬得到充分利用。再加上不需要進(jìn)行數(shù)據(jù)校驗(yàn), RAID0 的性能在所有 RAID 等級(jí)中是最高的。理論上講,一個(gè)由 n 塊磁盤組成的 RAID0 ,它的讀寫性能是單個(gè)磁盤性能的 n 倍,但由于總線帶寬等多種因素的限制,實(shí)際的性能提升低于理論值。
RAID0 具有低成本、高讀寫性能、 100% 的高存儲(chǔ)空間利用率等優(yōu)點(diǎn),但是它不提供數(shù)據(jù)冗余保護(hù),一旦數(shù)據(jù)損壞,將無(wú)法恢復(fù)。 因此, RAID0 一般適用于對(duì)性能要求嚴(yán)格但對(duì)數(shù)據(jù)安全性和可靠性不高的應(yīng)用,如視頻、音頻存儲(chǔ)、臨時(shí)數(shù)據(jù)緩存空間等。
RAID1 稱為鏡像,它將數(shù)據(jù)完全一致地分別寫到工作磁盤和鏡像 磁盤,它的磁盤空間利用率為 50% 。 RAID1 在數(shù)據(jù)寫入時(shí),響應(yīng)時(shí)間會(huì)有所影響,但是讀數(shù)據(jù)的時(shí)候沒(méi)有影響。 RAID1 提供了最佳的數(shù)據(jù)保護(hù),一旦工作磁盤發(fā)生故障,系統(tǒng)自動(dòng)從鏡像磁盤讀取數(shù)據(jù),不會(huì)影響用戶工作。
RAID1 與 RAID0 剛好相反,是為了增強(qiáng)數(shù)據(jù)安全性使兩塊 磁盤數(shù)據(jù)呈現(xiàn)完全鏡像,從而達(dá)到安全性好、技術(shù)簡(jiǎn)單、管理方便。 RAID1 擁有完全容錯(cuò)的能力,但實(shí)現(xiàn)成本高。 RAID1 應(yīng)用于對(duì)順序讀寫性能要求高以及對(duì)數(shù)據(jù)保護(hù)極為重視的應(yīng)用,如對(duì)郵件系統(tǒng)的數(shù)據(jù)保護(hù)。
RAID 2、3、4
RAID2、3、4較少實(shí)際應(yīng)用,它們大多只在研究領(lǐng)域有實(shí)作。
RAID5 應(yīng)該是目前最常見(jiàn)的 RAID 等級(jí),它的原理與 RAID4 相似,區(qū)別在于校驗(yàn)數(shù)據(jù)分布在陣列中的所有磁盤上,而沒(méi)有采用專門的校驗(yàn)磁盤。對(duì)于數(shù)據(jù)和校驗(yàn)數(shù)據(jù),它們的寫操作可以同時(shí)發(fā)生在完全不同的磁盤上。因此, RAID5 不存在 RAID4 中的并發(fā)寫操作時(shí)的校驗(yàn)盤性能瓶頸問(wèn)題。另外, RAID5 還具備很好的擴(kuò)展性。當(dāng)陣列磁盤 數(shù)量增加時(shí),并行操作量的能力也隨之增長(zhǎng),可比 RAID4 支持更多的磁盤,從而擁有更高的容量以及更高的性能。
RAID5 的磁盤上同時(shí)存儲(chǔ)數(shù)據(jù)和校驗(yàn)數(shù)據(jù),數(shù)據(jù)塊和對(duì)應(yīng)的校驗(yàn)信息存保存在不同的磁盤上,當(dāng)一個(gè)數(shù)據(jù)盤損壞時(shí),系統(tǒng)可以根據(jù)同一條帶的其他數(shù)據(jù)塊和對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)來(lái)重建損壞的數(shù)據(jù)。與其他 RAID 等級(jí)一樣,重建數(shù)據(jù)時(shí), RAID5 的性能會(huì)受到較大的影響。
RAID5 兼顧存儲(chǔ)性能、數(shù)據(jù)安全和存儲(chǔ)成本等各方面因素,它可以理解為 RAID0 和 RAID1 的折中方案,是目前綜合性能最佳的數(shù)據(jù)保護(hù)解決方案。 RAID5 基本上可以滿足大部分的存儲(chǔ)應(yīng)用需求,數(shù)據(jù)中心大多采用它作為應(yīng)用數(shù)據(jù)的保護(hù)方案。
前面所 述的各個(gè) RAID 等級(jí)都只能保護(hù)因單個(gè)磁盤失效而造成的數(shù)據(jù)丟失。如果兩個(gè)磁盤同時(shí)發(fā)生故障,數(shù)據(jù)將無(wú)法恢復(fù)。 RAID6 引入雙重校驗(yàn)的概念,它可以保護(hù)陣列中同時(shí)出現(xiàn)兩個(gè)磁盤失效時(shí),陣列仍能夠繼續(xù)工作,不會(huì)發(fā)生數(shù)據(jù)丟失。 RAID6 等級(jí)是在 RAID5 的基礎(chǔ)上為了進(jìn)一步增強(qiáng)數(shù)據(jù)保護(hù)而設(shè)計(jì)的一種 RAID 方式,它可以看作是一種擴(kuò)展的 RAID5 等級(jí)。
RAID6 不僅要支持?jǐn)?shù)據(jù)的恢復(fù),還要支持校驗(yàn)數(shù)據(jù)的恢復(fù),因此實(shí)現(xiàn)代價(jià)很高,控制器的設(shè)計(jì)也比其他等級(jí)更復(fù)雜、更昂貴。 RAID6 思想最常見(jiàn)的實(shí)現(xiàn)方式是采用兩個(gè)獨(dú)立的校驗(yàn)算法,假設(shè)稱為 P 和 Q ,校驗(yàn)數(shù)據(jù)可以分別存儲(chǔ)在兩個(gè)不同的校驗(yàn)盤上,或者分散存儲(chǔ)在所有成員磁盤中。當(dāng)兩個(gè)磁盤同時(shí)失效時(shí),即可通過(guò)求解兩元方程來(lái)重建兩個(gè)磁盤上的數(shù)據(jù)。
RAID6 具有快速的讀取性能、更高的容錯(cuò)能力。但是,它的成本要高于 RAID5 許多,寫性能也較差,并有設(shè)計(jì)和實(shí)施非常復(fù)雜。因此, RAID6 很少得到實(shí)際應(yīng)用,主要用于對(duì)數(shù)據(jù)安全等級(jí)要求非常高的場(chǎng)合。它一般是替代 RAID10 方案的經(jīng)濟(jì)性選擇
RAID 7
RAID 7并非公開(kāi)的RAID標(biāo)準(zhǔn),而是Storage Computer Corporation的專利硬件產(chǎn)品名稱。
RAID 7的效能超越了許多其他RAID標(biāo)準(zhǔn)的實(shí)做產(chǎn)品,但也因?yàn)槿绱耍趦r(jià)格方面非常的高昂。
標(biāo)準(zhǔn) RAID 等級(jí)各有優(yōu)勢(shì)和不足。自然地,我們想到把多個(gè) RAID 等級(jí)組合起來(lái),實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ),彌補(bǔ)相互的不足,從而達(dá)到在性能、數(shù)據(jù)安全性等指標(biāo)上更高的 RAID 系統(tǒng)。目前在業(yè)界和學(xué)術(shù)研究中提到的 RAID 組合等級(jí)主要有 RAID00 、 RAID01 、 RAID10 、 RAID100 、 RAID30 、 RAID50 、 RAID53 、 RAID60 ,但實(shí)際得到較為廣泛應(yīng)用的只有 RAID01 和 RAID10 兩個(gè)等級(jí)。當(dāng)然,組合等級(jí)的實(shí)現(xiàn)成本一般都非常昂貴,只是在 少數(shù)特定場(chǎng)合應(yīng)用。
一些文獻(xiàn)把這兩種 RAID 等級(jí)看作是等同的,本文認(rèn)為是不同的。 RAID01 是先做條帶化再作鏡像,本質(zhì)是對(duì)物理磁盤實(shí)現(xiàn)鏡像;而 RAID10 是先做鏡像再作條帶化,是對(duì)虛擬磁盤實(shí)現(xiàn)鏡像。相同的配置下,通常 RAID01 比 RAID10 具有更好的容錯(cuò)能力。
RAID01 兼?zhèn)淞?RAID0 和 RAID1 的優(yōu)點(diǎn),它先用兩塊磁盤建立鏡像,然后再在鏡像內(nèi)部做條帶化。 RAID01 的數(shù)據(jù)將同時(shí)寫入到兩個(gè)磁盤陣列中,如果其中一個(gè)陣列損壞,仍可繼續(xù)工作,保證數(shù)據(jù)安全性的同時(shí)又提高了性能。 RAID01 和 RAID10 內(nèi)部都含有 RAID1 模式,因此整體磁盤利用率均僅為 50% 。
RAID 5與RAID 0的組合,先作RAID 5,再作RAID 0,也就是對(duì)多組RAID 5彼此構(gòu)成Stripe訪問(wèn)。由于RAID 50是以RAID 5為基礎(chǔ),而RAID 5至少需要3顆硬盤,因此要以多組RAID 5構(gòu)成RAID 50,至少需要6顆硬盤。以RAID 50最小的6顆硬盤配置為例,先把6顆硬盤分為2組,每組3顆構(gòu)成RAID 5,如此就得到兩組RAID 5,然后再把兩組RAID 5構(gòu)成RAID 0。
RAID 50在底層的任一組或多組RAID 5中出現(xiàn)1顆硬盤損壞時(shí),仍能維持運(yùn)作,不過(guò)如果任一組RAID 5中出現(xiàn)2顆或2顆以上硬盤損毀,整組RAID 50就會(huì)失效。
RAID 50由于在上層把多組RAID 5構(gòu)成Stripe,性能比起單純的RAID 5高,容量利用率比RAID5要低。比如同樣使用9顆硬盤,由各3顆RAID 5再組成RAID 0的RAID 50,每組RAID 5浪費(fèi)一顆硬盤,利用率為(1-3/9),RAID 5則為(1-1/9)。
RAID 6與RAID 0的組合:先作RAID 6,再作RAID 0。換句話說(shuō),就是對(duì)兩組以上的RAID 6作Stripe訪問(wèn)。RAID 6至少需具備4顆硬盤,所以RAID 60的最小需求是8顆硬盤。
由于底層是以RAID 6組成,所以RAID 60可以容許任一組RAID 6中損毀最多2顆硬盤,而系統(tǒng)仍能維持運(yùn)作;不過(guò)只要底層任一組RAID 6中損毀3顆硬盤,整組RAID 60就會(huì)失效,當(dāng)然這種情況的概率相當(dāng)?shù)汀?/p>
比起單純的RAID 6,RAID 60的上層通過(guò)結(jié)合多組RAID 6構(gòu)成Stripe訪問(wèn),因此性能較高。不過(guò)使用門檻高,而且容量利用率低是較大的問(wèn)題。
理解 RAID 2.0 和 RAID 2.0+
RAID 2.0(獨(dú)立磁盤冗余數(shù)組2.0, Redundant Array of Independent Disks Version 2.0),為增強(qiáng)型RAID技術(shù),有效解決了機(jī)械硬盤容量越來(lái)越大,重構(gòu)一塊機(jī)械硬盤所需時(shí)間越來(lái)越長(zhǎng),傳統(tǒng)RAID組重構(gòu)窗口越來(lái)越大而導(dǎo)致重構(gòu)期間又故障一塊硬盤而徹底丟失數(shù)據(jù)風(fēng)險(xiǎn)的問(wèn)題。其基本思想就是把大容量機(jī)械硬盤先按照固定的容量切割成多個(gè)更小的分塊(Chunk,通常為64MB),RAID組建立在這些小分塊上,而不是某些硬盤上,我們稱為分塊組(Chunk Group)。此時(shí)硬盤間不再組成傳統(tǒng)的RAID關(guān)系,而是組成更大硬盤數(shù)量的硬盤組(建議最大硬盤數(shù)量為96-120,不建議超過(guò)120塊盤),每個(gè)硬盤上不同的分塊可與此硬盤組上不同硬盤上的分塊組成不同RAID類型的分塊組,這樣一個(gè)硬盤上的分塊可以屬于多個(gè)RAID類型的多個(gè)分塊組。以這樣的組織形式,基于 RAID2.0 技術(shù)的存儲(chǔ)系統(tǒng)能夠做到在一塊硬盤故障后,在硬盤組上的所有硬盤上并發(fā)進(jìn)行重構(gòu),而不再是傳統(tǒng) RAID 的單個(gè)熱備盤上進(jìn)行重構(gòu),從而大大降低重構(gòu)時(shí)間,減少重構(gòu)窗口擴(kuò)大導(dǎo)致的數(shù)據(jù)丟失風(fēng)險(xiǎn),在硬盤容量大幅增加的同時(shí)確保存儲(chǔ)系統(tǒng)的性能和可靠性。RAID 2.0 并沒(méi)有改變傳統(tǒng)的各種RAID類型的算法,而是把RAID范圍縮小到分塊組上。因此,RAID2.0技術(shù)具備以下技術(shù)特征:
幾個(gè)、幾十個(gè)甚至上百個(gè)機(jī)械硬盤組成硬盤組;
硬盤組中的硬盤被分割成幾十兆、上百兆的分塊,不同硬盤上的分塊組成的分塊組 (Chunk Group);
RAID 計(jì)算在分塊組 (Chunk Group) 內(nèi)進(jìn)行,系統(tǒng)不再有熱備盤,而是被同一分塊組內(nèi)保留的熱備塊所代替。
基于傳統(tǒng)RAID技術(shù)的存儲(chǔ)陣列故障恢復(fù)機(jī)制
基于RAID 2.0技術(shù)的存儲(chǔ)陣列故障恢復(fù)機(jī)制
由于RAID 2.0系統(tǒng)中一塊硬盤故障后,重構(gòu)可以在同一硬盤組內(nèi)其他所有硬盤保留的熱備空間上并發(fā)進(jìn)行,使用RAID 2.0技術(shù)的存儲(chǔ)系統(tǒng)具備以下優(yōu)勢(shì):
快速重構(gòu):存儲(chǔ)池內(nèi)所有硬盤參與重構(gòu),相對(duì)于傳統(tǒng)RAID重構(gòu)速度大幅提;
自動(dòng)負(fù)載均衡:RAID 2.0使得各硬盤均衡分擔(dān)負(fù)載,不再有熱點(diǎn)硬盤,提升了系統(tǒng)的性能和硬盤可靠性;
系統(tǒng)性能提升:LUN基于分塊組創(chuàng)建,可以不受傳統(tǒng)RAID硬盤數(shù)量的限制分布在更多的物理硬盤上,因而系統(tǒng)性能隨硬盤IO帶寬增加得以有效提升;
自愈合:當(dāng)出現(xiàn)硬盤預(yù)警時(shí),無(wú)需熱備盤,無(wú)需立即更換故障盤,系統(tǒng)可快速重構(gòu),實(shí)現(xiàn)自愈合。
RAID2.0+(獨(dú)立磁盤冗余數(shù)組2.0, Redundant Array of Independent Disks Version 2.0+)在 RAID 2.0 的基礎(chǔ)上提供了更細(xì)粒度 (可以達(dá)幾十KB粒度) 的資源顆粒,形成存儲(chǔ)資源的標(biāo)準(zhǔn)分配及回收單位,類似計(jì)算虛擬化中的虛擬機(jī),我們稱之為虛擬塊。這些容量單位一致的虛擬塊構(gòu)成了一個(gè)統(tǒng)一的存儲(chǔ)資源池,所有應(yīng)用、中間件、虛擬機(jī)、操作系統(tǒng)所需的資源可以在這個(gè)資源池中按需分配及回收。相對(duì)傳統(tǒng) RAID 系統(tǒng),RAID2.0+ 技術(shù)實(shí)現(xiàn)了存儲(chǔ)資源的虛擬化及預(yù)配置,存儲(chǔ)資源的申請(qǐng)及釋放完全自動(dòng)化的通過(guò)存儲(chǔ)池實(shí)現(xiàn),而不再需要傳統(tǒng) RAID 陣列的RAID組創(chuàng)建,LUN創(chuàng)建,LUN格式化等耗時(shí)而容易出錯(cuò)的手工配置過(guò)程。因此,RAID 2.0+ 技術(shù)解決了虛擬機(jī)環(huán)境下,存儲(chǔ)資源必須動(dòng)態(tài)按需分配及釋放的問(wèn)題。
在 RAID 2.0 基礎(chǔ)上,RAID2.0+技術(shù)具備以下技術(shù)特征:
在 RAID 2.0 基礎(chǔ)上,分塊組(Chunk Group)被切分為容量從256KB到64MB的虛擬化存儲(chǔ)顆粒(Extent);
存儲(chǔ)資源以以上顆粒為單位自動(dòng)分配及釋放;
可以以以上顆粒度為單位在存儲(chǔ)池內(nèi)或不同存儲(chǔ)池間進(jìn)行細(xì)粒度分級(jí)存儲(chǔ);
在系統(tǒng)通過(guò)擴(kuò)展控制器擴(kuò)展性能或容量后,可以通過(guò)自動(dòng)化的遷移這些標(biāo)準(zhǔn)顆粒來(lái)達(dá)到負(fù)載均衡的目的。
基于RAID 2.0+技術(shù)的存儲(chǔ)陣列
技術(shù)優(yōu)點(diǎn)
RAID2.0+技術(shù)主要用于實(shí)現(xiàn)系統(tǒng)資源的智能分配,滿足虛擬機(jī)環(huán)境對(duì)存儲(chǔ)的需求:
存儲(chǔ)資源按需自動(dòng)化分配及釋放,滿足了虛擬機(jī)對(duì)存儲(chǔ)最本質(zhì)的需求;
基于RAID 2.0+技術(shù)的存儲(chǔ)容量虛擬化
可根據(jù)業(yè)務(wù)實(shí)時(shí)情況,將不同數(shù)據(jù)分級(jí)存儲(chǔ),通過(guò)靈活調(diào)配SSD等高性能存儲(chǔ)資源滿足高性能業(yè)務(wù)需求;
基于RAID 2.0+技術(shù)的實(shí)時(shí)資源調(diào)配
根據(jù)業(yè)務(wù)特點(diǎn)自動(dòng)遷移數(shù)據(jù),提高存儲(chǔ)利用效率;
基于RAID 2.0+技術(shù)的自動(dòng)數(shù)據(jù)遷移
RAID 2.0與傳統(tǒng)RAID的對(duì)比
傳統(tǒng) RAID 和 RAID2.0+兩種技術(shù)重構(gòu)原理的對(duì)比
傳統(tǒng) RAID 和 RAID2.0+兩種技術(shù)重構(gòu)性能的對(duì)比
不適合使用RAID的場(chǎng)景
Hadoop集群中為何不使用RAID?
盡管建議采用RAID (Redundant Array of Independent Disk,即磁盤陣列) 作為 namenode 的存儲(chǔ)器以保護(hù)元數(shù)據(jù),但是若將 RAID 作為 datanode 的存儲(chǔ)設(shè)備則不會(huì)給 HDFS 帶來(lái)益處。HDFS 所提供的節(jié)點(diǎn)間數(shù)據(jù)復(fù)制技術(shù)已可滿足數(shù)據(jù)備份需求,無(wú)需使用 RAID 的冗余機(jī)制。
此外,盡管 RAID 條帶化技術(shù) (RAID 0) 被廣泛用戶提升性能,但是其速度仍然比用在 HDFS 里的 JBOD (Just a Bunch Of Disks) 配置慢。JBOD 在所有磁盤之間循環(huán)調(diào)度 HDFS 塊。RAID 0 的讀寫操作受限于磁盤陣列中最慢盤片的速度,而 JBOD 的磁盤操作均獨(dú)立,因而平均讀寫速度高于最慢盤片的讀寫速度。需要強(qiáng)調(diào)的是,各個(gè)磁盤的性能在實(shí)際使用中總存在相當(dāng)大的差異,即使對(duì)于相同型號(hào)的磁盤。針對(duì)某一雅虎集群的評(píng)測(cè)報(bào)告(http://markmail.org/message/xmzc45zi25htr7ry)表明,在一個(gè)測(cè)試(Gridmix)中,JBOD 比 RAID 0 快10%;在另一測(cè)試(HDFS寫吞吐量)中,JBOD 比 RAID 0 快30%。
最后,若 JBOD 配置的某一磁盤出現(xiàn)故障,HDFS 可以忽略該磁盤,繼續(xù)工作。而 RAID 的某一盤片故障會(huì)導(dǎo)致整個(gè)磁盤陣列不可用,進(jìn)而使相應(yīng)節(jié)點(diǎn)失效。
利用ngx_http_mirror_module實(shí)現(xiàn)流量鏡像
Redis高可用架構(gòu)最佳實(shí)踐
MySQL 5.7多源復(fù)制實(shí)踐
MySQL 5.7并行復(fù)制實(shí)踐
. 磁盤陣列硬盤壞了數(shù)據(jù)如何恢復(fù),專業(yè)方法與案例解析
. 磁盤陣列維修多少錢,合理預(yù)算,保障數(shù)據(jù)安全
. 磁盤陣列壞了怎么修復(fù)啊,RAID磁盤陣列故障診斷與修復(fù)全攻略
. 磁盤陣列常見(jiàn)故障,RAID磁盤陣列故障解析與應(yīng)對(duì)策略
. 磁盤陣列維修找哪家,如何選擇可靠的磁盤陣列維修服務(wù)提供商
. raid1拆下來(lái)的硬盤能直接讀,RAID1硬盤數(shù)據(jù)獨(dú)立讀取與恢復(fù)方法概述
. 磁盤陣列怎么更換故障硬盤,RAID磁盤陣列故障硬盤更換操作指南
. raid0數(shù)據(jù)恢復(fù)方法,全面解析與操作指南
. 磁盤陣列維護(hù),確保數(shù)據(jù)安全與系統(tǒng)穩(wěn)定的關(guān)鍵步驟
. 磁盤陣列壞了,磁盤陣列故障解析與數(shù)據(jù)恢復(fù)策略
. 磁盤陣列壞了一塊硬盤,raid1壞了一塊硬盤換新的怎么重建
. raid1硬盤更換和重建,聯(lián)想t230raid1硬盤更換和重建
. raid5拔掉一塊硬盤能啟動(dòng)嗎,RAID 5 基本原理
. raid卡foreign恢復(fù),RAID卡Foreig狀態(tài)恢復(fù)指南
. raid5壞了一個(gè)硬盤如何恢復(fù),RAID5陣列中壞道硬盤的恢復(fù)方法詳解
. DiskGenius組raid,輕松實(shí)現(xiàn)數(shù)據(jù)安全與性能提升
. 更換raid卡數(shù)據(jù)會(huì)丟失嗎,更換RAID卡數(shù)據(jù)會(huì)丟失嗎?全面解析RAID卡更換與數(shù)據(jù)