Ceph 进阶系列(四):Ceph的纠删码特性 EC(Erasure Code)

AI权益加!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

从GitHub上Clone Ceph项目,我是基于(ceph version 12.2.11 luminous 版本)的代码来分析的

一、EC(Erasure Code)是什么?

Ceph的纠删码特性EC:将写入的数据分成N份原始数据,通过这N份原始数据计算出M份效验数据。把N+M份数据分别保存在不同的设备或者节点中,并通过N+M份中的任意N份数据块还原出所有数据块。EC包含了编码和解码两个过程:将原始的N份数据计算出M份效验数据称为编码过程;通过这N+M份数据中的任意N份数据来还原出原始数据的过程称为解码过程。EC可以容忍M份数据失效,任意小于等于M份的数据失效能通过剩下的数据还原出原始数据。Ceph支持以插件的形式来指定不同的EC编码方式。不同的EC编码方式是三个指标间的折中结果,这个三指标就是是:空间利用率、数据可靠性和恢复效率。

二、不同的 EC 编码方式

1. RS类型编码, 目前应用最广泛的纠删码是ReedSolomon编码,简称RS码。下面是RS编码的两个实现(ISA + Jerasure):

1). .ISA:ISA是Intel提供的一个EC库,只能运行在Intel CPU上,它利用了Intel处理器本地指令来加速EC的计算。

2). Jerasure是一个ErausreCode开源实现库,它实现了EC的RS编码。目前Ceph中默认的编码就是Jerasure方式

RS编码的不足之处在于:在N+K个数据块中有任意一块数据失效,都需要读取N块数据来恢复丢失数据。在数据恢复的过程中引起的网络开销比较大。因此,LRC编码和SHEC编码分别从不同的角度做了相关优化。

2. LRC类型编码(特点:恢复数据块时,减少了读取网络数据块的数量)

LRC编码的核心思想为:将校验块(parity block)分为全局校验块(global parity)和局部校验块(local reconstruction parity),从而减少恢复数据的网络开销。

LRC(M,G,L)的三个参数分别为:
·M是原始数据块的数量。
·G为全局校验块的数量。
·L为局部校验块的数量。

编码过程为:把数据分成M个同等大小的数据块,通过该M个数据块计算出G份全局效验数据块。然后把M个数据块平均分成L组,每组计算出一个本地数据效验块,这样共有L个局部数据校验块。

3. SHEC类型编码(特点:恢复数据块时,减少了读取数据块的数量)

SHEC编码方式为SHEC(K,M,L),其中K代表原始数据块data chunk的数量,M代表校验块parity chunk的

ceph阅读 erasure-code 在上图中,客户端数据条带化到一个对象集(上图中的objectset1),它包含 4 个对象,其中,第一个条带单元是object0的stripe unit 0、第个条带是object3的stripe unit 3,写完第个条带,客户端要确认对象集是否满了。(Erasure Code)是比较流行的数据冗余的存储方法,将原始数据分成k个数据块(data chunk),通过k个数据块计算出m个校验块(coding chunk)。把每个条带化数据块和校验块有序的链接,形成数据块和校验块。 阅读详情

相关推荐

Ceph特性 ECErasure Code)代流程

把N+M份数据分别保存在不同的设备或者节点中,并通过N+M份中的任意N份数据块还原出所有数据块。SHEC方式为SHEC(K,M,L),其中K代表原始数据块data chunk的数量,M代表校验块parity chunk的数量,L代表计算校验块parity chunk时需要的原始数据块data chunk的数量。其最大允许失效的数据块为:ML/K。以SHEC(10,6,5)为例,其最大允许失效的数据块为:M(6) * L(5)/ K(10 ) = 3,且当一个数据块失效时,只读取5个数据块就可以恢复。

大隐隐于野 1456

Ceph性能测试: vs. 三副本?.pdf

