連載
» 2009年03月19日 00時00分 公開

仮想PCで学ぶ「体当たり」Windowsシステム管理:第1回 実験用の仮想PC環境を準備する (2/3)

[打越浩幸,デジタルアドバンテージ]

 Windows OS上で利用できる仮想化ソフトウェアはいくつかあるが、本連載では、マイクロソフトが無償で提供している以下の3種類を利用する。

  • Virtual PC 2007 SP1
  • Virtual Server 2005 R2 SP1
  • (Windows Server 2008の)Hyper-Vサービス

 この3種類では、ほぼ同じ仮想PC(仮想ハードウェア)環境を提供しており、その結果、デバイス・ドライバの入れ換えなどをせずとも、ほぼ同じ仮想ディスク・ファイル(.VHDファイル)が利用できる。とはいえ、追加でインストールする仮想マシン・モニタとの通信機能などに差異があるので、Virtual PC/Virtual Server用とHyper-V用では異なるイメージを作成しておくことになるだろう。

 これ以外にも、VMware社やCitrix社などから提供されている(有償/無償の)仮想化ソフトウェアなどもあるが(関連記事参照)、本連載では特に断らない限り、対象としない。もっとも仮想化ソフトウェアではその管理方法が異なるだけで、稼働しているゲストOSの視点から見るといずれのソフトウェアでもほとんど違いはないので、慣れたソフトウェアを利用すればよいだろう。ただし一度OSイメージを作成すると(特に多くのイメージを準備しておく場合)、ほかのものに変更するのは簡単ではないので、注意していただきたい。

 以下に、今回利用する3つの仮想化ソフトウェアの概要についてまとめておく。なお仮想化ソフトウェアのインストールや基本的な利用方法については関連記事で詳しく述べているので、本稿では解説しない。

■Virtual PC 2007 SP1
 Virtual PC 2007 SP1(以下Virtual PC)は、主にWindows XPやWindows Vistaといったクライアント向けPCで利用するための仮想化ソフトウェアである。導入が最も容易で、アドホックな(一時的な)仮想マシンの利用に向いている。当初はVirtual PC 2004という製品であったが、現在ではVirtual PC 2007 SP1がリリースされている。

■Virtual Server 2005 R2 SP1
 Virtual Server 2005 R2 SP1(以下Virtual Server)は、主にServer OS上で利用するために作られた仮想化ソフトウェア。実験や検証用途というよりは、既存のレガシー・サーバ・システムの置き換えや、仮想サーバ・システムの構築などを主用途としている。

■(Windows Server 2008の)Hyper-Vサーバ・サービス
 Hyper-Vは、Windows Server 2008上で利用する、ハイパーバイザ形式の仮想化ソフトウェアである。Windows Server 2008の「役割」の1つとしてインストールされる。Virtual Serverの後継といえるソフトウェアであるが、ハイパーバイザ形式のアーキテクチャを採用することにより、軽量で高性能(正確には、仮想化のためのオーバーヘッドが少ない)という特徴を持つ。64bitゲストOSのサポートやスナップショット機能を持つなど、Virtual Serverよりも高機能である。ただし64bit CPUとハードウェア仮想化支援機能(Intel-VTもしくはAMD-V)、64bitホストOSが必要なので、導入に必要なホストPCのシステム要件のハードルは、ほかのものよりも高くなっている。また、サポートされているゲストOSの種類がVirtual PCやVirtual Serverよりも少ないので(古いOSや最新版以外のService Packが適用されたOSでは、仮想マシンの統合機能がインストールできない)、ゲストOSの種類によってはほかの仮想化OSを利用することを考えた方がよいかもしれない(追加機能をインストールしなくてもゲストOSは稼働するが、エミュレーションになるので少しパフォーマンスが劣るなどの影響がある)。なおHyper-Vの実行だけに特化したインフラストラクチャとして「Microsoft Hyper-V Server 2008」という製品も無償でリリースされているので、Hyper-V用に専用サーバ・ハードウェアを用意できるなら、採用を検討してもよいだろう。

