千亿级数据防丢指南:存储系统的可靠性保障实践( 三 )


MTTDL模型对不同系统设计的可靠性进行优劣评估,起到了非常大的作用 。
4.EAFDL可靠性模型

千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
MTTDL的定义是,平均系统的丢失数据的时长 。它有两个特点:第一,MTTDL越高,丢数据频率越低;第二,它只关注丢失的频率,不关注每次丢失数据的数量 。
EAFDL的定义是,预期每年数据的丢失比例 。EAFDL的定义更接近11个9的定义 , 因为11个9的定义是平均每年对象的丢失率,所以EAFDL会比MTTDL会更贴近11个9的计算 。
EAFDL的计算公式如上图,它在MTTDL的基础上 , 引入了丢失的平均数据量,它在mtdl的基础之上,引入了丢失平均数据量在用户总数的占比 。
但在真实的场景下,EAFDL模型不一定会比MTTDL模型更好 。
例如,Facebook曾经公开了一篇论文,讲到在大规模idc部署的情况之下,他们更倾向于控制丢失的频率,而非丢失事件的数据量 。因为每次因为丢失事件都会产生固定成本 , 而固定成本的影响较大 。所以真实情况下,EAFDL模型不能完全替代MTTDL模型 。
如果侧重丢失的频率,那么在平时系统设计时 , 可以不断提高MTTDL 。如果大家设计的MTTDL都差不多,下一步才会考虑是否应该让EAFDL最小化 。
如果侧重丢失的数量,在系统测试时,可以不断让EAFDL最小化,同时让MTTDL最大化 。
四、实践:存储可靠性评估实践
1.vivo可靠性建模思路
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
我们的建模思路对上述模型进行取舍,取的是什么?我们将MTTDL的频率维度、EAFDL的丢失量维度和数据分布系数,纳入到建模思路 。
舍的是什么?我们屏蔽了MTTDL的指数分布、扇区错误的建模,舍去了Markov链的建模 。
2.vivo可靠型模型
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
上图是整体建模的参数引入 , 和之前的参数是类似的 。
区别在于,平时磁盘硬件厂商对外报AFR参数有两个指标:一个是MTBF , 一个是AFR,我们将AFR引入到建模 。同时,我们也参照了一家云端厂商Backblaze的公开模型介绍,他们利用泊松分布,模拟年度硬盘故障数量的分布 。基于这两个角色,我们制作了副本和纠删码的可靠性模型 。
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
建模同时,我们也使用了EAFDL的模型,并引入了丢失的数据量在整个用户数据量的占比 。
上图右下角的表格,是我们基于副本模式进行的实验数据 。实验目的主要是,充分验证不同建模参数对可靠性的影响,进而得出结论 。部分结论可以从原理层面推断,比如,AFR越?。?可靠性越高;存储利用率低,可靠性越高;修复带宽越高,可靠性越高;副本和检验位数越高,可靠性越高 。
但是,机器数量越多,它的可靠性不一定越高;数据分布因子越大,可靠性会降低,需要我们在整个系统中进行权衡 。
3.可靠性评估平台化建设
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
评估平台的建设基于两个原则:第一,需要评估新老方案的可靠性优劣;第二,需要近实时地评估线上系统可靠性的风险 。
五、思考:存储可靠性评估思考
1.方向思考
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
我们有两个呼吁:
  • 共享数据:现在各大提供分布式存储的厂商之所以没公开相关可靠性计算模型,是因为统计样本数据不足 。如果全行业能够分享各自的部分统计数据,样本量足够大,就有希望建设最真实的评估模型 。
  • 统一标准:云存储领域相关的牵头企业,基于公司内部的海量样本数据,能够分享一个比较权威的考勤评估模型,为业界提供指引 。
IliasIliadis的论文非常有价值,他从2000年左右开始,在CTRQ发表众多关于云存储系统的可靠性模型研究 。大家如果感兴趣,可以搜索看看 。
2.未来规划
未来 , 我们可能会引入扇区错误因素,重新建模 。
当前没有引入扇区错误,是因为目前业界提供的均值指标,权威性还有待考证 。扇区错误是磁盘里比较常见的错误 , 不一定是独立的,可能具有相关性 。所以后续等相应指标的真实性足够后 , 我们会考虑进行重新监管 。