Oracle Linux 永不停機方案

在真正的生產和關鍵任務環境中,任何原因所導致的系統停機或者重啟,都可能會帶來經濟上的重大損失。尤其是負責處理交易、計費等系統一旦停機,損失甚至可以用秒來計算。在 Oracle Linux 的眾多特性中,有一項相當重要的技術,可確保系統真正擁有接近於100%線上時間和可用性,這就是零當機線上修正檔技術 Ksplice。O_Linux_clr logo

 

 


Linux 核心更新導致系統重啟

作為一個知名而龐大的開源專案,Linux在全球擁有幾十萬開發者。因此Linux系統核心從誕生的那天起,更新就無時不在。不管是哪個Linux版本,只要涉及對系統核心的更新,伺服器重啟一定是少不了的。根據統計,單是2009年至2010年,各Linux版本因為核心更新而導致的系統重啟,平均達到十次以上。眾所周知,Linux的修正檔一般分為兩種類型,即應用程式修正檔和核心修正檔。當對整個系統進行升級的時候,所有對應用程式的升級均可以即時生效,但是對核心的升級,就必須重啟系統,才可以完全生效。

以銀行非核心業務系統為例,一旦維護的內容涉及到伺服器的重啟,運維人員必須提交詳細的維護計畫和報告,在報告中必須明確的內容包括事件原因、維護時間、維護步驟和計畫、操作流程、備份方案、應急預案、所涉及的人員部門等多方面資訊。報告必須經過層層審批和提前對外公告,才能真正執行。系統重啟幾乎無一例外都在午夜、淩晨這些非工作時間,而且往往需要調派和協調其他部門人員,來進行應急準備。一旦維護過程中出現任何的問題,例如重啟失敗、無法載入系統、無法啟動應用程式、丟失配置等,又不能在計畫的時間內修復,最終導致的結果將是災難性的。

Oracle Linux 成功整合 Ksplice

Ksplice這項技術,正是為了解決這個問題出現的。Ksplice是開源技術,最初始於MIT的研究專案,現在已經被整合在Oracle Linux環境中。Ksplice最終的目的,就是使Linux系統在不重啟的情況下,可以升級和應用核心修正檔。與此同時,系統的守護進程、資料連接、傳輸等均不會受到任何的影響。Ksplice不但可對系統核心進行線上升級,也可以實現線上降級。令IT管理者,徹底的從系統升級或降級風險中解脫出來。

使用 Ksplice 後,進行 Linux 系統升級時便不用重啟系統。
使用 Ksplice 後,進行 Linux 系統升級時便不用重啟系統。

Ksplice 如何能做到這一點?Ksplice 最出眾的地方,是不需要預先在核心中設置 Probe Point 即探測點,而是對比修正檔之後的核心(Ksplice 稱後核心)的二進位可執行檔,和原來的核心(Ksplice 稱前核心)的二進位可執行檔。當發現差異後,即在需要修正檔的二進位碼處,啟用跳轉功能,跳到修正後的程式碼執行。Ksplice 會針對這些差異產生拼接,並將所有拼接打包為目的檔並注入核心。修正檔部分的二進位執行完成之後,又會跳返繼續執行原來的程式碼。

Ksplice 通過這種方式,把一個或多個有漏洞或錯誤的函數,替換為修正後的值,從而對正在運行的核心應用修正檔。在這個過程中,整個核心沒有變化,只是增加了新的物件程式碼,和幾個函式呼叫重定向命令,而且整個對核心修補的過程,完全在記憶體中直接實現。Ksplice 還可以在更新期間運行額外程式碼,來更改資料結構。Ksplice 提供一對鉤子函數 Hooks,可以在更新核心之前和之後運行,設置和清理程式碼,還可以在核心中加入新函數。

原則上任何 Linux 核心,甚至是那些在 Ksplice 開發出來之前就存在的核心,都可以使用 Ksplice。要想拼接核心,必須有核心的原始程式碼、希望應用的修正檔及編譯器,編譯器必須能夠在物件程式碼中,把核心中的每個函數和資料結構,隔離在他們各自的部分中。在一般 Linux 版本中都提供了 GCC,在安裝 Ksplice 相關套件時,也會被視作依賴關係而自動安裝。

Ksplice 實現零停機的Linux核心更新。
Ksplice 實現零停機的Linux核心更新。

Oracle Linux Premier 企業級訂閱服務

要使用 Oracle 針對 Linux 所提供的 Ksplice 功能,只要購買 Premier 級別的服務即可取得。Oracle Linux Premier 是 Oracle Linux 中級別最高的服務,相對於同樣級別的其他企業級 Linux 系統訂閱服務,Oracle Linux Premier 仍然具備價格優勢。只要購買了 Oracle Linux Premier 級別服務,而且伺服器可以訪問互聯網即可使用。

使用者需要將自己的伺服器,註冊到 Unbreakable Linux Network 即 ULN(連結為 http://linux.oracle.com)上,然後手動存取 ULN,加入 Ksplice 軟體頻道,這樣伺服器就可以通過 yum 下載到所有 Ksplice 的工具集,並通過該工具集提供的特定命令,來升級經過打包的 Ksplice 修正檔。ULN 是企業級 Linux 系統訂閱服務,用戶可以將自己的伺服器註冊到該網站上,實現一些簡單生命週期管理的功能,包括伺服器資訊統計、升級管理等,用戶也可以通過該網站,直接搜索獲得授權的頻道、所需軟體和相關修正檔。

還沒有購買 Oracle Linux 的用戶來說,可以到 Ksplice 官方網站完成註冊,取得 30 天的免費體驗期。
http://ksplice.oracle.com/try/trial

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。