Linux 4.0 不再需要重啟
Linux 4.0 里,你可能再也不需要重啟你的操作系統(tǒng)。
在大多數(shù)的服務(wù)器或者數(shù)據(jù)中心里,喜歡用linux的一個原因是你不需要頻繁的進行重啟操作。誠然,某些關(guān)鍵性的補丁必須要進行重啟,但你也可以等到數(shù)月后再做此操作?,F(xiàn)在,得益于 linux 內(nèi)核的最新更新 你也許可以數(shù)年間都不用重啟。
感謝 Ksplice 項目,使得這一特性在2009年就可以實現(xiàn)。此項目在對原始和打過補丁的內(nèi)核進行比較后,使用一個定制的內(nèi)核模塊將新的代碼加入到運行內(nèi)核中。在支持Ksplice的內(nèi)核中,每個將被修補的功能都攜帶有一套特殊標志用以進行區(qū)分。Ksplice進程會監(jiān)視正在修補該函數(shù)的代碼是不是當前不在使用,當當,打上補丁,你的服務(wù)器上繼續(xù)運行。
Oracle 在 2011 年收購了 Ksplice 項目,并將其作為 RHEL 的一項可選服務(wù),使其應(yīng)用于它自己的Oracle Linux 中(一個 RHEL(Red Hat Enterprise Linux ) 的克隆版本)。這將此項技術(shù)隔離于其他企業(yè)版和服務(wù)器版 Linux 之外。
后來 KemelCare 為大部分企業(yè)發(fā)行版 Linux 發(fā)布了一項提供非啟動式補丁服務(wù)。此程序作為專利軟件,只能通過按月支付來享有此服務(wù)。這從而很難滿足大多數(shù)Linux系統(tǒng)管理員。
所以,Red Hat 和 SUSE 開始著手完全開源的為 Linux 安裝嚴重補丁的非重啟方案。Red Had 的項目命名為 kpatch, SUSE的項目命名為 kGraft.
兩個公司采用了不同的途徑。Kpatch 發(fā)布了一個 stop_machine() 命令。之后,它著眼于現(xiàn)有的棧處理去使用ftrace,如果打補丁可以被做得很安全,它會重定向運行著的代碼到補丁函數(shù),而后就刪除現(xiàn)在過時的代碼。
比過去好的是,數(shù)據(jù)中心被運行在世界各處,但是它們中的許多都需要一個21世紀式的重啟。今天的數(shù)據(jù)中心必須更有效率,更有魯棒性和靈活性,這超過以往任何時候。我們檢查怎樣才能運行好你的數(shù)據(jù)中心,與之相對的是外包到一個云或者一個服務(wù)提供商,或是采取混合的方式。
Kgraft 一直使用ftrace,盡管它是工作在線程級的。當一個老的函數(shù)被調(diào)用,它會定位到線程的一個點,然后將其切換到新的函數(shù)。
雖然最終結(jié)果相同,即操作系統(tǒng)在打補丁的時候保持運行,但還是有顯著的性能差異的。當kGraft可能花費數(shù)分鐘的時候,Kpatch可以只需要1到40毫秒,但他們從不會停機。
在2014年10月召開的linux 開發(fā)者大會上,兩個小組合二為一并且開始致力于聯(lián)合最好的程序使linux打補丁時不再重啟。實際上,他們最終是把kpatch和kGraft都丟進了Linux內(nèi)核。
Jiri Kosina,一位SUSE軟件工程師和Linux內(nèi)核開發(fā)者解釋說,Linux內(nèi)核的熱補丁將會“為函數(shù)提供一個基本基礎(chǔ)設(shè)施” 熱補?。ɡ纾捍a重定向),包括為了包含實際補丁的內(nèi)核模塊的API(應(yīng)用程序接口),和為了在用戶空間可以操作補丁的API/ABI(應(yīng)用二進制接口),這是“相對簡單和簡約的,因為它盡可能多的利用了已有的內(nèi)核基礎(chǔ)(名為ftrace)。它也是自包含的,在某種意義上說,它不在任何其他的內(nèi)核子系統(tǒng)中調(diào)用自身(它甚至不接觸其他任何代碼)”
Linux 4.0 RC 版現(xiàn)在已經(jīng)放出,Kosina 聲稱:”現(xiàn)在實施的x86架構(gòu)只是作為一個參考架構(gòu),對于powerpc, s390 和 arm 的支持工作已經(jīng)在進行中了“。確實,對于這些架構(gòu)的支持源代碼已經(jīng)在 Live Patching Git code 上了。
簡單的代碼僅僅只是開始,你的發(fā)行版將通過補丁來支持和使用它。隨著 Red Hat 和 SUSE 的支持,live 補丁將很快默認在所有商業(yè)Linux發(fā)行版中。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
centos7 設(shè)置grub密碼及單用戶登錄實例代碼
這篇文章主要介紹了centos7 設(shè)置grub密碼及單用戶登錄實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11Centos 6.5 服務(wù)器優(yōu)化配置備忘(一些基礎(chǔ)優(yōu)化和安全設(shè)置)
這篇文章主要介紹了Centos 6.5 服務(wù)器優(yōu)化(一些基礎(chǔ)優(yōu)化和安全設(shè)置),需要的朋友可以參考下2016-10-10Linux系統(tǒng)下快速配置HugePages的完整步驟
這篇文章主要給大家介紹了關(guān)于如何在Linux系統(tǒng)下快速配置HugePages的完整步驟,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11