Xen 3.0(VT対応Pentium編)


2005年11月、IntelはVT(Virtualization Technology:仮想化技術)を組み込んだPentium 4系CPUをリリースしました。
また2006年1月にはVT対応CPUとしてPentium D 950/940/930、更にそれらの下位モデルである920もリリースされました。
VT対応CPU上のXen 3.0環境ではXen用に変更したLinuxカーネルを使用せずに通常のLinuxカーネルをそのまま実行させることができます。
Xen環境で通常のLinuxカーネルのまま動作できるドメインをHVM(Hardware Virtual Machine)ドメインと呼びます。
この完全仮想化技術を利用したHVMドメインではLinux以外のOS(Windows等)も動作可能です。
※HVMは当初はIntel用語にちなんで「VMX」と呼ばれていましたがAMDでもVT相当機能が開発されているためHVMと呼ばれるようになりました。

ここではVT対応CPUでのHVMドメイン利用例を紹介します。

今回使用したPCのハードウェア構成は以下の通りです。
・CPU:Pentium D 940(3.2GHzのデュアルコアでEM64T/VT対応)
※Pentium 4動作クロックの4GHz化は消費電力の問題があってリリース計画が中止され、スループット向上という観点からはデュアルコアCPUが普及しつつあります。
・チップセット:Intel 945P
・メモリ:2GB
・HDD:S-ATA 250GB
・VGAカード:nVIDIA GeForce 6600(VRAM 256MB)
・LANカード:Intel PRO/100 S
・サウンドカード:オンボード(Intel 82801G(ICH7 Family) High Definition Audio Controller)


1.Xenoppix(Xen 3.0VT)版の利用

HVM(VMX)ドメイン用スクリプト付属のXenoppix(Xen 3.0VT)版を以下の手順で使用してみました。



2.Fedora Core 5の導入

PCにFedora Core 5(FC5)を導入してHVMドメインにもFC5をインストールしたり、HVMドメインでWindows XPを動作させてみました。
※FC5を使用したのは実PCでのFC4インストーラがKernel panicになったためです。

PCへのFC5の導入は以下のようにしました(ポイントだけの説明に留めます)。



3.FC5 HVMドメインへのFedora Core 5のインストール



4.FC5 HVMドメインでのWindows XP実行

HVMドメインでのFC5インストール手順と同様にしてWindows XP (Professional版)インストーラを起動することができます。



しかし今回の実行環境ではWindows XPインストーラが途中でフリーズしました。
Windows Server 2003のインストールも試しに行ってみましたがWindows XPとは異なる部分でフリーズしました。

そこでQEMU環境でWindows XPをインストールした仮想ディスクイメージファイル(Rawタイプ)をHVMドメインで実行してみました。
尚、HVMドメイン設定ファイルはサンプルファイル(/etc/xen/xmexample.hvm)をxmwinxp.hvmにコピーして以下のように変更しました。

(1)memory = 128を512に変更。
(2)name = "ExampleHVMDomain"を"WinXPHVM"に変更。
(3)disk = [ 'file:/var/images/min-el3-i386.img,ioemu:hda,w' ]を[ 'file:/root/xenwinxp.img,ioemu:hda,w' ]に変更。
(4)boot="c"の追加。※仮想ディスクからのブートを意味します。
(5)sdl=0を1に変更。
(6)vnc=1を0に変更。
(7)vncviewer=1を0に変更。
(8)#localtime=1の#を削除。

HVMドメインの起動は以下のコマンドで行います。
# cd /etc/xen
# xm create xmwinxp.hvm

HVMドメイン上でWindows XPは軽快に動作します(描画のもたつきもありません)。
またQEMUネーティブではサポートされていないブリッジ型ネットワークもHVMドメインのqemu-dmでは問題なく動作します。

QEMUではネットワークカードはRealtek RTL8029(AS)-based Ethetnet Adapterとしてエミュレートされてそれが「ローカル エリア接続」となります。
しかしqemu-dmではネットワークカードはAMD PCNET family PCI Ethernet Adapterとしてエミュレートされます。
このためQEMUで作成したWindows用仮想ディスクをHVMドメインのqemu-dmで起動すると「ローカル エリア接続」が削除され、PCNET用の「ローカル エリア接続 2」が自動生成されます(IPアドレスはDHCPにて取得されます)。



実寸画像はこちらです。

HVMドメイン上のWindows XPは内部的には以下のコマンドで起動されています。
/usr/lib/xen/bin/qemu-dm -d 1 -m 512 -boot c -localtime -serial pty -vcpus 1 -domain-name WinXPHVM -hda /root/xenwinxp.img -macaddr xx:xx:xx:xx:xx:xx -bridge xenbr0 -nics 1

当然ながらqemu-dmのプロセスをkillするとHVMドメイン上のWindows XP画面は消えます。
今後VT対応のCPUが一般的になってHVMドメインが主流になるとドメインUはあまり使用されなくなるかも知れません。


5.Xen環境でのXgl

「Xgl」はXウィンドウシステム上でOpenGLを使用してデスクトップ表示に種々の効果を与える機能を持ちます。
FC5でもOpenGL対応のディスプレイドライバとXgl関連パッケージを導入することで画面の特殊効果を試すことが可能です。
尚、nVIDIA GeForce 6600でXglを使用する場合FC5付属のドライバ(nv)はOpenGL対応ではないためnvではないnvidiaドライバ(nvidiaカーネルモジュール)をまず導入しておく必要があります。

[Xglの効果例]

Xglを適用した環境でHVMドメインを動作させるとハードウェア/ソフトウェア環境の組み合わせによってはHVMドメインウィンドウのカラー表示が異常となる場合があります。
Xenを使用する場合はXgl機能を無効化しておく方が無難なようです(gnome-xgl-switch --disable-xglコマンドでの無効化)。


6.SUSE 10.1 Xen環境でのWindows XP インストール

2006年6月2日に正式リリースされたSUSE 10.1のXen環境ではHVMドメインでのWindows XPのインストールが問題なく行えます(インストール後の実行も問題ありません)。
※このWindows XPはWindows XP Professional SP2 (32 bit版)です(非アップグレード版)。

ここではSUSE 10.1のインストールからWindows XPのインストール/実行までの手順を紹介します。



7.SUSE 10.1付属の仮想マシン管理ツール

SUSE 10.1には仮想マシン管理ツールが付属しています。
この仮想マシン管理ツールはGUIで操作ができ、仮想ディスクの作成、仮想化区分(完全な仮想化か否か)、ハードウェア構成等を指定することでドメイン設定ファイルを/etc/xen/vm/下に自動生成します。
また仮想マシンの起動・停止操作を行うオプションも用意されています。

仮想マシン管理ツールの起動はYaST2の[システム]−[Virtual Machine Management (Xen)]で行えます。
利用者はこの管理ツールを用いて仮想マシンを一元管理することができるようになります。