web-dev-qa-db-ja.com

CentOS / RHEL6で「ライブ」カーネルをリロードする

CentOSまたはRHEL6でカーネルパッケージをアップグレードする場合、新しいカーネルをロードすることは可能ですかなし再起動しますか?

私の腸はそうではないと言っていますが、そうであった場合は便利です-特に、「間違った」カーネルソースが利用可能であるときに文句を言うカーネルモジュール(たとえば、VirtualBoxなど)を必要とするアプリケーションをコンパイルする場合(たとえば、実行中のカーネルは2.6.2-100ですが、アップグレードされたものは2.6.2-152です)。

5
warren

番号。

kexecを使用すると、標準の再起動のファームウェア(BIOS/EFI)とブートローダーの手順をスキップできますが、これは同じではありません(ただし、RAIDカードの読み込みが遅い場合に役立ちます)。

最も近いのは、カーネルモジュールのロードとアンロードです。

5
84104

誰もkpatchを指さなかった。ライブカーネルリロードではありませんが、同じ問題を対象としています。

kpatch ライブカーネルにパッチを適用するためのRedHatテクノロジー。

粒度に関しては、kpatchは関数レベルで機能します。簡単に言えば、古い関数は新しい関数に置き換えられます。これには4つの主要なコンポーネントがあります。

  • kpatch-build:ソースdiffパッチをホットパッチモジュールに変換するツールのコレクション。これらは、ソースパッチがある場合とない場合の両方でカーネルをコンパイルし、バイナリを比較し、置き換えられる関数の新しいバイナリバージョンを含むホットパッチモジュールを生成することによって機能します。
  • ホットパッチモジュール:置換関数と元の関数に関するメタデータを含むカーネルモジュール(.koファイル)。
  • kpatchコアモジュール:交換用の新しい関数を登録するためのホットパッチモジュールのインターフェイスを提供するカーネルモジュール(.koファイル)。カーネルftraceサブシステムを使用して、元の関数のmcount呼び出し命令にフックし、元の関数への呼び出しが置換関数にリダイレクトされるようにします。
  • kpatchユーティリティ:ユーザーがホットパッチモジュールのコレクションを管理できるようにするコマンドラインツール。 1つ以上のホットパッチモジュールを起動時にロードするように構成して、同じバージョンのカーネルで再起動した後でもシステムにパッチを適用したままにすることができます。

RHEL 7からサポート

2
mmv-ru

はい、RHELの場合。 (2012年2月22日以降)

オラクルは、Red Hatのお客様に革新的なKspliceゼロダウンタイムアップデートの無料トライアルを提供しています

30日間の試用期間後に続行するには、 Oracle Linux Premier Supportパッケージ を購入する必要があります。

価格は、物理CPUが2つあるシステムの場合は1,400ドルから、物理CPUが2つ以上あるシステムの場合は2,300ドルからです。更新が利用可能になったときに自動的にインストールするようにシステムを構成できます。

これは、オラクルがKspliceを買収した2011年7月より前に、RHELとCentOS(およびその他のオペレーティングシステム)の両方に提供されていました。以前のお客様は引き続きサポートされます。
OracleはKspliceを購入

Kspliceコードは、GPLv2およびその他のオープンソースライセンスの下で作成および配布されました。 OracleがKspliceを買収し、Oracle Linux、Ubuntu Desktop、およびFedoraの可用性が制限された後、KspliceのCentOSフォークを維持することについての議論がありました。
KspliceおよびCentOS

KspliceがGPLに違反しているとも主張されました。
Kspliceは現在GPLに違反しています

2
codewaggle

Oracle Enterprise LinuxはKSpliceでそれを行うことができますが、Oracle ULN(サポート)契約を結んでいる必要があります。約120ドルだと思います。 http://www.ksplice.com/pricing

2
Brian

KExec まさにそれができると主張しています。

1
monksy

実際、私はこのOracleブログの投稿を読み直しました。

https://blogs.Oracle.com/wim/entry/fast_reboots_for_Oracle_linux

したがって、UEKカーネルを使用している限り、OEL5およびOEL6でkexec高速リブートを実行できます。これはksplice(そもそも再起動しないことです!)とは関係がなく、ライセンスや使用するものは必要ありません。

1
Florian Heigl