KXenプレビュー版

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プレビュー版を動作させたホストマシン環境は以下の通りです。



2.KXenプレビュー版の導入

KXenプレビュー版は「QEMU on Windows」と同様にzip形式ファイルで提供されています。
具体的にはhttp://www.xen.org/download/HostedXen/snapshots/kxen-preview-090323-windows.zip(約5MB)をダウンロードします。
次にkxen-preview-090323-windows.zipを適当なドライブに展開すればそのまま使用可能となります。
kxen-preview-090323-windows.zipはioemu.exe(qemu.exeに相当), kxen.sys, hvmloader, SDL.dll等を含んでいます。


3.TAP型ネットワーク使用のためのOpenVPNの導入と設定

KXenでTAP型ネットワークを利用するためにOpenVPNを導入します。


4.Ubuntu 8.04デスクトップOSの実行


5.Ubuntu 8.10デスクトップOSのライブ実行

まずubuntu-ja-8.10-desktop-i386.isoを用意します。
次にstartvm.batを別ファイル(例:startvmu810live.bat)にコピーして内容変更して利用します。

startvmu810live.batの内容変更後は以下の通りです。

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

ここで作成したstartvmu810live.batを実行するとKXenゲスト(Ubuntu 8.10デスクトップOS)がライブ起動されます。
この場合でもTAP型ネットワークは問題なく利用できます。





6.おさらい:Ubuntu 8.04.1のKVMでのUbuntu 8.10デスクトップOS実行

ここではUbuntu 8.04.1デスクトップのKVMゲストとしてUbuntu 8.10デスクトップOSを実行する手順をおさらいします。
ホストOSとしてのUbuntu 8.04.1は通常カーネルでそのKVM機能を使用します。
ここでは仮想マシンマネージャを使用してKVMゲストとしてUbuntu 8.10デスクトップOSをインストール実行します。