documentation.suse.com / SUSE Linux Enterprise Serverにおけるカーネルライブパッチ
SUSE Linux Enterprise Server 16.0

SUSE Linux Enterprise Serverにおけるカーネルライブパッチ

発行日: 04/11/2025
概要

SUSE Linux Enterprise Serverにおけるカーネルライブパッチの理解と使用

目的

ミッションクリティカルなシステムをダウンタイムなしに安全に維持したいため。

所要時間

理解に20分ほどを要します。

目標

カーネルライブパッチの仕組みを理解します。

要件
  • Linuxに関する実用的な知識。

1 カーネルライブパッチの概要

カーネルライブパッチ(KLP)では、再起動せずにLinuxカーネルに最新のセキュリティアップデートを適用できます。これにより、ミッションクリティカルなシステムにとって特に重要なシステムのアップタイムと可用性が最大化されます。そのため、KLPにはいくつかの利点があります。

  • 多数のサーバを自動的に最新状態に保つことは、組織が特定のコンプライアンス認定を取得または維持するために不可欠です。KLPは、保守ウィンドウの必要性を削減しながら、コンプライアンスの達成に役立ちます。

  • サービスレベル契約を締結している企業は、特定のレベルのシステムアクセシビリティとアップタイムを保証する必要があります。ライブパッチにより、ダウンタイムを発生させることなくシステムにパッチを適用できます。

  • KLPは標準のシステムアップデートメカニズムの一部であるため、専門的なトレーニングや追加の保守ルーチンの導入の必要はありません。

1.1 カーネルライブパッチのスコープ

SLES Live Patchingのスコープには、SUSE Common Vulnerability Scoring System (CVSS)レベル7+脆弱性の修正や、システムの安定性またはデータの破損に関連するバグ修正が含まれます。ただし、指定されたカテゴリに該当するすべての修正のライブパッチを作成することは技術的に不可能な場合があります。したがって、SUSEではカーネルライブパッチの作成が技術的な理由で不可能な状況で修正をスキップする権利を留保します。現在、対象となる修正の95%以上がライブパッチとしてリリースされています。SUSE CVSSは、CVSS v3.0システムに基づいています。CVSSの詳細については、「Common Vulnerability Scoring System SIG」を参照してください。

1.2 カーネルライブパッチの制限

KLPには、関数の置き換えと、相互に依存する関数セットの置き換えの適切な処理が含まれます。これは、古いコードへの呼び出しを別のメモリ位置にある更新されたコードにリダイレクトすることによって行われます。データ構造の変更は、データがそのまま残り、拡張したり再解釈できないため、状況をより複雑にします。データ構造の間接的な変更を許可する技術はありますが、特定の修正はライブパッチに変換できません。この状況では、システムの再起動が、修正を適用する唯一の方法です。

2 カーネルのライブパッチの理解

カーネルライブパッチは、定期的なシステムアップデートの一部としてインストールされます。カーネルライブパッチは、メインのカーネルパッケージとは別のコードが変更されたパッケージとして提供されます。ライブパッチは累積的であるため、最新のパッチには、カーネルパッケージの以前のものからのすべての修正が含まれています。各カーネルライブパッケージは発行された正確なカーネルリビジョンに関連付けられています。ライブパッチパッケージバージョン番号は修正が追加されるたびに増加します。カーネルパッチ適用ステータスを確認するには、klp -v patchesコマンドを使用します。

ライブパッチには重要な修正のみが含まれ、再起動が必要な通常のカーネルアップデートに置き換わるものではありません。ライブパッチは、適切なカーネルアップデートおよび再起動が実行されるまでカーネルを保護する一時的な手段と考えてください。

次の図は、ライブパッチとカーネルアップデートの全体的な関係を示しています。現在アクティブなライブパッチによって対処されるCVEと不具合レポートのリストは、klp -v patchesコマンドを使用して表示できます。

ライブパッチとカーネルアップデートの関係
図 1: ライブパッチとカーネルアップデートの関係

