7.2. kdump のインストールと設定


7.2.1. kdump のインストール

多くの場合、Red Hat Enterprise Linux 7 の新規インストールで kdump サービスはデフォルトでインストールされます。グラフィカルインターフェイスまたはテキストインターフェイスを使用して対話形式でインストールする場合には、Anaconda インストーラーに kdump の設定画面があります。インストーラーの画面には kdump というタイトルが付けられ、メイン画面の インストールの概要 からアクセスすることができます。kdump のメモリー要件の詳細は、「kdump メモリー要件」 を参照してください。インストーラーの kdump 設定画面は Red Hat Enterprise Linux 7 インストールガイド で説明しています。

注記

Red Hat Enterprise Linux の以前のリリースでは Firstboot ユーティリティーで kdump の設定ができました。このユーティリティーはインストールの終了後、システムをはじめて再起動すると自動的に実行されていました。Red Hat Enterprise Linux 7.1 からは kdump の設定がインストーラー内に移動しています。

カスタムのキックスタートを使用したインストールなど一部のインストール方法では、デフォルトで kdump をインストールしない場合または有効にしない場合があります。このような場合に、kdump を追加でインストールするには root で次のコマンドをシェルプロンプトから実行します。

# yum install kexec-tools

お使いのシステムアーキテクチャー向けの kexec-tools パッケージが含まれるカスタムのリポジトリーか、アクティブなサブスクリプションがシステムにある場合に、上記のコマンドで kdump およびその他に必要なパッケージすべてが確実にインストールされます。

注記

システムに kdump がインストールされているかわからない場合は rpm を使うと確認できます。

$ rpm -q kexec-tools

この他、グラフィカルな設定ツールもあります。ただし上記のコマンドを使用した場合に、デフォルトではグラフィカルな設定ツールはインストールされません。「グラフィカルユーザーインターフェイスでの kdump の設定」 で説明されているように、グラフィカルな設定ツールをインストールする場合は次のコマンドを root で実行します。

# yum install system-config-kdump

Yum を使用した Red Hat Enterprise Linux 7 の新規パッケージのインストール方法はRed Hat Enterprise Linux 7 システム管理者のガイドを参照してください。

重要

Red Hat Enterprise Linux 7.4 から、kdumpIntel IOMMU ドライバーをサポートしています。7.3 以前のバージョンのカーネルを実行する場合は、Intel IOMMU のサポートを無効にすることを推奨します。

7.2.2. コマンドラインで kdump の設定

7.2.2.1. メモリー使用量の設定

kdump カーネル用に予約されるメモリーは必ずシステムの起動時にその予約が行われます。 つまり、メモリーのサイズはシステムのブートローダー設定で指定されています。

kdump カーネル用に割り当てるメモリーを指定するには、crashkernel= オプションを必要な値に設定します。たとえば、128 MB のメモリーを予約するには、以下を使用します。

crashkernel=128M

AMD64 システム、Intel 64 システム、および IBM Power SYstems サーバーでは、GRUB2 ブートローダーを使用し、IBM Z では zipl を使用して、crashkernel= オプションを変更する方法は、「カーネルコマンドラインパラメーターの設定」 を参照してください。

crashkernel= オプションは、複数の方法で定義できます。「kdump メモリー要件」 で説明されているガイドラインに従い、auto 値を指定すると、システムの合計メモリーに基づいた、予約メモリーの自動設定が可能になります。メモリーサイズが大きいシステムでは、オペレーティングシステムに設定された上限まで、crashkernel=auto オプションが指定されたアーキテクチャーに従って計算されます。

この動作を変更するには、auto の値を特定のメモリー量に置き換えます。

crashkernel= オプションは、特にメモリー量が少ないシステムで有用です。たとえば、128 MB のメモリーを予約するには、以下を使用します。

crashkernel=128M

搭載しているメモリーの合計サイズに応じて予約メモリーサイズが可変するように設定することもできます。可変のメモリー予約を設定する場合の構文は crashkernel=<range1>:<size1><range2>:<size2> になります。以下に例を示します。

crashkernel=512M-2G:64M,2G-:128M

上記の例では、システムメモリーの合計が 512 MB 以上 2 GB 未満の場合、64 MB のメモリーを予約します。メモリー合計サイズが 2 GB を超える場合は、128 MB が kdump 用に予約されます。

システムによっては、特定の固定オフセットを指定して、メモリーの予約を行う必要があります。オフセットが設定されると、予約メモリーはそこから開始されます。予約メモリーをオフセットするには、以下の構文を使用します。

crashkernel=128M@16M

