X
    Categories: News

Linux 4.0 引入 更新 Kernel 不需重開機的功能

Linux 更新 Kernel 最麻煩的地方就是需要重新開機,但是 Server 要重新開機是一件很複雜的事情,平常在跑的服務不能停,想重新開機都得要另外安排時間,所以就會需要找備援機器來替代,達到 0 downtime。

Linux 4.0 以後,這個問題應該就可以盡量避免了,之後更新 Kernel 就不需要重新開機囉~ (更換硬體應該還是會需要重開機)

註:不過如果機器沒事的話,偶爾還是可以重開機看看,避免難得重開確開不了機的糗狀。 XD

Linux 4.0 引入 更新 Kernel 不需重開機的功能

新聞可見:

  • Never reboot again with Linux and Ksplice | Computerworld
  • No reboot patching comes to Linux 4.0 | ZDNet,下述摘錄自此篇:
    • This is actually a feature that was available in Linux in 2009 thanks to a program called Ksplice. This program compares the original and patched kernels and then uses a customized kernel module to patch the new code into the running kernel. Each Ksplice-enabled kernel comes with a special set of flags for each function that will be patched. The Ksplice process then watches for a moment when the code for the function being patched isn't in use, and ta-da, the patch is made and your server runs on.

翻譯簡述:

  • 能做到 Linux Kernel 更新 Patch 後,不需要重新開機,主要是靠 2009年製作的 Ksplice 達成的。
  • Ksplice 的作法如下:
    • Ksplice 會比較 "原有的 Kernel" 和 "Patch過的 Kernel",然後產生特製的(Patch new code) kernel module,並於現在執行的 Kernel 載入。
    • 每個 Ksplice 啟用的 Kernel 都會設定一個特殊的 Flags,讓每個 Function 都可以被 Patched。

相關網頁

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post