当前位置: 澳门新濠3559 > 服务器运维 > 正文

感谢为修复「毒液」漏洞辛苦付出的技术团队,

时间:2019-11-08 22:07来源:服务器运维
零代价修复服务器内核缺陷 UCloud内核热补丁技术揭秘 7月18日,由InfoQ主办的ArchSummit全球架构师峰会在深圳拉开帷幕,此次会议重点选择了6个当前最受关注的领域,包括:游戏、电商、

零代价修复服务器内核缺陷 UCloud内核热补丁技术揭秘

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

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

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

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

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

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

UCloud 内核热补丁技术揭秘

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

图片 1

热补丁模块由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,即使适合在内核实现的特性也被告诫移到用户态实现,然而有了热补丁,相关观念也可以适当调整,内核开发也可以更加大胆和跳脱。

UCloud内核热补丁技术揭秘 7月18日,由InfoQ主办的ArchSummit全球架构师峰会在深圳拉开帷幕,此次会议重点选择了...

Linux 4.0 里,你可能再也不需要重启你的操作系统。

由InfoQ主办的ArchSummit全球架构师峰会即将于7月18-19日在深圳举行,此次会议重点解析十个当前最受关注的领域,包括:SNS、移动互联网、金融、大数据、智能硬件、游戏、云计算技术、自动化运维、电商、云计算解决方案等专题。其中,云计算特别设定了两个专题,从技术和解决方案两个角度为参会者展现国内云计算社区的最新发展动态和宝贵经验。

近日,一个潜伏了11年名为“毒液(VENOM)”的高危漏洞被发现,该漏洞被认为比Heartbleed(心脏出血)更加可怕,因为使用该漏洞能让攻击者逃离虚拟机,访问并监视控制宿主机,并通过宿主机的权限来访问控制其他虚拟主机,从而影响到全球各大云服务商的数据安全。

在大多数的服务器或者数据中心里,喜欢用linux的一个原因是你不需要频繁的进行重启操作。诚然,某些关键性的补丁必须要进行重启,但你也可以等到数月后再做此操作。现在,得益于 linux 内核的最新更新 你也许可以数年间都不用重启。

云计算技术专题

图片 2

感谢 Ksplice 项目,使得这一特性在2009年就可以实现。此项目在对原始和打过补丁的内核进行比较后,使用一个定制的内核模块将新的代码加入到运行内核中。在支持Ksplice的内核中,每个将被修补的功能都携带有一套特殊标志用以进行区分。Ksplice进程会监视正在修补该函数的代码是不是当前不在使用,当当,打上补丁,你的服务器上继续运行。

云上的云:AVOS Cloud在云平台上构建云服务的经验分享讲师为AVOS工程师孙宁,其演讲内容是:

此消息一出,业界震惊。各大厂商纷纷紧急提供修复补丁或者发布安全公告。这需要用户停机升级而中断业务。所幸的是,该漏洞入侵门槛较高,尚未出现逃逸虚拟机的攻击工具。但是,该漏洞的理论风险非常大,不少用户表示相当担心。

Oracle 在 2011 年收购了 Ksplice 项目,并将其作为 RHEL 的一项可选服务,使其应用于它自己的Oracle Linux 中(一个 RHEL(Red Hat Enterprise Linux ) 的克隆版本)。这将此项技术隔离于其他企业版和服务器版 Linux 之外。

AVOS Cloud作为国内领先的云后端服务提供商,为移动应用开发者提供了功能强大的一站式的后端方案。作为云服务提供者,我们提供包括存储、实时通信等一系列 “云后端”功能。另一方面,作为一家“轻”公司,我们本身从最初就选择成为云服务的用户,经历了和我们用户一样的选型、评测、部署和运维的过程, 对此也深有感触。

然而,UCloud用户的业务却丝毫没有受到影响。在UCloud免重启的热补丁技术的保护下,「毒液」漏洞在第一时间内被系统静默修复,用户全程无感知,似乎该漏洞从来没有在这个世界上出现过一样。

后来 KemelCare 为大部分企业发行版 Linux 发布了一项提供非启动式补丁服务。此程序作为专利软件,只能通过按月支付来享有此服务。这从而很难满足大多数Linux系统管理员。

此次分享将分别以“提供者”和“使用者”两个角度,性能、弹性和运维三个方面穿插着介绍我们关于云服务的心得和经验:

