Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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

メモリー使用量の設定

kdump カーネル用に予約されるメモリーは、システムの起動時に常に予約されます。つまり、メモリーのサイズはシステムのブートローダー設定で指定されます。本セクションでは、GRUB ブートローダーを使用して AMD64 システム、Intel 64 システム、および IBM Power Systems サーバーで予約メモリーの量を変更する方法と、zipl を使用して IBM System z で変更する方法を説明します。kdump カーネル用に予約するメモリー容量を設定するには、/boot/grub/grub.conf ファイルを編集し、例32.1「/boot/grub/grub.conf ファイルのサンプル」 に示されるように kernel オプションの一覧に crashkernel= <size> M または crashkernel=auto を追加します。crashkernel=auto オプションは、システムの物理メモリーが以下の値以上である場合に限りメモリーを予約することに注意してください。
  • 32 ビットおよび 64 ビット x86 アーキテクチャーでは 2 GB
  • ページサイズが 4 KB または 8 GB の場合は PowerPC2 GB
  • IBM S/390 上の 4 GB

例32.1 /boot/grub/grub.conf ファイルのサンプル

# grub.conf generated by anaconda
          #
          # Note that you do not have to rerun grub after making changes to this file
          # NOTICE:  You have a /boot partition.  This means that
          #          all kernel and initrd paths are relative to /boot/, eg.
          #          root (hd0,0)
          #          kernel /vmlinuz-version ro root=/dev/sda3
          #          initrd /initrd
          #boot=/dev/sda
          default=0
          timeout=5
          splashimage=(hd0,0)/grub/splash.xpm.gz
          hiddenmenu
          title Red Hat Enterprise Linux Server (2.6.32-220.el6.x86_64)
          root (hd0,0)
          kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/sda3 crashkernel=128M
          initrd /initramfs-2.6.32-220.el6.x86_64.img
システムに十分なメモリーがあることを確認します。
このセクションは、システムに十分なメモリーがある場合に限り利用できます。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 システムのメモリー最小要件については、Red Hat Enterprise Linux テクノロジーの機能と制限の比較チャートで必要な最小数』 セクションを参照してください。kdump クラッシュリカバリーを有効にすると、最小メモリー要件が予約メモリーサイズで増加します。この値はユーザーによって決定され、物理メモリーが 1 TB のシステムの合計 192 MB(つまり、物理メモリーが 1 TB 件の 192 MB)にデフォルトで 128 MB を加算します。メモリーは、必要に応じて最大 896 MB の試行できます。特に論理ユニット番号(LUN)が多数あるシステムでは、大規模な環境で推奨されます。

ターゲットタイプの設定

カーネルクラッシュがキャプチャーされると、コアダンプはローカルファイルシステムのファイルとして保存したり、デバイスに直接書き込みしたり、NFS(Network File System)または SSH(Secure Shell)プロトコルを使用してネットワーク上で送信したりすることができます。現時点で設定できるのはこれらのオプションの 1 つのみです。デフォルトのオプションは、vmcore ファイルをローカルファイルシステムの /var/crash/ ディレクトリーに保存することです。これを変更するには、root でテキストエディターで /etc/kdump.conf 設定ファイルを開き、以下のようにオプションを編集します。
コアダンプの保存先のローカルディレクトリーを変更するには、#path /var/crash の行頭にあるハッシュ記号(#)を取り除き、値を任意のディレクトリーパスに置き換えます。必要に応じて、ファイルを別のパーティションに書き込む場合は、#ext4 /dev/sda3 行と同じ手順を実行し、ファイルシステムタイプとデバイス(デバイス名、ファイルシステムラベル、UUID はすべてサポートされています)を変更します。以下に例を示します。
ext3 /dev/sda4
        path /usr/local/cores
