当前位置: 移动技术网 > 网络运营>服务器>Linux > Linux 4.0 不再需要重启

Linux 4.0 不再需要重启

2019年05月01日  | 移动技术网网络运营  | 我要评论

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

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

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

oracle 在 2011 年收购了 ksplice 项目,并将其作为 rhel 的一项可选服务,使其应用于它自己的oracle linux 中(一个 rhel(red hat enterprise linux ) 的克隆版本)。这将此项技术隔离于其他企业版和服务器版 linux 之外。

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

所以,red hat 和 suse 开始着手完全开源的为 linux 安装严重补丁的非重启方案。red had 的项目命名为 kpatch, suse的项目命名为 kgraft.

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

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

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

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

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

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网