2009/02/11

VMware Server 2にWindows VistaとWindows 7をインストール

「まじめに更新するぞー!」と書いた直後にちょっと実家のほうでいろいろありまして週末実家に帰ったりして大変でしたが、ひきつづきいつものbeatsync.netをお届けします。

さて、やっと本題というかなんというか、VMware上に作業環境を整えた話までたどり着きました。まぁ過去のいきさつは以下の2記事を参照してください。

さてそんなわけで、サーバにVMware Server 2をインストールしたので、実際にWindows Vistaをインストールしました。当然x64版です。が、よく考えたらVMware Server 2をインストールしたホストOSがdebian/testingのx86版なのであんまりx64版のエミュレーション性能って伸びないのかなぁともちょっと思ったりしないでもないです。

x86なOS上でx64の仮想マシンを動作させるにはIntel CPUの場合VT機能が必須らしいので、VTを使ってそれなりのパフォーマンスになっているのだろう、と勝手に解釈しています。ちなみにVMwareのESXシリーズのほうはネイティブコードがx64だったような気がするので、将来的にESXiにしたときに後悔しないようにということで、x64版を選んでいます。アプリケーションの開発環境にするという観点で、x64コードをその場でネイティブ実行するためにx64が必要だったということもあります。

とりあえず、Windows Vista x64版をインストールした直後にいきなりWindows 7のBeta版の公開があったので週末(1/10〜11)をつぶしてそのままWindows 7もインストール。

さて、パフォーマンスはというと…。Windows 7があまりにも軽くてびびりました。ただ、これはたぶん話が逆で、Windows Vistaが重すぎるという問題がでているように見えました。どっちもリモートデスクトップ経由で仮想マシンにアクセスしていますが、Windows Vistaだけ異常にレスポンスが悪いんです。具体的には、グインするのにタイムアウト発生しまくって3回ぐらい再接続しなきゃならないという状態でした。

これでWindows 7が正式版だったら何の文句もなくWindows 7を使うんですが、デバッグ用のデータがMicrosoftに送られるBeta版をメインの開発環境にするのはいやなのでVistaを常用の仮想マシンにしたいんですが、これじゃ使い物になりません。さて、原因を探るか…。

どんな仮想環境でWindows VistaとWindows 7を整備したかというと、こんなかんじ。Windows VistaはWebインタフェースで作ったので仮想マシンバージョンが7ですが、Windows 7はVMware Infrastructure Client(ESX Serverを管理するやつ)で作ってるから仮想マシンバージョンが4です。

  • Windows Vista x64 (VMware Server 2のWebコンソールで作成)
    • CPU: 2コア
    • メモリ: 2048M割り当て
    • HDD: SCSIで作成(LSI Logic)して、65GBをフラットで確保
    • 仮想マシンのバージョン: 7
  • Windows 7 x64 (VMware Infrastructure Clientで作成)
    • CPU: 1コア
    • メモリ: 1024M割り当て
    • HDD: IDEで作成して、32GBぐらいをインクリメンタルに確保
    • 仮想マシンのバージョン: 4

でも、おかしいんですよ。リソース的にはVistaに2倍ぐらい割り当ててるんですよ。まぁたしかに仮想マシンだからリアルマシンほど余剰リソースによるパフォーマンス差がでないとはいえ、なんか全体的にもっさりしています。会社でつかってるワークステーションにVista x86を入れてるマシンは2コアの2048Mだけどこんなに重くないぞ…。

ということで、環境をWindows 7に近づけるべくいろいろやってみました。まずはHDDアクセスがもっさりしてて遅いのが原因だろうと予測してNHCを使ってHDDイメージを変換してみました。うーん、ちょっと早くなったかも。ただ抜本的に変わったかというとよくわからない。インターネット上の風の噂ではXP以降のOSならIDEが早いとは書いてあるのをみましたが。

というわけで、次は仮想マシンのバージョンを4におとしてみることに。といっても仮想マシンを作り直すのも面倒なので、仮想マシンのvmxファイルのバージョンを書き換えて7から4にしてみました。

うーん、確かにちょっと動作は軽くなったのかなぁ? と思ったんですが、なんか動作が不安定になっちゃって突然仮想マシンがフリーズしてしまいます。念のためということで、素直に仮想マシンのバージョンを4にした新仮想マシン設定をつくってやってみたりもしましたが、あんまり変わりません。なんでだ…。

結局おとなしく仮想マシンバージョン7でさらに作り直したんですが、詳細設定をみるとmks.enable3dがtrueになってるんです、バージョン7の仮想マシンは。バージョン4の頃はそもそもDirectXサポートがなかったので無いんですけど、バージョン7の仮想マシンはVMware Workstationでいうと最新のVersion 6.5の仮想マシンのバージョンなので、この設定があったようです。

実際にはVMware Server 2だから3Dエミュレーションしてないような気がするんですが、サーバに積んでるオンボードチップでアクセラレーションしようと頑張られても困るので、いちおう切った方がいいかなと切ってみると、あっさり問題解決しました。たしかにこれならWindows 7に引けをとらないくらいの感触です。

というわけで、VMware Server 2に仮想マシンで開発環境を作ったので、これでNorthwood世代のPentium 4マシンとかいうメインマシンを捨てられそうな雰囲気になってきました。

やっぱりこう、エコ志向が強いこのご時世を考えるとそれなりのスペックのサーバに複数仮想マシンを作っておいて、Mac miniとかネットトップみたいな電気食わなくてコンパクトなマシンからリモートデスクトップでつなぐようにすれば利便性と電力効率を両立できるなーと思っています。で、1月のMacworld Conference&Expo 2009でMac miniがでてくるのを期待していたのだけど、でてこなかった。。

まぁ、こんな感じでインストールしてみたぞ! っていう記事を書いてみましたが、実際のところ作った仮想マシンをあんまり使っていないんですよね。理由は明確で、ローカル側のほうでもアプリケーションを走らせているからどうしても仮想マシンにリモートデスクトップしてるのをフルスクリーンで使うといちいち戻すのが不便なんです。

Mac用のVMware Fusionだと、ユニティモードというX11でいうところのルートレスモードとかもサポートしてるので、あれみたいな感じになっていると親和性が高くていいねーと思っていたら、Windows Server 2008のRemoteAppというやつがリモートデスクトップのルートレスモードを実現しているので、これをWindows 7世代ではUltimateだけでもいいからクライアント側に搭載してほしいなぁと思っている所です。

これからのコンピューティングの主流はこういう技術をどんどん使っていく「ところもある」だろうとも思ってるので、おうちでとりあえずそういうのを自分で実験してみるっていうのは楽しいものですね。

うされもん @acidlemonについて

|'-')/ acidlemonです。鎌倉市在住で、鎌倉で働く普通のITエンジニアです。

30年弱住んだ北海道を離れ、鎌倉でまったりぽわぽわしています。

外部サイト情報

  • twitter
  • github
  • facebook
  • instagram
  • work on kayac