在腾讯云,有一个神秘的硬盘健康保障计划……

关注 腾讯开发者 ,一起用技术改变世界

硬盘是服务器数据的载体,就像人类大脑的记忆区一样,一旦出现了故障,部分"海马体"会出现记忆缺失和遗漏。对于ToB大数据业务来说精准海量记忆更加重要。腾讯云这几年来硬盘故障率控制在一个极低的区间内,这与背后相关技术团队的有力保障密不可分。本文将从大数据业务硬盘应用的现状入手,通过详细介绍“为了 降低硬盘 故障率 ,腾讯云在硬件和软件层面进行了哪些优化”,为大家解密腾讯云背后一个鲜为人知的硬盘健康保障计划。

大数据业务硬盘应用的现状分析

1.技术层面:硬盘发展面临的可靠性挑战

硬盘作为数据的承载,在这个数字化时代中起着举足轻重的作用,尤其是大容量硬盘,在大数据应用场景中被广泛使用。硬盘厂家也顺应市场的需求,通过研发新的技术来推出更高容量的硬盘。

图1.硬盘容量发展路标

腾讯云也在积极地引入大容量数据盘来提供相应的服务。然而,硬盘容量越大,硬盘可靠性挑战越大。当前主流机械硬盘仍然采用垂直磁记录技术(PMR),在下一代磁记录技术(HAMR/MAMR)上市前,容量的增加势必会带来硬盘可靠性裕量的降低,主要体现在以下几个方面:

1.1 同等体积内(3.5” FF)增加磁头、磁碟以提高容量

3.5"硬盘容量从5,6年前的5,6TB,一直到现在的16TB,18TB,同等空间内碟片数量也从5碟、6碟增加至8碟、9碟。部件越多,故障的概率越高。而且同等空间内头碟的增加降低了硬盘对机械振动的容忍度,对硬盘工艺制程及机械结构挑战极大。

图2.He气盘的研发为了弥补头碟增加带来的可靠性降低

1.2 磁头与碟片的飞行距离进一步缩短至1~2nm

增加了头碟相撞而产生的磁头降级,碟片划伤的概率。对硬盘伺服控制系统与抗震设计挑战极大。

图3.头碟间的距离(head disk clearance)

1.3 单盘容量增至2TB,单位面积内记录的数据信号进一步挤压

信噪比(SNR)进一步下降,碟片中存储的数据趋近香农极限,误码率(BER)大幅增长。对硬盘模拟/数字信号处理系统挑战极大。

图4.硬盘内部信道处理系统(read channel)

综上,随着硬盘容量的增长,在现有的磁存储技术体系下,硬盘的各个部件、系统都承受着越来越来大的可靠性挑战。硬盘厂家只能不断地进行设计优化,弥补容量增加带来的可靠性裕量损耗。按照技术推理,当前的垂直磁记录技术(PMR)将不能支撑20TB以上的产品量产,原因就是PMR技术体系下,容量超过20TB,产品可靠性会受到损失,对数据中心存储业务的稳定运行产生影响。

图5.硬盘磁存储发展的技术瓶颈(Trilemma)

2.使用层面:影响硬盘可靠性的因素

那么,硬盘故障的原因到底是什么?为什么同一款硬盘在不同的客户业务中有不同的故障表现?

常见的硬盘故障主要为硬盘掉线,只读等故障模式,其原因涉及到硬盘本体,存储部件链路,以及各系统间数据流交互协议等方面,错综复杂。截取90+pcs故障硬盘做了详细故障分析,发现75%的硬盘存在一些内部异常(如头碟问题,伺服系统问题,读写报错等),25%的硬盘分析发现并无异常。

图6.硬盘掉线原因饼图

针对25%无异常的硬盘,掉盘的原因一定比例是由于在较高workload下出现的偶发性数据通信超时,或由于HBA、RAID卡的Reset导致,或硬盘内部触发了纠错机制导致,一般情况下重启或插拔可恢复正常。

针对有异常的75%的硬盘,由于磁头不稳,伺服系统干扰,弱写等问题的存在,硬盘内部需要耗费一定的时间来对读写信号进行重试和纠错,以保证用户的数据一致性。得益于硬盘强大的自恢复机制,即使硬盘处于亚健康状态,大多数情况下仍能胜任数据存储的任务。然而,如果上层的workload较大,那么内部的重试纠错机制必定会影响到上层IO的处理, 导致用户IO受阻,增加掉盘的概率。

综上可见,硬盘掉盘是个系统而复杂的过程,而workload的增加会对故障率恶化起到推波助澜的作用。

腾讯云服务器供应链团队针对腾讯内部3个业务场景进行了硬盘的使用研究,从故障率、workload和硬盘健康度评分三个维度进行统计分布分析。研究发现,场景A对硬盘的使用workload最大,而其故障率最高,硬盘评分也最低。

图7.三个业务场景的workload,硬盘评分及故障率比较