仮想化ソフトウェアの仕様

 以下、仮想化ソフトウェアごとの特徴や、実現されるゲストPC環境などについて見ていく。まず簡単にまとめておくと、次のようになる。

環境 Virtual PC Virtual Server Hyper-V
ホストOS 32bit OS 64bit OS 32bit OS 64bit OS 64bit OSのみ
ホストCPU x86もしくはx64 x86もしくはx64 x64必須
ハードウェア仮想化機能のサポート あれば利用される あれば利用される 必須
仮想CPUコア数 1 1 1 1 1〜4
32bitゲストOS
64bitゲストOS × ×
仮想PCごとの最大メモリ 4Gbytes*1 4Gbytes*1 4Gbytes*1 4Gbytes*1 4Gbytes以上
全仮想PCの合計メモリ・サイズ*2 4Gbytes以下 4Gbytes以上 4Gbytes以下 4Gbytes以上 4Gbytes以上
仮想ネットワーク・インターフェイス*3 1〜4 1〜4 1〜4
仮想IDE/ATAPIインターフェイス 1〜4(最大128Gbytes) 1〜4(最大128Gbytes) 1〜4(最大128Gbytes)
仮想SCSIインターフェイス × 1〜4(最大2Tbytes) 1〜4(最大2Tbytes)
仮想サウンド機能 × ×
USB*4 × × ×
Direct3D × × ×
各仮想化ソフトウェアの仕様
仮想化ソフトウェアごとに実現されている仮想PCの仕様に差がある。より高いパフォーマンスを求めるには、64bit CPU(x64)とハードウェア仮想化機能(Intel-VT/AMD-V)の利用が望ましい(Hyper-Vの場合は必須)。各仮想PCに割り当てられるメモリはホストOSの物理空きメモリの範囲内で割り当てられるので、同時に多くの仮想マシンを動作させるためには、より多くの物理メモリを用意する必要がある。利用可能なトータルの最大メモリ・サイズは、ホストOSの仕様に依存する。
*1 各仮想PCでサポートされている最大メモリ・サイズは4Gbytesだが、メモリ空間の最後にグラフィックス・デバイスなどのためにいくらか領域が確保されるので、利用可能な最大メモリ・サイズは約3.6Gbytesとなる
*2 全仮想PCの合計メモリ・サイズは、ホストOSで利用可能なメモリ・サイズに依存する。32bit版のWindows XP、Windows Vista、Windows Server 2003 Standard Editionでは最大4Gbytesまでだが、64bit版のOSや、32bit版でもEnterprise Edition以上のWindows Server 2003では4Gbytes以上のメモリが利用できる。
*3 「DEC 21140 10/100TX Ethernetネットワーク アダプタ」をエミュレーションしているが、仮想PCの拡張機能を導入すると、適切な仮想ドライバに置き換えられる。
*4 ホストPCにUSB接続されたキーボードやマウスは仮想PCから利用できるが、仮想PCに対してデバイスを直接USB経由で割り当てることは不可。

■ホストCPUの要件
 仮想PCを高速・快適に利用するためには、ホストCPUの性能に大きく左右される。特にハードウェア仮想化機能(Intel-VTやAMD-V)の有無は、パフォーマンスに大きく影響するようなので、可能な限り、この機能を利用するのがよい。Virtual PCやVirtual Serverではこの機能がなくても利用できるが、Hyper-Vの場合は必須なので(x64も必須)、古いCPUの場合はHyper-Vは利用できない。Hyper-Vの仮想PCではマルチコアがサポートされているので(1〜4コア。ただしゲストOSとホストCPUのコア数による)、より高いパフォーマンスが期待できる。

