Qemu+KVM環境をdebian squeeze上に構築する
6年前ぐらいから使っている自宅サーバのVMイメージが度重なるdebianのdist-upgradeで壊れてきて、cronが自動で起動しなくなったりイミフな状態になっている。あと外向きサーバだったはずなのにいつのまにか内向きのサービスも走ってたりしてセキュリティ的にも良くない。
また、ハードウェアの移行に耐えられるようにVMWare Server2上の仮想化で動かしているのだけれど、
仮想化コンソールがよく固まってとても気軽にVMを建てたりできる環境ではないので、最近流行のqemu+kvm環境でVMホスト環境ごと再構築する。
参考資料:
http://wiki.debian.org/KVM
VMホストは最小限のdebian stable(squeeze)をいれる。あえてvirt-managerなしでトライ。
sudo apt-get install qemu-kvm libvirt-bin # とやるはずがqemu-kvmの代わりにkvmをインストールしてしまう。でもなんかはいった sudo addgroup kouhei libvirt
この時点でlsmod | grep kvmするとなんかkvm_amdがロードされてることを確認。
virtinstを入れようとするがgtkがインストールされそうになるのでやめる。
http://wiki.debian.org/BridgeNetworkConnections
を参考にbr0を設定。こんなかんじ。
# The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth1 iface eth1 inet manual auto br0 iface br0 inet static address xxxxxxxxx netmask xxxxxxxxx network xxxxxxxxx broadcast xxxxxxxxx gateway xxxxxxxxx dns-nameservers 8.8.8.8 dns-search home.nyaxtstep.com bridge_ports eth1
パッケージでいれるとvirt-viewerがついてきていやなので、本家から適当にvirtinstだけとってきていれる
sudo apt-get install gettext # gitとかいらんもんついてきていやだけど、msgfmtがいるぽい sudo apt-get install qemu python-libvirt python-libxml2 python-pycurl python-urlgrabber tar zxvf virtinst-0.500.6.tar.gz cd virtinst-* sudo python setup.py install # gettextはもう用済みなので消す sudo apt-get remove gettext sudo apt-get autoremove
vim /etc/libvirt/qemu.conf # vnc listen address / password
bridgeのtapデバイスをlibvirt groupのユーザからいじれるように
$ sudo vim /etc/udev/rules.d/41-permissions-virt.rules $ cat /etc/udev/rules.d/41-permissions-virt.rules KERNEL=="tun", GROUP="libvirt" $ sudo reboot
virshの接続先をqemu:///systemにする。でふぉるとのsessionだとなんかtap接続に失敗する。以下bashrcに追記
# libvirt export VIRSH_DEFAULT_CONNECT_URI=qemu:///system
VMのディスクイメージをつくる。qcow2がいいかなとおもったけど、現在はrawがデフォルトっぽい。なのでrawで。
cd /vm mkdir coresrv; cd /vm/coresrv qemu-img create coresrv-root.img 5G
virt-installでインストール開始
virt-install --connect qemu:///system --name coresrv --vcpus=1 --ram 256 --disk /vm/coresrv/coresrv-root.img --cdrom /vm/isos/debian-testing-i386-businesscard.iso --network bridge=br0 --graphics vnc,port=5900 --noautoconsole
VNCで適当に接続する。インストール終わったら,/etc/libvirt/qemu/[vm名].xmlができてるので適当にインストールメディアとかのエントリを消す。
自動スタート設定とかする:
virsh autostart coresrv
virsh覚え書き
virsh list --all # 停止中含む全てのdomain表示 destroy [domain] # 強制シャットダウン shutdown [domain] # 電源ボタンACPI start [domain] # domain手動開始 vncdisplay [domain] # 割り当てられているVNCディスプレイ番号を表示