如果说UCloud用户此间的感受是「还没开始,就已经结束」,但对于UCloud技术团队来说,却是一场非常精彩的技术实战。现在,我们将此战的过程和经验分享给大家,希望能给各位技术人带来一点启发:

所以,Red Hat 和 SUSE 开始着手完全开源的为 Linux 安装严重补丁的非重启方案。Red Had 的项目命名为 kpatch, SUSE的项目命名为 kGraft.

性能

图片 3

两个公司采用了不同的途径。Kpatch 发布了一个 stop_machine() 命令。之后,它着眼于现有的栈处理去使用ftrace,如果打补丁可以被做得很安全,它会重定向运行着的代码到补丁函数,而后就删除现在过时的代码。

作为云服务提供商:AVOS Cloud实时通信系统的单机性能优化:基于Clojure语言的网络编程,SEDA编程框架,基于core.async的IoC线程池详解

结语

比过去好的是,数据中心被运行在世界各处,但是它们中的许多都需要一个21世纪式的重启。今天的数据中心必须更有效率,更有鲁棒性和灵活性,这超过以往任何时候。我们检查怎样才能运行好你的数据中心,与之相对的是外包到一个云或者一个服务提供商,或是采取混合的方式。

作为云服务使用者:AVOS Cloud的IaaS平台主机的评估、性能测试经验分享

感谢为修复「毒液」漏洞辛苦付出的技术团队。此次事件也让我们更加坚信,真正优秀的云服务,绝不是简单的资源提供和低价倾销。

Kgraft 一直使用ftrace,尽管它是工作在线程级的。当一个老的函数被调用,它会定位到线程的一个点,然后将其切换到新的函数。

弹性

当不可预知的技术问题突然降临,当承载着用户梦想的业务面临巨大的风险,云服务商能否抗住压力,确保产品和服务真正的高可用性,技术团队能否在第一时间给到用户足够的支持,以及有没有足够的技术积淀来精准迅速的定位及解决问题,我们相信,或许这些才是真正重要的。

虽然最终结果相同,即操作系统在打补丁的时候保持运行,但还是有显著的性能差异的。当kGraft可能花费数分钟的时候,Kpatch可以只需要1到40毫秒,但他们从不会停机。
在2014年10月召开的linux 开发者大会上,两个小组合二为一并且开始致力于联合最好的程序使linux打补丁时不再重启。实际上,他们最终是把kpatch和kGraft都丢进了Linux内核。

作为云服务提供商:构建可扩展的应用架构经验分享:消息系统和RPC系统,自动节点增减

云计算承担着颠覆传统IT的重要使命,这条路还很长,未来也一定会遇到各种前所未有的挑战。

Jiri Kosina,一位SUSE软件工程师和Linux内核开发者解释说,Linux内核的热补丁将会“为函数提供一个基本基础设施”  热补丁(例如:代码重定向),包括为了包含实际补丁的内核模块的API(应用程序接口),和为了在用户空间可以操作补丁的API/ABI(应用二进制接口),这是“相对简单和简约的,因为它尽可能多的利用了已有的内核基础(名为ftrace)。它也是自包含的,在某种意义上说,它不在任何其他的内核子系统中调用自身(它甚至不接触其他任何代码)”

作为云服务使用者:利用弹性主机快速增加、部署节点,On-Demand方式的主机管理

【编辑推荐】

Linux 4.0 RC 版现在已经放出,Kosina 声称:”现在实施的x86架构只是作为一个参考架构,对于powerpc, s390 和 arm 的支持工作已经在进行中了“。确实,对于这些架构的支持源代码已经在 Live Patching Git code 上了。
简单的代码仅仅只是开始,你的发行版将通过补丁来支持和使用它。随着 Red Hat 和 SUSE 的支持,live 补丁将很快默认在所有商业Linux发行版中。

日常运维

以上所述就是本文的全部内容了,希望大家能够喜欢。

作为云服务提供商:为用户隔离复杂度,达到0运维成本

您可能感兴趣的文章:

  • linux下通过脚本实现自动重启程序
  • win2003或linux服务器一般多久重启一次
  • php控制linux服务器常用功能 关机 重启 开新站点等
  • linux下监视进程 崩溃挂掉后自动重启的shell脚本
  • linux正确重启MySQL的方法
  • linux自动重启tomcat脚本分享

作为云服务使用者:在云主机上的运维、自动化分享

