本文来自网易云社区服务器
做者:孙建良网络
从上文分布式存储系统可靠性-系统估算示例 中详细分析了系统可靠性量化的估算手段,而且给出了示例代码,代码的主要输入参数为以下所示。运维
LoseRate(S, N, RepNum, T, AFR) N:系统中磁盘的数量(包括磁盘的容量信息) S:系统Copyset的数量 RepNum:存储的备份数量 T:坏盘状况下的恢复时间 AFR:磁盘的年度故障率
这里基本能够揭示,在一个固定大小为N的分布式存储系统中,影响存储可靠性的因素主要为S、RepNum、T、AFR。接下来咱们分别从这几个方面来分析,在分布式系统设计和运维过程当中的一注意点。分布式
排除人为因素和系统Bug,丢数据的核心缘由是磁盘发生不可逆故障形成的。当前磁盘的过保时间大概是4年,4年后磁盘的故障率会急剧上升,一样从成本上考虑,随着磁盘技术的不断提高,存储密度每4年能够有很大得上升,替换使用新的磁盘更佳具有成本优点。如继续让老的磁盘在线上提供服务,系统丢失数据的风险会变大。根据google的生产环境的数据显示,磁盘的AFR数据以下。性能
针对这一特性,咱们潜在可以采起的措施包括google
1 及时替换老的或者故障磁盘spa
在系统设计层面上须要可以记录每一块硬盘的品牌、系列、上线日期等,对于常常出现坏块和频繁出错的磁盘须要尽快进行,而且对于快要使用年限的磁盘进行替换下线。.net
2 根据smart信息预测换盘设计
采集磁盘的smart的信息,分析smart信息,对磁盘的换盘行为作预测工做。blog
显然副本数是影响数据可靠性的关键因素。这里咱们经过量化的方式来衡量副本数对可靠性的影响。
使用的系统示例分布式存储系统可靠性-系统估算示例 。考虑副本数 ∈[3,6] 状况下的可用性,以下所示。
RepNum | 可靠性(年故障率) | |
---|---|---|
3 | 1.14*10E-6 | |
4 | 2.78*10E-8 | |
5 | 3.18*10E-10 | |
6 | 3.32*10E-12 | |
7 | 2.33*10E-14 |
从上表能够看出,增长副本可使得可靠性获得数量级上的提高,可是成本和写入性能上会给系统带来必定的负担。产品能够从数据的重要性,系统自己的workload等方面在在各方面权衡选择系统的副本数。
单从copyset 这一因素考虑,咱们基本能够肯定CopySet越多丢数据几率会愈大,这咱们能够从分布式存储系统可靠性-如何估算 文中 第2节“数据丢失与copyset(复制组)” 看出。
如下,咱们一样以Copyset 与 丢失数据几率具体看CopySet对可靠性的影响,使用系统示例一样为分布式存储系统可靠性-系统估算示例中的示例,随机状况下CopySet数量为S
CopySetsNum | 可靠性(年故障率) | |
---|---|---|
S | 1.14*10E-6 | |
S/2 | 5.74*10E-7 | |
S/4 | 2.87*10E-7 | |
S/8 | 1.43*10E-7 | |
S/16 | 7.17*10E-8 |
从上表咱们能够看到,减少CopySet数量对于可靠性的影响基本是线性。
那么如何规划系统中CopySet的数量。在随机策略状况下,CopySet的数量越多,说明一个磁盘上的数据打得越散,那么一块磁盘上对应的数据的副本分布在更多的磁盘上,能够得到更高的恢复带宽,坏盘的恢复时间越短,从而进一步下降丢失数据的风险。可是在现实系统中,为了保障数据对外服务的带宽能力。通常来讲用于系统恢复的带宽不会超过20%,因此T级别盘可以在1个小时内恢复已是很是不错的。
好比一块8T盘1小时恢复所须要的带宽 8*1024/3600 ~= 2.27 GB,假设每块磁盘可以提供的恢复带宽为10MB,那么只须要 2.27*1024 /20 ~= 106 块盘参与便可,也就是说一块磁盘的数据只须要打散在106块磁盘中便可,不用过于分散。在随机放置副本状况下,咱们能够控制分片大小来达到减少copyset的目的 分片大小 ~= 8*1024/106 = 77GB。 这种清下,可靠性能够提升到1.49 10E-7 。 后续咱们会介绍更佳有效的控制系统copyset的方法。
单从修复时间考虑,修复时间越快,丢失几率越小。由于同时发生坏盘的几率随着时间的缩短可以获得很是有效的下降。这从分布式存储系统可靠性-如何估算 中介绍坏盘服从的柏松分布中能够看到。
以下为N=7200, AFR=0.04状况下;在单位时间∈[1,24] 内坏 ∈(3,6)块盘的几率;从图表中咱们能够看到,从20小时变为2小时,时间段内损坏N块盘(3~6)的几率都能获得3个数量级以上的提高。
总结来讲,为了提升存储系统数据可靠性,首先在系统容许的成本范围内选择合适的副本数,再次在系统设计中咱们首先优先考虑加快数据恢复时间,在此基础上减少系统的copyset数量。使得在既定的成本下达到尽量高的可靠性。
云硬盘是网易云提供的数据持久化服务,为云服务器和容器服务提供弹性块存储设备。
网易云免费体验馆,0成本体验20+款云产品!
更多网易研发、产品、运营经验分享请访问网易云社区。
相关文章:
【推荐】 用双十一的故事串起碎片的网络协议(上)