既存のKVMゲストイメージをlibvirtで簡単に管理する方法。¶
前提¶
確認したのはDebian GNU/Linux Squeeze/Sidのvirt-managerのみ。バージョンは0.8.4。例えば、たまたま確認したFedora 12だとVMの新規作成画面のステップ1/5で、”import existing disk image”の項目自体が無いのでできない 1 。
対象読者¶
qemu-imgコマンドで作成し、kvmコマンド 2 で使用していたKVMのゲストイメージをlibvirtで管理したいけど、/etc/libvirt/qemu/vmname.xmlを自分で作成するのは大変だよ、ママン、という向きにはうってつけの方法かと。シェルスクリプトで直接kvmコマンドで直接管理するから関係ないぜ、という人はスルーで。
事前準備¶
kvmコマンドしか使っていないとlibvirt関連のパッケージをインストールしていない可能性もあると思われるので、次のパッケージを導入しておくこと。 3
libvirt0
libvirt-bin
virt-manager
virt-viewer
virtinst
$ sudo apt-get install libvirt0 libvirt-bin virt-manager virt-viewr virtinst
libvirt関連のツール(virt-install, virt-manager, virsh)を実行するユーザは、libvirtグループに突っ込んでおくべし。
$ sudo adduser user libvirt
インポート手順¶
まず、管理させたいゲストイメージを、/var/lib/libvirt/imagesディレクトリに移動させる。
$ sudo mv ~/vmimg/guest1.img /var/lib/libvirt/images/
kvmコマンドを実行する場合は、kvmグループに所属していれば一般ユーザでも実行できる 4 ので、ゲストイメージのオーナー、グループ、パーミッションも実行するユーザのものにしている人もいるかと思うが、virt-managerでボリュームイメージを作成すると、root:root, 600で作成されるので合わせておいたが変更しなくても、インポート時にオーナー、グループは自動的にroot:rootに変更される。パーミッションは変更されないので、600に変更しておくとよい。
次に、virt-managerを起動する。もし、イメージファイルを移動させたときに既にvirt-managerが起動中なら再起動させる必要がある。
$ virt-manager
起動したら、”New”から新しいVMの作成を始める。VMのドメイン名にはイメージファイル名とは別にしておく。上記の用にguest1.imgというファイル名なら、ドメイン名にはguest1としないで、vm-guest1などのように別名にしておくのが良いだろう。
で、ステップ通りに設定すれば、無事起動できますよ、と。
さっきのは別に大した話では無いんだが。¶
先ほどの、ファイル名とは別のドメイン名にしておいた方が無難、と書いたが、単にインポートするファイル名と同じだけど、未定義の名前だからこれ使うか?というだけなので、パスの指定の後に次のダイアログが出たら”Yes”としておけば良いだけの話。