■ホストOSとサポート・メモリ・サイズ
 Hyper-Vは64bit版(x64版)のWindows Server 2008上にしかインストールできないが、Virtual PCやVirtual Serverはそれ以外のホストOS上にもインストールできる(ホストOSとして利用可能なOSの一覧は、各仮想化ソフトウェアに付属のリリースノートなどを参照のこと)。一般的にはVirtual PCはWindows XPやWindows VistaのようなクライアントOSへインストールし、Virtual Server 2005はWindows Server 2003上へインストールすることが多いが、Virtual PCをサーバOSにインストールしたり、逆にVirtual ServerをWindows XP Professional上へインストールしたりすることも可能である。またホストOSには32bit版(x86)だけでなく、64bit版(x64)も利用できる。

 Virtual PCやVirtual Server、Hyper-Vでは、各仮想PCに割り当てたメモリは、実際にホストPCの物理メモリからその分確保される。例えば1Gbytesメモリ・サイズの仮想PCを3つ作成すれば、ホストOSからは3Gbytesの物理メモリが確保される。仮想ページ・ファイルから割り当てることはできず、必ず物理的に3Gbytes(+ホストOSが利用するサイズ)のメモリが必要になる。多くの仮想PCを同時に稼働させるためには、それに応じて、より多くの物理メモリをホストPCに装着する必要がある。

 しかしホストOSが32bitの場合は利用できるメモリが最大で4Gbytesまでに制限されているので(関連記事参照)、4Gbytesとかそれ以上の仮想PCを同時に利用したければ、メモリを増設するだけでなく、64bit版のホストOS(もしくはEnterprise Edition以上の32bit版Windows Server 2003)を採用する必要がある。

Hyper-V上で64bit OSをインストールした例
これはHyper-V上に、Windows Server 2003 R2 Enterprise x64 EditionをゲストOSとしてインストールした場合の例。Hyper-Vでは64bit OSをゲストとしてインストールでき、4Gbytes以上のメモリを仮想PCに割り当てることができる。この例ではゲストOSに5Gbytesのメモリを割り当てている。

■ゲストCPU
 仮想PCから見えるCPUの仕様は、ホストCPUとほぼ同じである。ただし利用できるコア数はホストCPUのコア数やゲストOSによって制限される。Virtual PCやVirtual Serverの場合は常に1コアのみしか見えず、Hyper-Vの場合は1〜4コアまでとなっている(ゲストOSによってはホストのコアよりも少ない数しか見えない)。

 なおVirtual PCやVirtual Serverでは、ホストCPUがたとえ64bit CPU+64bit OSであっても、32bitのゲストOSしかサポートされていない。これに対しHyper-Vでは、64bitのゲストOSがサポートされている。64bitのゲストOSを利用したければ、Hyper-Vが必須である。

■仮想ディスク・インターフェイス
 Virtual PCの仮想PCではプライマリとセカンダリのIDE/ATAPIインターフェイスが利用でき、それぞれに128Gbytesの仮想ディスク(VHDファイル)か仮想CD/DVDイメージを計4つまで割り当てることができる(CD/DVDは最大1つまで)。128Gbytesまでというのは、いわゆる「137Gbytesの壁」であり「137Gbytes超IDEディスクの正しい使い方(System Insider)」参照)、それよりも大きな仮想ディスクを接続しても、先頭の128Gbytesまでしかアクセスできない。

 Virtual ServerやHyper-VではSCSIインターフェイスを追加して(最大4つ)、より多くの仮想ディスクを利用することができる。それぞれ最大2Tbytesの仮想ディスクまで接続できるので(インターフェイスごとに、Virtual Serverでは7つ、Hyper-Vでは63)、現実的にはほぼ制限はないといえる。

■そのほかの仮想デバイス
 仮想PCによって実現されるハードウェアは、Intel 440BXチップセットを用いたかなり古いタイプのコンピュータ・システムであるが(いまから10年ほど前の主流タイプ)、その分実績があり、非常に古いOS(Windows 9xなど)も稼働させられる、十分実用的なものである(ただし最大メモリ・サイズなどは現状に合わせて拡張されているが)。なおVirtual PCではサウンド機能がエミュレーションされているが、主にサーバ向けのVirtual ServerやHyper-Vでは利用できない。またVirtual Server/Hyper-Vでは複数の仮想CD/DVD-ROMドライブが利用できるが、Virtual PCでは1つしか利用できない。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。