qkfile在数据可靠性、数据安全性

qkfile在数据可靠性、数据安全性


在分布式存储系统中 , 即利用了网络设备的网卡、交换机 , 同时也利用了单机的磁盘、CPU、内存、主板等硬件设备 , 每种设备都有其特有的失效模型 。 那HDD磁盘举例 , 其失效模型包括磁盘直接损坏导致数据丢失、IO下发之后永不返回、数据静默错误 , 进入只读状态等多种错误类型 , 不同错误都需要有针对性的处理 , 底线应该保证数据不会丢失 。 在万台的集群(一个独立存储系统称为一个集群 , 数据中心和集群间的关系为多对多 , 假设机器为20盘位)中 , 如果按照磁盘年损坏率为5%计算 , 平均到每天要损坏3块硬盘 。

为保证数据可靠性 , 数据采用多拷贝的方式来防止硬件损坏导致数据丢失 , Meta和Data同样需要高可靠 , 但是使用的方法不同 。 为保证Meta可靠 , Master多个进程分成一组 , 使用Raft协议对数据状态进行复制 。 协议保证所有的Meta修改日志同步给大多数成员且落盘成功后才会返回用户成功 , 同时针对每条日志计算CRC , 防止数据出错 。 数据采用多副本和Erasure\n \nCoding两种方式实现 , 为了降低成本 , 存储的拷贝数越少越好 , 但为了增加数据可靠性 , 存储的拷贝越多越好 , 所以为了协调两者关系 , 需要系统可以即时发现硬件错误并快速对数据进行恢复 。

推荐阅读