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
お疲れさまです、私でした。次回をお楽しみに。