上記の例の場合、kdump は 128 MB のメモリー予約を 16 MB (物理アドレス 0x01000000) から開始することになります。オフセットパラメーターを 0 に設定する、または完全に省略すると kdump により自動的にオフセットが設定されます。上記のように、変数メモリー予約を設定する場合にもこの構文を使用します。この場合、オフセットは常に最後に指定されます (例: crashkernel=512M-2G:64M,2G-:128 _M@16 _M)。

7.2.2.2. kdump ターゲットの設定

カーネルクラッシュがキャプチャーされると、コアダンプはローカルファイルシステムのファイルとして保存したり、デバイスに直接書き込みしたり、NFS (Network File System) または SSH (Secure Shell) プロトコルを使用してネットワーク上で送信したりすることができます。現時点で設定できるのは、これらのオプションの 1 つのみです。デフォルトのオプションでは、vmcore ファイルをローカルファイルシステムの /var/crash ディレクトリーに保存します。

  • vmcore ファイルをローカルファイルシステムの /var/crash/ ディレクトリーに保存するには、/etc/kdump.conf ファイルを編集してパスを指定します。

    path /var/crash

    オプションの path /var/crash は、kdumpvmcore ファイルを保存するファイルシステムパスを表します。

    注記
    • /etc/kdump.conf ファイルでダンプターゲットを指定すると、path は指定されたダンプ出力先に対する相対パスになります。
    • /etc/kdump.conf ファイルでダンプターゲットを指定しない場合、パスはルートディレクトリーからの 絶対 パスを表します。

    現在のシステムにマウントされている内容に応じて、ダンプターゲットと調整されたダンプパスが自動的に適用されます。

    例7.1 kdump ターゲット設定

    grep -v ^# etc/kdump.conf | grep -v ^$
    ext4 /dev/mapper/vg00-varcrashvol
    path /var/crash
    core_collector makedumpfile -c --message-level 1 -d 31

    ここでは、ダンプターゲットが指定され (ext4/dev/mapper/vg00-varcrashvol)、/var/crash にマウントされており、path オプションも /var/crash に設定されるため、kdumpvmcore ファイルを var/crash/var/crash ディレクトリーに保存します。。

ダンプの場所を変更するには、root としてテキストエディターで /etc/kdump.conf 設定ファイルを開き、以下のようにオプションを編集します。

コアダンプの保存先のローカルディレクトリーを変更する場合は #path /var/crash の行頭にあるハッシュ記号 (#) を取り除き、値を変更先のディレクトリーパスに置き換えます。

path /usr/local/cores
重要

Red Hat Enterprise Linux 7 では kdump のダンプ出力先として path ディレクティブで指定されているディレクトリーが kdump systemd サービスの起動時に存在していなければなりません。この動作は、サービスの起動時にそのディレクトリーが存在しない場合に自動的に作成されていた Red hat Enterprise Linux の以前のリリースのものとは異なります。

オプションで、ファイルを別のパーティションに書き込む場合は、#ext4 で始まる行のハッシュ記号を取り除き、値を変更先のディレクトリーパスに置き換えます。値にはデバイス名 (#ext4 /dev/vg/lv_kdump 行)、ファイルシステムのラベル (#ext4 LABEL=/boot 行)、UUID (#ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937 行) のいずれかを使用できます。ファイルシステムタイプと、デバイス名、ラベル、UUID を希望の値に変更します。

