仮想化ツールまとめ
主要なフリーの仮想化ツールについて調査し、テスト用途に適しているツールを検討する。
結論:テストに適した仮想化ツール
主要な仮想化ツールをテスト用途に適している (と思われる) 順に並べると次のようになる。
- Sun VirtualBox
- 複数のスナップショットの管理 (保存&復元) に対応している
- Windows 9x (98, 98 SE, Me) のサポートが不十分
- Windows 9x 用の Guest Additions が提供されていない
- High カラー&高解像度を利用するにはディスプレイドライバを別途インストールする必要がある
- Microsoft Virtual PC
- 差分ディスクと復元ディスクを組み合わせると、複数のスナップショット相当の機能を実現できる
- スナップショットを作成する作業コストが高い
- 64-bit ゲスト OS をサポートしない
- 差分ディスクと復元ディスクを組み合わせると、複数のスナップショット相当の機能を実現できる
- Windows Virtual PC
- 差分ディスクと復元ディスクを組み合わせると、複数のスナップショット相当の機能を実現できる
- スナップショットを作成する作業コストが高い
- Windows 9x (98, 98 SE, Me) や Windows 2000 などのサポートが不十分
- 統合機能が提供されていない
- Microsoft Virtual PC 向けのバーチャルマシン追加機能を適用すると、一部の統合が強化される
- 統合機能が提供されていない
- 64-bit ゲスト OS をサポートしない
- 差分ディスクと復元ディスクを組み合わせると、複数のスナップショット相当の機能を実現できる
- VMware Player
- スナップショットの作成および復元には対応していない
- 仮想マシン起動後に行った変更を適用するか破棄するかは選択可能
- ほかの VMware 製品でスナップショットが作成された仮想マシンの実行には対応
- スナップショットの作成および復元には対応していない
- VMware Server
- スナップショットの作成および復元に対応しているが、作成できるスナップショットは 1 つのみ
- Web ベースの管理インターフェイスはサーバー仮想化には適しているが、デスクトップ仮想化には適さない
- デスクトップ仮想化ツールとしては VMware Player のほうが使い勝手がよい
従って基本的には VirtualBox を採用し、Windows 9x (98, 98 SE, Me) に限っては Microsoft Virtual PC でテストを実施するのが適切と判断する。一方で、サポートされるゲスト OS の種類が少ない Windows Virtual PC や、複数のスナップショットに対応しない VMware Player および VMware Server はテスト用途には適さないと思われる。
テストに適しているかの判断基準
開発内試験などのテストを実施する上で、最も重要な要素となるのがテスト環境の状態管理である。すなわちテスト項目 (テストケース) に適した環境を複数作成し、テスト実施によりテスト環境の状態が変更されても、必要に応じてテスト実施前の状態に復元できることが要求される。
このような要件を満たす仮想化ツールの機能が仮想マシンのスナップショットである。スナップショットを利用すると、仮想マシンの状態を複数作成し、仮想マシンの実行によりその状態が変更された場合であっても、必要に応じて任意の状態に復元することができる。従って仮想化ツールがスナップショットの作成および複数のスナップショットの管理に対応しているかどうかが、テスト用途に適しているかどうかの判断基準と考える。
なお仮想マシンの状態を保存して以前の状態に復元できるスナップショットは、OS の状態を保存して以前の状態に復元するという点で Windows の復元ポイントとよく似た機能といえる。ただし復元ポイントが (同じ) 時系列で作成されるのに対し、スナップショットはツリー状に分岐した異なる時系列で作成することができる。
仮想化ツール (仮想マシン) の用途
一般的に適切な仮想化技術を利用することで、作業効率が向上し時間とコストを節約することができる。仮想化ツール (仮想マシン) の主な使用用途として次のような項目が挙げられる。
- 開発
- プロジェクトごとに異なる開発環境の仮想化、開発環境と異なるデバッグ環境の仮想化、マイグレーション (移行)、互換性の維持
- テスト
- テスト環境の仮想化、アプリケーションの運用テスト
- 運用
- サーバーの仮想化、複数コンピューターの統合、レガシーアプリケーションの実行、サポートの提供、ユーザートレーニング
デスクトップ仮想化やサーバー仮想化を行う際は、使用用途に適した仮想化ツールを選択する必要がある。たとえば仮想化ツールを選択する重要な判断基準として、次のような項目が挙げられる。
- サポートされるプラットフォームの種類
- ハイパーバイザーのタイプ
- ホスト OS 上で動作するホスト型ハイパーバイザー
- ホスト OS を必要としないベアメタルハイパーバイザー
- 複数のスナップショットへの対応
仮想化ツール
以下の主要な仮想化ツールについて調査する。
機能比較
主要な仮想化ツールに搭載されている機能の特徴的な違いを比較すると次のようになる。
| 機能 | Microsoft Virtual PC | Windows Virtual PC | Sun VirtualBox | VMware Player | VMware Server |
| スナップショット | △ (差分&復元ディスク) | △ (差分&復元ディスク) | ◎ (複数) | × | ○ (1つのみ) |
| Windows 9x ゲスト | ○ | × | △ (no Additions) | ○ | ○ |
| 64-bit ゲスト OS | × | × | ○ | ○ | ○ |
| ホスト/ゲスト統合強化 | ○ (バーチャルマシン追加機能) | ○ (統合機能) | ○ (Guest Additions) | ○ (VMware Tools) | ○ (VMware Tools) |
| ホスト/ゲスト融合 | × | ○ (アプリケーションモード) | ○ (シームレスモード) | ○ (ユニティ) | × |
| フォルダ共有 | ○ (書き込み禁止不可) | △ (ドライブの共有) | ○ | ○ | △ (sharedFolder.option) |
| Windows Aero | × | ○ | × | ○ | △ (mks.enable3d) |
| 複数ゲストの同時起動 | ○ | ○ | ○ | × | ○ |
| フロッピーイメージの作成 | ○ (VFD 形式) | × (フロッピー未サポート) | × | ○ (FLP 形式) | ○ (FLP 形式) |
| USB 接続 | × | ○ | ○ | ○ | ○ |
| 日本語 UI | ○ | ○ | ○ | ○ | × |
| 日本語 ヘルプ | ○ | ○ | × | ○ | × |
Microsoft Virtual PC
Microsoft が提供するフリーの仮想化ツール。あまり高度な機能は搭載されていないが、一般的な用途であれば十分実用レベルに達している。
- ゲスト OS にバーチャルマシン追加機能をインストールすることで、ホスト/ゲスト間の統合が強化される
- マウスポインタ連動機能、ドラッグ&ドロップ、クリップボード共有、共有フォルダ、時刻の同期、解像度の自動調整、パフォーマンスの改善など
- USB 接続はサポートされていない
- 共有フォルダを使用すると、USB 接続されたドライブやプリンタなどにアクセスできる
- 特定のアプリケーション (Windows や Internet Explorer, Visual Studio など) がインストールされたバーチャルハードディスクが、Microsoft から評価用として提供されている
- 正式にはサポートされていないゲスト OS (Linux など) であっても、実際にはインストールすることができる
- Microsoft Virtual Server 向けに提供されている Virtual Machine Additions for Linux を適用することで、ホスト/ゲスト間の統合が一部強化される
スナップショットの実現
Virtual PC の差分ディスクと復元ディスクを組み合わせることで、スナップショット相当の機能を実現することができる。具体的な操作手順は次の通り。
- バーチャルマシンを作成し、親バーチャルハードディスクを作成する
- 差分バーチャルハードディスクを作成し、親バーチャルハードディスクを選択する
- 親ディスクが変更されると親ディスクに関連するすべての差分ディスクが無効となる。そのため Microsoft では親ディスクを書き込み禁止にするよう推奨している。
- 新規バーチャルマシンを作成し、差分ディスクを選択する
- 復元ディスクを有効にする
- 親バーチャルマシンを利用する際に親ディスクを変更しないようにするため
- 復元ディスクを有効にする
※ 複数のスナップショットを作成したい場合は、上記の手順を複数回行えば良い。
参考リンク
- Microsoft Virtual PC 2007
- ダウンロードの詳細 : Microsoft Virtual PC 2007 SP1
- Microsoft Virtual PC - Wikipedia
- Virtual Server 2005 R2 SP1 上における Linux ゲストのサポート
Windows Virtual PC
Microsoft が提供する Windows 7 用のフリーの仮想化ツール。Microsoft Virtual PC の後継バージョンのため、基本的には Microsoft Virtual PC と同等またはそれ以上の機能が搭載されている。
- ゲスト OS に統合機能をインストールすることで、ホスト/ゲスト間の統合が強化される
- マウスポインタ連動機能、アプリケーションモード、クリップボード共有、ドライブの共有、プリンターのリダイレクト、USB デバイスのサポート、解像度の自動調整、パフォーマンスの改善など
- ドラッグ&ドロップはサポートされていない
- 仮想フロッピードライブはサポートされていない
- フロッピーディスクを利用したい場合は、ホスト OS に接続されたフロッピードライブを共有するか、USB 接続されたフロッピードライブを使用する
- フォルダーの共有はサポートされていない
- 特定のフォルダーを共有したい場合は、SUBST コマンドなどで特定のフォルダーを仮想ドライブに割り当て、ドライブの共有機能を利用する
- 正式にはサポートされていないゲスト OS (Windows 9x, Windows 2000, Linux など) であっても、実際にはインストールすることができる
- Microsoft Virtual PC 向けに提供されているバーチャルマシン追加機能をインストールすることで、ホスト/ゲスト間の統合が一部強化される
- Microsoft Virtual Server 向けに提供されている Virtual Machine Additions for Linux をインストールすることで、ホスト/ゲスト間の統合が一部強化される
Windows Virtual PC で新しく追加された機能として主に次のようなものがある。
- Windows XP Mode
- Windows Virtual PC 上で動作する Windows XP Professional SP3 (32-bit) の単独の仮想マシン。Microsoft から無料でダウンロード可能。
- アプリケーションモード
- ホスト OS 上からゲスト OS 内のアプリケーションを直接起動できる機能。ゲスト OS にインストールされているアプリケーションが、ホスト OS にインストールされているかのように扱われる。VMware 製品のユニティや VirtualBox のシームレスモードに相当する。
- フォルダー統合
- ホスト OS の特定のフォルダー (マイドキュメント、マイピクチャ、デスクトップなど) とそれに対応するゲスト OS のフォルダーが統合され、ゲスト OS からホスト OS のフォルダーにアクセスできる。
- USB サポート
- ホスト OS に接続されている USB デバイス (フラッシュメモリやプリンターなど) にアクセスできる。
- プリンターのリダイレクト
- ゲスト OS からの印刷をホスト OS に接続されているプリンターにリダイレクトする。
参考リンク
- Windows Virtual PC: ホーム ページ
- Windows 7 の機能 - Windows XP Mode - Microsoft Windows
- Microsoft Hardware-Assisted Virtualization Detection Tool (ハードウェアによる仮想化支援機能の検出ツール)
- Windows Virtual PC - Wikipedia, the free encyclopedia
Sun VirtualBox
Sun が提供するフリー (オープンソース) の仮想化ツール。バージョンアップを重ねるごとに機能やパフォーマンスが強化され、仮想化ツールの業界標準である VMware Workstation との差を縮めつつある。一部の高度な機能を除けば有償の製品と比べてもあまり遜色のないレベルといえる。
- 複数のスナップショットに対応し、仮想マシンの状態を複数保存できる
- スナップショットはツリー状に管理され、任意のスナップショットに復元可能
- ゲスト OS に Guest Additions をインストールすることで、ホスト/ゲスト間の統合が強化される
- 統合マウス、共有フォルダ、シームレスウィンドウ、時刻の同期、解像度の自動リサイズ、自動ログオン、ビデオサポートなど
- リモートデスクトップ接続が可能なリモートディスプレイ機能を搭載
- Virtual PC, VMware の仮想マシンをサポート
- OFV 形式の仮想アプライアンスをサポート
※ Microsoft Virtual PC を起動していると、VirtualBox の仮想化支援機能 (VT-x/AMD-V) の状態が無効となる。
Windows 9x ゲスト
VirtualBox ではゲスト OS として Windows 9x (98, 98 SE, Me) をインストール可能だが、正式にはサポートされていないため幾つかの制限事項がある。
- Guest_OSes - VirtualBox
- Windows 98 の Status は "Works, no Additions available"
- Windows 98 に関する情報はユーザーによって報告されたもので、VirtualBox チームによって検証されていない
- User_FAQ - VirtualBox : Windows 98 guests
- Sun は Windows 98 用の Gest Additions を提供しない
- 画面出力が 16 色の VGA となる
- High カラー&高解像度を使用するには、次のいずれかのディスプレイドライバをインストールする
- VBEMP x86 Project - Universal VESA/VBE Video Display Driver
- Display Doctor 7 Beta (公式には配布されていないが、各種ダウンロードサイトから取得可能)
- High カラー&高解像度を使用するには、次のいずれかのディスプレイドライバをインストールする
参考リンク
VMware Player
VMware が提供するフリーの仮想化ツール。仮想化ツールの業界標準である VMware Workstation の機能制限版という位置づけ。初期バージョンでは仮想マシンの作成に対応しておらず、ほかの VMware 製品を利用する必要があった。しかしバージョンアップを重ねるごとに機能制限が緩和されていき、アプリケーション単体として十分実用に耐えるまでになっている。
- スナップショットの作成および復元には対応していない
- 仮想マシン起動後に行った変更を適用するか破棄するかは選択可能
- ほかの VMware 製品でスナップショットが作成された仮想マシンの実行には対応
- ゲスト OS に VMware Tools をインストールすることで、ホスト/ゲスト間の統合が強化される
- マウス統合、ユニティ、フォルダ共有、クリップボード共有、時刻の同期、高解像度、パフォーマンス向上など
- 簡易インストール
- ゲスト OS の自動インストール。インストール中のユーザー操作を必要としない。
- インストールに必要な情報 (プロダクトキー、ユーザー名、パスワードなど) はインストールを開始する前にまとめて入力する
- OS の自動インストールの仕組みを利用している
- ゲスト OS の自動インストール。インストール中のユーザー操作を必要としない。
- マルチディスプレイ
- 仮想プリンタ
- Virtual PC の仮想マシンをサポート
- ほかの VMware 製品と一緒にインストールできない
- VMware Workstation を新規インストールする場合に限り VMware Player が一緒にインストールされる
- VMware Virtual Appliance Marketplace で提供されている仮想アプライアンスを実行可能
参考リンク
- VMware Player 、仮想マシン、仮想PC
- VMware Player ドキュメント
- VMware Player Documentation (日本語ページにない日本語リソースあり)
- VMware KB: Support for Windows 7 and the Aero theme
- VMware - Wikipedia
VMware Server
VMware が提供するサーバー仮想化を実現するためのフリーの仮想化ツール。
- ゲスト OS に VMware Tools をインストールすることで、ホスト/ゲスト間の統合が強化される
- マウス統合、クリップボード共有、時刻の同期、高解像度、パフォーマンス向上など
- スナップショットの作成および復元に対応しているが、作成できるスナップショットは 1 つのみ
- 仮想マシンを起動したままの状態でスナップショットに復元可能
- VI (VMware Infrastructure) Web Access 管理インターフェイス
- ブラウザからアクセスする仮想マシンの管理画面。ローカルとリモートの両方から仮想マシンの管理および監視が行える。
- 仮想マシンコンソール (VMware Remote Console)
- Web ベースの管理インターフェイスを使用することなく、ローカルとリモートの両方から仮想マシンにアクセスできる
- Virtual PC の仮想マシンをサポート
- VMware Virtual Appliance Marketplace で提供されている仮想アプライアンスを実行可能
参考リンク
- VMware Server - 無償のサーバ仮想化製品
- VMware Server Documentation (日本語リソースあり)
- vmware: プロセッサの64ビット互換性チェックユーティリティ
- VMware - Wikipedia
仮想化ツールの 64-bit サポート状況
主要なフリーの仮想化ツールの 64-bit CPU および 64-bit OS のサポート状況について調査。
| 仮想化ツール | ホスト OS | ゲスト OS | 64 bit 対応 | ハードウェア仮想化 |
| Microsoft Virtual PC 2007 SP1 | Windows | Windows | ホストのみ | ○ |
| Windows Virtual PC | Windows 7 | Windows 7, Vista, XP の上位エディション | ホストのみ | ○ (必須) |
| Microsoft Virtual Server 2005 R2 SP1 | Windows XP, Server 2003, Vista, Server 2008 | Windows, Linux | ホストのみ | ○ |
| Microsoft Hyper-V Server 2008 R2 | - (ハイパーバイザー) | Windows, Linux | ○ | ○ (必須) |
| VMware Player | Windows, Linux | Windows, Linux etc | ○ | ○ |
| VMware Server | Windows, Linux | Windows, Linux etc | ○ | ○ |
| VMware ESXi | - (ハイパーバイザー) | Windows, Linux etc | ○ | ○ |
| Sun VirtualBox | Windows, Linux etc | Windows, Linux etc | ○ | ○ |
- Windows Virtual PC
-
- ハードウェア仮想化テクノロジ (Intel VT, AMD-V) に対応した CPU が必須。BIOS 設定でハードウェア仮想化機能を有効にする必要がある。
- Windows XP Mode
- Windows Virtual PC 上で動作する仮想マシン。32 bit の Windows XP Professional SP3 環境が搭載されている。
- Microsoft Hyper-V Server
-
- ハードウェア仮想化テクノロジ (Intel VT, AMD-V) に対応した x64 CPU が必須
- VMware 製品
-
- ハードウェア仮想化 (Intel VT, AMD-V) に対応した 64 bit CPU でハードウェア仮想化が有効な場合は、32 bit ホスト OS であっても 64 bit ゲスト OS がサポートされる
- Sun VirtualBox
-
- ハードウェア仮想化 (Intel VT, AMD-V) に対応した 64 bit CPU でハードウェア仮想化が有効な場合は、32 bit ホスト OS であっても 64 bit ゲスト OS がサポートされる
