争议 | 副本 VS 纠删码,使用分布式存储时数据复制机制选择哪个好?
作者:互联网
以下内容来自社区探讨,欢迎点击阅读原文到社区与同行交流本话题
分布式存储在使用过程中,如何选择数据复制机制?副本or 纠删码?
@钟锦锌 SmartX超融合 产品经理:
副本和纠删码之间并不存在谁占据绝对优势,而是两者在不同的场景有各自的优缺点。
1、原理比较
副本技术的原理比较简单,2 副本为例,实际数据完整写入两份;3 副本就将实际数据完整地写入 3 份。
EC 的原理与 RAID 5/6 的原理类似,将实际数据以条带的方式写入,条带由数据条带与校验条带组成,由于 EC 不需要完整写入真实数据的副本,而是通过引入校验数据块保障数据冗余,从而获得更多的存储空间。EC 相对 RAID 技术更加灵活,条带由 K 个数据块和 M 个校验数据块组成,而且 K 和 M 是可以调整的。
2、可靠性对比
EC 配置 1 个校验位(FT=1) 与 2 副本(RF=2) 的可靠性相当,允许任意 1 个节点或者 1个数据块损坏
EC 配置 2个校验位(FT=2) 与 3 副本(RF=3) 的可靠性相当,允许任意 2 个节点或者2 个数据块损坏
3、容量空间对比
4、数据恢复对性能影响
2 副本下,1 个节点或者数据块故障,数据恢复需要从一个副本读取一次,然后写入一次进行恢复副本,影响 1 个节点的读取性能。
EC 设置 4/1 情况下,1 个节点或者数据块故障,数据恢复需要读取 3 个数据块和 1 个校验,通过运算后写入一次进行数据恢复,影响 4 个节点的读取性能。
5、写惩罚
2 副本下,某个节点的 1 次数据写入,实际需要 2 个节点参与(写入 2 次),写惩罚为 2
EC 设置 4/1 情况下,1 次数据写入,实际需要至少 2 个节点参与,其中读取 2 次(读取数据,读取校验),写入 2 次(写入数据,写入校验),写惩罚为 4
6、CPU 开销
2 副本/ 3 副本是基于数据完整复制,没有涉及额外的运算,对 CPU 开销较低。
EC 由于读写都需要计算校验值,需要额外的 CPU 资源开销
@huaweitac sandstone IT顾问:
1.现在分布式存储的技术越来越成熟了,可以在同一套存储中实现副本和EC两种模式。
2.如何选择两种数据保护方式,可以根据业务情况因地制宜,那么就要知道两种模式的区别,这个就不细说了,总的来说,从性能和冗余性来说副本要好很多,但是从硬盘利用率来说EC肯定要好。
3.什么样的业务选择副本模式呢?
1) 关键业务,对性能要求比较高的业务,如数据库等。
2) 其他非关键性业务,如视频监控等,可以选择EC。如何定义是不是关键业务要看企业具体情况。
4.同一套存储中可有副本和EC都存在,那么就可以实现数据分层存储,既数据的生命周期管理。
@sdtimothy8 浪潮商用机器有限公司 系统工程师:
副本和纠删码是目前分布式存储系统中常用的两种数据冗余保护策略,它们各有自己的特点。
副本:
顾名思义,一份数据写多份。
优点:读写性能好。
缺点:得盘率低。
纠删码:
优点:得盘率高。
缺点:校验码计算有性能损耗。
应用中,如何选择还得结合具体的业务场景。性能要求高的关键业务,一般采用副本。视频,影像存储等海量存储场景可以采用纠删码,提高存储系统利用率,降低成本。此外,对象存储系统中,索引池可以使用副本策略,而数据池可以采用纠删码,这样既提升了读写效率,又节省了成本。
@陈星星 科技公司 IT技术咨询顾问:
分布式存储的数据保护机制是采用多节点多副本机制(做好是3副本,这里没有正本),数据是均匀存放在不同的存储节点上的,类似于RAID2.0技术,节点之间采用复制技术,数据写入的流程是前端应用写入存储节点1,节点1复制到节点2,节点2复制到节点3,返回前端应用。
纠删码RAID技术属于存储内部之间的磁盘数据保护机制。
@wangxianghu 中国民生银行 存储工程师:
这个问题我们也遇到了,也在评估测试。考虑到方案的成熟性,现阶段投产会优先考虑副本方式。主要考虑还是因为方案成熟,副本出来的早,纠删码是后来才支持的。
标签:存储,副本,删码,写入,EC,VS,数据,节点,分布式 来源: https://blog.51cto.com/u_15127582/2751336