VMware GSX Server 2.5 を試してみる (失敗編)
SOFTWARE REPORT
VMware GSX Server 2.5
VMware は、日本では 株式会社ネットワールド が 販売しているソフトウェアです。これを利用すると 1 台の PC 上で複数の PC を仮想的に動かすことができるので何かと便利です。
今回試そうとしている VMware GSX Server 2.5 というのは、販売されているいくつかの種類の中で、サーバの一元管理といった感じの目的に利用するものです。複数の仮想 PC を遠隔で操作・管理するための機能が搭載されていたりして、何かと便利そうなのです。
ただ、価値相応とは思うのですが、高価であるためなかなか近寄りがたい感じなのですが、幸い期間限定の体験版が利用できるようなので、ちょっと試してみることにしました。
実験環境
今回の実験では、Linux を利用することにします。
VMware の実験なのですけど、その Linux 自体も VMware 上…、VMware workstation 3.2 上にインストールした Slackware 9.0 を用いて実験してみることにします。
Slackware 9.0 の方は特に何かをいじったと言うことはなく、ダウンロードした CD-ROM イメージからフルインストールを行ったものを利用します。
なお、仮想マシンの基本構成は次のとおりです。
メモリ | 384 MB |
---|---|
仮想ディスク (SCSI 0:0) | 通常 - 4.0 GB (Linux native) |
仮想ディスク (SCSI 0:1) | 通常 - 102 MB (Linux swap) |
DVD/CD-ROM (IDE) | 使用ドライブ E: |
フロッピードライブ (A:) | 使用ドライブ A: |
ネットワークアダプタ | ブリッジモード |
2 ポート USB コントローラ | 存在します |
VMware GSX Server システム要件
今回は Linux 用のものを利用するので、それを中心に必要なシステム環境を調べてみることにします。
まず CPU ですが、x86 ベース、すなわち Intel Pentium III や AMD Athlon といったもので、周波数は 400 MHz 以上であることと上げられています。
メモリは最小 256 MB、推奨 512 MB だそうです。もっとも、動作させる仮想 PC の設定や数によってもっともっと必要になると思いますが。
また、「ゲスト OS をフルスクリーンモードで実行するために XFree86 サーバが必須」 とあります。推奨されているバージョンは XFree86 3.3.4 とのこと。
「実行」 という言葉がどういう場面をさしているのかが気になるところです。
サーバ用途の仮想マシン環境であるため、必ずしも映像を写すという必要性はないでしょうから、フルスクリーンで実行というと、サーバコンピュータ上で、仮想 PC にログオンしたりする場合のことを言っているのでしょうか。
仮にそうだとすると、サーバから直接ではなくブラウザ等を使って操作をするならば、サーバ側には XFree86 サーバーが実装されている必要はない、と言うことにならないでしょうか。
サーバ機自体は CUI の状態で動かせる、と言うのならば、それが個人的には理想的なのですが^^
他、ディスク容量としては、Linux サーバ側には 20MB + 仮想マシンで利用する分の空き容量が、リモートクライアント側には、Linux と Windows それぞれ、10MB と 20MB が必要なようです。
GSX Server 2.5 体験版を入手する
GSX Server 2.5 は現在 (2003/07/05) 、30 日限定の無償評価バージョンを入手することが出来るようになっています。GSX Server 評価版 ページを見ながら必要な手続きをおこないます。
評価用シリアル番号を入手する
評価版の入手方法が書かれた公式ページに記載されているように、所定のページにてシリアル取得申し込みを行います。今回は Linux 版を実験するつもりなので、GSX Server 2.5 for Linux の登録ページにて手続きを行いました。
初めての利用だったので、[Register] ボタンを押して必要事項を記入し送信します。
詳細な個人情報のほか、細かなアンケートが入力必須となっているようです。英語でのページなのですけど、質問等は日本語訳がネットワールド社のページにて掲載されています。が、プルダウンメニューの項目に関しては出ていないので、自分を含め英語が苦手な人は英和辞書があった方がいいかもしれません。
入力には時間がかかりますけど、入力が終わってしまえばすぐにシリアル番号がメールにて通知されます。
バイナリファイルを入手する
シリアル番号を入手したら、続いてバイナリファイルのダウンロードを行います。
バイナリダウンロードのページへ行き、目的の製品の "Download" リンクをクリックします。今回は、"VMware GSX Server 2.5.1" をクリックすることになります。そして "Download Binaries for Linux systems" を選択。
すると英語のエンドユーザ同意契約書ページが表示されます。ネットワールド社のページに日本語訳が掲載されていますので必ずどちらかに目を通しましょう。そして、同意できるなら [YES] ボタンを押してダウンロードページへ移動します。
ダウンロードできるファイルは、用途に応じていくつか用意されていました。
GSX Server for Linux | 今回の主役の GSX Server です。Tar 形式と RPM の両方が用意されていました。20MB 位のファイルサイズでした。 |
---|---|
Management Interface | GSX Server を Web ブラウザから操作可能にするためのパッケージだそうです。20MB 位のファイルサイズでした。 |
VMware GSX Server Windows client package | GSX Server を Windows ホストから操作可能にするためのパッケージだそうです。17MB 位のファイルサイズでした。 |
VMware GSX Server Linux client package | GSX Server を Linux ホストから操作可能にするためのパッケージだそうです。9MB 位のファイルサイズでした。 |
GSX Server 2.5.1 のインストール
さっそく、Linux ホストへ GSX Server をインストールしてみようと思います。インストールに関する公式情報は VMware GSX Server 2.5.1 -- Documentation にて公開されているので、詳しくはそちらをご覧ください。
今回のホストは Linux Slackware 9.0 、VMware 社のサイトには紹介されていない Linux を使います。
システム要件
インストールに先立って、もう一度、必要なシステムスペックをチェックしてみることにしました。
CPU は x86 ベースの Intel Pentium II 以上や AMD Athlon 等で、400MHz 以上の周波数、マルチプロセッサ可とのこと。メモリは 256MB 以上、推奨 512MB で、最大は PAE サポートで 64GB とのこと。256 色以上のグラフィックアダプタで、フルスクリーンモードでゲスト OS を起動するためには XFree86 がサポートしている必要があるらしい。ハードディスクはサーバや管理インターフェイス用に 20MB 必要らしい。
他、一般的な Linux の必要環境として次のようなものがあげられていました。
- Linux 2.2.14-5.0 is not supported (これは、2.2.14 以上だけれど、2.5.x は未サポートという意味なのでしょうか…)
- glibc バージョン 2 以上 & libXpm.so
- 遠隔操作待ちうけ用に inetd
- 仮想マシンで generic SCSI を利用するために SCSI Generic ドライバ (sg.o) バージョン 2.1.36
- VmPerl API 用に Perl 5.005x 以上
- サーバ上でリモートコンソールを実行するために X Server
これと比べて、Slackware 9.0 の仕様を見てみると、とりあえずは条件をクリアしているような感じでした。
Kernel | 2.4.20 |
---|---|
glibc | 2.3.1 |
libXpm.so | /usr/X11R6/lib/libXpm.so |
SCSI Driver | ? |
Perl | 5.8.0 |
X Server | XFree86 4.3.0 |
ただ SCSI Generic ドライバについては良くわからなかったのですけど、カーネルソースを見れば何かわかるかなとおもったら…、なぜだかソースファイルがインストールされていませんでした。
なので改めて The Slackware Linux Project からカーネルソースをダウンロードしてきてみました。
それを /usr/src/linux へ展開して、.config ファイルを Slackware 9.0 のインストール CD-ROM 内にあった Kernels/ ディレクトリの利用中のカーネルイメージのものと差し替えます。
そしてカーネルの設定をやってみたのですけど、しっかりした該当項目は見つからなかったものの、とりあえずは SCSI が有効になっているようなのでそのあたりは特にいじらないことにしました。
インストール前の準備
GSX Server は、 rc0.d や rc6.d といった初期化ディレクトリ (?) を利用することを想定しているようですが、Slackware 9.0 までではそれらのディレクトリは用意されていません。
なので、次のような手続きを行ってそれらを作成する必要があるようです。
mkdir /etc/init.d
cd /etc/init.d/
for i in {0,1,2,3,4,5,6}; do mkdir rc$i.d; done
インストール
とりあえず、GSX Server 本体をインストールしてみることにします。
/usr/local/src/VMware ディレクトリへ VMware-gsx-2.5.1-4968.tar.gz を用意して、次のような感じにして展開、インストールを行います。
cd /usr/local/src/VMware/
tar xvzf VMware-gsx-2.5.1-4968.tar.gz
cd vmware-gsx-distrib/
./vmware-install.pl
するといくつかの質問がなされるので、それらの回答を行います。今回は基本的に、すべての項目をディフォルトのもので回答していきました。
In which directory do you want to install the binary files? [/usr/bin]
GSX Server のバイナリファイルをどこへインストールするかを指定します。ディフォルトでは /usr/bin となっているようです。
In which directory do you want to install the daemon files? [/usr/sbin]
GSX Server のサーバプログラム関連のファイルをどこへインストールするかを指定します。ディフォルトでは /usr/sbin/ となっているようです。
In which directory do you want to install the library files? [/usr/lib/vmware]
GSX Server 関連のライブラリファイルをどこへインストールするかを指定します。ディフォルトでは /usr/lib/vmware となっているようです。
上記でも既存のディレクトリ以外を指定した場合は尋ねられるのかもしれませんが、ここで /usr/lib/vmware が存在しないから作成するか ( The path "/usr/lib/vmware" does not exist currentry. ) という質問が表示されたので、[yes] を選択してディレクトリを自動的に作成してもらいました。
In which directory do you want to install the manual files? [/usr/share/man]
GSX Server 関連のマニュアルファイルをどこへインストールするかを指定します。ディフォルトでは /usr/share/man となっているようです。
In which directory do you want to install the documentation files?
GSX Server 関連の文書ファイルをどこへインストールするかを指定します。ディフォルトでは /usr/share/doc/vmware となっているようです。ここでも既存のディレクトリ以外を指定したので、作成するか尋ねられました。
What is the directory that contains the init directories (rc0.d/ to rc6.d/) ?
rc0.d から rc6.d といった初期化ディレクトリ(?) の格納されているディレクトリはどこですかという質問のようです。Slackware にはこれらのディレクトリが用意されていないようなのですが、上記、インストール前に準備したので /etc/init.d を指定すればいいようです。
What is the directory that contains the init scripts? [/etc/init.d]
init スクリプトの格納されているディレクトリはどこですかという質問のようです。ディフォルトで先ほど作成した /etc/init.d が指定されていましたので、とりあえずはこれを指定してみることにしました。
これで基本的にインストール手続きが完了したようです。
アンインストールを行い場合は /usr/bin/vmware-uninstall.pl を、また、VMware GSX Server を始めて実行するまえに /usr/bin/vmware-config.pl" を実行せよとの注意書きが表示されました。
Do you want this script (/usr/bin/vmware-config.pl) to invoke the command for you now? [yes]
そして、今ここで /usr/bin/vmware-config.pl を実行するかどうかたずねられるので、どうせ一度は実行しなくてはならないスクリプトらしいので、ここで [yes] を選択しておくことにしました。
GSX サーバの初期設定
You must read and accept the End User License Agreement to continue.
まずはじめにエンドユーザ同意契約書を参照する必要があるようです。enter キーを押して契約書の内容を画面に表示させます。そして同意するか ( Do you accept ? ) を尋ねられるので、yes を入力して次へ進みます。
Do you want this script to try to build the vmmon module for your system? [yes]
実行中のカーネルに適した VMware GSX Server の pre-built vmmon モジュールが見つからないので作成するか、という質問のようです。とりあえず [yes] を選択して作成してもらうことにします。
これには C コンパイラがインストールされている必要があるそうです。
Do you want to go with compiler "/usr/bin/gcc" version "3.2.2"? [no]
そして gcc 3 は 2002/09 の時点ではまだ Linux カーネル開発チームではサポートされていないらしいけれど、このまま処理を続行してもいいかという質問がなされました。ディフォルトは [no] となっていますが、とりあえず [yes] を選択して続行してみることにします。
What is the location of the directory of C header files that match your running kernel? [/lib/modules/2.4.20/build/include]
現在のカーネルにあった C ヘッダライブラリディレクトリを指定します。今回はディフォルトの /lib/moduels/2.4.20/build/include をそのまま指定しました。
するとコンパイル処理が行われ、とりあえずエラーなく処理が終了しました。
Do you want networking for your Virtual Machines? (yes/no/help) [yes]
仮想マシンのネットワーク設定を行いますか、と言う質問のようです。とりあえず help を読んでみると、仮想マシンにネットワークを利用させるか否か、またその利用方法等の質問のようです。なので [yes] を選択して次へ進んでみます。
すると、"bridged" ネットワーク用の vmnet0 と、"host-only" 用の vmnet8 が設定されたようです。
Do you want this script to probe for an unused private subnet? (yes/no/help) [yes]
試用していないプライベート用のサブネットを検出しますか、という質問のようです。とりあえずこちらも help を見てみると、どうやら仮想マシン用の NAT を準備するかどうかの選択のようです。とりあえず [yes] を選択して次へ進んでみます。
すると、利用可能なサブネットが検出され、また通常の DHCP サーバが存在しているとの表示がありました。既存の DHCP サーバへレコードを追加するか、既存の DHCP サーバをたとえば eth0 限定とするなどの対応をとる必要があるというような補足説明が表示されました。
今回はとりあえず DHCP はどうでもいいので、さらっと読み流してそのまま次へ進むことにしました。
Do you want to be able to use host-only networking in your Virtual Machines? [no]
"host-only" ネットワークを仮想マシンで利用可能にしますかという質問です。これはたしか仮想マシンがホストマシンとのみネットワーク接続を利用できるようにする感じのネットワークだと思いますが、今回は "bridged" の方だけでいいと思うのでこちらは [no] を選択しておくことにします。
Please specify a port for remote console connections to use [902]
GSX Server の遠隔管理をおこうなうために使用するポート番号を指定します。ディフォルトでは 902 となるようです。実際に運用する場合は変えておいた方がいいと思いますけど、今回は実験なのでディフォルトの 902 を使用することにします。
Please enter your 20-character serial number.
シリアル番号を入力せよとのことです。あらかじめ入手しておいた試用のためのシリアル番号を入力して次へ進みます。
これでサーバの設定が終了したようです。
GSX Server を起動する
ここまでの手続きを終えて、GSX Server に関連しそうなプロセスを探してみると次ぎのものがありました。
- vmnet-bridge
- vmnet-natd
- vmnet-netifup
- vmnet-dhcpd
GSX Server らしきプロセスはなさそうな感じ…。
ざっと確認してみましたが、どうやらサーバプロセスは起動されるようには設定されていないようです。念のため Linux を再起動してみると、上記のプロセスも停止するようです。
とりあえず、Linux 起動時に vmware プロセスを立ち上げるように設定してみます。
やることは、インストール時に指定した /etc/init.d/ にある vmware スクリプトを、/etc/rc.d/rc.vmware ファイルとしてコピーし、それを /etc/rc.d/rc.local スクリプトないから呼び出されるようにすると言う感じです。
cp /etc/init.d/vmware /etc/rc.d/rc.vmware
上記のようにして vmware 起動用のスクリプトをコピーしたら、/etc/rc.d/rc.local ファイルに次ぎの行を追加します。
if [ -x /etc/rc.d/rc.vmware ]; then
/etc/rc.d/rc.vmware start
fi
これで Linux 起動の際に自動的に rc.vmware スクリプトが実行されます。
その後、とりあえず手動で rc.vmware start を実行してみると、なにやら GSX Server の設定を終えた直後にでた VMware を起動していそうなメッセージが表示されました。ということは、設定を終えた直後から既に、GSX Server は起動状態かもしれませんね。
そういえばモジュールがどうこうというメッセージがインストール中にあったので lsmod を実行してみると、vmnet と vmmon というそれらしいモジュールがロードされていました。
netstat -a で様子を見てみると、ポート番号 902 が待機状態でした。少なくとも待ち受け状態にはなっているようです。
この 902 番ポートの待ちうけ、inetd による待ちうけのようです。設定ファイル /etc/inetd.conf を見てみると、次のような行が自動的に付加されていました。
902 stream tcp nowait root /usr/sbin/vmware-authd vmware-authd
Windows から接続してみる (失敗)
とりあえずサーバ待ちうけは出来ているようなので、まだ仮想マシンも登録していませんけど、Windows クライアントから接続してみようと思います。クライアントは Windows XP Professional を利用してみることにします。
クライアントソフトウェアのインストール
ダウンロードした Windows 用のクライアントソフトウェア VMware-gsx-server-win32-client-2.5.1-4968.zip を展開して、"VMware-console-2.5.1-4968.exe" を実行します。
手順はそう難しいことはなく、普通にインストール作業を進めることが出来ました。
VMware Remote Console の起動
「スタート」 メニューから、「すべてのプログラム」 → 「VMware」 → 「VMware Remote Console」 と選んで、リモートコンソールを起動します。
すると、接続用のダイアログボックスが表示されます。
Server | 接続するサーバ名を指定します。ホスト名 ( IP 等) のほか、ポート番号と仮想マシンのパスも指定できるようです。 |
---|---|
User | ユーザ名を入力します。 |
Password | パスワードを入力します。 |
ユーザ名とパスワード…、何を入力したらいいかわからず、とりあえず Linux ユーザアカウントを入力してみたりしました。サーバとして Linux の IP アドレスを指定して接続…。
なにやらエラーメッセージです。「サーバーから不明な応答が返された」 だそうです。アカウント等のあたりも不明だし、まだサーバ側の設定が残されているのかもしれないですね。
ローカルコンソールで実験
とりあえず、Linux サーバ上のローカルコンソールを使って接続実験をしてみようと思います。
ローカルコンソールは vmware -G とすることで実行できるとのことなのでとりあえず CUI 上でやってみたところ、"Cannot open display. Cannot initialize the widget set." というメッセージが表示されました。
これはおそらく X Window でないとダメそうなので、X Window を立ち上げて再挑戦してみました。すると、それっぽいウィンドウが立ち上がりました。それとあわせて警告メッセージが…。
「DGA モードを列挙できません。XFree86 direct graphics (DGA 拡張) の初期化に失敗しました」 という感じのメッセージです。ただそのままでもとりあえずは動きそうな予感がするので、今回は放置してみることにします。
そして初回起動だからか、仮想マシンを設定する必要があるとのメッセージが表示されます。が、今回はリモート関連の設定がないかをとりあえず調べたいので、このダイアログはキャンセルしておきました。
ざっと設定項目を眺めてみましたけど、サーバ設定に関連しそうなものはなさそうですね。
マネージメントインターフェイスを導入してみる
導入に当たって、RedHat Linux 8.0 の場合は libdb.so.3 をインストールする必要がある、とのことだったので、念のため Slackware にこのファイルがあるか調べてみたところ、/lib/libdb.so.3 として存在を確認しました。
さて、Web ブラウザから GSX Server を管理するためのツール、マネージメントインターフェイスをインストールしてみようと思います。
/usr/local/src/VMware/ ディレクトリに VMware-mui-2.5.1-4968.tar.gz を用意して、展開、インストールを行います。
tar xvzf VMware-mui-2.5.1-4968.tar.gz
cd vmware-mui-distrib/
./vmware-install.pl
You must read and accept the End User License Agreement to continue.
まずはじめにエンドユーザ同意契約書を参照する必要があるようです。enter キーを押して契約書の内容を画面に表示させます。そして同意するか ( Do you accept ? ) を尋ねられるので、yes を入力して次へ進みます。
Where would you like to install the VMware Management UI [/home/vmware/mui]
マネージメントインターフェイスをどこへインストールするか指定します。ディフォルトでは /home/vmware/mui となっているので、これを指定してみることにします。
これらの質問に回答すると、あとは自動的にインストールを行ってくれます。
インストールが終了すると、/home/vmware/mui/apache/bin/apachectl start が実行され、Web サーバがスタンバイするようです。また、アクセスするための URL および、アンインストールする場合の方法といった情報も、インストール直後に表示されます。
今回は http://rizel:8222/login にて接続できるように設定されたようです。これはそれぞれの環境で異なってくるのでしょう。ちなみに、アンインストールをするには /home/vmware/mui/bin/vmware-uninstall-mui.pl を実行すればいいようです。
これも、Linux 起動時に自動実行してもらえるように、/etc/rc.local ファイルに次ぎの行を書き加えます。
# Running VMware Management Interface
/home/vmware/mui/apache/bin/apachectl start
ブラウザで接続してみる (失敗)
マネージメントインターフェイスをインストールしたので、ためしにブラウザを使って接続してみることにします。
今回は Windows XP Professional の IE6 を利用してみることにします。接続する URL はインストールの際に通知された http://rizel:8222/login を指定します。もっとも、RIZEL というのは Linux のコンピュータ名なので、この部分は IP アドレスに書き換えました。
さて、接続しようとしてみると、当たり前ですがユーザ名とパスワードを尋ねられます。設定した覚えがないので Linux のアカウントでいいのかと思って試してみたのですけど、どうやら少々違うようですね…。
仮想マシンを定義してみる (失敗)
ドキュメントを調べてもどうもアカウントのお話が載っていなくて、見ていく限りではどうしても Linux のシステムアカウントの気がしてならない…。いろいろと不思議に思いつつ、とりあえず仮想マシンでも登録してみようかと思い、やってみました。
サーバにて X Window を起動して、ローカルコンソールを立ち上げます。
そしてウィザードを使って仮想マシンを登録してみると…、なにやら設定ファイルの作成に失敗したと言うようなエラーメッセージが出てしまいました。設定ファイルそのものは、ホームディレクトリの vmware/ ディレクトリに用意されているようだったのですけど、どうも仮想ディスクが正常に作成されていない様子。かといって、作り直しても問題は解決されないのですが。
そして仮想マシン自体の設定は一応保存されているようなので、それを使って仮想マシンを起動してみようとすると、起動できないとのことでさっぱり先へ進んでくれませんでした。
実験、一時打ち切り
とりあえず時間ばかりがかかってしまうので調査打ち切りです。
気になる点としては、インストールする際に gcc 3 でコンパイルを行ったこと、SCSI Generic なる sg.o が見つからなかったことが上げられますので、時間が取れたらまたそのあたりを中心に調べてみようと思います。
以下、追加調査に関する前提…
さて、都合がついたのであらためて sg.o なる SCSI ドライバについて調べてみました。
それに先立って、これまでに GSX Server 自身の挙動が実際にどんなものであるか調べた追加記事があるのでこちらも予備知識として参考にしてみてください。
- EZ-NET レポート: VMware GSX Server 2.5 を試してみる:その2 (失敗編)
- EZ-NET レポート: VMware GSX Server 2.5 を試してみる:その3 (成功編)
SCSI ドライバを組み込んでみる
SCSI 汎用サポート
GSX Server 2.5 が使うらしい sg.o というドライバは SCSI generic support というカテゴリに分類されるドライバのようです。そしてこれを含めその他の SCSI ドライバは SCSI Core support ( scsi_mod.o ) に依存するのだそうです。
これらは Kernel のコンパイル時に組み込んだりモジュールにしたりすることができるようですので、組み込んでみようと思います。カーネルソースの入手と準備については EZ-NET レポート: Slackware 9.0 のインストール を参考にしてみてください。
"SCSI support" の項目を編集します。
<*> SCSI support
<*> SCSI generic support
この2つが設定されていることを注意しつつカーネルの再構築を行いました。カーネルの再構築についてはここでは詳しく触れませんが、行う際は十分気をつけて行いましょう。
再構築が終わって正常に Linux が起動してみると、とりあえず /usr/src/linux-2.4.20/drivers/scsi/sg.o が存在していました。/lib/modules/2.4.20/kernel/drivers/scsi/ にはありませんでしたけど、これは <M> にしなかったのできっとカーネル自体に組み込まれているのでしょう…。
…ということは、もともとちゃんと SCSI ドライバが入っていたのでしょうね^^;
なにはともあれ、ローカルコンソールを立ち上げてみます。
vmware -G
とりあえず起動時に現れる "Unable to enumerate any DGA modes. XFree86 direct graphics (DGA extension) initialization failed." というエラーメッセージはさておき^^;; とりあえず再び仮想マシンの定義をやってみようと思います。
てきとうに設定を進めて、"Confirmation" なる設定終了レポートが表示された後、サーバから切断されてしまったことを示すエラーメッセージが表示されてしまいました。
う〜ん、なかなかうまくいかないものです。とりあえずまたしてもこのあたりで打ち切りです。
参考リンク
- VMware GSX Server 2.5.1 -- Documentation
- VMware on Slackware Linux
- Linux Module-HOWTO SCSI サポート[SCSI Support]