Kdumpは、システムまたはカーネルがクラッシュしたときにクラッシュダンプをキャプチャするために使用されるカーネル機能です。 kdumpを有効にするには、カーネルパニックまたはクラッシュが発生した場合にkdumpカーネルを実行するために使用される物理RAMの一部を予約する必要があります。
カーネルクラッシュまたはカーネルパニックが発生すると、実行中のカーネルは「 kexec(kdumpkernel)」を実行します。 ‘そしてリザーブメモリからkdumpカーネルをロードし、RAMとスワップの内容をローカルディスクまたはリモートディスクのvmcoreファイルにコピーして、最後にボックスを再起動します。
クラッシュダンプを分析することで、システム障害の理由または根本的なケースを見つけることができます。 OSをサポートしている場合は、分析のためにクラッシュダンプをベンダーと共有できます。
この記事では、RHEL7およびCentOS7でkdumpを有効にする方法を示します
ステップ:1yumコマンドを使用して「kexec-tools」をインストールします
以下のyumコマンドを使用して、「kexec-tools」パッケージがインストールされていない場合にインストールします。
[[email protected]〜]#yum install kexec-tools
ステップ:2GRUB2ファイルをKdumpカーネル用にメモリを予約するように更新します
GRUB2ファイルを編集します( / etc / default / grub )、パラメータ「 crashkernel =
GRUB_CMDLINE_LINUX ="rd.lvm.lv =centos / swap vconsole.font =latarcyrheb-sun16 rd.lvm.lv =centos / root crackkernel =128M vconsole.keymap =us rhgbquiet"
以下のコマンドを実行して、grub2構成を再生成します。
[[email protected]〜]#grub2-mkconfig -o /boot/grub2/grub.cfg
UEFIファームウェアの場合は、以下のコマンドを使用してください
[[email protected]〜]#grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
上記のコマンドは、再起動後に128MBのRAMを予約するようにbootlaoderに通知します。
以下のコマンドを使用して、ボックスを再起動します:
[[email protected]〜]#shutdown -r now
ステップ:3ファイル(/etc/kdump.conf)のダンプの場所とデフォルトのアクションを更新します
クラッシュダンプまたはvmcoreファイルをローカルファイルシステムに保存するには、ファイル「/etc/kdump.conf」を編集します ‘と設定に従って場所を指定します。私の場合、別のローカルファイルシステム( / var / crash )を使用しています )。ファイルシステムのサイズはシステムのRAMのサイズと同じにするか、ファイルシステムの空き領域はRAMのサイズと同じにすることをお勧めします。 Kdumpでは、「コアコレクター」オプション( core_collector makedumpfile -c )を使用してダンプデータを圧縮できます。 )ここで、-cは圧縮に使用されます。
kdumpがダンプファイルを指定された場所に保存できない場合、デフォルトのアクションが実行されます。これはデフォルトのディレクティブに記載されています。私の場合、デフォルトのアクションは再起動です。
kdump.confファイルの以下の3つのディレクティブを更新します。
[[email protected]〜]#vi /etc/kdump.confpath / var / crackcore_collector makedumpfile -cdefault restart
ダンプを保存するためのさまざまなオプション:
ステップ:4kdumpサービスを開始して有効にします
[[email protected]〜]#systemctl start kdump.service [[email protected]〜]#systemctl enable kdump.service [[email protected]〜]#
ステップ:5システムを手動でクラッシュさせてKdumpをテストします
システムをクラッシュさせる前に、以下のコマンドを使用して、kdumpサービスが実行されているかどうかを確認してください。
[[email protected] crack]#systemctl is-active kdump.service [[email protected] crack]#service kdump status
kdump構成をテストするために、以下のコマンドを使用してシステムを手動でクラッシュさせます。
[[email protected]〜]#echo 1> / proc / sys / kernel / sysrq; echo c> / proc / sysrq-trigger
これにより、クラッシュダンプファイル( vmcore )が作成されます )「 / var / crash」の下 ‘ファイルシステム。
[[email protected]〜]#ls -lR / var / crash / var / crack:total0drwxr-xr-x。 2ルートルート42Mar4 03:02 127.0.0.1-2016-03-04-03:02:17 / var / crash / 127.0.0.1-2016-03-04-03:02:17:total 135924-rw- ------。 1ルートルート139147524Mar403:02vmcore-rw-r--r--。 1ルートルート356403月4日03:02vmcore-dmesg.txt[[メール保護]〜]#
手順:6「crash」コマンドを使用してクラッシュダンプを分析およびデバッグします
クラッシュは、クラッシュダンプまたはvmcoreファイルをデバッグおよび分析するためのユーティリティまたはコマンドです。
クラッシュを使用するには、次の2つのパッケージがインストールされていることを確認してください:‘ crack&kernel-debuginfo ‘
[[email protected]〜]#yum install crack
「kernel-debuginfo」パッケージをインストールするには、最初にデバッグリポジトリを有効にします。リポジトリファイル/etc/yum.repos.d/CentOS-Debuginfo.repo
を編集します「enbled=0」を「enabled=1」に変更します
[[email protected]〜]#yum install kernel-debuginfo
kernel-debuginfoをインストールしたら、以下のクラッシュコマンドを実行してみてください。クラッシュプロンプトが表示され、コマンドを実行してプロセス情報、システムがクラッシュしたときに開いているファイルのリストを見つけることができます。
[[email protected]〜]#crash /var/crash/127.0.0.1-2016-03-04-14\:20\:06/vmcore / usr / lib / debug / lib / modules / `uname- r` / vmlinuxcrash>
「ps」と入力します ‘システムがクラッシュしたときに実行されていたプロセスを一覧表示するコマンド。
クラッシュ>ps
システムがクラッシュしたときに開いていたファイルを表示するには、クラッシュプロンプトで「files」コマンドを入力します。
crash> filesPID:5577 TASK:ffff88007b44f300 CPU:0 COMMAND: "bash" ROOT:/ CWD:/ root FD FILE DENTRY INODE TYPE PATH 0 ffff880036b85000 ffff8800796fa540 ffff88007966f4d0 CHR / dev / pts / 0 1 ffff / sysrq-trigger 2 ffff880036b85000 ffff8800796fa540 ffff88007966f4d0 CHR / dev / pts / 0 10 ffff880036b85000 ffff8800796fa540 ffff88007966f4d0 CHR / dev / pts / 0255 ffff880036b85000 ffff8800796fa540「sys」コマンドと入力します クラッシュしたときのシステム情報を一覧表示します。
crash> sys KERNEL:/usr/lib/debug/lib/modules/3.10.0-327.10.1.el7.x86_64/vmlinux DUMPFILE:/var/crash/127.0.0.1-2016-03-04-14 :20:06 / vmcore CPU:1日付:2016年3月4日金曜日14:20:01稼働時間:00:02:00平均負荷:0.75、0.48、0.19タスク:115ノード名:cloud.linuxtechi.comリリース:3.10.0- 327.10.1.el7.x86_64バージョン:#1 SMP Tue Feb 16 17:03:50 UTC 2016マシン:x86_64(2388 Mhz)メモリ:2 GBパニック: "SysRq:クラッシュをトリガーする"クラッシュ>クラッシュプロンプトでコマンドのヘルプを表示するには、「 help
」と入力します ‘、例を以下に示します。
これで記事は終わりです。楽しんだら、遠慮なく共有してください。
また読む :CentOS7にownCloudをインストールする方法
Cent OS