正文内容 评论(0)
快科技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算法,进行局部数据的“镂刻”和“填坑”,做到精准屏蔽、并进行计划性预拷贝重构。