注記
UUID 値を指定するための正しい構文は、UUID="correct-uuid"`UUID=correct-uuid の両方です。

以下に例を示します。

ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
重要

ストレージデバイスの指定は LABEL= または UUID= を使用することを推奨します。/dev/sda3 などのディスクデバイス名は、再起動しても一貫性は保証されません。永続的なディスクデバイスの命名についてはRed Hat Enterprise Linux 7 ストレージ管理ガイドを参照してください。

重要

s390x ハードウェア上の DASD にダンプする場合には、続行する前に /etc/dasd.conf でダンプサービスが正しく指定されている必要があります。

ダンプをデバイスに直接書き込む場合は #raw /dev/vg/lv_kdump の行頭にあるハッシュ記号 (#) を取り除き、値をダンプ出力先のデバイス名に置き換えます。以下に例を示します。

raw /dev/sdb1

NFS プロトコルを使用してリモートのマシンにダンプを保存する場合は #nfs my.server.com:/export/tmp の行頭にあるハッシュ記号 (#) を取り除き、値を有効なホスト名とディレクトリーパスに置き換えます。以下に例を示します。

nfs penguin.example.com:/export/cores

SSH プロトコルを使用してリモートのマシンにダンプを保存するには、#ssh user@my.server.com の行頭にあるハッシュ記号(#)を取り除き、値を有効なユーザー名およびホスト名に置き換えます。設定に SSH キーも含める場合は #sshkey /root/.ssh/kdump_id_rsa 行の先頭にあるハッシュ記号 (#) を取り除き、値をダンプ出力先となるサーバー上で有効なキーの場所に変更します。以下に例を示します。

ssh john@penguin.example.com
sshkey /root/.ssh/mykey

SSH サーバーの設定方法およびキーベースの認証設定についてはRed Hat Enterprise Linux 7 システム管理者のガイドを参照してください。

対応しているダンプ出力先と非対応のダンプ出力先のタイプ別一覧は、表7.3「対応している kdump のダンプ出力先」 を参照してください。

7.2.2.3. コアコレクターの設定

vmcore ダンプファイルのサイズを小さくするために、kdump では外部アプリケーション (core collector) を指定して、データの圧縮や必要に応じた関連性のないすべての情報の除外ができます。現在、完全サポートしているコアコレクターは makedumpfile のみになります。

コアコレクターを有効にするには、root として、テキストエディターで /etc/kdump.conf 設定ファイルを開いて、#core_collector makedumpfile -l --message-level 1 -d 31 の行頭にあるハッシュ記号 (#) を取り除き、以下の説明通りにコマンドラインのオプションを編集します。

ダンプファイルの圧縮を有効にするには、-l パラメーターを追加します。以下に例を示します。

core_collector makedumpfile -l

ダンプから特定のページを除外するには、-d value を追加します。value には 表7.4「サポートしているフィルターレベル」 で説明しているように、省略するページの値の合計を入力します。ゼロと未使用ページを除外する場合は次のようになります。

core_collector makedumpfile -d 17 -c

利用可能なオプションの完全なリストは、makedumpfile(8) man ページを参照してください。

7.2.2.4. デフォルト動作の設定

デフォルトでは、kdumpkexec システムコールを使用し、再起動することなく 2 番目のカーネル (キャプチャーカーネル) で起動し、クラッシュしたカーネルメモリー (クラッシュダンプ またはvmcore) の内容をキャプチャーして、ファイルへ保存します。保存が成功すると、kdump はマシンを再起動します。

ただし、kdump が、「kdump ターゲットの設定」 で指定したダンプ出力先でコアダンプの作成に失敗すると、kdump は、vmcore を保存せずにシステムを再起動します。この動作を変更する場合は root として、テキストエディターで /etc/kdump.conf 設定ファイルを開きます。#default shell の行頭にあるハッシュ記号 (#) を取り除き、表7.5「サポートしているデフォルトの動作」 の説明にしたがって値を目的の動作に変更します。

以下に例を示します。

default reboot

7.2.2.5. サービスの有効化

起動時に kdump デーモンを開始するには、シェルプロンプトで root として以下を入力します。

systemctl enable kdump.service

これにより、multi-user.target のサービスが有効になります。同様に systemctl disable kdump を入力すると kdump が無効になります。現在のセッションでサービスを開始する場合は root として、次のコマンドを使用します。

systemctl start kdump.service
重要

Red Hat Enterprise Linux 7 では kdump の出力先として指定されているディレクトリーが kdump systemd サービスの起動時に存在していなければなりません。この動作は、サービスの起動時にそのディレクトリーが存在しない場合に自動的に作成されていた Red hat Enterprise Linux の以前のリリースのものとは異なります。

systemd およびサービスの設定全般についてはRed Hat Enterprise Linux 7 システム管理者のガイドを参照してください。

7.2.3. グラフィカルユーザーインターフェイスでの kdump の設定

Kernel Dump Configuration ユーティリティーを起動するにはパネルから Activities Other Kernel crash dumps の順で選択するか、シェルプロンプトで system-config-kdump を入力します。図7.1「基本設定」 に示すウィンドウが表示されます。

このユーティリティーを使用すると kdump の設定のほか、起動時にサービスを有効または無効にすることもできます。設定が完了したら 適用 をクリックして変更を保存します。認証が済んでいる場合を除きスーパーユーザーのパスワード入力が求められます。また、設定の変更を適用するにはシステムの再起動が必要な旨を示すメッセージが表示されます。

重要

SELinux が Enforcing モードで実行中の IBM Z または PowerPC システムでは、カーネルダンプ設定ユーティリティーを起動する前に kdumpgui_run_bootloader のブール値を有効にする必要があります。このブール値により、system-config-kdump が bootloader_t SELinux ドメインのブートローダーで実行できるようになります。このブール値を永続的に有効化するには、root として以下のコマンドを実行します。

# setsebool -P kdumpgui_run_bootloader 1
重要

s390x ハードウェア上の DASD にダンプする場合には、続行する前に /etc/dasd.conf でダンプサービスが正しく指定されている必要があります。

7.2.3.1. メモリー使用量の設定

基本設定 タブでは kdump カーネル用に予約するメモリーサイズを設定できます。手動セッティング のラジオボタンを選択し、新規の kdump メモリー フィールドの横にある上矢印ボタンまたは下矢印ボタンをクリックして予約するメモリーサイズを増減させます。システムで使用できるメモリーの残量に応じて 使用可能なメモリー フィールドが変化します。kdump のメモリー要件については、「メモリー要件」 を参照してください。

図7.1 基本設定

基本設定

7.2.3.2. kdump ターゲットの設定

出力先 タブでは vmcore ダンプの出力先を指定することができます。ダンプはローカルのファイルシステムにファイルとして保存するか、デバイスに直接書き込むか、NFS (Network File System) や SSH (Secure Shell) などのプロトコルを使用してネットワーク経由で送信することができます。

図7.2 出力先

出力先

ローカルのファイルシステムにダンプを保存する場合は ローカルファイルシステム のラジオボタンを選択します。必要に応じて パーティション のドロップダウンリストから別のパーティションを選択し、パス フィールドで出力先ディレクトリーを選択して設定をカスタマイズすることもできます。

重要

Red Hat Enterprise Linux 7 では kdump の出力先として指定されているディレクトリーが kdump systemd サービスの起動時に存在していなければなりません。この動作は、サービスの起動時にそのディレクトリーが存在しない場合に自動的に作成されていた Red hat Enterprise Linux の以前のリリースのものとは異なります。

デバイスに直接ダンプを書き込む場合は Raw デバイス ラジオボタンを選択し、目的の出力先デバイスをその横にあるドロップダウンリストから選択します。

ネットワーク接続経由で、リモートのマシンにダンプを送信する場合は ネットワーク ラジオボタンを選択します。NFS プロトコルを使用する場合は NFS ラジオボタンを選択して サーバー名ディレクトリーへのパス フィールドを入力します。SSH プロトコルを使用する場合は SSH ラジオボタンを選択して サーバー名ディレクトリーへのパスユーザー名 のフィールドにリモートサーバーのアドレス、出力先ディレクトリー、有効なユーザー名をそれぞれ入力します。

SSH サーバーの設定方法およびキーベースの認証設定についてはRed Hat Enterprise Linux 7 システム管理者のガイドを参照してください。現在サポートしている出力先の一覧については、表7.3「対応している kdump のダンプ出力先」 を参照してください。

7.2.3.3. コアコレクターの設定

Filtering Settings (フィルタリングセッティング) タブでは、vmcore ダンプのフィルターレベルを選択することができます。

図7.3 フィルタリング

フィルタリング

ダンプから ゼロページキャッシュページキャッシュプライベートユーザーデータ、または フリーページ を除外するには該当ラベルの横にあるチェックボックスを使用して選択します。

7.2.3.4. デフォルト動作の設定

kdump がコアダンプを作成できない場合に実行する動作を選択するには、ダンプが失敗した場合の動作 ドロップダウンリストから適切なオプションを選択します。利用可能なオプションは以下の通りです。

  • rootfs および reboot へのダンプ を使用すると、コアをローカルに保存して、システムを再起動します。
  • Reboot システムを再起動するデフォルトの動作
  • シェルの開始 アクティブなシェルプロンプトでユーザーを表示します。
  • halt システムを停止します。
  • Poweroff システムの電源を切ります。

図7.4 フィルタリング

エキスパート設定

makedumpfile コアコレクターに渡されるオプションをカスタマイズするには Core collector のテキストフィールドを編集します。詳細は 「コアコレクターの設定」 を参照してください。

7.2.3.5. サービスの有効化

起動時に kdump サービスを開始する場合はツールバーの 有効化 ボタンをクリックしてから 適用 ボタンをクリックします。これにより、multi-user.target のサービスが有効になり、起動します。無効化 ボタンをクリックして適用 ボタンをクリックするとサービスが直ちに無効になります。

重要

Red Hat Enterprise Linux 7 では kdump の出力先として指定されているディレクトリーが kdump systemd サービスの起動時に存在していなければなりません。この動作は、サービスの起動時にそのディレクトリーが存在しない場合に自動的に作成されていた Red hat Enterprise Linux の以前のリリースのものとは異なります。

systemd の出力先およびサービスの設定全般についてはRed Hat Enterprise Linux 7 システム管理者のガイドを参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.