问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

一文详解纠删码EC2+1,EC2+2,EC4+1,EC4+2:1

创作时间:
作者:
@小白创作中心

一文详解纠删码EC2+1,EC2+2,EC4+1,EC4+2:1

引用
CSDN
1.
https://blog.csdn.net/bandaoyu/article/details/138202641

纠删码(Erasure Coding,EC)是一种重要的数据冗余和容错技术,在大数据存储系统中广泛应用。本文将详细介绍EC“n+m”和EC“n+m:1”的概念,并通过具体示例说明不同配置下的数据冗余和容错能力。

什么是纠删码技术

纠删码技术主要是通过纠删码算法将原始的数据进行编码得到冗余,并将数据和冗余一并存储起来,以达到容错的目的。具体来说,将n块原始的数据元素,通过计算(编码)得到m块冗余元素(校验块)。也就是n+m份数据通过DHT算法分别存储不同硬盘中。当其中任意的m块元素出错(包括原始数据和冗余数据)时,均可以通过对应的重构算法恢复出原来的n块数据。在这种方式下,空间的利用率约为 n/(n+m),数据的可靠性由 m 值的大小决定,m越大可靠性越高。

EC“n+m” 是什么

EC“n+m”表示最多允许任意m块数据出错,磁盘利用率是n/(n+m)。例如:

  • EC“2+1”:最多允许任意1块数据出错,磁盘利用率2/3,即2/(2+1)
  • EC“4+2”:最多允许任意2块数据出错,磁盘利用率4/6,即4/(4+2)

分配存储方式如下:在EC“4+2”配置下,一个对象写入时,对象会分成4块原始数据,计算生成2块冗余数据,共生成6个块。每个块均存入不同的硬盘。

EC n+m:1 是什么

EC n+m:1是分布式集群上的概念。具体来说,每个节点最多只能保存一个对象的m块数据,即一个对象切分成n块数据,计算出冗余数据m块,共(n+m)块,有x个节点,每个节点最多只能保存其中的m块(每一块又分别在节点内独立磁盘),存不完就需要增加节点。

默认的纠删码是按照节点来分配/分割数据的,但亚节点纠删可按照硬盘来分配/分割数据,例如EC4+2:1,则是把3个节点当6个节点用,每个节点选择2块硬盘,整个集群选择6块不同的硬盘来存放4+2总计6个分片数据。

因此,EC4+2:1相比EC2+1,虽然能容忍节点故障数量仍然是1个,但它可以允许任意2块硬盘故障,数据不丢失。而实际情况下,硬盘故障的概率是远远高于整个节点故障的,所以EC4+2:1还是非常可靠的,在空间利用率上也远高于三副本。

总结

  • EC“n+m”:最多允许任意m块数据出错,磁盘利用率n/(n+m)
  • EC“2+1”:最多允许任意1块数据出错,磁盘利用率2/3,即2/(2+1)
  • EC“4+2”:最多允许任意2块数据出错,磁盘利用率4/6,即4/(4+2)
  • EC n+m:1:分布式集群上的概念,最多允许1个节点上的数据全坏或任意m块数据出错,磁盘利用率n/(n+m)

对于分布式场景下的理解:

  • EC2+2:1:每个节点最多能存某个对象的2块数据(既要保证一个节点挂了最多不能失效超过两块数据),所以集群最少要(2+2)/2=2个节点,此时最多容忍一个节点失效,或每个节点失效一块数据,即总共两块数据失效。
  • EC4+2:1:每个节点最多能存某个对象的2块数据,所以集群最少要(4+2)/2=3个节点,此时最多容忍一个节点失效,或任意两个节点各失效一块数据(盘),即总共两块数据失效。
  • EC8+2:1:每个节点最多能存某个对象的2块数据,所以集群最少要(8+2)/2=5个节点,此时最多容忍一个节点失效,或任意两个节点各失效一块数据(盘),即总共两块数据失效。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号