Windows Vistaがリリースされて、ほぼ1カ月が経過した。すでに本連載でも触れているが、筆者も自分の仕事用PCを含めた家庭内のPCにインストールして利用している。今のところ快適に利用できているが、Windows XPでは動いたアプリケーションのいくつかがVistaでは正しく動作しないのも事実で、結構困ったりすることもある。 そうした時に強い味方になるのが、仮想化ソフトウェアだ。すでにMicrosoftはVistaで利用できる仮想化ソフトウェアとして、「Virtual PC 2007」をリリースしており、ユーザーはMicrosoftのWebサイトからダウンロードして利用することができる。また、VMWareは、PC向けの仮想化ソフトウェア「VMWare Workstation 6」のβ版を公開しており、こちらもVMWareのサイトからダウンロードして利用可能だ。 今回のレポートでは、そうしたVistaで利用できる仮想化ソフトウェアの選択肢、そしてその違いなどについて紹介していきたい。 ●1つのハードウェア上に複数のOSを走らせるための仮想化技術 そもそも仮想化技術とはどんな技術のことか、仮想化技術について詳しくない読者のために念のため解説しておこう(すでに仮想化技術について詳しい方はこの節は飛ばしてほしい)。 少々乱暴な言い方をするのであれば、1つのハードウェアの上に複数のOSを走らせようというのが、仮想化技術の基本的な考え方だ。そもそも、数十年前にCPUが登場した当初、1つのCPUに対して1つのソフトウェアだけを走らせるのが当たり前だった。 若い読者の方はご存じないかもしれないが、Windows以前のOSであるMS-DOSの時代には、同時には1つのソフトウェアだけしか走らせることができず、他のソフトウェアを実行するには実行中のソフトウェアを終了し、その後他のソフトウェアを起動するという面倒なことをやっていた。それがWindowsがリリースされて、複数のアプリケーションを同時に走らせることができ、今に至っている。 しかし、同時に走らせることができるOSは未だに1つに過ぎない。これは、これまでのx86アーキテクチャが、そもそも1つのOSだけを走らせることを前提にしているためで、ユーザーはPCの起動時に、OS/2を起動するのか、Windowsを起動するのか、選択する必要がある。 しかし、Vistaのような新しいOSのリリース時には、動かないアプリケーションというのがどうしても出てきてしまう。そのためには前のバージョンのOSとのデュアルブート、ということをやるわけだが、それではいちいち再起動しないといけない。それなら、同時に走らせることができないかと考えた人がいて、それが今の仮想化技術のスタートラインになっている。 といっても、複数のOSを走らせるには、いくつかの制約がある。具体的にはハードウェアは1つしかない、という制約だ。例えば、PCにはCPUは1つしかないし、OSをブートするBIOSも、GPUも、HDDも1つしかない場合がほとんどだ。従って、複数のOSを走らせる場合には、複数のOSでそれらをシェアする仕組みを作らなければならない。では、どうするのかと言えば、図1のような仕組みで解決する。
現在PCの世界でもっとも典型的に利用されている仮想化技術のアーキテクチャが図の左側の方式だ。簡単に言ってしまえば、実際にハードウェアの上で走っているOS(ホストOS)上にソフトウェア的に仮想マシンを作り上げ、その上に仮想マシン上で走るOS(ゲストOS)をインストールするというやり方だ。ホストOSにはVMM(仮想マシンモニター)と呼ばれるソフトウェアが導入され、それが仮想マシンからのハードウェアへの要求を調停し、かつ実際のハードウェアへ渡す命令に翻訳して命令を出す役目を果たしている。後述するVMWare、Virtual PC、そしてMac用のParallelsなどは、すべてこの方式だ。 もっと進んだ仮想環境としては、Hypervisorと呼ばれる方式もある(図右側)。これはハードウェアの上に、ハードウェアへのアクセスを調停するレイヤーを設け、その上に仮想マシンとゲストOSを走らせる形になる。エンタープライズ向けでは今話題のXen(ゼン)がこの方式であるほか、MicrosoftもWindowsベースのHypervisorを開発中であることを明らかにしている。 ●仮想化ソフトウェア上のゲストOSではできることとできないこと そうした便利な仮想化ソフトウェアだが、現時点では完全な互換性は実現されておらず、できないこともある。具体的には、仮想化ソフトウェアが想定していないハードウェアを利用するソフトウェアは使用できない、という点だ。 例えば、Virtual PC 2007の場合、以下のようなハードウェアスペックのPC(これを仮想マシンと呼ぶ)を仮想的に作り出している。 BIOS:AMI BIOS ここでリストアップされたハードウェア(チップセットで標準サポートされるデバイス、例えばパラレルポートなどを含む)とCPU以外のハードウェアは基本的には利用できないのだ。 第一に、GPUがS3 Trio64という2Dアクセラレータのみのチップとなるため、3Dアクセラレータの機能を利用することができない。従って、Direct3Dを利用する3Dゲームや、Windows VistaのWindows Aeroの機能などは利用することができない(一部の仮想化ソフトウェアはDirect3Dの一部機能が利用できる)。また、TVチューナのような、PCの標準機能ではサポートされていないようなハードウェアに関しても利用できない。 従って、3Dゲームやマルチメディア系などGPUの機能を多用するような処理は、仮想化ソフトウェアにはあまり向いていない用途ということができるだろう。 ●ゲストOSにはホストOSとは別に1ライセンスが必要になる点に注意 仮想化ソフトウェアを利用するためには、なんらかのゲストOSが必要になる。おそらく、多くのユーザーにとっては、ターゲットになるのはXPではないだろうか。 注意したいのは、ゲストOSのライセンスだ。仮想化技術ではホストOS上に仮想的に作り出したPCのことを仮想マシンと呼んでいるが、それはホストOSで動作しているPCとは別の、完全に1つのPCとなっていることを意味している。 例えば、ホストOSにVista Ultimateを利用しているユーザーが、そのマシン上で動作している仮想マシンのゲストOSにVista Ultimateを利用しようと思ったら、Vista Ultimateがもう1ライセンス必要になるということだ。XPに関しても同様で、すでにVistaへのアップグレードに利用してしまったXPのライセンスなどはもちろん利用できないので注意したい。 それでも、筆者のようにVistaはDSP版を購入したので、Vistaへのアップグレードには使っていないWindows XPのライセンスが余っているというユーザーであれば、ホストOS用のライセンスとして利用することができる。 ただ、気になるのはXPをDSP版として購入したユーザーの場合だ。例えば、CPUや光学ドライブとセットでXPのDSP版を購入したユーザーでかつ、そのライセンスはVistaへのアップグレードには使わないでVistaへアップグレードした場合、DSP版のXPをゲストOSのライセンスとして使っていいのかどうかだ。マイクロソフト日本法人に確認したところ、このケースはOKということだ。そのOSのライセンスと一緒に購入したハードウェアが実OS上で動作していれば大丈夫とのことだ。 もう1つ注意したい点は、VistaをゲストOSとしたい場合だ。この場合は、ライセンス上からいくつかの制限がある。1つは、Home PremiumとHome BasicはゲストOSにすることができないという点だ。ビジネス向けのBusiness、Enterprise、そしてコンシューマ向けでも最上位のUltimateに関してはゲストOSにすることができる。このことは、Vistaのライセンス条項(Vistaではコンピュータの画面でAltキーを押し、表示されたメニューからヘルプ→バージョン情報と選んでいくと表示することができる)。技術的に考えてVista Home PremiumとHome BasicがゲストOSにならない理由はないと思うので、これは上位SKU(製品種別)と下位SKUの差別化ポイントとして、こういう設定がされていると考えるべきだろう。 さらに注意したいのは、Business/Enterprise/UltimateのゲストOSになれるSKUでも、デジタル権利管理技術やUltimateの「BitLocker」はゲストOSでは利用できないということだ。これは、素直に読めばWindows Media DRMも対象になるので、例えば仮想マシンの中でWindows Media DRMを利用したGyaoのようなサービスも利用できないということだ(このこともライセンス条項に記述されている)。 正直言って、これらの制限、ユーザーの観点から考えると理解に苦しむものだと言わざるを得ない。これがあるおかげで、MacユーザーがParallelsにVistaを入れてもGyaoのようなサービスを楽しむことができないということになる(技術的には可能であるにもかかわらず、だ。しかも、MacユーザーがParallelsを利用する最大のモチベーションはこれだと筆者は思うのだが……)。上位SKUを買えば対応できるホストOSになれる点とは異なり、この点は最上位モデルのUltimateを購入しても解決できないので、ほかのOSを選ぶしか解決方法がなくなってしまう。 Microsoftとしては、仮想マシン上でこれらの技術の安全性を保証できない、ということだと思うのだが、使い方の選択はユーザー側に任せるべきで、Microsoftが規定する問題ではないと筆者は思う。ぜひともこの条項は早急に撤廃してほしいものだ。 ●複数の選択肢があるVista向け仮想化ソフトウェア VistaをホストOSとして利用できるPC向け仮想化ソフトウェアは、以下のような選択肢がある。 (1)Microsoft「Virtual PC 2007」 Virtual PC 2007は、MicrosoftがVirtual PC 2004の後継としてリリースした仮想化ソフトウェアで、32bit、64bitどちらのVistaもホストOSとして利用できる。Virtual PC 2004に比べて最大の強化点は、64bitのホストOSに対応したこと、そしてAMDのAMD-V、IntelのVT-xというプロセッサの仮想化技術に対応したことだ。実際、Virtual PC 2007には、CPUの仮想化技術の有効/無効のスイッチなどが用意されている。Virtual PC 2007は無償で利用が可能で、ホストOSとなりうるWindowsの正規ライセンスを持っているユーザーであれば、MicrosoftのWebサイトからダウンロードして利用可能だ。 VMwareのVMware Workstation 6.0 βは、現在発売されているVMWare Workstation 5.5の後継となるPC向け仮想化ソフトで、現在公開βテストが行なわれている。従来の5.5に比べてUSBのサポートが向上したり、マルチモニターの機能をサポートしたりと、機能強化が図られている。現在のVMWare Workstation 5.5は無償配布されていないが、VMware Workstation 6.0のβテストは、一般のユーザーでも参加できる公開されたものになっており、VMwareのWebサイトで登録すると利用することができる。ただし利用できるのはβテストの期間のみで、βテスト終了後、無償で公開されるかどうかに関してはまだ明らかになっていない。
ParallelsのParallels Workstation 2.2は、Intel MAC用の仮想化ソフトウェアで一躍有名になったParallelsの仮想化ソフトウェアのWindows版だ。AMD-VやIntelのVT-xなどをサポートするなど、最新の技術にもいち早く対応している。Parallels Workstation 2.2は、Parallelsのサイトで販売されており、価格は49ドル(日本円で6千円弱)となっている。15日間までの体験版が用意されており、そちらはParallelsのWebサイトからダウンロードできる。 独InnoTek SystemberatungのVirtualBoxは、オープンソースソフトウェアとして公開された仮想化ソフトウェアだ。ソフトウェアは、VirtualBoxのWebサイトからダウンロードし、個人利用であれば誰でも利用できる。VirtualBoxがユニークなのは、他の仮想化ソフトがサポートしていない、Windowsのリモートデスクトップのホストになる機能をサポートしていることで、他のPCから仮想マシンを制御できる。
●それぞれ異なる仮想ソフトウェアの機能 さて、これら4つの仮想化ソフトウェアだが、細かなところでは機能が異なっている。具体的な違いを表にまとめてみたので参考にしてほしい。
【表】Windows Vista対応仮想化ソフトウェアの機能
今回取り上げた仮想化ソフトウェアはいずれもWindows VistaをホストOSとして利用することが可能だが、64bit版も含めてという話になるとやや違ってくる。今回取り上げたもののうちVirtual PC 2007とVMware Workstation 6に関しては64bit版をサポートしているが、Parallels Workstation 2.2とVirtualBoxに関しては32bit版のみのサポートとなる。64bit版のゲストOSについては、VMware Workstation 6はゲストOSに64bit版Windowsを利用できるが、Virtual PC 2007とParallels Workstation 2.2とVirtualBoxは利用できない。 【お詫びと訂正】初出時、Virtual PC 2007が64bit版のゲストOSをサポートするとしておりましたが、誤りでした。お詫びして訂正させていただきます。 また、Virtual PCは現状ではLinuxをサポートしていない。厳密に言うと、Linuxそのものは走らせられるものの、追加のドライバなどが現状のVirtual PC 2007には含まれていないので、X Windowなどの動作に制限が出る場合がある。ただ、現在MicrosoftはLinux向けの追加ドライバを開発中で、すでにβテストが行なわれており、今後対応される可能性があることを付け加えておく。 また、仮想マシンの仕様という意味でもいくつかの違いがある。例えば、仮想化マシンでサポートされる仮想プロセッサの数だ。すでにPCのメインストリーム向けCPUは、デュアルコアが一般的になりつつあり、クアッドコアのようなマルチコアも登場し始めている。そうした中、今回取り上げた4つの仮想化ソフトウェアのうち、3つまでは仮想マシンのプロセッサはシングルコアのみをサポートしており、デュアルコアやクアッドコア環境でも1つの仮想マシンにつき1コアのみのサポートとなっている。しかし、唯一VMware Workstationだけは仮想マシンレベルでデュアルコアがサポートされており、さらにホストOS側がデュアルコアであればきちんとデュアルコアとして稼働するように設計されている。 プロセッサ周りでいうと、CPUの仮想化ソフトウェアアクセラレーション機能とでも言うべき新命令セットに対応しているかどうかも注目点の1つといえる。AMD-V、VT-xなどのことで、今回取り上げた仮想化ソフトウェアの中ではVMwareをのぞくすべてのソフトウェアが両方に対応している。VMware Workstation 6は、ゲストOSに64bit OSを利用した時のみVT-xを利用できる。
また、ユニークなところでは、VMWare Workstation 6ではDirectX 8レベルのDirect3Dの機能を利用できる。ただし、標準ではこの機能は無効になっており、仮想マシンを作成した後でユーザーが設定ファイルを編集して有効にする必要がある。具体的には作成した仮想マシンの設定プロファイルである*.vmxに、 mks.enable3d = "TRUE" という行を追加しておく必要がある。これによりDirect3Dの機能が有効になる。ただし、このDirect3Dの実装では、シェーダモデルには未対応、ハードウェアバンプマッピング、環境マッピングなどに未対応などの制限も残されており、3DMark03やFinalFantasy XI Official Benchmarkなどを実行してみたが、いずれも動作しなかった。
もっとも、この機能はテスト的に実装されたもので、実際には機能としての動作は保証されていない(そもそもβだから保証はないのだが……製品版でも正式サポートにはならないという意味だと思われる)。ただ、将来的に仮想マシンでVistaのWindows Aeroを有効にするには、この機能を発展させてDirectX 9世代のGPUの機能を利用できるようにしなければならないので、そのための第一歩ということができるだろう。 また、USB機器のサポートでも、それぞれの仮想化ソフトウェアで異なっている。今回取り上げた中で、Virtual PC 2007に関してはUSBはサポートされない。ホストOSとのフォルダ共有の機能は持っているので、それらを利用してストレージ系のUSB機器を利用することができる。これに対して、残りの3つはUSB機器をサポートしており、システムにUSB機器がインストールされた場合、ホストOSからそれを乗っ取りゲストOS側で利用することができる。 ●MS-DOSのゲームをやろうとする場合にはSoundBlasterとの互換性にも注意 なお、ゲストOSにMS-DOSを利用してDOSベースのゲームをやろうと考えている場合、どのサウンドカードのエミュレーションをしているのかも重要なポイントになる。Parallels Workstation 2.2およびVirtual BOXではAC'97のエミュレーションとなるので、MS-DOSのゲームはそのままでは実行できない。MS-DOSでは、オーディオカードの標準が決まっておらず、ゲームは直接ハードウェアにアクセスする仕様になっていたため、事実上CreativeのSoundBlasterと互換性があることが音を鳴らす重要な条件となっていたからだ。この条件を満たすのは、Virtual PC 2007とVMware Workstation 6で、MS-DOSベースのゲームをやりたいのであればこの2つが主要な選択肢といえるのではないだろうか。 後編となる次回は、仮想化ソフトウェアのVistaへのインストールや各ソフトウェアを利用した場合のパフォーマンスなどについて触れていきたいと思う。
□マイクロソフトのホームページ (2007年3月8日) [Reported by 笠原一輝]
【PC Watchホームページ】
|