KVM環境でVMの操作する場合、virshコマンドを使います。
そのvirshコマンドの使い方を簡単にまとめました。
※以下はdebian-testというVMがいる環境での例です。
サーバ ドメイン/vm名のリスト
$ virsh list --all
Id Name State
----------------------------------------------------
2 debian-test running
debian-test2 shut off
debian-test3 shut off
サーバシャットダウン
$ virsh shutdown debian-test
$ virsh list
Id Name State
----------------------------------------------------
2 debian-test shut off
サーバスタート
$ virsh start debian-test
Domain debian-test started
サーバ vmの強制停止 (shutdownが効かない場合のみ)
$ virsh destroy debian-test
ドメインから削除
$ virsh undefine debian-test
Domain debian-test has been undefined
※ /etc/libvirt/qemu/ にある xmlも消えるので必要そうならcpで退避しておく
vmのコンソールに接続
$ virsh console debian-test
サーバサスペンドと復旧(使うことないかも)
$ virsh suspend debian-test
$ virsh resume debian-test
OSタイプのフルリスト
$ virt-install --os-variant list
VM情報表示(CPU メモリ UUIDなど)
$ virsh dominfo debian-test
メモリ or CPU増減 ※基本はVM落として編集して起動
$ virsh edit debian-test
xmlを直接編集でメモリorCPUを編集後VMの再起動。
ダイナミックなメモリ増減がでできる。
$ virsh setmem debian-test 1048576
※KBで指定 1024MBx1024=1,048,576KB。メモリー増やす場合はMaxMemoryを増やしてやる必要あり。
$ virsh edit debian-test
$ virsh shutdown debian-test
$ virsh start debian-test
確認方法
$ virsh vcpuinfo debian-test
$ virsh dominfo debian-test で確認
/etc/libvirt/qemu/debian-test.xml の中身確認
ゲストVMに入って確認
VM削除
$ virsh shutdown debian-test
もしくは $ virsh destroy debian-test
$ virsh undefine debian-test
$ rm -rf "イメージファイルのパス"
※ /etc/libvirt/qemu/ にある xmlも消えるので必要そうならcpで退避しておく。
virtual network表示
$ virsh net-list
$ virsh net-dumpxml [vnet name]
VMのマイグレーション(ここではタダのコピー)
・他のKVMサーバに移す方法
コピー元サーバにてVMを停止
下記コマンドで対象VMの設定xmlを生成。
$ virsh dumpxml VMNAME > domxml.xml
コピー先のサーバにSCPでイメージとxmlをコピー
下記コマンドで設定xmlを登録
$ virsh define domxml.xml
VMのスタート
$ virsh start VMNAME
イメージのタイプ確認(raw or qcow2)
$ sudo qemu-img info "イメージファイルのパス"
イメージのタイプ変換(raw to qcow2)
qemu-img convert -O qcow2 original-image.raw converted-image.qcow2