Linux 4.0 不再需要重启 已翻译 100%

oschina 投递于 2015/03/04 08:06 (共 5 段, 翻译完成于 03-05)
阅读 14802
收藏 57
11
加载中

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

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

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

parselife
翻译于 2015/03/04 10:34
2

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

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

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

pseudo
翻译于 2015/03/04 14:04
2

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

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

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

溪边九节
翻译于 2015/03/04 21:56
1

虽然最终结果相同,即操作系统在打补丁的时候保持运行,但还是有显著的性能差异的。当kGraft可能花费数分钟的时候,Kpatch可以只需要1到40毫秒,但他们从不会停机。

在2014年10月召开的linux 开发者大会上,两个小组合二为一并且开始致力于联合最好的程序使linux打补丁时不再重启。实际上,他们最终是把kpatch和kGraft都丢进了Linux内核。


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

气质舞王尼古拉斯赵四
翻译于 2015/03/05 12:20
1

Linux 4.0 RC 版现在已经放出,Kosina 声称:”现在实施的x86架构只是作为一个参考架构,对于powerpc, s390 和 arm 的支持工作已经在进行中了“。确实,对于这些架构的支持源代码已经在 Live Patching Git code 上了。

简单的代码仅仅只是开始,你的发行版将通过补丁来支持和使用它。随着 Red Hat 和 SUSE 的支持,live 补丁将很快默认在所有商业Linux发行版中。

社会主义好
翻译于 2015/03/04 16:24
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(48)

subool
subool
linux之前是配置得好, 就不用重启, 没配置好, 需要适当重启; 以后大概可以做到: 没配置好, 也不需要重启, 重新配置即可, 这是质的飞跃.
subool
subool
谢谢! 谢谢! linux! 只是桌面做得不好, 且windows稳定性也越来越强, 要脱离windows还不可能. 但服务器linux却是windows难以代替的.
哆啦比猫
哆啦比猫

引用来自“请你好好放低”的评论

我还没碰到过非得要重启linux的情况,能举些例子么?
内核升级?
泡不烂的凉粉
泡不烂的凉粉
我个人认为, 意义不大。

稳定的系统依赖于健壮的代码, 内核代码稳定足以。 实际应用。 依赖于应用系统的稳定。
内核这种机制,无疑给破坏者留下了可乘之机。

FreeBSD很早就设计了安全等级限制这点我觉得很赞。 哪怕是Root用户以及权限,在特定安全等级下,可访问也会被限制。 要想重新获取权限,必须重新设定安全等级, 换句话说。必须重新重启。

我相信,暗箭难防这个是有道理的, 这种无需重启的内核, 必然会带来隐患。更难以察觉的隐患。更重大的隐患。
f
flying萌夫子
niubniubniubniub
CasparLi
CasparLi

引用来自“嘿丫妞妞”的评论

别高兴太早了!!

live 补丁将很快默认在所有商业Linux发行版中。

注意是 所有商业Linux发行版!! Redhat SUSE都是商业的。。。普通的ubuntu,centos没有!!

引用来自“Puluto”的评论

这是集成在内核的功能,普通发行版会比商业版更快整合的。
对, 先在社区版实验好了再弄到商业版卖钱
beetleleo
beetleleo
暴强!!!!!!!
大王叫我来卖萌
大王叫我来卖萌

引用来自“hello_world_me”的评论

windows早就有hotpatch的方案
某些人视而不见,坐井观天
hello_world_me
hello_world_me
windows早就有hotpatch的方案
人生能绕几个圈
人生能绕几个圈

引用来自“JM_Joy”的评论

linux大法好,退windows保平安
赞!!!
返回顶部
顶部