3.2. Red Hat Enterprise Linux for Real Time カーネルとの kdump と kexec の使用

kdump クラッシュダンプは、クラッシュしたカーネルのコンテキストからではなく、クラッシュしたカーネルのコンテキストからキャプチャーされるため、信頼できるカーネルクラッシュのメカニズムです。kdump は、システムがクラッシュするたびに、第 2 のカーネルで起動するために、kexec というメカニズムを使用します。この 2 番目のカーネルは、多くの場合クラッシュカーネルと呼ばれ、非常に少ないメモリーでブートし、ダンプイメージをキャプチャーします。
システムで kdump を有効にすると、標準のブートカーネルはシステム RAM の小規模セクションを確保し、kdump カーネルを予約領域に読み込みます。カーネルパニックまたはその他の致命的なエラーが発生した場合、kexec は BIOS を経由せずに kdump カーネルで起動するために使用されます。システムは、標準の kdump ブートカーネルが予約するメモリー領域に制限されているカーネルに再起動し、このカーネルはシステムメモリーのコピーまたはイメージを設定ファイルで定義したストレージメカニズムに書き込みます。kexec は BIOS を通過し ないため、元のブートのメモリーは保持され、クラッシュダンプはより詳細になります。これが実行されると、カーネルが再起動し、マシンがリセットされ、ブートカーネルがバックアップされます。
Red Hat Enterprise Linux 7 では、kdump 以下の 3 つの手順を有効にする必要があります。まず、必要な RPM パッケージがシステムにインストールされていることを確認します。次に、最小限の設定を作成し、rt-setup-kdump ツールを使用して GRUB コマンドラインを変更します。3 つ目は、system-config-kdump というグラフィカルなシステム設定ツールを使用して、詳細な kdump 設定を作成し、有効にします。
  1. 必要な kdump パッケージのインストール

    この rt-setup-kdump ツールは、rt-setup パッケージに含まれます。kexec-tools および system-config-kdump も必要です。
    ~]# yum install rt-setup kexec-tools system-config-kdump
  2. rt-setup-kdump で基本的な kdump カーネルの作成

    1. rt-setup-kdump ツールを root として実行します。
      ~]# rt-setup-kdump --grub
      この --grub パラメーターは、GRUB 設定に記載されているすべてのリアルタイムカーネルエントリーに必要な変更を追加します。
    2. システムを再起動して、予約メモリー容量を設定します。その後、kdump init スクリプトを有効にして kdump サービスを起動します。
      ~]# systemctl enable kdump
      ~]# systemctl start kdump
  3. kdumpsystem-config-kdump を有効化

    1. ApplicationsSystem Tools から カーネルクラッシュダンプ システムツールを選択するか、シェルプロンプトで以下のコマンドを使用します。
      ~]# system-config-kdump
    2. カーネルダンプ設定画面 が表示されます。曲線で、Enable というラベルの付いたボタンをクリックします。Red Hat Enterprise Linux for Real Time カーネルは、kdump カーネルに対応するために必要なメモリー量を自動的に算出する crashkernel=auto パラメーターをサポートします。
      RAM が 4GB 未満の Red Hat Enterprise Linux 7 システムでは、crashkernel=auto は、kdump カーネル用にメモリーを予約しません。この場合は、必要なメモリー量を手動で設定する必要があります。基本設定 タブの 新しい kdump メモリー フィールドに必要な値を入力してこれを実行できます。
      kdump システムツール: 基本設定

      注記

      kdump カーネルにメモリーを割り当てる別の方法として、GRUB 設定に crashkernel=<value> パラメーターを手動で設定する方法があります。
    3. ターゲット設定 タブをクリックし、ダンプファイルの場所を指定します。これはローカルのファイルシステムにファイルとして保存するか、デバイスに直接書き込むか、または NFS (Network File System) や SSH (Secure Shell) などのプロトコルを使ってネットワーク経由で送信することができます。
      kdump システムツール: ターゲット設定
      設定を保存するには、ツールバーの 適用 ボタンをクリックします。
    4. システムを再起動して、kdump が適切に起動できるようにします。kdump が正常に機能していることを確認する場合は、sysrq を使用してパニックをシミュレートしてください。
      ~]# echo c > /proc/sysrq-trigger
      これにより、カーネルパニックが発生し、システムが kdump カーネルで起動します。システムをバックアップしたら、指定した場所でログファイルを確認できます。

注記

kdump カーネルの設定中に一部のハードウェアをリセットする必要があります。kdump カーネルが機能するのに問題がある場合は、/etc/sysconfig/kdump ファイルを編集して、KDUMP_COMMANDLINE_APPENDreset_devices=1 変数に追加します。

重要

IBM LS21 マシンでは、kdump カーネルの起動を試みる際に、以下の警告メッセージが表示されることがあります。
irq 9: nobody cared (try booting with the "irqpoll" option) handlers:
[<ffffffff811660a0>] (acpi_irq+0x0/0x1b)
turning off IO-APIC fast mode.
一部のシステムは、このエラーから回復して起動を続行しますが、メッセージを表示した後にフリーズする場合があります。これは既知の問題です。このエラーが表示された場合は、起動パラメーターとして acpi=noirqの行を kdump カーネルに追加します。この行は、この問題の影響を受けないマシンでブートの問題を引き起こす可能性があるため、このエラーが発生した場合にのみ追加します。
関連する man ページ

詳細は、以下の man ページは本セクションに記載の情報に関連しています。

  • kexec(8)
  • /etc/kdump.conf