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