Linux 4.0リリース候補版にライブパッチ機能が導入

Steven J. Vaughan-Nichols (Special to ZDNet.com) 翻訳校正: 石橋啓一郎 2015年03月04日 10時28分

  • このエントリーをはてなブックマークに追加

 Linux 4.0では、OSの再起動は不要になるかもしれない。

 多くの管理者がLinuxを使う理由の1つに、再起動が必要な機会が少ないことがある。もちろん、重要なパッチの適用には再起動が必要だが、再起動なしで数カ月使い続けることも珍しくはない。しかし、最新のLinuxカーネルでは、その期間が数年単位に延びるかもしれない。

 実はこの機能は、2009年のLinuxにはあった。この機能を実現する「Ksplice」というプログラムは、古いカーネルとパッチ後のカーネルを比較し、カスタマイズされたカーネルモジュールを使用して、実行中のカーネルに新しいコードを適用する。Kspliceに対応するカーネルでは、パッチを適用する関数に特別なフラグを付ける。Kspliceのプロセスはその関数を監視して、サーバを動かしたまま、その関数が使用されていない瞬間にパッチを適用する。

 ところが、Oracleが2011年にKspliceを買収すると、この機能を「Red Hat Enterprise Linux」(RHEL)のクローンである「Oracle Linux」と、RHELユーザー向けのトライアルなどとしてのみ提供することにしたため、他のLinuxディストリビューションは元の状態に戻った。

 その後、KernelCareもほとんどのエンタープライズ向けLinuxディストリビューションに対応した同様の機能をリリースしたが、このプログラムは月額料金が必要なサービスとしてしか提供されず、多くのLinuxシステム管理者を満足させることはなかった。

 これを受けて、Red HatSUSEが完全なオープンソースとして、再起動なしにパッチを適用する機能の実現に取り組み始めた。Red Hatのものは「kpatch」、SUSEのものは「kGraft」と名付けられた。

 この2つは異なるアプローチを取っている。Kpatchはstop_machine()コマンドを使用し、ftraceを使用して既存のプロセスのスタックを調べ、パッチを安全に適用できる場合は、実行中のコードをパッチ後の関数にリダイレクトしてから古いコードを削除する。

 Kgraftもftraceを使用するが、こちらはスレッドレベルで機能する。古いスレッドが呼び出されると、そのスレッドが新しい関数に切り替えられるかどうかを確認する。

 最終的に得られる結果は同じだが、性能には大きな違いがある。kpatchの実行は1ミリ秒から40ミリ秒で済むが、Kgraftは数分間かかる可能性がある。ただしこちらは、ダウンタイムは1ミリ秒もない。

 2014年10月のLinux Plumber Conferenceで、この2つのグループが集まり、両者のよいところを合わせてLinuxに再起動なしでパッチを適用する手段を追加する取り組みを始めた。最終的には、Linux 4.0のカーネルに、kpatchとkGraftの両方の機能が取り込まれた。

 最近公開されたLinux 4.0のリリース候補版には、リファレンスアーキテクチャとしてx86版だけが実装されているが、PowerPC、s390、ARMのサポートについても対応中であり、これらのアーキテクチャ用のコードもすでに存在する。

 コードが書かれたというのは、まだ始まりに過ぎない。この機能を利用するには、使用しているディストリビューションのパッチがこれに対応していなくてはならない。だが、Red HatとSUSEが対応している以上、この方法はすぐに主要な企業向けLinuxディストリビューションでは当たり前になるだろう。

この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

  • このエントリーをはてなブックマークに追加

この記事を読んだ方に

関連ホワイトペーパー

連載

CIO
ITアナリストが知る日本企業の「ITの盲点」
シェアリングエコノミーの衝撃
デジタル“失敗学”
コンサルティング現場のカラクリ
Rethink Internet:インターネット再考
インシデントをもたらすヒューマンエラー
トランザクションの今昔物語
エリック松永のデジタルIQ道場
研究現場から見たAI
Fintechの正体
米ZDNet編集長Larryの独り言
大木豊成「仕事で使うアップルのトリセツ」
山本雅史「ハードから読み解くITトレンド放談」
田中克己「展望2020年のIT企業」
松岡功「一言もの申す」
松岡功「今週の明言」
内山悟志「IT部門はどこに向かうのか」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
大河原克行「エンプラ徒然」
内製化とユーザー体験の関係
「プロジェクトマネジメント」の解き方
ITは「ひみつ道具」の夢を見る
セキュリティ
エンドポイントセキュリティの4つの「基礎」
企業セキュリティの歩き方
サイバーセキュリティ未来考
ネットワークセキュリティの要諦
セキュリティの論点
スペシャル
エンタープライズAIの隆盛
インシュアテックで変わる保険業界
顧客は勝手に育たない--MAツール導入の心得
「ひとり情シス」の本当のところ
ざっくり解決!SNS担当者お悩み相談室
生産性向上に効くビジネスITツール最前線
ざっくりわかるSNSマーケティング入門
課題解決のためのUI/UX
誰もが開発者になる時代 ~業務システム開発の現場を行く~
「Windows 10」法人導入の手引き
ソフトウェア開発パラダイムの進化
エンタープライズトレンド
10の事情
座談会@ZDNet
Dr.津田のクラウドトップガン対談
Gartner Symposium
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft WPC
Microsoft Connect()
HPE Discover
Oracle OpenWorld
Dell Technologies World
AWS re:Invent
AWS Summit
PTC LiveWorx
吉田行男「より賢く活用するためのOSS最新動向」
古賀政純「Dockerがもたらすビジネス変革」
中国ビジネス四方山話
ベトナムでビジネス
日本株展望
企業決算
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]