2009年3月31日にCitrix XenServerをベースとした仮想化ソフトであるKXen(プレビュー版)が無償公開されました。
KXenプレビュー版が動作するホストOSは32ビット版のWindows XP/Vista及びWindows 7です。
KXenは「XenのHVMゲストをQEMUライクのコマンドで実行する仮想化ソフト」と考えるとよいかと思います。
将来的にはXen 3.4ベースのKXenがリリースされるようです。
KXen化の流れが進むと従来のXenの準仮想化は次第に使用されなくなると思われます。
(1)KXenはHosted Xen projectというプロジェクトの名前でもあります。
(2)KXenはXenのコア部分をType-2 VMM(仮想マシンモニタ)として実行します。
・Type-1 VMM:ベアマシン上で直接動作するVMM(例:Xen Hypervisor/XenServer, VMware ESX Server)
・Type-2 VMM:ホストOS上でのユーザプログラムとして動作するVMM(例:KVM/QEMU, VMware Server)
※VMware Server 2.0では準仮想化カーネルを動作させるVMI Paravirtualizationオプションが使用可能。
(3)KXenを実行するにはXenのHVMドメイン(HVMゲスト)を実行する場合と同様にVT対応CPUが必要です。
(4)KXenはそのVT対応CPUをXen仮想CPUとして使用します。
(5)KXenで実行させるゲストOSのカーネルとしてPAE専用カーネルは使用できないようです。
(6)KXenで実行させるゲストOSはQEMU on WindowsやHVMのコマンド(qemu-dmコマンド)ライクのコマンドで起動できます。
例:ioemu.exe -domain-name VM1 -boot c -hda guestos.img -m 256 -net tap,ifname=TAPインタフェース名 -net nic,vlan=0,macaddr=62:5c:15:0c:2c:93,model=rtl8139 -sdl ...
(7)KXenでのネットワークはTAP型のためKXenゲストを(インターネット)サーバとして利用するにはサービスのホスティング設定が必要となります。
※Xenではブリッジ型でホストOSと同じネットワーク体系となるため(インターネット)サーバとして利用するのは比較的容易です。
ここではKXenプレビュー版環境でUbuntu 8.04デスクトップOSを実行させる手順を中心に紹介します。
1.マシン環境
今回KXenプレビュー版を動作させたホストマシン環境は以下の通りです。
set MEMORY=512 set DISKIMAGE=images\anyubt8041flat4gb.img set MACADDRESS=62:5c:15:0c:2c:93 set NICTYPE=rtl8139 ioemu.exe -domain-name VM1 -geometry 640x400 -boot c -hda %DISKIMAGE% -d 1 ※便宜上ここで改行(実際には改行なし) -m %MEMORY% -vcpus 1 -net tap,ifname=TAP-Win32-LAN -net nic,vlan=0,macaddr=%MACADDRESS%,model=%NICTYPE% -k ja -sdl |
set MEMORY=512 set DISKIMAGE=images\anyubt8041flat4gb.img set CDIMAGE=isos\ubuntu-ja-8.10-desktop-i386.iso set MACADDRESS=62:5c:15:0c:2c:93 set NICTYPE=rtl8139 ioemu.exe -domain-name VM1 -geometry 640x400 -boot d -hda %DISKIMAGE% -cdrom %CDIMAGE% -d 1 ※便宜上ここで改行(実際には改行なし) -m %MEMORY% -vcpus 1 -net tap,ifname=TAP-Win32-LAN -net nic,vlan=0,macaddr=%MACADDRESS%,model=%NICTYPE% -k ja -sdl |
/usr/bin/kvm -M pc -m 512 -smp 1 -monitor pty -drive file=/guest2/kvmu810desktop.img,if=ide,boot=on \ -net nic,macaddr=00:16:3e:53:9f:76,vlan=0,model=virtio -net tap,fd=12,script=,vlan=0 -usb -vnc 127.0.0.1:1 |
# cat /var/lib/libvirt/dhcp-default.leases 1241055585 00:16:3e:53:9f:76 192.168.122.208 ubuntu * |