Ceph 在今天有多火就不⽤多说了吧。正如许多分布式存储那样,三副本的容量利利 用率始终是个问题,特别是对于海量⾮结构化数据和冷存储这些在意性价比的应用来说。相比之下,(Erasure Code)能够提供接近于本地 RAID 5/6 的有效磁盘空间,代价是牺牲了性能。在随机写⼊,特别是改写和重构(Rebuild)时产生的 I/O 惩罚较大,对应的集群网络流量比副本保护模式要大。 那么 Ceph 使⽤用在各种情况下的性能都⽐比三副本要低吗?答案是否定的。如果您 还⼼心存疑问,请看本⽂文分解。

ceph 解读和实践

原理介绍 原理我们就直接引用网上一篇文章: 参考:Ceph的正确玩法之Ceph理论与实践 Erasure Coding,EC)是一种编容错技术,最早是在通信行业解决部分数据在传输中的损耗问题。其基本原理就是把传输的信号分段,加入一定的校验再让各段间发生相互关联,即使在传输过程中丢失部分信号,接收端仍然能通过算法将完整的信息计算出来。在数据存储中,将数据分割成片段,把冗余数据块扩展和编,并将其存储在不同的位置,比如磁盘、存储节点或者其他地理位置。如果需要严格区分,实际上按照误控制的不

zxycyj1989的博客 3614

CephEC模式下的重构

本文整理了CephEC模式下的数据重构方式,其中包括Ceph中的满条带写和部分写

qq_41679421的博客 1686

ceph_ec笔记

【代ceph_ec笔记。

ssbandjl的博客 936

Erasure-Code() 最佳实践

该过程可行的核心保障就是需要确保矩阵A的任意5*5的子矩阵的可逆矩阵都是存在的,这样才能确保丢失8块数据中的任意3块数据都可以进行数据还原。一般情况下可以认为上层业务的大块连续IO读取都是满条带的读取,在Stripe Placement 情况下,满条带的读取在正常情况下和异常情况下从底层读取的数据量可以认为是一致的(如下图左侧图所示),而且当前一般来说EC有硬件加速,即计算层面不太容易成为瓶颈,所以Stripe Placement 在正常度和异常情况下的开销基本可以认为差不多。详见对象存储架构设计。

大隐隐于野 1079

rook-ceph的ssd类osd的rgw存储池在迁移时的异常处理

摘要:在将SSD OSD迁移至HDD OSD时,(EC 2+1)出现"active+undersized"错误,原因是当前故障域配置为host,但实际只有两台主机。解决方案是:1) 创建新的erasure-code-profile设置故障域为osd;2) 建立对应CRUSH规则;3) 修改存储池关联新规则。最终数据成功迁移,存储池恢复正常。关键点在于池的故障域配置需与实际硬件环境匹配。

平庸 1039

ceph分析 读_ceph阅读 erasure-code

1、ceph(Erasure Code)是比较流行的数据冗余的存储方法,将原始数据分成k个数据块(data chunk),通过k个数据块计算出m个校验块(coding chunk)。把n=k+m个数据块保存在不同的节点,通过n中的任意k个块还原出原始数据。EC包含编和解两个过程。ceph中的EC是以插件的形式来提供的。EC有三个指标:空间利用率、数据可靠性和恢复效率。cep...

weixin_34357833的博客 1264

分布式系统下的技术(一) -- Erasure Code (EC)

  近几个月主要参与一个分布式存储系统的部分(用于数据容错),在学术界出现比较早,现在ceph,微软的存储系统,Hadoop 3.0等都用了EC。文章会分为多篇,主要将Erasure Code,LRC,  以及相关的数学基础,作为学习总结。   一、简介        分布式系统需要在硬件失效等故障发生后仍然能继续提供服务。就数据而言,HDFS采用每份数据3副本的方式,保...

Pilgrim 4万+

当硬盘挂了:图解ECCeph/MinIO里如何自动恢复你的数据

本文深入解析了EC)技术在Ceph和MinIO等分布式存储系统中的工作原理与应用实践。通过图解故障恢复流程,详细介绍了EC如何以比多副本更高效的冗余策略保障数据安全,包括分片分布、自动重建机制及生产环境调优建议,帮助运维人员应对硬盘故障等常见问题。

