现在的分布式存储架构的安全和稳定通常采用用的EC纠删码M+N机制,例如4+2、8+3、12+4、22+2等模式,是否意味着M和N都能无限大或是M和N越大会越好
这个肯定不是越大越好。有一利必有一弊,本身M+N的机制也是要根据节点数量配置的。不通的节点数推荐的机制也不同。另外,还要平衡空间利用率和可靠性之间的关系。在具体的实际应用中,还是要看业务特点和需求。
收起肯定不是越大越好
EC纠删码要考虑安全性、可靠性、性能、业务类型等多方面;并且每个都是有一定度的N值大了使用率高了随之带来的是安全性、可靠性都不高,性能也会下降。如果在同样N值下M值越大性能和使用率都不是很好。所以不是 越大越好 。
IPFS系统采用了的冗余备份技术是Erasure coding(EC,纠删码)那么什么是EC?
简单讲:n份原始数据,增加m份校验数据,此时可以通过 n+m份数据中的任意n份数据来恢复原始数据,也就是可容忍的最大失效的数据数量为m。例如,如果想容错4个盘,采用n+4模式。传统的 RAID6 允许两个盘失效,对应 EC就是 n+2模式。EC目前在分布式存储上的应用越来越广。
IPFS允许用户指定 f(n, m) 参数n和m,来增加数据存储的安全性,如果想数据存储更加安全,可以采用增加m的方式,当然,这样做所付的费用也就相应的增加,一切取决于用户。 IPFS系统有自动修复存储的功能,如果系统检测到某些数据有丢失,会启动修复,来恢复到原来的n+m模式。IPFS把整个系统的存储统一调度,所以IPFS自带容灾备份功能,即便是一个地方的发生地震,存储在这个地方的数据几乎被摧毁,那么IPFS系统会立即启动修复,把存储在地震所处地区的数据恢复至其它地方。你大可以放心存储在IPFS系统里面的数据安全,比目前你所使用的那些云服务都要安全,而且成本更低.
这个问题要说清楚,得详细展开一下。
首先,考虑的维度是数据持久度。这个决定因素主要取决于校验条带数量N。但是N也不需要越大越好。一般的业务2就够了。关键业务一般4也够了。因为存储坏掉一个条带肯定是要重构的,所以除非在重构时间内连续坏掉N个盘,否则是不会丢数据的。
然后考虑利用率。利用率约等于M/(M+N)。但是即使是追求利用率,M也不是越大越好。假设N是2,M是20这时理论利用率是90.1%。我们即使把M再增加到30,理论利用率也只增加到93.8%而已。而M+N的增加,也就增加了多个坏盘影响同一个分条的概率,降低了可靠性,所以没必要加到太大。
接下来要考虑的问题是性能。其实对于高吞吐型的业务,分条大小最好和业务的Io大小相当或者成倍数比较好。比如业务每次读写大小是2MB,那分条大小,也就是条带大小乘以_M,最好是2MB或者1MB这样。因为对于EC校验而言,不满分条写,也要更新修改的条带和校验的条带,也就是即使修改1KB,也要把 条带大小乘以_(N+1)大小的数据刷盘,造成io放大。所以如果io普遍偏小,不要配过大的M,得不偿失。
总之,这个配置选择和业务需求之间一定是配合关系,不是越大越好。
收起EC纠删码M+N机制是一种分布式存储的数据保护技术,它可以在一定程度上提高数据的安全性和可靠性。其中,M和N分别代表数据块的数量和冗余块的数量。在选择M和N的值时,需要考虑数据的安全性、可靠性、存储成本等因素。
一般来说,M和N的值越大,数据的安全性和可靠性就越高,因为冗余块的数量增加了,即使有一些数据块损坏或丢失,也可以通过冗余块进行恢复。但是,M和N的值也不能无限制地增加,因为这会增加存储成本和网络带宽的消耗。此外,M和N的值还需要考虑实际的业务需求和数据量大小。
因此,选择合适的M和N的值需要综合考虑多个因素,包括数据安全性、可靠性、存储成本、网络带宽等,不能简单地认为M和N越大越好。