ワザップ!ウェブ版リニューアルの為、大忙しの毎日だったけど、ようやく少し時間ができたので、以前から試してみようと思っていたxenでwindowsXPの仮想化に挑戦しました。

OSはgentoo、既にワザップ!のサイトは部分的にxen上のLinux仮想サーバで動いているので、あまり負荷がかかっていないサーバを悪用して実験開始。

xenのホストを初めて設定したときは痛い失敗をいっぱいして、すごく面倒だった記憶があるので、今回も大掛かりな作業になるかなと思ったけど、以外と簡単にWindowsを動かすことができた。もちろん、すでに設定済みのdom0を利用したからだけど...

xenの実験以外、今回のWindowsの仮想化の目的はワザップ!を各種ブラウザでテスト検証したいからである、各プログラマがそれぞれあらゆるブラウザを各自のPCにインストールするよりは仮想サーバにリモートでログインしてテストをするほうがいいのではと思ったからである。

まずはWindowsXPのインストールCDをイメージファイルに落とすことに:

dd if=/dev/cdrom of=WindowsXP.iso

次にVMが使用する「ディスク」を作成する。今回は10GBを確保(1024 * 10):

dd if=/dev/zero of=windows01.img bs=1024k seek=10240 count=0

次に設定ファイルを作成(windows01.cfg):

import os, re
arch = os.uname()[4]
if re.search(’64′, arch):
arch_libdir = ‘lib64′
else:
arch_libdir = ‘lib’

kernel = “/usr/lib/xen/boot/hvmloader”

builder=’hvm’

# 今回利用しているホストサーバはパワフルなのでメモリは4GB(自宅のPCだと無理です)
memory = 4096
# 最大メモリを指定(これを忘れて痛い目にあったことがある)
maxmem = 4096
shadow_memory = 16
# ワークステーションとしても使いたいのでCPUは4個(1から4番を使用)
vcpus = ‘4′
cpus = ‘1,2,3,4′
name = ‘windows01′
# ネットワークブリッジ
vif = [ 'type=ioemu, bridge=xenbr0' ]
#vif = [ '' ]
# VMのディスクとXPのインストールCDをマウント
disk = [ 'file:/xen/windows/windows01.img,hda,w', 'file:/xen/windows/WindowsXP.iso,hdc:cdrom,r' ]

device_model = ‘/usr/’ + arch_libdir + ‘/xen/bin/qemu-dm’
# ブートデバイスの順番
# hard disk, cd-rom
boot=”dc”

#vnc=1
#vncviewer=1
#vncconsole=1
#vncpasswd=”
# これがないとブートをしても何も見えない
vfb = [ 'type=vnc' ]
stdvga=0
serial=’pty’
usbdevice=’tablet’
# 日本語キーボード
keymap=’ja’

これでできあがり!

xm create windows01.cfgでdomUを起動、早速ブート画面が見たいのでVNCを利用して接続しようとしたが、なにも出てこないじゃないか...

今回利用しているサーバはリモート(データセンター)にあるので接続を拒否されてしまった。

ホストの/etc/xen/xend-config.sxp内でVNCがローカルホスト以外のIPの接続を許可するよう設定、VPN内なのでとりあえず0.0.0.0でおけー

# The interface for VNC servers to listen on. Defaults
# to 127.0.0.1  To restore old ‘listen everywhere’ behaviour
# set this to 0.0.0.0
(vnc-listen ‘0.0.0.0′)

/etc/init.d/xend restart

でxenを再起動。やったぞ!VNCで接続できた!!懐かしのWindowsの青いインストールスクリーンが映っていた!

とりあえず通常通りにセットアップを行い、Windowsが普通に動くようになった。VNCが遅いからLinuxでも利用しているnomachineを使おうかな~と思ったらWindows版がないじゃないかTT

リモートデスクトップを設定してリモート接続、キモチいーなーと思ったのも束の間。Windowsがヒジョーに重い...

これだとワークステーションどころじゃない。結局CPU、ディスクのパフォーマンステストツールを動かした結果、CPUx4、4GBメモリも与えているのにパフォーマンスの悪さにガッカリ...特にDiskのIOが...

xen上で動いているLinuxはメチャ早いんだけどな~、自宅のPCを捨ててEC2上にxen+ウィンドウズを動かしてマイPCを建てようと夢見ていたのに~

結局、使い物にならないので今回の実験の結果は「時間を無駄にした」、使わなくなったPCにXPを入れるほうがまだマシかもしれない。