weixin_30443747的博客 402

手把手图解:当硬盘挂了,Ceph里的4+2是怎么把数据救回来的?

本文详细解析了Ceph分布式存储系统中4+2EC)在硬盘故障时的数据恢复机制。通过对比多副本方案,深入讲解EC如何通过数学冗余实现高效存储和快速恢复,包括故障检测、降级读处理和后台自动修复流程,并提供了性能优化和监控配置的实用技巧。

weixin_30781433的博客 381

(Erasure Code)

1.核心原理:EC通过「数据分块+数学编」生成冗余校验块,丢失的分片不靠备份恢复,依靠剩余分片计算推导;2.通用模型:K数据块+M校验块,最多容错M个分片丢失;3.核心优势:极低的空间冗余开销,海量存储成本碾压多副本;4.适用场景:冷数据、归档数据、对象存储、海量备份;5.不适用场景:低延迟热数据、极小文件、高并发频繁读写场景。的设计精髓,是用算力换空间。在存储数据量爆炸式增长的当下,相比于昂贵的硬盘空间,廉价的CPU算力更具性价比,这也是EC成为现代分布式存储基石的根本原因。

qq_30118563的博客 425

别再只懂RAID了!分布式存储中的RS实战:以Ceph和MinIO为例

本文深入探讨了Reed-Solomon(RS)在分布式存储系统Ceph和MinIO中的实战应用。通过对比传统RAID技术,详细解析了RS在空间效率、故障域控制和自适应修复方面的核心优势,并提供了具体的配置指南和性能调优技巧,帮助企业在PB级数据存储中实现高可靠性与低成本。

weixin_30439067的博客 272

EC4+2:1 实战解析:3节点6硬盘配置,容错能力提升100%

本文深入解析EC4+2:1在3节点6硬盘配置下的容错能力提升100%的实战应用。通过对比传统EC2+1方案,详细介绍了EC4+2:1的架构实现、可靠性建模及部署指南,帮助读者理解其在分布式存储中的优势与适用场景。

weixin_33691700的博客 437

手把手图解:当Ceph集群一个节点挂了,你的4+2数据是怎么被读出来的?

本文详细解析了Ceph集群在节点故障时,4+2EC)技术如何保障数据读取的完整流程。通过对比多副本机制,EC技术以更低的存储开销和更高的恢复效率,实现分布式存储的高可用性。文章还提供了生产环境中的EC调优实战指南,帮助运维人员优化集群性能。

weixin_30696427的博客 412

Hadoop 3.0(Erasure Coding):节省一半存储空间

随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用。为了系统的可靠性,HDFS通过复制来实现这种机制。但在HDFS中每一份数据都有两个副本,这也使得存储利用率仅为1/3,每TB数据都需要占用3TB的存储空间。随着数据量的增长,复制的代价也变得越来越明显:传统的3份复制相当于增加了200%的存储开销,给存储空间和网络带宽带来了很大的压力。因此,在保证可靠性的前提下如何提高存

算法之道 1万+

【存储】Erasure-Code(EC)1: 通俗易懂的理解什么是EC

关键点说明不是备份,是编用数学生成冗余,而非简单复制空间换可靠性用 1.5x 空间实现 3 副本的可靠性“任意足够块可恢复”不依赖特定块,容错更灵活适合大数据文件越大,EC 越划算💡记住副本 = 多印几份试卷;EC = 给试卷加“错二维”,丢几页也能还原。这就是为什么现代云存储都爱用 EC ——省钱又可靠!

1306
上一篇: Ceph 进阶系列(三):谈谈 Ceph Cache Tier(Cache Pool) 的配置 、原理 和 源码分析
下一篇: Ceph 进阶系列(二):如何让某个 pool使用特定的OSD设备 (1 of 2,手动版,早于luminous版本)
Yannick_J
博客等级 码龄14年 491粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值