仮想化が一般的になったのは,Windows7に搭載されたXP Modeではないでしょうか.正式には,Windows7上で,Virtual PC(VMM)が動き,その中でWindows XPが動作していました.
しかし,このXP Modeは,Windows XPからの移行を前提としていたものの,パフォーマンスが悪く,利用は一部のアプリケーションに限られていました.
その仮想化の支援する技術が,VTになるのですが,どれくらい効果があるのかを,検証していきます.
まず,Windows7のXP Modeをみていきます.
Z77とi7-3770Kと言う組み合わせでも,VTは有効です.PCのスペックはこんな感じです,
Virtual PCは,仮想マシンへの割り当てが,1CPUしか設定できません.
XP Modeは,1CPU,512MBで,ホストOSと同一ドライブに作成しています.
CINEBENCH R11.5のCPUスコアを比較することにしました.
ホストOS(Windows7)上と,ゲストOS(WindowsXP)上で,同時にCINEBENCHを走らせました.
ホストマシン(Windows7) : CPUスコア 1.65pts
ゲストマシン(WindowsXP): CPUスコア 1.36pts(82%)
パフォーマンスの差は明確で,軽めのアプリケーションでの利用にとどまる理由がここにあります.
次に,I/O周りを確認します.
Crystal Disk Markで,SSD(Vertex4)のパフォーマンスを比較します.
ゲストOS側では,SSDの性能の半分も活かせていないことがわかります.Readで20%,Writeで40%くらいの性能です.特にランダム性能が落ちています.
ソフトウエア処理の限界がここにはっきりと現れています.
次に,Windows8のHyper-Vをみてみます.
vProプラットホームに準拠したQ77とi7-3770の組み合わせです.PCのスペックはこんな感じです.
Hyper-Vでは,仮想マシンへのCPU割り当てが変更できますが,まずは1CPUとしています.
ゲストOSは,Windows7Pro(64)とし,メモリーは2GB,HDDは40GBを割り当てました.なお,仮想マシン(Hyper-V)用には,OSとは別SSDを使います.
まず,CINEBENCH R11.5のCPUスコアを比較します.
ホストOS(Windows8)上と,ゲストOS(Windows7)上で,同時にCINEBENCHを走らせました.
ホストマシン(Windows8) : CPUスコア 1.45pts
ゲストマシン(Windows7): CPUスコア 1.41pts (97%)
先程のXP Modeとは違い,実マシンも仮想マシンもCPUパフォーマンスに大きな差がありません.
次に,仮想マシンを2台同時実行させてみます.各仮想マシンには2CPUずつ割り当てています.
仮想マシン1(win7) : 2.95/1.54pts
仮想マシン2(win7) : 2.95/1.54pts (100%/100%)
インテル バーチャライゼーション・テクノロジーのVT-x効果で,仮想マシンとは意識せずに使うことが出来ます.また,2台の仮想マシンは,全く同一の性能を出すことが出来ます.
次に,I/O周りも確認します.
Crystal Disk Markで,SSD(PX-128M3P)のパフォーマンスを比較します.ホストOSとゲストOSは,別SSDですが,同じPX-128M3Pです.まずは,VT-dをenableの状態です.
ゲストOS側のSSD性能も,ホストOS側のSSD性能に近く,これくらいの差であれば,体感差はありません.90%以上のパフォーマンスが出ています.
次に,VT-dのON/OFFで比較します.
VT-dをenableにすることで,パフォーマンスの向上がわかります(PX-128M3Pでは思っていた以上に効果は小さいかもしれないです).
XP Modeでは,ソフトウエア処理による限界がありましたが,そこをインテル バーチャライゼーション・テクノロジーのVT-d効果がはっきり現れています.
最後に,Hyper-Vのネットワークパフォーマンスも確認しておきます.
ドライブ自体の速度がネックにならないように,Win7マシンにRAMDISKを作成し,そのドライブをネットワークドライブに指定して,CrytalDiskMarkで,速度計測します.
4K QD32を除き,仮想環境のほうが早いという驚きの結果です.
以上のように,Intel VTにより,ハードウエアによる仮想化支援が有効に働いており,仮想マシンのパフォーマンスが非常に高いことがわかりました.
Intel VTによる仮想マシンなら,”仮想マシンは遅い”とは,言わなくなります.
【付録】 Windows8ProのHyper-Vの使い方
Hyper-Vが利用できるのは,64ビット版のProまたはEnterpriseです.この機能だけでも,無印ではなく,Proを選択する価値があります.
デフォルトでは,利用できない設定になっています.
①Hyper-Vの有効化
コントロールパネル⇒プログラムと機能⇒Windowsの機能の有効化または無効化と進みます.
一覧の中にHyper-Vの項目がありますので,チェックを入れ,適用します.
一旦,再起動させます.
ModernUI画面やアプリ一覧にHyper-V(Hyper-VマネージャーとHyper-V仮想マシン接続)が現れます.
②仮想マシンの作成(新規)
Hyper-Vマネージャーを起動します.
操作タブの新規⇒仮想マシンと進みます.
仮想マシンの新規作成ウイザードが起動します.
・開始する前に :
”次へ”をクリック
・名前と場所の指定 :
名前の欄に仮想マシンの識別名を入力.
仮想マシンを別の場所に格納する場合には,チェックを入れて,場所をしています.
”次へ”をクリック
・メモリの割り当て :
割り当てるメモリ量を指定します.Windows7の場合は,2GB位は必要です.
”次へ”をクリック
・ネットワークの構成 :
初めてだと接続先は存在しませんので,接続しないのままにしておきます.あとで,設定します.
”次へ”をクリック
・仮想ハードディスクの接続 :
名前と場所を指定します.
サイズも指定します.Windows7なら40GBくらいあると十分です.容量可変で作成されます.
”次へ”をクリック
・インストールオプション :
ブートCD/DVD-ROMからオペレーティングシステムをインストールするをチェック.
インストールDVDの場合は,物理CD/DVDドライブをチェックし,ドライブレターを指定する.
イメージファイルからインストールする場合は,ISOファイルのある場所を指定する.
”次へ”をクリック
・要約 :
仮想マシンの新規作成ウイザードの完了画面で,内容を確認し,”完了"をクリック
これで,仮想マシンが作成され,OSのインストールが始まります.
通常のOSインストールと同じ手順で進めてください,
※注意:仮想マシンのOSも,1ライセンス必要です.未認証の新しいOSを用意してください.
③仮想ネットワークの設定
Hyper-Vマネージャーの操作タブ内,仮想スイッチマネージャーを選択します.
仮想スイッチマネージャーが起動します.
仮想スイッチの作成で,”外部"を選択し,”仮想スイッチの作成”をクリック.
名前の確認(必要なら変更),外部ネットワークでLANコントローラーを指定します.
”OK”をクリックすると,ネットワークの変更を適用の確認画面が出ます.
一時的にネットワーク接続が維持できなくなりますので,ホスト側で問題がないようにしておいてください.
”はい”をクリックして,作成終了です.