web-dev-qa-db-ja.com

再起動せずにサーバーのカーネルをアップグレードするにはどうすればよいですか?

kspliceに既に気付いており、非常に興味があるので、これはロードされた質問です。問題は、Oracleに買収されて以来、オファリングから多数のサーバーディストリビューションをプルすることを余儀なくされていることです。答えはかつてほど簡単ではありません。

nix.SEの質問 に気付きました:

独自のkspliceパッチを構築して、独自のカーネルに動的にロードできます。

すばらしいです!しかし、どのように!?

デスクトップ上のリポジトリに無料のkspliceパッケージをインストールしました(フリーではないksplice-uptrackではありません)、更新を生成して適用したいと思います。プロセスは何ですか?プロセスを自動化するスクリプトはありますか?

さらに、再起動不要のアップグレードに必要なすべての機械がカーネル(およびkspliceパッケージ)にある場合、なぜデフォルトでそれを利用しないのですか?


かなり最近 kGraftが発表されました 。それはほぼ同じ結果であるように思われるので、それに関連する答えがあれば、私もそれで満足です。しかし、現在リリースされてから数ヶ月です。


注1:ksplice以外のソリューションには満足していますが、同じことを提供する必要があります:再起動せずに適用できるカーネルへのローリング更新サーバ。

注2:もう一度言います。メインのksplice "サービス"はUbuntu Serverをサポートしていません。以前は使用されていましたが、現在は使用されていません。 kspliceを使用したいという話をすると、kspliceパッケージに含まれるオープンソースツールについて話します。 ksplice-uptrackについて説明する答えは、前述の「サービス」と直接統合する部分であるため、おそらく私が望んでいるものではありません。

29
Oli

ここでの他のすべての回答は素晴らしいですが、Ubuntuの場合、Canonicalはこのサービスを16.04で提供するようになりました。

これは、4.0のリリース以降、アップストリームLinuxカーネルのライブパッチテクノロジーを使用しています。

6
dpb

私はkspliceについてあまり知りませんが、それについて言及すると思いました-kexecについて聞いたことがありますか?これが必要な場合があります。

質問に関して、なぜこれをデフォルトのメカニズムとして採用しなかったのですか?さて、現在実行中のカーネルのメモリを上書きすると、潜在的な問題が発生する可能性があります。また、ハードウェアデバイスが明確に定義された状態にあることが期待されますが、これは常に可能ではありません。

IBM開発者の仕事 の記事を見て、ニーズに合っているかどうかを判断してください。

6
Marcin Kaminski

kspliceは、再起動を必要とせずにカーネルスワップを許可します。 Uptrackはksplice内で動作し、/ etc/uptrack/uptrack.confに編集可能な構成ファイルがあります

3
blindfett

メインラインLinuxカーネルに含めるために提出された、Kspliceに代わる完全にオープンソースの代替がいくつかあります。どちらがカーネルで終了するかを判断するのは時期尚早ですが、十分に勇気がある場合はまだ試してみることができます。

両方について詳しくは、こちらをご覧ください。 SUSE Posts kGraft、Red Hat Posts Kpatch Patches

2
bmaupin

Arch Linux wikiには指示がありました: https://wiki.archlinux.org/index.php/ksplice

ディストリビューション固有と思われる唯一の部分は、ksplice自体のインストール方法です。あなたはすでにそれが思われることを理解しているので、これはあなたをあなたの道に導くはずだと思います。

1
bobpaul

2015年7月16日以降、「Oracle KspliceはFedoraおよびUbuntu Desktop Editionで無料で提供されています。」、公式に。

ダウンロードした.debファイルをインストールするだけです ここから入手できます

Sudo dpkg -i ksplice-uptrack.debを試す場合、Sudo apt-get install -fを使用して依存関係を修正する必要があります。

0
Pablo Bianchi