共计 1996 个字符,预计需要花费 5 分钟才能阅读完成。
服务器宕机可能是很多运维工程师最可怕的噩梦。谷歌的一项钻研表明:大多数死机故障是由内存问题而引起的,而且每年有 1 / 3 的谷歌服务器都会呈现可纠正的内存故障,而有 1 /100 的谷歌服务器会呈现不可纠正的内存故障,后者是造成零碎宕机的典型状况之一。
如果有人说,用软件的形式,能够解决硬件的内存问题,还能缩小 30% 的服务器宕机故障,你感觉牢靠吗?
以后的数据中心曾经走向软件定义的时代,从最后的软件定义网络 SDN 到软件定义数据核心 SDDC。为了避免服务器宕机的意外产生,越来越多的企业开始思考软件定义的解决方案,并通过软件定义的可靠性屏蔽服务器、内存等硬件故障带来的影响。
那么软件是如何实现对内存以及服务器可用性的晋升呢?
基于 MCA 的内存 ECC 技术
内存故障十分多,就看零碎能不能辨认进去,有些故障是内存单个或多个 bit 字节故障,有些是内存颗粒故障,有些是内存颗粒上的单行或单列的存储单元呈现故障,还有 firmware 故障、内存控制器故障,还有一些是内存金手指焊接点老化、主板上的内存插槽松动或有灰尘等等。
器件品质类的故障只能通过工艺的改良来解决,而服气云要解决的是软件层面能够管制的 bit 级故障。往往大故障来自于所谓 bit 级小故障的继续积攒,这时要做的就是“防微杜渐”,在小故障产生的时候就抓住它、,隔离它,防止影响扩充。
Intel 有一种机制叫做 MCA(Machine Check Architecture),能够监测这种类型谬误。这个机制的运行形式是:首先需定义出这些谬误模型,把能够主动纠正的谬误叫做 CE(Correctable Error),这些往往是任意单比特谬误、局部单颗粒多比特的谬误。然而一些谬误无奈主动纠正复原,会导致系统宕机,这些谬误被定义为 UCE(Uncorrectable Error)。依据统计,CE/UCE 类的问题类型占内存所有类型问题的 59%。所以,如果可能设计一种故障检查和纠正的机制,其价值会十分大!
这个全套的谬误检查和纠正的机制就是 ECC(Error Checking and Correcting)。ECC 在遇到故障时首先会进行问题辨认,通过设计内存被动扫描机制,能够设置一天 24 小时不休(也能够调整)扫描和发现故障;辨认后判断故障地位(这里其实用到了一些非凡的 bit 计算和校验算法),认定故障地位后,就尝试隔离该有问题的内存空间,防止后续业务再次应用该内存空间。
服气云的内存 ECC 加强技术
业界支流的 IT 服务商都会利用 Intel 的 MCA 机制进行内存错误处理,然而其软件实现的精细化水平不一,比方有些服务商只是把 CE 谬误屏蔽掉,或者只是简略的告警,没有做进一步解决;还有一些服务商即便有告警然而无奈精确定位到产生问题的插槽。而服气云则提出了一个危险区机制,一旦产生内存谬误,就将问题单元置于一个“缓冲区”进行察看,当 CE 谬误达到肯定阈值则立即主动隔离有危险的内存区域,防止谬误持续扩充引起重大的宕机。
近年来,服气云在内存隔离复原机制上一直优化,在 2022 年 1 月推出的超交融 HCI6.7.0 中还对 ECC 机制进行了加强。
该加强机制的运行形式是:首先通过 CPU 的 BIOS 设置 CE Record 选项,使得硬件辨认出内存谬误,一旦发现 CE/UCE 谬误,硬件就会把这个谬误上报给服气云的软件。而后轮到软件机制上场,OS 零碎先是判断这个内存是否被软件(包含应用软件和操作系统)应用,如果没有应用就间接隔离,不容许再调配给软件应用。
如果被软件应用了,就获取软件的上下文,判断辨别其是被操作系统内核 (in_kernel) 或者被用户应用软件 (in_user) 应用。
■ 如果是被应用软件 (in_user) 应用,对于 CE 可纠正错误,服气云的内存 ECC 加强机制就用一块好的内存区域替换掉有谬误的内存区域,这个过程中业务齐全不受影响。如果是 UCE 不可纠正的谬误,该机制就重新启动该过程,把谬误的内存区域释放出来并隔离进来不再应用。过程重启后就能够应用齐全失常的内存了。
■ 如果是被操作系统内核 (in_kernel) 应用,服气云的内存 ECC 加强机制就把有谬误的内存区域的信息记录下来,在零碎再次启动的时候,该机制会隔离这些有谬误的内存,以保障其不会被再次应用。
↑ 服气云 ECC 主动纠错机制原理
推出上述机制后,服气云在 1000 台主机环境中进行了验证。后果证实,通过软件管制的 ECC 机制,服气云可能提前发现内存异样,并且 100% 主动隔离胜利,能够提前处理以躲避更大的故障影响,总体上绝对原有形式可能缩小 30% 的服务器宕机故障。
回到结尾的问题,用软件能够解决硬件层面带来的问题吗?毫无疑问,当然能够!服气云的 ECC 机制就通过创新性的软件技术更加精确、智能地管制了服务器的内存故障问题,无效地进步了 IT 零碎的可靠性。
以上就是本期《服气云黑板报》关于软件定义可靠性和 ECC 机制的分享,欢送关注我,继续看到更多技术干货内容哦!