提到冗余保護(hù),最容易想到的就是RAID(Redundant Arrays of Independent Disks)。它是一種把多塊獨(dú)立的物理硬盤按不同方式組合形成一個硬盤組,以此提供比單個硬盤更高的存儲性能和數(shù)據(jù)冗余的技術(shù)。該技術(shù)在服務(wù)器和存儲陣列產(chǎn)品中廣泛應(yīng)用。
近年來,隨著固態(tài)硬盤的使用率上升,提升固態(tài)硬盤的性能和可靠性(包括壽命)一直是行業(yè)攻關(guān)的重點(diǎn)。RAID技術(shù)在固態(tài)硬盤內(nèi)已經(jīng)得到了廣泛應(yīng)用。關(guān)鍵數(shù)據(jù)多副本,可以看作是RAID1保護(hù),用戶數(shù)據(jù)更常見的則是使用性價比較高的RAID5。具體使用什么RAID級別,一般是根據(jù)實(shí)際情況進(jìn)行選擇。DapuStor的HaiShen系列產(chǎn)品就使用RAID5技術(shù)為用戶數(shù)據(jù)提供冗余保護(hù),提升可靠性。這里,我們就將盤內(nèi)RAID5技術(shù)做一個簡單介紹。
RAID5原理
數(shù)據(jù)按條帶分布在不同位置,比如圖中A1~Ap是一個條帶,B1~Bp是另一個條帶,每個條帶中的一份數(shù)據(jù)(比如A1)叫做條帶單元。每個條帶有一份校驗(yàn)數(shù)據(jù)(比如Ap),所以我們一般也稱它為N+1的RAID組。RAID5校驗(yàn)計(jì)算通常采用異或(XOR)算法。現(xiàn)在很多主控也提供RAID5計(jì)算的硬件加速功能。
盤內(nèi)RAID5條帶布局
為了保證任意時候,一個Block或者DIE損壞,不會導(dǎo)致數(shù)據(jù)丟失。一個RAID5條帶中的每個條帶單元最好是來自不同的Block和不同的DIE。這種我們一般稱為DIE級別的RAID冗余。跟上圖對應(yīng),比如A1數(shù)據(jù)在DIE 1的某個Block,A2數(shù)據(jù)在DIE2的某個Block。最直觀的組條帶方式就是每個DIE各選一個Block,然后每個Block的相同Page組成一個條帶。各個Block的Page組成RAID5條帶有下面幾種常見布局:
1)固定DIE的布局
在組成一個RAID組的Block中,使用一個固定DIE的Block存儲校驗(yàn)(類似傳統(tǒng)的RAID3),但是組成不同RAID組的Block可以不同。
2)旋轉(zhuǎn)布局
組成一個RAID組的Block中,校驗(yàn)不固定在某個Block上,而是有規(guī)律的旋轉(zhuǎn)變化(RAID5的旋轉(zhuǎn)布局有多種方式,此處只列舉了一種)。
不同的數(shù)據(jù)布局,會產(chǎn)生不同的盤內(nèi)數(shù)據(jù)布局。最直觀的,順序?qū)懞螅樞蜃x,各個DIE或者Block上的壓力模型,在前面提到兩種布局下是不同的。
RAID5數(shù)據(jù)恢復(fù)
如果Host 讀某個Nand Page發(fā)生UNC(UNCorrectable)錯誤,這時RAID5恢復(fù)的原理是讀這個條帶內(nèi)其他數(shù)據(jù)和校驗(yàn)數(shù)據(jù),進(jìn)行計(jì)算,得到期望的數(shù)據(jù)。
盤內(nèi)RAID的異常處理
RAID5的數(shù)據(jù)恢復(fù)依賴分條的完整性,因?yàn)楣收峡赡馨l(fā)生在任何階段,所以數(shù)據(jù)恢復(fù)前必須判斷出校驗(yàn)的有效性,避免恢復(fù)出錯誤數(shù)據(jù)。
典型場景1:某個Nand Block故障時,這個Block已經(jīng)在一個寫完成的條帶上,此時RAID其實(shí)處于降級狀態(tài),較優(yōu)的想法是把相關(guān)條帶的數(shù)據(jù)重新放到一個健康的條帶或者重建出故障Block的數(shù)據(jù)來替換它。
典型場景2:某個Nand Block 故障時,此時還沒有數(shù)據(jù)寫入,盡量把它從RAID組的Block中剔除,選一個健康的Block替換或者讓當(dāng)前RAID組從N+1保護(hù)轉(zhuǎn)換成(N-1)+1。
典型場景3:一個條帶單元的數(shù)據(jù)寫入Nand 過程中發(fā)生了Program fail,同時另一個位置的讀又遇到UNC,這些場景在DapuStor的HaiShen系列產(chǎn)品中都有專門處理,保障可以恢復(fù)出正確數(shù)據(jù)。
因?yàn)殄e誤可能發(fā)生在任何時刻,所以其他場景這里就不一一列舉。
RAID帶來的影響
1.OP(Over Provisioning)空間降低
引入RAID后,有的Nand空間用于存儲校驗(yàn)數(shù)據(jù),間接導(dǎo)致用戶數(shù)據(jù)的可用OP空間降低,
2.WA(Write Amplification)變大
因?yàn)槊總€條帶額外寫入了一份校驗(yàn)數(shù)據(jù),所以整個生命周期的WA會增大。
3.性能影響
前面兩點(diǎn)提到的OP變小,寫放大變大,其實(shí)最終也都會表現(xiàn)成對性能的影響。另外,一個直觀感受是順序?qū)懞妥x的過程,因?yàn)槊總€條帶都有一個DIE沒有提供給Host IO服務(wù),所以性能也必定會有影響。
盤內(nèi)冗余技術(shù)發(fā)展
RAID5為用戶數(shù)據(jù)提供了N+1級別的冗余保護(hù)。隨著盤內(nèi)功能增強(qiáng),業(yè)務(wù)對盤內(nèi)可靠性要求的提高,不同成本和可靠性定位的用戶可能會需要不同冗余保護(hù)的級別。技術(shù)上還有一些更高級別的冗余保護(hù):
1.RAID6
相比RAID5的N+1,它提供了N+2的保護(hù)。對應(yīng)在SSD產(chǎn)品中,它當(dāng)然也會帶來更大的OP損耗。
2.EC(Erasure Coding)
現(xiàn)在分布式存儲時代,多備份和EC相比傳統(tǒng)RAID是更廣泛的應(yīng)用。EC算法提供了N+M的保護(hù)級別,可以有更廣闊的選擇空間。
原文標(biāo)題:盤內(nèi)數(shù)據(jù)冗余保護(hù)
文章出處:【微信公眾號:大普微】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
固態(tài)硬盤
+關(guān)注
關(guān)注
12文章
1540瀏覽量
58633
原文標(biāo)題:盤內(nèi)數(shù)據(jù)冗余保護(hù)
文章出處:【微信號:dputech,微信公眾號:DapuStor】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
raid5數(shù)據(jù)恢復(fù)—Raid陣列重建后如何恢復(fù)原陣列的數(shù)據(jù)?
raid5數(shù)據(jù)恢復(fù)—raid5陣列熱備盤未完全激活導(dǎo)致崩潰的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列多塊硬盤離線導(dǎo)致EMC存儲不可用的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—雙循環(huán)raid5磁盤陣列數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—Raid5陣列熱備盤上線失敗的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—OceanStor存儲RAID5陣列數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—RAID5陣列兩塊硬盤離線崩潰,數(shù)據(jù)如何起死回生?

服務(wù)器數(shù)據(jù)恢復(fù)—RAID5陣列熱備盤同步數(shù)據(jù)失敗的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列崩潰導(dǎo)致上層lun無法正常使用的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—華為OceanStor存儲中RAID5陣列數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—用5盤RAID5陣列中的4塊盤重建RAID5陣列后如何恢復(fù)原始數(shù)據(jù)?
RAID5數(shù)據(jù)恢復(fù)—如何重組RAID5陣列?

服務(wù)器數(shù)據(jù)恢復(fù)—Raid5陣列兩塊硬盤指示燈亮黃色的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—雙循環(huán)RAID5陣列崩潰,數(shù)據(jù)如何恢復(fù)?
服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列熱備盤未全部成功啟用的數(shù)據(jù)恢復(fù)案例

評論