3.1 磁盘年故障率:AFR
AFR:Annualized Failure Rate又称为硬盘年度失败概率,一般用来反映一个设备在全年的使用出故障的概率,可以很直观的理解,AFR越低,系统的可靠性越高,因为AFR与系统的数据可靠性强相关;而这个指标通常又是由另一个磁盘质量指标MTBF(Mean Time Before Failure)推算出来,而MTBF各大硬盘厂商都是有出厂指标的,比如说希捷的硬盘出厂的MTBF指标为120W个小时。以下为AFR的计算公式:
既然CopySet数据可以最小为N/R,能不能把CopySet数量调到最小,答案当然是不行的,因为,一方面如果CopySet调到最小,当有一个盘坏了后,只有其它2块盘进行这块盘的恢复操作,这样数据的恢复时间又变长了,恢复时间变长也会影响数据的可靠性;而且一旦命中了CopySet中的一个,则丢失的数据量规模非常大。因此,分布式系统中的CopySet的量和恢复速度RecoveryTime是一个均衡整个系统数据可靠性和集群可用性的参数。
文献【1】Copysets: Reducing the Frequency of Data Loss in Cloud Storage提供了一种分布式系统的CopySet Replication的选择策略,在分布式存储系统当中比如对象存储和文件存储当中,还有一种方式可以根据系统的可靠性和可用性进行调整系统CopySets的数量,就是在随机放置情况下,使用小文件合并成大文件的存储策略,可以通过控制大文件的大小从而控制每个磁盘上大文件的数量,比如100G一个文件,8T盘上的最大文件存储数量也就是8T/100G = 80个文件,也就是说一个8T的盘的数据最多打散到了80块其它的盘上,对于集群盘远大于80的系统显然也能够很好的控制一个数据盘的数据打散程度。
因此,在磁盘上的分片是随机打散的情况下,CopySets数量可以量化为以下公式:
其中,P为磁盘的容量,B为分片大小,N为系统磁盘的数据,R为副本数。80%为使用率。 3.3 数据恢复时间:Recovery Time
数据恢复时间对数据可靠性影响很大,这个很好理解,因此缩短数据恢复时间可以有效降低数据丢失的风险。前面已经介绍数据恢复时间和磁盘上数据打散程度强相关,同时数据恢复时间也与服务本身的可用性相关。
比如磁盘带宽为200MB/s,假设留给恢复可用的带宽为20%就是40MB/s,磁盘容量为P,使用率为80%,B为BlockSize大小,则恢复速度可按以下方式计算:
结合4.2的磁盘故障与可靠性的推导,通过表格中10个case的计算,可以看到:
Case 1,2,3通过扩展磁盘的数量从48块盘到804再到3600块盘,可靠性从11个9提高到接近13个9,然后804块盘到3600块盘还是维护在13个9,按理说,集群的规模增大,增3块盘的概率会提高,但是由于恢复速度也随着磁盘的增加而线性增加,因此,可靠性一直在提升,而从804到3600块盘,可靠性没有增加,是因为这时候恢复速度已经不随磁盘增加而线性增大,因为在磁盘量很大后,决定恢复速度因素就变为单盘分片个数。
Case 5,6比较好理解,恢复速度由100M/S变为10M/S,可靠性降低2个以上数量级;
Case 7,8也比较好理解,AFR由0.43提高到1.2再提高到7,可靠性降低了3个数量级;
Case 9,10比较绕,磁盘数在100的情况下,Block大小由80G一个提高到100G一个,可靠性降低了,这种情况下是因为恢复速度提高,CopySet也提高,但速度影响更大导致。
Case 11,12也比较绕,由于我们限定了恢复速度不能超过5分钟(模拟线上,因为系统检测坏盘,自动踢盘等操作也需要时间),这两个Case下的CopySet都超级大,所以恢复的并发度都非常高,但受限于5分钟限定,所以两个Case的恢复速度一样,所以PK CopySet的数量,Case12的CopySet比Case11的CopySet要小,所以更不容易丢失,所以可靠性更高。 六、总结
参考资料
1. https://zhuanlan.zhihu.com
2.《Copysets: Reducing the Frequency of Data Loss in Cloud Storage》
3. https://www.dazhuanlan.com
4.http://oceanbase.org.cn