天天看点

不重启不当机!Linux内核热补丁的四种技术不重启不当机!Linux内核热补丁的四种技术

不重启不当机!Linux内核热补丁的四种技术不重启不当机!Linux内核热补丁的四种技术

供图: shutterstock

有多种技术在竞争成为实现linux内核热补丁的最优方案。

没人喜欢重启机器,尤其是涉及到一个内核问题的最新补丁程序。

为达到不重启的目的,目前有3个项目在朝这方面努力,将为大家提供内核升级时打热补丁的机制,这样就可以做到完全不重启机器。

<a target="_blank"></a>

首先要介绍的项目是ksplice,它是热补丁技术的创始者,并于2008年建立了与项目同名的公司。ksplice在替换新内核时,不需要预先修改;只需要一个diff文件,列出内核即将接受的修改即可。ksplice公司免费提供软件,但技术支持是需要收费的,目前能够支持大部分常用的linux发行版本。

kgraft和ksplice在工作原理上很相似,都是使用一组diff文件来计算内核中需要修改的部分。但与ksplice不同的是,kgraft在做替换时,不需要完全停止内核。 在打补丁时,正在运行的函数可以先使用老版本或新内核中对应的部分,当补丁打完后就可以完全切换新的版本。

和kgraft一样,kpatch不仅仅可以在red hat的发行版本上使用,同时也被提交到了内核主线,作为一个可能的候选。 坏消息是red hat还未将此技术集成到产品中。 它只是被合入到了red hat enterprise linux 7的技术预览版中。

这项新建议也意味着两个方案都还需要更长的时间,才能被linux内核正式采纳。尽管suse步子迈得更快,并把kgraft应用到了最新的enterprise版本中。让我们也关注一下red hat和canonical近期是否会跟进。

原文发布时间:2015-01-13

本文来自云栖合作伙伴“linux中国”

继续阅读