13.2. RHEL 9 での kdump メモリー使用量の設定

kexec-tools パッケージは、デフォルトの crashkernel= メモリー予約値を維持します。kdump サービスはデフォルト値を使用して、各カーネルのクラッシュカーネルメモリーを予約します。デフォルト値は、crashkernel= 値を手動で設定するときに必要なメモリーサイズを見積もるための基準値としても機能します。クラッシュカーネルの最小サイズは、ハードウェアおよびマシンの仕様により異なります。

また、kdump の自動メモリー割り当ては、システムハードウェアアーキテクチャーと利用可能なメモリーサイズにより異なります。たとえば、AMD および Intel 64 ビットアーキテクチャーでは、crashkernel= パラメーターのデフォルト値は、使用可能なメモリーが 1 GB を超える場合にのみ機能します。kexec-tools ユーティリティーは、AMD64 および Intel 64 ビットアーキテクチャーで次のデフォルトのメモリー予約を設定します。

crashkernel=1G-4G:192M,4G-64G:256M,64G:512M

kdumpctl estimate を実行して、クラッシュをトリガーせずに大まかな見積もり値をクエリーすることもできます。予測される crashkernel= 値は正確でない可能性がありますが、適切な crashkernel= 値を設定するための参照として利用できます。

注記

起動コマンドラインの crashkernel=auto オプションは、RHEL 9 以降のリリースでは対応しなくなりました。

前提条件

  • システムの root 権限がある。
  • kdump の設定とターゲットの要件をすべて満たしている。詳細は 対応している kdump 設定とターゲット を参照してください。
  • IBM Z システムの場合は、zipl ユーティリティーがインストールされている。

手順

  1. クラッシュカーネルのデフォルト値を設定します。

    # kdumpctl reset-crashkernel --kernel=ALL

    crashkernel= 値を設定する場合は、kdump を有効にして再起動し、設定をテストします。kdump カーネルの起動に失敗した場合は、メモリーサイズを徐々に増やして許容可能な値を設定します。

  2. カスタムの crashkernel= 値を使用するには、以下を実行します。

    1. 必要なメモリー予約を設定します。

      crashkernel=192M

      あるいは、構文 crashkernel=<range1>:<size1>,<range2>:<size2> を使用して、予約メモリーの量を、インストールされているメモリーの合計量に応じて変動する値に設定することもできます。以下に例を示します。

      crashkernel=1G-4G:192M,2G-64G:256M

      この例では、システムメモリーの合計量が 1 GB 以上 4 GB 未満の場合、192 MB のメモリーが予約されます。メモリーの合計量が 4 GB を超える場合、256 MB が kdump 用に予約されます。

    2. (オプション) 予約済みメモリーをオフセットします。

      crashkernel 予約は非常に早いため、特定の固定オフセットでメモリーを予約する必要があるシステムもあります。また、特別な用途にいくつかの領域を予約したいシステムもあります。オフセットが設定されると、予約メモリーはそこから開始されます。予約メモリーをオフセットするには、以下の構文を使用します。

      crashkernel=192M@16M

      この例では、16 MB (物理アドレス 0x01000000) から始まる 192 MB のメモリーを予約します。オフセットを 0 に設定するか、値を指定しない場合、kdump は予約されたメモリーを自動的にオフセットします。オフセットを最後の値として指定することにより、変数メモリー予約を設定するときにメモリーをオフセットすることもできます。たとえば、crashkernel=1G-4G:192M,2G-64G:256M@16M です。

    3. ブートローダー設定を更新します。

      # grubby --update-kernel ALL --args "crashkernel=<custom-value>"

      <custom-value> には、クラッシュカーネル用に設定したカスタムの crashkernel= 値を含める必要があります。

  3. 変更を有効にするために再起動します。

    # reboot

検証

sysrq キーをアクティブ化してカーネルをクラッシュさせます。address-YYYY-MM-DD-HH:MM:SS/vmcore ファイルは、/etc/kdump.conf ファイルで指定されているターゲットの場所に保存されます。デフォルトのターゲットの場所を選択した場合、vmcore ファイルは /var/crash/ の下にマウントされたパーティションに保存されます。

警告

kdump 設定をテストするコマンドにより、カーネルがクラッシュし、データが失われます。注意して指示に従い、kdump 設定のテストにアクティブな実稼働システムを使用しないでください。

  1. sysrq キーをアクティブ化して、kdump カーネルを起動します。

    # echo c > /proc/sysrq-trigger

    このコマンドによりカーネルがクラッシュし、必要に応じてカーネルが再起動されます。

  2. /etc/kdump.conf ファイルを表示し、ターゲットの保存先に vmcore ファイルが保存されているかどうかを確認します。