MemoFS l 分布式存储如何低成本保证数据有效性
MemoFS 主要使用数据冗余机制让数据存储者在低成本的同时保证数据有效性。为了容忍各类存储故障,MemoFS 采用副本或者纠删码等数据冗余技术。副本技术,由于其修复惩罚低、实现简单而受到广泛关注。纠删码技术由于其低存储空间开销的特点也吸引了大量的目光。例如,谷歌文件系统、Hadoop分布式文件系统与微软的Azure存储系统等广泛采用了副本技术与纠删码技术。
通常情况下,想要数据不丢失,就需要存储多分备份,通过存储冗余数据来提高数据的容错能力。传统的商业存储系统,都支持将数据通过算法增加冗余后,分散存储于多个磁盘,用来防止单一磁盘的数据损坏与丢失。我们把它称作磁盘阵列,也就是RAID技术。一般情况下单台传统存储只能支持同一个RAID组内1到2个磁盘的损坏。介于今天磁盘的大容量,可能要花费一天到数天时间来重建的磁盘与备份,重建时间内一直没有副本保障。在使用副本技术的存储系统中,数据以固定长度的数据块存储,然后将数据块复制多份放置在不同的节点上,任意一个副本的不可用或丢失,都可使用剩余的可用副本进行修复。
纠删码技术也是为了保证数据不丢失,简单来说它把数据分割为可设置的一些数据块,额外再计算一个任意数目的校验数据块。把所有的数据块分散在不同的磁盘中,通过调节数据块和校验数据块的比例,满足想要达到的数据安全等级。当遇到故障时,系统能快速的重建这些丢失的数据块,将系统恢复成原来多副本的状态。在数据存储中,可以通过设置数据块和校验数据块的数目来满足各种弹性的容错需求。相比传统存储系统的RAID机制,纠删码技术的冗余数量完全基于你的价值取向。例如:将一个数据分成10个数据块和6个校验数据块,并分散存储于16个存储系统中。使用任意10个磁盘中的数据块,都可以快速恢复数据。这意味着任意6个磁盘都能损坏。数据存储者只需要额外付出60%的存储空间,就能获得非凡的容错能力。
MemoFS 使用的数据冗余技术相比于传统的RAID技术,大大的降低了存储成本。在容错上,比传统的RAID技术更可靠。数据存储者也可以根据自己的存储需要,有更灵活的冗余选择。