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 の場合は PowerPC の 2 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 ディスクです。
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 ページを参照してください。
オプション | 説明 |
---|---|
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「サポートされるアクション」 の説明に従って値を希望のアクションに置き換えます。
オプション | 説明 |
---|---|
reboot | システムを再起動します。コアは失われます。 |
halt | システムを停止します。 |
poweroff | システムの電源を切ります。 |
shell | initramfs 内から msh セッションを実行して、ユーザーがコアを手動で記録できるようにします。 |
mount_root_run_init | Red Hat Enterprise Linux 6.2 以前からデフォルトのフェイルバック動作を有効にします。 |
以下に例を示します。
default halt
サービスの有効化
システムの起動時に
kdump
デーモンを起動するには、root
で次のコマンドを実行します。
chkconfigkdump
on
これにより、ランレベル
2
、3
、4
、および 5
のサービスが有効になります。同様に、chkconfig kdump off を入力すると、すべてのランレベルで無効になります。現行セッションでサービスを起動するには、root
で以下のコマンドを使用します。
servicekdump
start
ランレベルおよび一般的なサービスの設定に関する詳しい情報は、12章サービスおよびデーモン を参照してください。