ダンプをデバイスに直接書き込む場合は #raw /dev/sda5 行の先頭にあるハッシュ記号(#)を取り除き、値を目的のデバイス名に置き換えます。以下に例を示します。
raw /dev/sdb1
NFS プロトコルを使用してリモートのマシンにダンプを保存する場合は #net my.server.com:/export/tmp の行頭にあるハッシュ記号(#)を取り除き、値を有効なホスト名およびディレクトリーパスに置き換えます。以下に例を示します。
net penguin.example.com:/export/cores
SSH プロトコルを使用してリモートのマシンにダンプを保存する場合は #net user@my.server.com の行頭にあるハッシュ記号(#)を取り除き、値を有効なユーザー名およびホスト名に置き換えます。以下に例を示します。
net john@penguin.example.com
SSH サーバーの設定方法と鍵ベースの認証の設定方法は 14章OpenSSH を参照してください。
現在サポートされているターゲットの一覧は、表32.1「サポートしている kdump のダンプ出力先」 を参照してください。
注記
DASD ターゲットに DASD(Direct-Access Storage Devices)を使用する場合は、他の DASD を含む /etc/dasd.conf ファイルでデバイスを指定する必要があります。以下に例を示します。
0.0.2098
0.0.2198
0.0.2298
0.0.2398
0.0.2298 および 0.0.2398 は、kdump ターゲットとして使用される DASD です。
同様に、SCSI(FCP 接続の Small Computer System Interface)ディスクを kdump ターゲットとして使用する場合は、その他の FCP 接続の SCSI ディスクを備えた /etc/zfcp.conf ファイルでディスクを指定する必要があります。以下に例を示します。
0.0.3d0c 0x500507630508c1ae 0x402424aa00000000
0.0.3d0c 0x500507630508c1ae 0x402424ab00000000
0.0.3d0c 0x500507630508c1ae 0x402424ac00000000
ここで、0.0.3d0c 0x500507630508c1ae 0x402424ab00000000 および 0. 0.3d0c 0x500507630508c1ae 0x402424ac00000000 は kdump ターゲットとして使用される FCP 接続の SCSI ディスクです。
DASD および FCP 接続の SCSI ディスクの設定の詳細は、『 『Installation Guide』 for Red Hat Enterprise Linux 6nbsp;Linux Red Hat Enterprise Linux 6nbsp;Linux Red Hat Enterprise Linux 6nbsp;6』の「Adding FCP-Attached Logical Units(LUN)』 」の章を参照してください。
vmcore.flat ファイルを変換する必要があります。
SSH 経由でコアファイルをリモートターゲットに転送する場合は、転送のためにコアファイルをシリアライズする必要があります。これにより、ターゲットシステムの /var/crash/ ディレクトリーに vmcore.flat ファイルが作成されます。これは、crash ユーティリティーが読み取りできません。vmcore.flat を、クラッシュ で読み取り可能なダンプファイルに変換するには、ターゲットシステムで root で以下のコマンドを実行します。
~]# /usr/sbin/makedumpfile -R */tmp/vmcore-rearranged* < *vmcore.flat*

Core Collector の設定

vmcore ダンプファイルのサイズを小さくするために、kdump では外部アプリケーション(コアコレクター)を指定してデータを圧縮し、必要に応じてすべての関連性のない情報を除外できます。現在、完全にサポートされている唯一のコアコレクターは makedumpfile です。
コアコレクターを有効にするには、root で、テキストエディターで /etc/kdump.conf 設定ファイルを開き、#core_collector makedumpfile -c --message-level 1 -d 31 の行頭にあるハッシュ記号(#)を取り除き、以下のようにコマンドラインオプションを編集します。
ダンプファイルの圧縮を有効にするには、-c パラメーターを追加します。以下に例を示します。
core_collector makedumpfile -c
ダンプから特定のページを削除するには、-d valueパラメーターを追加します。value は、表32.2「サポートされるフィルターレベル」 で説明されているように、省略するページの値の合計になります。ゼロと未使用ページを除外する場合は次のようになります。
core_collector makedumpfile -d 17 -c
利用可能なオプションの完全な一覧は、makedumpfile の man ページを参照してください。

表32.2 サポートされるフィルターレベル

オプション 説明
1 ゼロページ
2 キャッシュページ
4 キャッシュプライベート
8 ユーザーページ
16 フリーページ

デフォルトアクションの変更

Red Hat Enterprise Linux 6.0 では、kdump がコアダンプの作成に失敗する場合のデフォルトの動作であるバージョン 6.2 までのデフォルトアクションにより、root ファイルシステムがマウントされ、/sbin/init が実行されます。
Red Hat Enterprise Linux 6.3 以降では、デフォルトの動作ではマシンを再起動します。この変更は、予約が少ないメモリーを使用して kdump が確実に動作するようにするために必要です。以前の動作を許可するために、mount_root_run_init オプションが 表32.3「サポートされるアクション」 に追加されました。
デフォルトの動作を変更するには、root で、テキストエディターで /etc/kdump.conf 設定ファイルを開き、#default shell の行頭にあるハッシュ記号(#)を取り除き、表32.3「サポートされるアクション」 の説明に従って値を希望のアクションに置き換えます。

表32.3 サポートされるアクション

オプション 説明
reboot システムを再起動します。コアは失われます。
halt システムを停止します。
poweroff システムの電源を切ります。
shell initramfs 内から msh セッションを実行して、ユーザーがコアを手動で記録できるようにします。
mount_root_run_init Red Hat Enterprise Linux 6.2 以前からデフォルトのフェイルバック動作を有効にします。
以下に例を示します。
default halt

サービスの有効化

システムの起動時に kdump デーモンを起動するには、root で次のコマンドを実行します。
chkconfig kdump on
これにより、ランレベル 234、および 5 のサービスが有効になります。同様に、chkconfig kdump off を入力すると、すべてのランレベルで無効になります。現行セッションでサービスを起動するには、root で以下のコマンドを使用します。
service kdump start
ランレベルおよび一般的なサービスの設定に関する詳しい情報は、12章サービスおよびデーモン を参照してください。