歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux業界 >> Linux 4.0不再需要重啟

Linux 4.0不再需要重啟

日期:2017/2/27 17:30:59   编辑:Linux業界

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發行版中。

原文:http://www.oschina.net/translate/no-reboot-patching-comes-to-linux-4-0
Copyright © Linux教程網 All Rights Reserved