2006年5月21日日曜日

VMware Server ConsoleをFreeBSDで無理やり実行する

先日、今のところ無料で使えるという、VMware Server (Beta)を、ひまそうにしているWindows 2000 Advanced Serverにインストールしてみました。VMware Serverを実行できるOS(ホストOS)は、普通の人はめったに見たことの無い「Windows Server」という、同じWindowsでもサーバー系のWindowsです(値段がけっこう高いです)。でも、Windows XP SP2でもなにやら動くらしいですね。


VMware Server
http://www.vmware.com/products/server/


■ VMware Serverって?



VMware Workstationとか、VMware Playerの場合、仮想マシンを実行すると、仮想マシンの画面が常にウィンドウとして表示されています。つまり、ホストOS上で、ログインしていないと仮想マシンを実行できません。



一方、VMware Serverは、仮想マシンを実行するプログラムと、仮想マシンの画面を描画するプログラムとが分離されています。仮想マシンを実行する部分は、バックグラウンドで動きつづけます。そのため、仮想マシンを実行するために、ホストOSにログインしている必要はありません。



  • VMware Server Consoleというプログラムを実行し、ネットワーク経由で、VMware Serverを実行しているマシンに接続し、仮想マシンを起動します。


  • VMware Server Consoleを終了しても、仮想マシンは、実行しつづけます(仮想マシンの画面は見えなくなっちゃいますが)。


  • VNC Serverと、VNC Viewerの関係に、ちょっと似てますかね?


  • 仮想マシンは、1つのVMware Server上で、複数実行できます。


というわけで、見た目は1台のサーバーマシンなんだけど、(ネットワーク側から見る限り)まったく独立した別々のコンピュータが複数台あるかのようにみせかけられる「仮想化」を、サーバーマシンで手軽に実現できるってわけです。



■ VMware Server Console



VMware Server Consoleは、ようするにVNC Viewerみたいな位置付けのソフトなんですが、Windows版とLinux版がありました。



FreeBSDは、Linux用のプログラムもたいてい実行できるので、Linux版のVMware Server Consoleを動かしてみました。ちょっと、強引に・・・いや、非常に無理やりに、動かしました。というわけで、「礼儀正しく、清く、美しい、正当な方法」は、だれかほかの詳しい人におまけせしたいと思います。



難しかったのは、そのままじゃインストーラが動かなかった、ってだけ。インストールさえできてしまえば、あとは、うりゃ~と気合を入れれば、動いてしまいました。



● インストーラをだます



インストーラは、insmodlsmodmodprobermmodというコマンドを実行しようとするのですが、Linux固有のコマンドなので、FreeBSDにはありません。



というわけで~~~非常に強引なのですが~~~ダミーのコマンドを用意しました。これらのダミーを置いたディレクトリに、PATHを通しておいてから、インストーラを実行します。




● vmware-server-consoleスクリプト



vmware-server-consoleはシェルスクリプトになっていて、さまざまなライブラリを認識できるようにするためのラッパーとなっています。



とくに細工しなくても動いちゃったみたいなんですが、なんか、FreeBSDのネイティブのライブラリが使われているみたい・・・勘違いかな・・・???



なんか気持ちわるかったので、VMware Server Consoleにバンドルされているライブラリが使われるように、小細工してみました。



本当は、vmware-server-consoleを修正するのが正しい解決方法ですが、まずは動くかどうかを見たかったので、「sh -vx スクリプト」で実行して、試行錯誤を繰り返し、以下のような「おバカなスクリプト」を作りました。インストール先は、/usr/local/vmwareと仮定しています。






なんか、大丈夫なのか、って感じのエラーメッセージが出ていますが、とりあえず、動きました。



Using log file /tmp/nhh/ui-10961.log
Cannot load message dictionary "/usr/local/vmware/lib/vmware-server-console/messages/en/tip_list.vmsg".
HostDeviceInfoCheckDevCDROM: can't stat /dev/cdrom: No such file or directory
Could not open /proc/net/dev
Could not open meminfo file /proc/meminfo
Could not open a memory info file.



VMware Server Console Error:
Could not open /proc/cpuinfo.



Press "Enter" to continue...



HOSTINFO: Failed to get logical CPU count.
Failed to get information about CPUs.
UI: Wrapper: Entering event loop










● DISPLAY=:0.0のとき、画面が真っ黒のまま?



上記の小細工をしようがしまいが、ツールのウィンドウは表示されるものの、なぜか、仮想マシン画面が真っ黒のままでした。



たまたま、Xineramaを使って2枚のディスプレイをつないで動かしていたので、画面描画用の何かのエクステンションが無効になっているんでしょうかね?



setenv DISPLAY ホスト名:0



してから実行したら、きちんと描画されるようになりました。



ゲストOSとして、Windows XPをインストールしてみました。



Vmsc01




Vmsc02




■ やっぱVMware Playerよりは便利



vmxファイルを直接書き換える必要がなかったり、変なことをして仮想ディスクのイメージファイルを作る必要もないし、やっぱり便利ですね。



Vmsc03




Vmsc04




Vmsc05


なお、VMware Serverで作成した仮想マシン(VM)は、VMware Playerでも実行できるそうです。



こんな便利なものが、無料ですかぁ・・・これから先、どうやって商売していくつもりなのでしょうか。





0 件のコメント:

コメントを投稿