computerの日記

Cisco,SHELL,C,Qt,C++,Linux,ネットワーク,Windows Scriptなどの発言です

libvirt をインストールして、ホストマシンから仮想マシンのダンプを取得して crash で読んでみる

こんちには、私です。

今日のお題です。

libvirt をインストールして、ホストマシンから仮想マシンのダンプを取得して crash で読んでみる」です。

libvirt をインストールします。

# dnf install libvirt
# dnf install virt-manager
# virt-manager

編集 - ストレージ
を確認すると、/var/lib/libvirt/images となっています。

ちなみに、/ には、50G しか割り当てがありません。これじゃ、仮想マシンを作れません。新しい領域もないので、今あるものを活用したいです。
/home が大きな容量なので、そちらに移したいです。

ちょっとよろしくないかもですが、ユーザつくって、root own にしてみます。

# useradd virt-manager
# chown root:root /home/virt-manager

これで、root が /home/virt-manager を使えます。

デフォルトのストレージパスを変更します。

# virsh
virsh # pool-destroy default
virsh # pool-undefine default
virsh # pool-define-as --name default --type dir --target /home/virt-manager
virsh # pool-autostart default
virsh # pool-build default
virsh # pool-start default
virsh # exit

ストレージパスが、/home/virt-manager になりました。

ただ、これはいい設定とは言えないので、真似しないでくださいね。

以下のファイルを配置します。

/home/virt-manager/CentOS-6.9-x86_64-bin-DVD1.iso
/home/virt-manager/CentOS-6.9-x86_64-bin-DVD2.iso

インストールします。
ドメインは、centos6.9 にしました。
DVDを、入れ替える指示が出たら、以下を実行します(聞かれませんでした)。
# virsh
virsh # attach-disk generic <path-to-iso> <device> --driver file --type cdrom --mode readonly

ここからは、仮想マシンでの作業です。
# rpm -q yum-utils
入っていなければ、yum-utils をインストールします。
# yum install yum-utils

debuginfo パッケージをインストールします。

# debuginfo-install kernel

これで、ホストマシンでゲストマシンのダンプを採取して、そのダンプファイルをゲストマシンに送って crash で読みます。

ここからは、ホストマシンの作業です。巨大になるので、圧縮します。

# virsh dump centos6.9 centos6.9-dump --memory-only --reset --verbose --format kdump-zlib
ダンプ: [100 %]
ドメイン centos6.9 が centos6.9-dump にダンプされました

サイズは、1.2G でした。

ちなみに、--format kdump-zlib を指定しないと、4G越えてました。


これを、仮想マシンに送って、crash で読めるか確認します。
# scp centos6.9-dump root@192.168.122.140:/root

 

ここからは、仮想マシンでの作業です。
# crash centos6.9-dump /usr/lib/debug/lib/modules/2.6.32-696.el6.x86_64/vmlinux
...(snip)...
crash>

読めました。

crash コマンドについては、ここをみるとよいかもですよ。

http://people.redhat.com/anderson/help.html


(参考)
man virsh

お疲れさまです、私でした。次回をお楽しみに。