论坛问题精选:

分布式存储数据复制机制如何选择?副本与纠删码哪个好?

答复:

副本和纠删码之间并不存在谁占据绝对优势,而是两者在不同的场景有各自的优缺点。
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.容量空间对比

data-recovery-mechanism.png

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 资源开销.

请扫描下方二维码,关注 SmartX 微信公众号“ SmartX 超融合”,获取最新新闻和洞察。

weixin1.png