kdump は高度なクラッシュ ダンプ メカニズムです。有効にすると、システムは別のカーネルのコンテキストから起動されます。この 2 番目のカーネルは少量のメモリを予約します。その唯一の目的は、システムがクラッシュした場合にコア ダンプ イメージをキャプチャすることです。コア ダンプを分析できると、システム障害の正確な原因を特定するのに非常に役立つため、この機能を有効にすることを強くお勧めします。このノートでは、CentOS/RHEL 6 で kdump サービスを構成、テスト、および使用する方法について説明します。
<強い>1.まだインストールされていない場合は、kexec-tools パッケージをインストールします
kdump サービスを使用するには、kexec-tools が必要です パッケージがインストールされました。
# yum install kexec-tools
<強い>2. GRUB でのメモリ使用量の構成
kdump カーネル用に予約されるメモリの量を設定するには、ファイル /boot/grub/grub.conf を変更し、カーネル オプションのリストに crashkernel=[size]M (または crashkernel=auto) パラメータを追加します。 .その後、再起動して有効にします。
例:
# vi /boot/grub/grub.conf ... title Oracle Linux Server-uek (2.6.39-200.24.1.el6uek.x86_64) root (hd0,0) kernel /vmlinuz-2.6.39-200.24.1.el6uek.x86_64 ro root=/dev/mapper/vg_ol6desktop-lv_root crashkernel=128M initrd /initramfs-2.6.39-200.24.1.el6uek.x86_64.img ...
# reboot
<強い>3.ダンプの場所の構成
kdump を設定するには、設定ファイル /etc/kdump.conf を編集する必要があります .デフォルトのオプションは、vmcore ファイルを /var/crash/ に保存することです ローカル ファイル システムのディレクトリ。コア ダンプを保存するローカル ディレクトリを変更するには、#path /var/crash 行の先頭からハッシュ記号 (「#」) を削除し、値を目的のディレクトリ パスに置き換えます。
例:
path /usr/local/cores
必要に応じて、コア ダンプを raw パーティションに直接保存することもできます。
例:
raw /dev/sdb4
NFS プロトコルを使用してリモート マシンにダンプを保存するには、#net my.server.com:/export/tmp 行の先頭からハッシュ記号 (「#」) を削除し、値を有効なホスト名に置き換えます。ディレクトリ パス。
例:
net my.server.com:/export/cores
<強い>4.コア コレクターの構成
vmcore ダンプ ファイルのサイズを縮小するために、kdump を使用すると、外部アプリケーションを指定してデータを圧縮し、必要に応じて無関係な情報をすべて除外できます。現在、完全にサポートされている唯一のコア コレクターは makedumpfile です。
コア コレクターを有効にするには、構成ファイル /etc/kdump.conf を変更し、#core_collector makedumpfile -c の先頭からハッシュ記号 (「#」) を削除します。 –message-level 1 -d 31 行に移動し、以下で説明するようにコマンド ライン オプションを編集します。
例:
core_collector makedumpfile -c
<強い>5.デフォルト アクションの変更
デフォルトでは、カーネル クラッシュがキャプチャされると、ルート ファイル システムがマウントされ、/sbin/init が実行されます。この動作を変更するには、/etc/kdump.conf 構成ファイルを開き、#default シェル行の先頭からハッシュ記号 (「#」) を削除し、説明に従って値を目的のアクションに置き換えます。
例:
default halt
<強い>6. kdump デーモンを開始
カーネル コマンド ラインに kdump 構成が含まれていることと、クラッシュ カーネル用にメモリが予約されていることを確認してください:
# cat /proc/cmdline ro root=/dev/mapper/vg_ol6desktop-lv_root crashkernel=128M
システムの再起動時に kdump サービスを開始できるように設定します。
# chkconfig kdump on
現在のセッションでサービスを開始するには、次のコマンドを使用します:
# service kdump start No kdump initial ramdisk found. [WARNING] Rebuilding /boot/initrd-2.6.39-200.24.1.el6uek.x86_64kdump.img Starting kdump: [ OK ]
7. kdump のテスト
構成をテストするには、kdump を有効にしてシステムを再起動し、サービスが実行されていることを確認します。
例:
# service kdump status Kdump is operational
次に、シェル プロンプトで次のコマンドを入力します。
# echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger
これにより、Linux カーネルが強制的にクラッシュし、address-YYYY-MM-DD-HH:MM:SS/vmcore ファイルが、構成で選択した場所 (つまり、/var/crash/ によってデフォルト)
CentOS / RHEL 5 :kdump の設定方法CentOS / RHEL 7 :kdump の設定方法
SuSE Linux Enterprise System 10 および 11 で Kdump を設定する方法