听众受益:

我们将分享AVOS Cloud 实时通信服务演进中的经验和收获。

同时作为国内少有的Clojure团队,我们还会分享使用这种语言在实时系统开发中的优势和便利

从使用者角度分享云主机的评测和使用经验

泰捷视频后台架构介绍——如何利用云计算构建稳定的后台服务讲师为泰捷后台架构师徐晓波,其演讲内容是:

无可否认,云计算为我们的生活带来了大量便利。云计算利用软件来实现硬件资源的虚拟化管理、调度及应用。通过虚拟平台,用户在使用网络资源、计算资源、数据库资源、硬件资源、存储资源时,就如同使用软件一样方便。

但如同历史上出现过的任何技术变革一样,云计算在给我们带来好处的同时,也引入了一些新的问题。例如虚拟化技术很难避免同台物理机上的多台虚拟机CPU互相挤占的问题, 从而造成单台虚拟主机的性能非常不稳定。这些问题需要云计算技术的应用者,在应用的层面去解决或者规避。

泰捷视频作为国内市场占有率较高的电视盒子APP,活跃用户数百万,用户平均每天使用时长超过2.5个小时。 泰捷的后台服务每天需要应对用户上亿次的动态内容请求。随着用户量的发展,泰捷的后台架构也发生了许多变化。从一开始的单数据中心的几台物理服务器,再到多数据中心的云服务器结合物理机服务器的混合架构,为了满足用户日益增长的需求,泰捷视频的后台团队付出了艰辛的努力。在使用云计算架构的过程中,我们的团队经过了近一年摸爬滚打,总结了一些经验。

本次演讲主要介绍下面这些问题:

泰捷视频是如何在持续运营中不断优化和完善各项服务的核心设计的

泰捷视频如何利用多个云计算平台构建出一个稳定可靠可扩展的系统

在不稳定的国内网络情况下,泰捷视频是如何保持服务的稳定性

泰捷视频如何利用弹性云计算节省企业成本

Linux内核在UCloud云平台上的实践的讲师是UCloud资深工程师邱模炯,其演讲内容是:

Linux内核和虚拟化底层是云平台的基本竞争力。云平台的软硬件稳定性、关键产品特性、大规模服务器运维等都离不开内核和虚拟化这个基础。UCloud作为国内领先的IaaS云平台服务商,是如何在云平台产品使用Linux内核的呢,做过什么开发,有什么经验?本次讲座里,我们从内核视角,同大家分享UCloud云平台所解决过的重要问题以及实践经验。主要话题:

云主机如何实现可靠稳定

云主机如何做到IO高性能

大规模运维需要的内核配合(如硬件故障监控与隔离,迁移优化,内核升级等)

IBM SmartCloud 的技术架构和开发实践的讲师是IBM智慧云架构师俞岳,其演讲内容是:

IBM SmartCloud 作为IBM云管理平台的主打产品从设计,开发到实施都遇到了很多技术方面的难题,一方面是日新月异的新技术,另一面是传统的IT架构和庞大的即有资产,如何帮助企业利用新的技术在已有资源上进行创新,更有效的管理IT,降低运营成本以轻松的面对快速变化的业务需求,成为SmartCloud的主要设计目标。SmartCloud开发团队已OpenStack为核心,结合IBM已有的产品组件进行了很多的创新:

利用OpenStack Heat结合Chef 的灵活的部署方式

多区域,多Hypervisor, 混合云的设计,充分利用已有资产,兼顾公有云

跨区域多租户的设计方法

基于OpenContrail的SDN方案

作为SmartCloud的初创成员,主要开发者,以及现在的架构师,一路走来有许多经验的教训和大家分享。

听众收益:

如何解决企业IT对云管理平台多样化的需求

如何利用混合云来整合传统的应用程序和基于移动互联网的应用程序

如何解决跨数据中心的负载平衡和备份

如何利用DevOps来提高开发效率

ArchSummit全球架构师峰会即将于7月18-19日在深圳举行,此次会议重点解析十个当前最受关注的领域,包括:SNS、移动互联网、金融、大数据、智能硬件、游戏、云计算、自动化运维、电商、云计算解决方案等专题。目前正在火热报名中,感兴趣的读者可以访问网站主页了解更多信息。

本文转载自infoQ

编辑:服务器运维 本文来源:感谢为修复「毒液」漏洞辛苦付出的技术团队,

关键词: