纠删码EC
- minio如何保证高可靠性(就是用冗余了,多存几份数据,一个节点挂掉了的话,那么还有数据了),以及判断源文件是否损坏(使用的是我们的highwayhash(我们直接进文件的hash都没有去用到md5(也即时Bit Rot机制))),我们知道的我们可能最常用的判断源文件是否被损坏我们可以校验前后问价的MD5值了,若是md5值不同,那么就是被损坏咯
- 纠删码EC(做冗余恢复的)就是一种算法了,将文件编译为一种二进制文件这种,我们通过这个编译出来的二进制问价和前面的冗余出来的多个原始文件,存在这个二进制文件就可以恢复出原始文件了(例如有n份原始文件,m份EC编译出来的二进制文件,那么只要丢失小于等于m分文件(要是m都丢失了,那么我们源文件还都存在咯)我们都可以还原数据了),但是若是丢失了所有m数据,和其他的源文件数据,那么这时候就无法还原了(之一这里的n份文件不是相同的冗余文件,而是不同的文件,我们可以通过EC编译出来的二进制文件来进行恢复n文件了)
纠删模式:
- 场景:若是我们有八个磁盘(n个),其中四个为存储源文件的,4个为EC的,若是我们有4个盘坏了,那么我们还是可以恢复数据,但是这时其不在允许你再上传文件了,只能是可读模式,只有存在最低的n/2 +1了,这样最少存在一个EC了(写入后可以恢复),就运行写入。
存储形式(纠删模式下如何存储(其中按照奇偶来存储))
- 偶数存的是源文件信息,奇数存的EC信息(data1,data2),在我们hash下的part中