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