硬盘内部是由精密的机械结构和复杂的信号处理系统组成,长期运行在高workload环境,一方面加快了硬盘部件的磨损,导致故障概率的增加,另一方面加重了信号编解码,数据容错的负担。

优化方向

1.引入定制化机制

腾讯云服务器供应链团队在国内率先和硬盘行业巨头希捷科技开展质量联合运营和产品定制化合作,根据业务特性开发硬盘新特性和内部日志,建立新产品联合导入测试机制。经过几个月的项目运作,希捷硬盘年化故障率(ASR)有了显著的改善。

图8.质量分布区间示意图

2.上线前体检

实践证明在大多数设备的故障率都是时间的函数,这个函数就是浴盆曲线,硬盘作为电子器件,故障率也遵循浴盆曲线。浴盆曲线是指产品从投入到报废为止的整个生命周期内,其可靠性的变化呈两头高,中间低,有些像浴盆,所以称为"浴盆曲线"。曲线具有明显的阶段性,失效率随使用时间变化分为三个阶段:早期失效期、稳定服务期和加速磨损期。所以, 腾讯云服务器供应链 团队强烈推荐服务器在上线前实施体检,系统化进行测试拦截,可以有效降低早期DOA故障率,帮助硬盘加速进入稳定运营期,降低维修成本。

图9.浴盆曲线

3.硬盘健康度打分系统

对硬盘健康度参数进行数学建模,建立腾讯云硬盘打分系统。该套打分系统对硬盘关键参数的动态变化及在业务集群里的统计分布偏移进行建模,以动态的,统计的维度去评估每个硬盘的健康度,识别出有风险的样本。

针对重点客户,运维人员能够实时地掌握客户所有在网的硬盘健康情况,根据打分情况,对运行着重要业务的机器提前进行低分盘更换,规避突发硬盘故障。

图10.硬盘打分分数分布示意

4. 硬盘使用习惯优化

硬盘是个极其精密复杂的设备,高故障率是其与生俱来的特点。硬盘工业界连同学术界顶尖学府在不遗余力地研发新的技术来增加设计裕量。然而随着容量的不断上升,硬盘可靠性的挑战在不断加大。在这种行业现状下,只有不断的优化业务架构,将单盘故障做到业务0感知,才能在ToB大数据业务中持续保持竞争力。

以公司内部某团队为例,该团队使用Hadoop多副本架构,通过就近访问的方式减少访问延迟。在多副本架构下,采用一写多读的策略,即同时刻只有一个客户端写入,在写入完成后可多个客户端读不同的备份。同时,基于该读写策略,计算框架会根据硬盘位置信息采用离数据最近的机器存储数据,很好地规避了由于单盘故障和网络读写导致的延迟和服务不可用情况,有效提升了服务的可靠性。

此外,当出现单块硬盘故障的时候,业务会将硬盘置脏处理,同时,将请求分流至可用的硬盘上,并后端进行无感的数据恢复措施,保障数据保持持久高可用状态。

写入过程流如下图,其中在管道的建立、关闭以及流式写入的过程中,都有容错机制最大限度地保证数据的成功写入。

图11.写入流程

读取过程流如下图,归功于由于多备份的策略,可以保证某个DataNode不可用的情况下,能切换至其他节点继续读取。一般计算框架会根据位置信息,采用离数据最近的机器进行计算,减少网络 IO 带来的延迟。

图12.读取流程

如上文所谈,用户持续的高workload对硬盘的损伤较大,应在实际应用中规避。硬盘的产品手册上明确表明硬盘每年workload若超过550TB,将会产生明显的可靠性降级,一般来讲,为了保证故障率可控,建议实际workload保持在300TB/年以下。

另外,瞬时的读写量激增会瞬间将IO队列打满,从而造成IO阻塞,产生延迟,增加掉盘风险,尤其是当硬盘内部有坏道时,需要进行重试纠错,会大大增加硬盘掉盘的概率。用户实际使用中应避免下发瞬时高IO,以免造成IO阻塞,硬盘掉线。

结语

随着SSD逐步取代小容量,高性能HDD,传统机械硬盘在逐步向大容量盘发展,被广泛地应用在大数据业务中。随之而来的是硬盘的可靠性设计裕量在进一步地压缩。在下一代磁记录技术来临之前,挑战很大。云厂商能做的一方面是和硬盘厂商加深合作,根据一些特定的场景进行分析,优化硬盘出厂质量与硬盘使用;另一方面是进行进场体检,重点客户的硬盘健康度监控,提前拦截,识别有风险的硬盘。但是即使做了这些事情,如何让硬盘始终在线,仍然是所有CSP都会面临的技术难题。因此设计一个优秀的业务架构,让客户无感硬件故障才是在ToB大数据业务下保持竞争力的至尊法宝,也是腾讯云服务器供应链探索的目标之一。

腾讯开发者公众号

专业的开发者都关注了

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章