kdump は高度なクラッシュ ダンプ メカニズムです。有効にすると、システムは別のカーネルのコンテキストから起動されます。この 2 番目のカーネルは少量のメモリを予約します。その唯一の目的は、システムがクラッシュした場合にコア ダンプ イメージをキャプチャすることです。コア ダンプを分析できると、システム障害の正確な原因を特定するのに非常に役立つため、この機能を有効にすることを強くお勧めします。
<強い>1.まだインストールされていない場合は、kexec-tools パッケージをインストールします
kdump サービスを使用するには、kexec-tools パッケージがインストールされている必要があります。まだインストールされていない場合は、kexec-tools をインストールします .
# yum install kexec-tools
<強い>2. GRUB2 でのメモリ使用の構成
kdump カーネル用に予約されるメモリの量を構成するには、 /etc/default/grub を変更して GRUB_CMDLINE_LINUX を変更し、カーネル オプションのリストに crashkernel=[size] パラメータを設定します。
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=128M vconsole.keymap=us rhgb quiet" GRUB_DISABLE_RECOVERY="true"
以下のコマンドを実行して、grub 構成を再生成します:
# grub2-mkconfig -o /boot/grub2/grub.cfg
システムを再起動して、カーネル パラメータを有効にします。
# shutdown -r now
<強い>3.ダンプの場所の構成
kdump を設定するには、設定ファイル /etc/kdump.conf を編集する必要があります .デフォルトのオプションは、vmcore ファイルを /var/crash/ に保存することです。 ローカル ファイル システムのディレクトリ。コア ダンプを保存するローカル ディレクトリを変更し、値を目的のディレクトリ パスに置き換えます。
例:
path /usr/local/cores
必要に応じて、コア ダンプを raw パーティションに直接保存することもできます。
例:
raw /dev/sdb4
NFS プロトコルを使用してダンプをリモート マシンに保存するには、 #nfs my.server.com:/export/tmp 行の先頭からハッシュ記号 (「#」) を削除し、値を有効なホスト名に置き換えます。ディレクトリ パス。
例:
nfs my.server.com:/export/tmp
<強い>4.コア コレクターの構成
vmcore ダンプ ファイルのサイズを縮小するために、kdump を使用すると、外部アプリケーションを指定してデータを圧縮し、必要に応じて無関係な情報をすべて除外できます。現在、完全にサポートされている唯一のコア コレクターは makedumpfile です。
コア コレクターを有効にするには、構成ファイル /etc/kdump.conf を変更し、#core_collector makedumpfile -c の先頭からハッシュ記号 (「#」) を削除します。 –message-level 1 -d 31 行に移動し、以下で説明するようにコマンド ライン オプションを編集します。
例:
core_collector makedumpfile -c
<強い>5.デフォルト アクションの変更
コア ダンプが目的の場所に生成されなかった場合に実行するデフォルト アクションを指定することもできます。デフォルト アクションが指定されていない場合、「再起動」がデフォルトと見なされます。
例:
default halt
<強い>6. kdump デーモンを開始
カーネル コマンド ラインに kdump 構成が含まれていることと、クラッシュ カーネル用にメモリが予約されていることを確認してください:
# cat /proc/cmdline BOOT_IMAGE=/vmlinuz-3.8.13-98.2.1.el7uek.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root crashkernel=128M rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rhgb quiet nomodeset
システムの再起動時に kdump サービスを開始できるように設定します。
# systemctl enable kdump.service
現在のセッションでサービスを開始するには、次のコマンドを使用します:
# systemctl start kdump.service
7. kdump のテスト (kdump を手動でトリガー)
構成をテストするには、kdump を有効にしてシステムを再起動し、サービスが実行されていることを確認します。
例:
# systemctl is-active kdump active
# service kdump status Redirecting to /bin/systemctl status kdump.service kdump.service - Crash recovery kernel arming Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled) Active: active (exited) since 一 2015-08-31 05:12:57 GMT; 1min 6s ago Process: 19104 ExecStop=/usr/bin/kdumpctl stop (code=exited, status=0/SUCCESS) Process: 19116 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS) Main PID: 19116 (code=exited, status=0/SUCCESS) Aug 31 05:12:57 ol7 kdumpctl[19116]: kexec: loaded kdump kernel Aug 31 05:12:57 ol7 kdumpctl[19116]: Starting kdump: [OK] Aug 31 05:12:57 ol7 systemd[1]: Started Crash recovery kernel arming.
次に、シェル プロンプトで次のコマンドを入力します。
# echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger
これにより、Linux カーネルが強制的にクラッシュし、address-YYYY-MM-DD-HH:MM:SS/vmcore ファイルが、構成で選択した場所 (つまり、/var/crash/ によってデフォルト)
CentOS / RHEL 6 :kdump の設定方法CentOS / RHEL 5 :kdump の設定方法
SuSE Linux Enterprise System 10 および 11 で Kdump を設定する方法