VMware server よりも VMware player の方が圧倒的に高速です。そこで、VMware player を VMware server 風に使えるようにしてみました。もう VMware server は不要です!!
概要としては
- ホスト機で、仮想Xサーバ(Xvfb)を起動
- 仮想Xサーバ上で vmplayer を起動
- 外部からは VNC を使って仮想Xサーバ上の vmplayer にアクセス
という流れです。
この方法には以下のメリットがあります。
- 高速化。VMware server は実質開発停止中で、VMware player の方がチューニングされていて軽快に動作します。
- 操作性向上。 ssh経由で VNC を使うことで、細い回線でも、ストレスなく遠隔操作できます。通信に必要なポートも ssh の22番ポートひとつだけです。
設定
便宜上
- ホストOS : VMplayer を起動する実PC上のOS
- ゲストOS : VMplayer 上で動作させる仮想PC上のOS
- クライアントOS : vncviewer を起動するOS
とします。
以下設定手順詳細
必要なソフトウェアのインストール (ホストOS側)
以下のパッケージをインストールします。
- Xvfb
- x11vnc
- fluxbox
(fluxbox は、twm などの他のウインドウマネージャでも良いです)
$ sudo apt-get install Xvfb x11vnc fluxbox
一発です。
必要なソフトウェアのインストール (ゲストOS側)
とくに必要なソフトはありません。
必要なソフトウェアのインストール (クライアントOS側)
VNC viewer をインストールします。
VNC viewer は様々な実装が存在しますが、私が試した限りでは tightvnc が良いようです。
http://www.tightvnc.com/
- windows の場合
- http://www.tightvnc.com/download.php から Self-installing package for Windows をダウンロード
- インストーラを起動、 viewer のみを選択してインストール
- linux の場合
- sudo apt-get install xtightvncviewer
起動設定(ホストOS側)
ホストOS側で、
- 仮想Xサーバ
- ウインドウマネージャ
- vncサーバ
- vmplayer
- ゲストOS
ファイル名はとりあえず /root/start-vmware.sh にしました。
#!/bin/bash WORK=/tmp/vnc mkdir -p $WORK cd $WORK export DISPLAY=:99 Xvfb $DISPLAY -screen 0 1024x768x16 2>&1 > $WORK/xvfb.log & sleep 10 fluxbox 2>&1 > $WORK/window-manager.log & x11vnc -display $DISPLAY -loop -bg -nopw -listen localhost -xkb 2>&1 > $WORK/vnc.log & sleep 20 vmplayer "ゲストOSのvmxファイル" 2>&1 > $WORK/vmware.log &
ファイル作成が済んだら、忘れずにパーミッションを変えておきましょう。
$ sudo chmod 0744 start-vmware.sh
エラーメッセージはログファイルに記録するようにしています。トラブル時は/tmp/vnc以下のログファイルを眺めましょう。
使い方(ホストOSからゲストOSを操作する場合)
vncviewer で仮想Xサーバへ接続するだけです。
$ xtightvncviewer localhost
xtightvncviewer を閉じても、vmplayer は仮想Xサーバ上で動作し続けます。
まとめ
vmware server に比べると、 vmware player はとても良く出来ています。 乗り換えも、ゲストOS側は、特に何も設定を変えずに行えるようです。未だに vmware server を使っている方は、今すぐ移行すべきだと感じました。