[Debian][KVM] kvm を使う
Windows 2000のサポート切れを控えて、lennyをホストOSにする仮想マシンに載せかえることにした。仮想マシンとしてはXenも試してみたが、RedHatが力を入れているkvmを採用することにした。現状では、開発段階はXenの方が上のようだが、これからに期待しよう。
bridge の導入
仮想マシンをネットワークに直接接続するには、あらかじめホストOSをブジッジ化する必要がある。
パッケージ
# aptitude install bridge-utils
/etc/network/interfaces の変更
変更前
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1
変更後
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.1.5 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off
ifconfig の結果
br0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0 ... eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX ...
ゲストOSのインストール
パッケージ
# aptitude install -t lenny-backports kvm qemu-kvm qemu # aptitude install -t lenny-backports libvirt-bin virt-viewer virt-manager
仮想ディスクの作成
# NAME=win2k-20 # kvm-img create -f qcow2 /var/lib/libvirt/images/${NAME}.img 20G
qcow2 フォーマットは、ホストOSから見ると1個のファイルであり、ファイルサイズは公称容量より小さいので実容量が小さいうちはメリットが大きい。イメージファイルは、/var/lib/libvirt/images に作成しておくと仮想マシンマネージャで選択する際に少しだけ便利だが、絶対ではない。拡張子も img である必要はない。20G は最大容量だが、私の用途としては 30G ぐらいにしておいた方が良かった。
Windows 2000 のインストール
# kvm \ -name ${NAME} \ -net nic,vlan=0,macaddr=XX:XX:XX:XX:XX:XX \ -net tap,vlan=0,ifname=tap0 \ -boot d \ -smp 2 \ -m 1024 \ -cdrom /dev/cdrom \ -hda /var/lib/libvirt/images/${NAME}.img \ -usb \ -localtime \ -monitor stdio
ゲスト用のウインドウ(640x480相当)が開き、インストールが始まる。後は通常どおり。