2013/11/30

[KVM]KVM + libvirt でいろいろやったよ

KVM + libvirt でいろいろやったよ

半年くらい前のメモを発掘したのでとりあえずブログに保管する。


# パッケージインストール
sudo aptitude install qemu-kvm libvirt-bin virtinst

# OS 再起動(/dev/kvm の権限を更新するため)

# USER が kvm を使えるようにする
# 多分再起動とか必要。ログアウトでいいのかな?
sudo adduser USER kvm

# 仮想マシン作成 & Debian インストール
# 最小構成 + vim + ssh
sudo virt-install --connect qemu:///system --name debian_org --ram 512 --disk path=/var/lib/libvirt/images/debian_org.img,size=5 --network network=default,model=virtio --nographics --location='http://ftp.jp.debian.org/debian/dists/wheezy/main/installer-amd64/' -x console=ttyS0,115200

仮想マシン設定ファイルの場所

/etc/libvirt/qemu/DOMAIN_NAME.xml

イメージファイル等の場所

/var/lib/libvirt/*

仮想マシン以外の設定も、 /etc/libvirt の中にある。 autostart 内のもの(普通は設定ファイルへのシンボリックリンク)は libvirtd 起動時に実行される。

基本操作

sudo virt-install --connect qemu:///system --name DOMAIN_NAME --ram RAM_SIZE --disk /PATH/TO/DISK,size=GB --network network=default,model=virtio --vnc --cdrom /PATH/TO/CDROM
sudo virsh list --all
sudo virsh dominfo DOMAIN_NAME
sudo virsh start DOMAIN_NAME
sudo virsh suspend DOMAIN_NAME
sudo virsh resume DOMAIN_NAME
sudo virsh reboot DOMAIN_NAME #KVMでは使えないらしい
sudo virsh shutdown DOMAIN_NAME
sudo virsh destroy DOMAIN_NAME
sudo virsh undefine DOMAIN_NAME

ストレージ

libvirt にはストレージプールなるものがあるらしい。 まだ使ってないのでいつか調べる。

sudo virsh pool-list
sudo virsh vol-list POOL_NAME
sudo virsh vol-delete VOL_NAME

qemu-img create -f qcow2 IMG_NAME IMG_SIZE

Windows7 のインストール

virtio ドライバ

WindowsGuestDrivers/Download Drivers - KVM(http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers)

VM 作成

sudo virt-install --connect qemu:///system --arch=x86_64 -n voice -r 24000 --vcpus 4 --vnc --vnclisten 0.0.0.0 --noautoconsole --os-type windows --os-variant win7 --disk path=/var/lib/libvirt/images/voice.img,size=10 --disk path=/home/mikoto/iso/virtio-win-0.1-59.iso,device=cdrom,perms=ro --cdrom /dev/cdrom --boot cdrom,hd --prompt

これで、サーバの 5900 ポートに VNC クライアントでアクセスすれば画面が表示される。 (windows7 の Real VNC では、 64bit color よりも上の色だと接続できなかった...)

インストール途中で、追加のドライバ(virtio)をインストールする。

これだと NIC も HDD も virtio として追加されないようだ。 disk のオプションに "bus=virtio" を追加するとか、 ネットワークオプションとして "--network bridge=br0,model=virtio" を追加するとかが必要なようだ。 いつか再インストールの機会があれば試す。

ボリュームのリサイズ

10GB は小さすぎた...。

# ボリュームの情報確認
sudo virsh vol-info --pool default voice.img
# リサイズ
# virsh vol-resize は未サポートらしい(2013/5/25,Debian7,KVM)
sudo qemu-img resize voice.img +20G

その後、コンピュータの管理からパーティションを拡張すれば OK.