对于存储用户而言,存储系统的可靠性、性能、成本,是用户非常关注的几个方面。在传统的存储中,大多是采用RAID的方式,来保证数据的高可靠性;而在分布式存储系统中,多副本和EC(Erasure Code)是比较常见的数据保护方法。
多副本我们看的多了,那么华为存储系统中的EC又是个什么技术,原理是什么呢?Erasure Coding(纠删码)数据冗余模式是一种通过数学算法实现高可靠性且高空间利用率的数据保护机制,其核心原理与应用特点如下:
一、EC数据冗余模式的定义①定义是指将n份原始数据,增加m份数据,并能通过n+m份中的任意n份数据,还原为原始数据。如果把n+m份数据分布在存储系统的不同节点上,那么任意小于等于m个节点故障(m份数据失效),都可以通过其他剩余的数据还原出原始数据,从而达到不影响业务的目的。
②原理解析
EC算法可以灵活配置,比如系统要满足支持2个节点同时故障,则m=2即可。从空间利用率上,EC是优于多副本的,以4+2为例,空间利用率为4/(4+2)=67%。这个利用率相当于三副本的2倍。
③N+M冗余配比
N代表数据分片数量(原始数据分片数,如4、8、22),M代表校验分片数量(如2、3、4)。
④空间利用率
约为 N/(N+M),N越大利用率越高(如8+2配置空间利用率为80%,22+2可达91.6%)。
⑤容错能力
最多允许同时故障M个节点或硬盘而不丢失数据。
⑥典型配置
华为支持 N+2、N+3、N+4 等保护级别,推荐 8+2(兼顾性能与可靠性);高端型号支持 22+2 超大配比。
二、EC冗余原理技术详解①数据分片与校验生成写入数据时,先将数据切分为 N个等大的数据块,再通过数学编码算法(如里德-所罗门码)生成 M个校验块。
例如4+2模式:4个数据块生成2个校验块,共6个分片。
②分布式存储
所有分片(数据块+校验块)分散存储在不同节点,确保单节点故障不影响数据完整性。
若节点数不足(如3节点存储4+2分片),单个节点可能存储多个分片,但仍满足跨节点冗余。
③故障恢复机制
当部分节点故障时,系统利用剩余节点中的分片(数据块或校验块),通过解码算法重建丢失数据。
例如4+2模式可容忍任意2个分片丢失,通过剩余4个分片恢复原始数据。
④数据安全机制
服务器级安全
节点个数大于等于N+2时,允许同时故障2个存储节点,或者允许同时故障2块主存盘。
节点个数大于等于(N+2)/2向上取整且小于N+2时,允许同时故障1个存储节点,或者允许同时故障2块主存盘。
机柜级安全
机柜个数大于等于N+2时,允许同时故障2个机柜,或者允许同时故障2个存储节点。
机柜个数大于等于(N+2)/2向上取整且小于N+2时,或者允许同时故障1个机柜,或者允许同时故障2个存储节点。
三、技术优势特性①On-line Streaming Erasure Coding 技术,提升编码效率,降低计算延迟,适应实时写入场景。②支持在线调整EC策略,无需迁移数据即可变更配比(如从8+2切换为12+3)。
③突破传统RAID单节点限制,EC分片跨节点存储,可容忍整节点故障(如4+2模式容忍2节点故障)。
④结合分布式NameNode架构,规避单点性能瓶颈,支持数千节点扩展。
⑤相比多副本(如三副本空间利用率33%),EC在同等可靠性下显著提升利用率(如8+2达80%)。
⑥支持延迟重构策略(如节点故障后延迟启动修复),减少资源争用。
四、EC与多副本的对比对比维度
EC模式
多副本模式
空间利用率
高(例:8+2为80%)
低(例:三副本为33%)
故障恢复性能
依赖计算,较慢
直接复制,较快
适用场景
大容量温冷数据存储
高频访问热数据
最小节点要求N+M(理想)
副本数+1(例:三副本需3节点)
五、适用场景场景:大规模非结构化数据(如Hadoop大数据分析、视频存档、备份容灾),追求高空间利用率及跨节点容灾的场景。
不想错过文章内容?读完请点一下“在看”,加个“关注”,您的支持是我创作的动力
期待您的一键三连支持(点赞、在看、分享~)