本帖最后由 Anony 于 2020-12-1 20:04 编辑
保障数据的可靠性,是存储系统的基石,目前业界大都采用副本、RAID及纠删码的技术方案来实现数据的可靠性。而EDS通过对比三种数据冗余技术的优劣,最终采用低TCO、高性能、高可靠性的分布式纠删码技术为用户提供数据保护。 传统数据冗余技术局限性 传统冗余策略造成存储成本浪费 副本方案将数据备份多份(通常为三副本)保存在存储系统中。副本方案实现逻辑简易,但是会带来巨大的存储开销,三副本的存储利用率为33%,假设1PB规模的存储成本为100万,使用三副本,则需要300万的实际存储成本来满足实际可用1PB容量的需求。 传统冗余策略不能满足集群多级故障域 RAID方案(RAID-5,RAID-6等)能够降低存储成本,但是只能提供磁盘级的容错。海量存储系统集群由多主机节点组成,在跨节点存储数据的场景下,磁盘级别的故障域显然是不够的。 EDS采用分布式纠删码的方案,通过k+m分布式纠删码将k块数据计算出m块校验,使得丢失(k+m)块数据/校验中任意m块都不会影响数据的可靠性。同时多纠删冗余策略(支持EC 4+2、EC 8+2)为用户提供磁盘级、主机级以及机架级故障域的数据冗余方案,用来适应当前大规模存储集群的数据冗余需求,并且实际降低了用户的存储使用成本。 分布式纠删码方案介绍
分布式纠删码的挑战 原生的纠删码技术虽然能带来存储效率和可靠性上的优势,但是也会带来一些弊端和挑战,主要有: 随机小写性能差 纠删码方案中,更新任何一块数据,都会导致所有的校验需要进行重计算。随机小写因而需要读取数据,计算校验,写回数据的子流程组成,由于牵扯到读取数据,导致性能较副本方案更差; 降级状态(磁盘/主机故障时)读写性能差 和修复问题类似。当发生磁盘故障时,如果上层业务请求故障磁盘存储的数据,副本方案只需将请求重定向至其他副本,4+2纠删码方案则需要读取4块未发生故障的数据及校验块进行修复; 修复性能差 传统副本方案修复时,只需要拷贝另一份副本即可,然而4+2纠删码方案在单块数据或校验故障时,需要读取四块数据及校验进行修复,会带来更高的网络和I/O负载; 除了纠删码原生带来的低成本和高可靠效果,EDS采用了多种先进纠删码技术,对纠删码取长补短,在充分发挥纠删码低存储开销高可靠优势的同时,有效提升系统性能以及可用性。 EDS分布式纠删码的技术特点 提升随机小写性能(对比同架构厂商有优势) 随机小I/O写性能是纠删码技术的主要短板,EDS分布式纠删码配合使用分布式写缓存,有效消除随机小写性能短板,提升50%系统性能。 改进EC可靠性 在提供高可靠性的同时,EDS同样提供高可用性。EDS会在主机故障发生时,自动将纠删码池的新写入数据保存在新的位置,保障主机故障时业务不停。当故障修复时,会将新的位置中的数据自动回刷至纠删码池,确保存储效率。 高效修复 器件故障影响系统可靠性,减少系统数据修复的时间,能够极大提升系统可靠性。EDS采用特有的分布式修复算法,充分利用存储系统网络和I/O资源,大幅提升故障修复时间,从而大幅提升系统可靠性。 下图以EC4+2纠删码为例解释了分布式纠删码的工作方式: A) 纠删码通过编码矩阵将四块数据编码生成两块校验,并将六块数据/校验保存在不同的主机/磁盘上; B) 发生了故障,导致了一些数据/校验的丢失,六块数据/校验丢失任意两块,都可以通过剩余的数据/校验进行重建; C) 通过解码矩阵,利用没发生故障的数据/校验,重新计算回丢失的数据/校验。 分布式纠删码技术,为低成本高可靠存储提供了强有力的支撑。相比RAID,纠删码技术提供主机级的容错,而且可以根据不同容错需求做出更为灵活的配置。 相比只能提供磁盘级容错的RAID,分布式纠删码技术通过合理的数据放置,来提供更强的主机级容错,让数据和上层业务更安全稳定。例如下图,分布式纠删码通过将数据跨主机放置,使得任意主机故障不会影响数据的可靠性。 (以上内容整理和引用于技术白皮书,仅供学习) |