冗余策略:双副本与纠删码该如何选择?

巴比特 view 47156 2020-12-17 10:15
share to
Scan QR code with WeChat

Filecoin主网的上线后,存储的数据呈爆炸式增长,如今全网有效算力已经达到了1.40 EiB,海量数据的安全存储给矿工带来了巨大的挑战。

关注Filecoin的小伙伴们近两天可能看到过这两个账户的图片,这两个账户都是之前排名靠前的节点,可是现在账户显示可用余额为负几万FIL-十几万FIL,质押币被罚没,出块奖励被罚没,损失折合人民币数千万元,出现这样的状况非常可惜。

冗余策略:双副本与纠删码该如何选择?

冗余策略:双副本与纠删码该如何选择?

扇区生命周期是180-540天,在这期间内我们要不断地进行时空证明,来验证数据存储的安全无误,如果提交的数据有误或者没有在时间内提交就会报错,如果14天内还没有提交上来正确的数据,就会触发非常严重的罚没机制!

所以存储方案对于Filecoin挖矿非常重要!

普通的硬盘存储是很危险的。硬盘在存储实际使用过程中年故障率一般在2%上下,这意味着100块硬盘中,平均每年会故障2块,硬盘故障率是非常高的,我们可以看下图的浴缸曲线,硬盘在刚上线时故障风险更大,更远高于平均故障率。

这说明我们存储打包的数据是很容易因硬盘损坏而丢失,仅仅靠硬盘存储很难保证可以在扇区生命周期内存储数据的安全。

冗余策略:双副本与纠删码该如何选择?

图:浴缸曲线

所以冗余保护策略就变得非常必要。

多副本和纠删码是目前分布式存储系统中常用的两种数据冗余保护策略,也就是保护我们数据安全的两项技术。

注:分布式存储系统中的CAP原则,Consistency(一致性)、 Availability(可用性)、PartiTIon tolerance(分区容错性),对于可用性来说常见的两种技术是多副本和纠删码。

多副本与纠删码分别是什么

多副本就是把数据复制成多份并分别存储到不同地方以实现冗余备份。以双副本为例,双副本顾名思义就是数据存储为两个副本,当某个副本丢失时,可以通过另一个副本复制恢复数据。

纠删码(erasure coding,EC)主要是通过纠删码算法将原始的数据进行编码得到冗余,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,并将数据和冗余一并存储起来,以达到容错的目的。

纠删码最早是在通信行业解决部分数据在传输中损耗的问题,它的基本原理是把传输的信号分段,加入一定的校验再让各段间发生一定的联系,即使在传输过程中丢失掉部分信号,接收端仍然能通过算法把完整的信息计算出来。纠删码技术本身更多是用于传输,而并不是存储。

多副本与纠删码技术如何选择

多副本与纠删码技术在不同的应用场景下有各自的优势。

(多副本以下以双副本为例比较,纠删码以数据/效验4/1为例比较)

1.存储利用率

多副本是复制多份分别存储到不同地方以实现冗余备份,比如双副本磁盘利用率只有50%,冗余度很高,这带来了巨大的额外存储空间消耗,无形中提高了很大的成本,但它更安全、读写更快。

纠删码技术不需要完整写入真实数据的副本,它主要是通过纠删码算法将原始的数据进行编码得到冗余,并将数据和冗余一并存储起来,以达到容错的目的。其基本思想是将n块原始的数据元素通过一定的计算,得到m块冗余元素(校验块)。对于这n+m块的元素,当其中任意的少于m块元素出错(包括原始数据和冗余数据)时,均可以通过对应的重构算法恢复出原来的n块数据。生成校验的过程被称为编码(encoding),恢复丢失数据块的过程被称为解码(decoding)。磁盘利用率为n/(n+m)。与双副本方法相比具有磁盘利用率高等优点。

附:容量空间对比

冗余策略:双副本与纠删码该如何选择?

2.容错性

双副本很好理解就是存一份,备份一份,容错性比较好。双副本在部分数据丢失后可以从另一个副本复制出来损失的数据,恢复正常使用。

纠删码技术本质就是计算,如果出现数据丢失,纠删码技术做的是把丢失的数据计算出来,而计算是需要一些已知的量再进行运算的,当数据丢失多的话,是无法计算的。容错性比起副本有一定差距,

放到实际情况来讲,当纠删码设置 4/1 情况下,节点或者数据块故障,数据恢复需要读取3个数据块和1个校验,也就是说这5项(4+1=5)损坏了任意2项的数据块,数据就无法计算找回,就造成信息丢失、无法找回的严重后果。

冗余策略:双副本与纠删码该如何选择?

3.可靠性对比

双副本有两份数据,可以允许任意一个数据块损坏。

纠删码配置一个数据块配备一个校验位时才能提供和双副本近似的可靠性。

4.数据恢复对性能影响及恢复效率

双副本下,一个节点或者数据块故障,数据恢复直接从另一个副本读取、写入,一次进行恢复副本,影响一个节点的读取性能。恢复效率较高。

纠删码设置 4/1 情况下,一个节点或者数据块故障,数据恢复需要读取三个数据块和一个校验,通过运算后写入一次进行数据恢复,影响四个节点的读取性能。恢复效率较低。

冗余策略:双副本与纠删码该如何选择?

5.写惩罚

双副本下,某个节点的一次数据写入,实际需要两个节点参与(写入两次),写惩罚为 2。

纠删码设置 4/1 情况下,一次数据写入,实际需要至少两个节点参与,其中读取两次(读取数据,读取校验),写入两次(写入数据,写入校验),写惩罚为4。

6.CPU开销

双副本是基于数据完整复制,几乎没有计算的开销,对 CPU 开销较低。

纠删码由于读写都需要计算校验值,有较高的计算开销,需要额外的 CPU 资源开销。

7.这两项技术如何选择

副本技术可以更好的保证数据的安全性,提升读写效率。一般适用于关键业务,对性能要求比较高,网络对数据出错容忍度极低的业务,如数据库等。

纠删码则可以提高存储系统利用率,降低成本。一般适用于其他非关键性业务,如视频监控等,部分数据块的损坏不会影响信息的传递。

结语

Filecoin挖矿中最为核心的就是存储,在存储上省钱,如果有一天出了问题,赔了夫人又折兵。在当前副本策略在安全性上无疑是更优的,尽管成本很高,但对我们挖矿中的数据的安全是一个重要保障,备份冗余并不是浪费,而是非常必要的。

当前Filecoin挖矿热度依然很高,市场鱼龙混杂,充斥着各种各样的Filecoin挖矿产品。比如市场上相同价格可能有80%利用率的产品,也有双副本50%利用率的产品,要如何选择呢?投资Filecoin挖矿产品绝对不能只看售卖价格,作为投资人一定要有一个投资标准,很多技术问题可能很难去理解和分析,但我们可以化繁为简比较每万元收益,毕竟拿到手里的收益才是最实在的。

btcfans公众号

Scan QR code with WeChat

Disclaimer:

Previous: 2天86%!BNT领衔DeFi反弹风暴,BTC破2万美元成下一个助推因素 Next: 保险“不保险”?从NXM被攻击事件看技术中立下的DeFi

Related