ライブパッチとともに複数のバージョンのカーネルパッケージをインストールすることができます。これらのパッケージは競合しません。実行中のカーネル用にライブパッチとともにアップデートされたカーネルパッケージをインストールできます。この場合、システムを再起動するように求められる場合があります。SLES Live Patchingサブスクリプションを持つユーザは、実行中のカーネルのライブパッチアップデートがある限り、テクニカルサポートを受ける資格があります。

KLPを有効にすると、すべてのカーネルアップデートにライブパッチパッケージが付属します。このライブパッチには修正は含まれておらず、対応するカーネルの将来のライブパッチのシードとなります。これらの空のシードパッチはinitial patchesと呼ばれます。

システムに複数のカーネルパッケージがインストールされている可能性がありますが、任意の時点で実行されるのはそれらの1つのみであることに注意してください。同様に、複数のライブパッチパッケージがインストールされる場合がありますが、カーネルにロードされるライブパッチは1つのみです。

アクティブなライブパッチは、initrdに含まれています。これは、予期しない再起動が発生した場合に、ライブパッチ修正が適用された状態でシステムが起動するため、再びパッチを適用する必要がないことを意味します。

3 コマンドラインからのカーネルライブパッチの有効化

カーネルライブパッチは標準の SLESサブスクリプションに含まれています。使用するには、以下のパターンをインストールする必要があります。

# zypper install -t pattern lp_sles

この時点で、システムはすでにライブパッチが適用されています。

プロセスがバックグラウンドでどのように機能するかを次に示します: ライブパッチを適用できるカーネルがインストールされていること、およびソフトウェアチャネルにそのカーネルのライブパッチがあることをパッケージインストールシステムが検出すると、システムはインストール用のライブパッチを選択します。カーネルはパッケージインストールの一部としてライブパッチ修復を受信します。製品インストールが完了する前でも、カーネルにライブパッチが適用されます。

4 カーネルライブパッチの問題のトラブルシューティング

4.1 ライブパッチの有効期限を確認する

lifecycle-data-sle-module-live-patchingがインストールされていることを確認し、zypper lifecycleコマンドを実行します。出力のPackage end of support if different from productセクションにライブパッチの有効期限が表示されるはずです。

すべてのライブパッチは基盤となるカーネルパッケージのリリースから13か月間アップデートを受け取ります。「Maintained kernels, patch updates and lifecycle (維持管理されたカーネル、パッチ更新、ライフサイクル)」ページでは、製品の拡張機能をインストールすることなく、実行中のカーネルバージョンに基づいて有効期限を確認できます。

4.2 インストールされているカーネルライブパッチパッケージの確認

kernel-livepatch-*パッケージが実行中のカーネル用にインストールされている場合、カーネルにライブパッチが適用されます。コマンドzypper se --details kernel-livepatch-*を使用して、システムにインストールされているカーネルライブパッチパッケージを確認できます。

4.3 再起動の防止

kernel-defaultパッケージがインストールされる場合、アップデートマネージャはシステムを再起動するように求めます。このメッセージが表示されないようにするには、パッチ適用操作からカーネルアップデートを除外できます。これは、Zypperを使用してパッケージロックを追加することで実行できます。

4.4 パッチ適用ステータスの確認

klp statusコマンドを使用してパッチ適用ステータスを確認できます。インストール済みのパッチを調べるには、klp -v patchesコマンドを実行します。

4.5 カーネルパッチのダウングレード

最新のライブパッチに問題がある場合は、現在インストールされているライブパッチを以前のバージョンにダウングレードできます。システムログにカーネル警告またはカーネルエラートレースが含まれているシステムは、パッチのダウングレード手順に適していない場合があることに注意してください。システムがパッチダウングレードの要件を満たしているかどうか不明な場合は、SUSEテクニカルサポートに連絡してください。

最新のカーネルライブパッチをダウングレードするには、klp downgradeコマンドを使用します。このコマンドは、最新のライブパッチのバージョンを自動的に検出し、前のバージョンをインストールします。