8月19日消息,,在通常的分布式存儲中,,當(dāng)系統(tǒng)檢測到硬盤故障時,系統(tǒng)會采用EC(Erasure Coding)糾刪碼等冗余校驗手段,,利用其余節(jié)點上的正常硬盤,、正常數(shù)據(jù),在后臺跨節(jié)點地將整塊硬盤的故障數(shù)據(jù)重構(gòu)出來,。
然而,,隨著SSD容量逐步增大,大盤需要重構(gòu)的數(shù)據(jù)量翻了4~8倍,、耗費時長也等比例上升,。
在這個漫長的重構(gòu)周期里,不僅擠占25%存儲帶寬,、影響業(yè)務(wù)性能,,且更致命的是,,系統(tǒng)將處于可靠性降級狀態(tài),數(shù)據(jù)將會面臨隨時丟失,。
今天,,華為介紹了全閃分布式存儲,對SSD的故障域?qū)嵤┚植扛綦x,,盡可能避免原先的大范圍的整盤重構(gòu),。
針對盤內(nèi)DDR的失效,華為創(chuàng)新地采用TRR(Tiny Region Reconstruction,,最小范圍重構(gòu))算法,,通過盤控深度配合,精準(zhǔn)識別并上報失效區(qū)域所映射的邏輯地址,,然后通知存儲系統(tǒng),,對受影響的局部數(shù)據(jù)進行屏蔽。
這個過程,,就像在硬盤上“精密鏤刻”一樣,,然后在新的位置精準(zhǔn)重構(gòu)出這一小部分數(shù)據(jù)。這,,就避免了過去動輒整盤重構(gòu),,讓其余正常數(shù)據(jù)“免遭牽連”,減少了數(shù)百倍的重構(gòu)數(shù)據(jù)量,,整個過程幾分鐘就能搞定,。
針對NAND Flash的失效,華為也采用自研的“盤內(nèi)RAID算法”,,對盤上所有數(shù)據(jù)以Die為單位,,建立RAID組冗余校驗。我們將故障范圍精準(zhǔn)縮小到Die級,,利用其余正常的Die,、通過盤內(nèi)計算引擎恢復(fù)出正確的數(shù)據(jù)。
這項技術(shù)的厲害之處在于,,這個過程可以不斷重復(fù),,允許Die一個接一個地失效,持續(xù)縮列,、甚至縮容而不丟失任何數(shù)據(jù),。這個操作完全發(fā)生在SSD盤內(nèi),上層存儲系統(tǒng)那個“大佬”根本無需插手,,完全不知道底下這么熱鬧,。
假如遇上多個Die同時失效、或者整個顆粒失效的極端情況,,那SSD單盤就兜不住了,,但系統(tǒng)自然也有備而來,。存儲系統(tǒng)會立刻啟動TRR算法,進行局部數(shù)據(jù)的“鏤刻”和“填坑”,,做到精準(zhǔn)屏蔽,、并進行計劃性預(yù)拷貝重構(gòu)。