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
# 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
Copy to clipboardCopiedシステムに十分なメモリーがあることを確認します。
このセクションは、システムに十分なメモリーがある場合に限り利用できます。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
ext3 /dev/sda4
path /usr/local/cores
Copy to clipboardCopied
ダンプをデバイスに直接書き込む場合は
「#」raw /dev/sda5
行の先頭にあるハッシュ記号(#)を取り除き、値を目的のデバイス名に置き換えます。以下に例を示します。
raw /dev/sdb1
raw /dev/sdb1
Copy to clipboardCopied
NFS プロトコルを使用してリモートのマシンにダンプを保存する場合は
「#」net my.server.com:/export/tmp
の行頭にあるハッシュ記号(#)を取り除き、値を有効なホスト名およびディレクトリーパスに置き換えます。以下に例を示します。
net penguin.example.com:/export/cores
net penguin.example.com:/export/cores
Copy to clipboardCopied
SSH プロトコルを使用してリモートのマシンにダンプを保存する場合は
「#」net user@my.server.com
の行頭にあるハッシュ記号(#)を取り除き、値を有効なユーザー名およびホスト名に置き換えます。以下に例を示します。
net john@penguin.example.com
net john@penguin.example.com
Copy to clipboardCopied
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.2098
0.0.2198
0.0.2298
0.0.2398
Copy to clipboardCopied0.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 0x402424aa00000000
0.0.3d0c 0x500507630508c1ae 0x402424ab00000000
0.0.3d0c 0x500507630508c1ae 0x402424ac00000000
Copy to clipboardCopied
ここで、
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*
~]# /usr/sbin/makedumpfile -R */tmp/vmcore-rearranged* < *vmcore.flat*
Copy to clipboardCopiedCore Collector の設定
vmcore
ダンプファイルのサイズを小さくするために、kdump
では外部アプリケーション(コアコレクター)を指定してデータを圧縮し、必要に応じてすべての関連性のない情報を除外できます。現在、完全にサポートされている唯一のコアコレクターは makedumpfile です。
コアコレクターを有効にするには、
root
で、テキストエディターで /etc/kdump.conf
設定ファイルを開き、「#」core_collector makedumpfile -c --message-level 1 -d 31
の行頭にあるハッシュ記号(#)を取り除き、以下のようにコマンドラインオプションを編集します。
ダンプファイルの圧縮を有効にするには、
-c
パラメーターを追加します。以下に例を示します。
core_collector makedumpfile -c
core_collector makedumpfile -c
Copy to clipboardCopied
ダンプから特定のページを削除するには、
-d
valueパラメーターを追加します。value は、表32.2「サポートされるフィルターレベル」 で説明されているように、省略するページの値の合計になります。ゼロと未使用ページを除外する場合は次のようになります。
core_collector makedumpfile -d 17 -c
core_collector makedumpfile -d 17 -c
Copy to clipboardCopied
利用可能なオプションの完全な一覧は、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
default halt
Copy to clipboardCopiedサービスの有効化
システムの起動時に
kdump
デーモンを起動するには、root
で次のコマンドを実行します。
chkconfig kdump on
chkconfig kdump on
Copy to clipboardCopied
これにより、ランレベル
2
、3
、4
、および 5
のサービスが有効になります。同様に、chkconfig kdump off を入力すると、すべてのランレベルで無効になります。現行セッションでサービスを起動するには、root
で以下のコマンドを使用します。
service kdump start
service kdump start
Copy to clipboardCopied
ランレベルおよび一般的なサービスの設定に関する詳しい情報は、12章サービスおよびデーモン を参照してください。