零代价修复海量服务器的内核缺点UClou

2019年05月15日 来源:

7月18日,由InfoQ主办的ArchSummit全球架构师峰会在深圳拉开帷幕,此次会议重点选择了6个当前受关注的领域,包括:游戏、电商、移动互联等等。UCloud作为国内专注服务上述垂直领域的云服务商,受邀参加了本次大会。会上,UCloud工程师邱模炯还以《UCloud云平台的内核实践》为主题,给大家揭开了UCloud云平台内核技术的神秘面纱。其中,UCloud内核热补丁技术更是引发了全场架构师们的极大关注。

如何零代价修复海量服务器的Linux内核缺陷?

对一个拥有不计其数台服务器的公司,Linux内核缺点致使的死机屡见不鲜。让工程师们纠结的是,到底要不要通过给服务器升级内核来修复缺点?升级意味者服务器重启、业务中断和繁重的准备工作;不升级则担心服务器死机,同样造成业务中断和沉重的善后工作。

而在今天的云计算时期,1台宿主机往往运行多个云主机,每一次重启不管是主动升级还是被动死机,都意味着中断其上运行的所有云主机。因此,宿主机内核缺陷的修复更加辣手。

而作为一个支撑着上万家企业用户IT基础架构的云服务商,UCloud云平台上的海量宿主机又是如何修复内核缺陷的呢?

邱模炯透露,如果依照传统的重启方式来修复,那么无论是对于UCloud或是用户,都意味着繁重的运维和业务中断。但是,UCloud通过内核热补丁技术即给运行中的内核打上二进制补钉,UCloud已经做到了零代价免重启修复海量服务器的内核缺点!目前为止,UCloud对所发现的上游内核10+个缺点全以热补丁方式修复,累计数万台次,无一例失败且无任何副作用;理论上避免了相应次数的宿主机重启及所隐含的云主机业务中断。这项技术在UCloud已经成熟。

UCloud 内核热补钉技术揭秘

UCloud的热补钉技术基于多年前的开源ksplice加以定制优化而来,通过加载一个特殊准备的热补钉模块来修复内核。其进程如下图所示:

热补钉模块由ksplice程序编译生成,包含有缺陷的二进制指令和修复后的二进制指令(这些二进制按函数级别组织);模块加载后,自动定位到内核的缺陷处并以修复指令动态替换缺陷指令。

除免重启修复,热补丁还用于内核开发过程的性能分析和故障定位。比如,加上性能统计代码生成热补钉,就可以分析感兴趣的性能问题;加入额外调试代码捕捉运行中内核的异常。这些非常有用,更是海量服务器里捕捉不可重现内核异常的不二法宝。由于热补钉不需要重启服务器,既可打入也可撤消,所以不会有副作用。

UCloud对开源Ksplice的优化主要在以下三个方面:

支持高版本内核

热补钉技术与内核紧密耦合。不同版本的内核在指令结构体,符合表结构体和一些特性上(比如初期内核没有ftrace)有所不同,直接影响热补钉成败。UCloud研究了各版本内核的区分,使得同一份ksplice支持各个版本的Linux内核。值得一提的是,解决了ftrace与ksplice不兼容的问题。

允许热修复频繁调用的函数

不管什么样的热补钉技术,两种类型的内核函数难以热补丁:频繁使用的内核函数如schedule, hrtimer;经常处于线程栈内核部分顶部的函数,如sys_poll, sys_read。UCloud更改了ksplice相关内核代码和用户态工具,成功解除了这些限制,比如UCloud现服务器已打入了三个hrtimer热补钉。

减少业务中断时间

ksplice是在stop_machine后替换二进制指令的。虽然单次stop_machine对业务造成的中断在一毫秒左右,但有些频繁使用的内核函数需要大量重试才能碰到合适的热补钉时机,因而会造成长达上百毫秒的中断。UCloud在此做过一点优化,使得业务中断时间控制在十毫秒级别。

海量服务器环境下热补丁技术可用来零代价且无副作用地修复内核缺陷,而且内核开发也因热补丁能走得更远更好。以前因为缺乏辅助分析手段和惧怕内核BUG,即使适合在内核实现的特性也被告诫移到用户态实现,然而有了热补丁,相关观念也可以适当调剂,内核开发也可以更加大胆和跳脱。

痛经是由什么原因引起
月经后期腰疼吃什么
痛经是怎么回事怎么办
相关文章
  • 开车时前胸别靠方向盘太近撞车时气囊易弹伤自己
    开车时前胸别靠方向盘太近撞车时气囊易弹伤自己

    路口避让行人,司机一慌忘踩刹车,一盘子打得过猛,轿车冲上人行道,猛烈撞击电杆。司机的眼眶和鼻梁被弹出的安全气囊弹伤。8月19日下午3点,云岩区交管分局民警郭建正在南垭路口执勤,突然一声巨响传来,郭警官转身一看,发现一辆红色轿车冲上了人行道。...

  • 吉利美鹿重新握手言和吉利重组杰士达我的钢
    吉利美鹿重新握手言和吉利重组杰士达我的钢

    吉利 美鹿重新握手言和 吉利重组杰士达_我的钢铁吉利、美鹿这两个民营经济型车的“孪生兄弟”重新握手言和。吉利集团新任CEO徐刚今天赶赴上海,接盘上海杰士达集团旗下的轿车类资产。由吉利老总李书福之弟李书通精心打造的“克隆版”吉利--杰士达美鹿上市...

  • 舜天高层解释为何引援进展慢江苏江苏苏媒拿什么回亚冠
    舜天高层解释为何引援进展慢江苏江苏苏媒拿什么回亚冠

    热身赛上港不敌舜天昨天下午,虽然6名国脚首发,但舜天仍以0:1不敌上海上港,热身赛遭遇两连败。和两连败相比,江苏球迷更关心的是外援。和上港的比赛,舜天只有埃雷尔森一名外援上场,而中超联赛一个多月后就要开打,如此缓慢的引援进度,新赛季舜天拿什...

  • 美宾州一热气球着陆时不慎触及电线三人受重伤
    美宾州一热气球着陆时不慎触及电线三人受重伤

    据当地警察局警官描述,气候对飞行也并未造成影响。据了解,飞行员今年55岁。两名乘客包括一名53岁的男性和一名48岁的女性,两人都来自美国马里兰州。目前,3人伤情较重,正在当地外伤中心接受治疗。警方尚未公布他们的身份。【环球综合报道】showme虚拟激光...

  • 男子吸烟致高铁晚点被罚千元热点资讯
    男子吸烟致高铁晚点被罚千元热点资讯

    原标题:男子吸烟致高铁晚点被罚千元北京铁路警方昨天通报,一男子在高铁上吸烟导致高铁降速并晚点,被铁路警方罚款1000元。据了解,这是今年暑运期间,北京铁路警方依法开出的首张高铁吸烟罚单。近日,在列车行驶过程中,该男子烟瘾发作,躲到3车1号卫生...

  • 转呼拉圈能不能减肥
    转呼拉圈能不能减肥

    摇呼拉圈会不会瘦身?首先我们必须考虑几个重点:一、您花掉的热量是否比吃进的热量多?不要以为有动就会瘦哦!有时运动所消耗掉的热量是不如想象中的多的,比方说50公斤的人爬山半个小时,才不过花掉八分满左右的饭!如果您以为已经运动了,反而多补充...