EC存储能够有效较低存储成本,但是我们也需要关注数据可用性相关的事情,避免发生数据丢失的情况。
本文来探讨一下EC补充低冗余度的块的相关知识。
先说一下什么是低冗余度,我以RS-6-3-1024K这个EC策略为例说明。
在RS-6-3这种策略下,只要写成功任意6个块(不管是data,还是parity都行),那数据就可以算是写成功。
只要有任意6个块存活可用,那也可以成功读数据,因为可以通过decode来解码原始数据。
但是如果我们只有6个数据块的话,丢失数据的风险太高了,比如坏盘了,数据就彻底恢复不了了。
因此我的理解,对于数据可用性要求高的数据,尽量要保证9个块都存在,低于9个的话就算低冗余度。
对于数据可用性不高的数据,小于8个的话也算低冗余度了。
一、写文件close时
先说结论: 会补充副本。 比如我们只写成功了6个,那么会把这个块放到待补充副本的数据结构里,等待补充到9个。