Kdump は高度なクラッシュ ダンプ メカニズムです。有効にすると、システムは別のカーネルのコンテキストから起動されます。この 2 番目のカーネルは少量のメモリを予約します。その唯一の目的は、システムがクラッシュした場合にコア ダンプ イメージをキャプチャすることです。コア ダンプを分析できると、システム障害の正確な原因を特定するのに非常に役立つため、この機能を有効にすることを強くお勧めします。
<強い>1. kexec-tools をインストールします
Kexec BIOS を介さずに、すでに実行中のカーネルのコンテキストから Linux カーネルを起動できる fastboot メカニズムです。 Kdump は、システムがクラッシュするたびに kexec を使用して 2 番目のカーネルを起動します。
# up2date --nox -u kexec-tools Fetching Obsoletes list for channel: el5_i386_latest... ######################################## Fetching rpm headers... ######################################## Name Version Rel ---------------------------------------------------------- kexec-tools 1.101 194.4.el5.0.1 i386 Testing package set / solving RPM inter-dependencies... ######################################## kexec-tools-1.101-194.4.el5 ########################## Done. Preparing ########################################### [100%] Installing... 1:kexec-tools ########################################### [100%]
<強い>2.ファイル /boot/config-`uname -r` を確認してください
指定された値は、kexec が有効であり、このカーネルをクラッシュ カーネルとして使用できることを示す必要があります:
# cat /boot/config-`uname -r` CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y ...
<強い>3.システム カーネルを変更して、クラッシュ カーネル用のスペースを予約します
/etc/grub.conf ファイルを編集し、「crashkernel=128M@16M」をカーネル行に追加して、物理アドレス 0x01000000 (16MB) から始まる 128MB のメモリを予約します
# vi /etc/grub.conf ... title Red Hat Enterprise Linux Server (2.6.18-8.el5) root (hd0,0) kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet crashkernel=128M@16M initrd /initrd-2.6.18-8.el5.img ...
予約済みメモリの量は、システムのメモリ量によって異なる場合があります。
<強い>4. vmcore を作成する場所を指定
さまざまな種類のダンプ ターゲットの場所を /etc/kdump.conf ファイルで指定できます。このファイルで任意のディレクトリを指定できます。例:
path /usr/local/cores
以下は、ダンプ ターゲットの場所として NFS を使用するサンプル エントリです。たとえば、以下はファイルシステムをマウントし、
vmcore ファイルを NFS サーバーにコピーします
net my.server.com:/export/tmp
その他のオプションについては、/etc/kdump.conf を確認してください。
<強い>5. kdump 構成ファイルの更新 – /etc/sysconfig/kdump (オプション)
このファイルは、現在実行中のカーネルとは異なる必要がある場合は、名前/場所、およびカーネルのコマンド ラインを含む、ダンプ キャプチャ カーネルの仕様を定義します。
# cat /etc/sysconfig/kdump KDUMP_KERNELVER="" KDUMP_COMMANDLINE="" KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1" KEXEC_ARGS=" --args-linux" KDUMP_BOOTDIR="/boot" KDUMP_IMG="vmlinuz"
KDUMP_COMMANDLINE modify the default crash kernel command line from /proc/cmdline KDUMP_COMMANDLINE_APPEND adds irqpoll and maxcpus=1 to the command line for the crash kernel KEXEC_ARGS adds --args-linux to the kexec command line KDUMP_BOOTDIR is set to /boot KDUMP_IMG specifies the crash kernel image name, defaulting to /boot/vmlinuz with the current kernel version appended
<強い>6. kdump サービスを有効にする
システムの再起動時に kdump サービスを開始できるように設定します。
# chkconfig kdump on
注:新しいカーネル パラメータがまだ有効になっていないため、開始できません。
7.システムを再起動して kdump 構成を有効にする
kdump がアクティブであることを確認します:
# cat /proc/cmdline ro root=/dev/VolGroup00/LogVol00 rhgb quiet crashkernel=128M@16M
# /etc/init.d/kdump status Kdump is operational
# /sbin/chkconfig --list |grep kdump kdump 0:off 1:off 2:on 3:on 4:on 5:on 6:off
<強い>8.システムをクラッシュさせて kdump をテストする
# echo c > /proc/sysrq-trigger
これにより、カーネルがパニックになり、システムが kdump カーネルで再起動します。起動プロセスが kdump サービスを開始するポイントに到達したら、vmcore ファイルをディスクの /etc/kdump.conf ファイルで指定された場所にコピーする必要があります。
CentOS / RHEL 6 :kdump の設定方法CentOS / RHEL 7 :kdump の設定方法
SuSE Linux Enterprise System 10 および 11 での Kdump の設定方法