インテル バーチャライゼーション・テクノロジーとは、
インテルが開発した仮想化支援技術です。
★☆ 仮想化って何ですか? ☆★
ここで言う『仮想化』とは、1つのハードウェア上で
複数のOSを並行に動作させることを言います。
例えば、あなたが勉強の為や、自分で作ったサイトの表示検証の為に
Windows 8、Windows 7、Windows Vista、Windows XPの環境が必要で
あった場合を考えてみます。
一番単純な解決方法は、それぞれ個別にPCを用意することですが、
費用、場所等の問題がありますので、なかなか実現は難しいです。
Windows 8 ProがインストールされたPC環境(A)があるとします。
このPC環境(A)上で、マルチブート(※1)という手法で解決しようとした場合には、
OS切り替え毎にPCを再起動する必要があり、シームレスに使える環境とは言えません。
※1 複数のOSをハードウェアレベルで切り替えて使用する。
具体的にはOSのディスクを複数持ち、PCの起動時に
どのOSが入ったドライブで起動するかで切り替えます。
PC環境(A)だけで簡単にかつ、シームレスに使える環境を準備する方法として、
Windows 8 Proの「Hyper-V」(※2)を使用し、OS上に仮想マシンを構築後、
各OSをインストールします。
※2 Hper-Vとは、マイクロソフトのOS上での仮想化技術です。
サーバーOS用として開発されましたが、Windows 8 Proにおいて
利用できるようになりました。
この手法では、Windows 8で操作をしつつ、任意の仮想マシンを
稼働させて、簡単に、かつ別OSが仮想ハード上で即起動できるという
検証環境を実現することが出来ます。
この場合、ホストOSがWindows 8 Pro、
ゲストOSがWindows 7、Vista、XPという事になります。
テストするサイト側から見ると、ネットワークを通じて
それぞれの別のOSからアクセスされたように見える為、
4つのOS環境を1つのPCで賄っていることとなります。
★☆ 仮想化支援技術が必要なのは何故ですか? ☆★
仮想化支援技術があると、仮想化されたOS上での動作がより快適になるからです。
仮想化環境で計算を実行した場合、概略として次のような処理となります。
『ゲストOSでの実行指示』→『ホストOSの仮想化層でハードウェアへの協調と計算指示』
→『ハードウェアで処理』→『ホストOSの仮想化層でゲストOSに返答』
→『ゲストOSで結果反映』
どうしても処理が完了するまでの間にホストOSでの中継と、
ホストOSとのハードウェア処理優先の切り替えがあるために
処理としては遅延が発生してしまいます。
※OS側は仮想化で動くことを前提としていないため、複数動かすと
同じメモリのアドレス、同じハードウェアへの動作指示を出して
指示が競合してしまいます。
各OS間でどのハードをどのように動かすか仮想化したソフトウェア上で
協調させる動作が必須となります。
■協調の例
CPUプロセッサモード変換による遅延
メモリアクセスのアドレス変換による遅延
IOデバイスドライバ二重処理による変換の遅延
複数OSのプロセスを1つのCPUで共有して処理する為の切り替え遅延
この協調による遅延は、ハードウェアに直接インストールした
非仮想化環境と比べて一定の割合の処理時間が長くなる事として表れてきます。
処理時間がどれだけ長くなるかは、使用する仮想化ソフトウェアによって変わりますが、
従来の仮想化層をソフトウェアで計算してエミュレーションする方法から、
仮想化支援技術を使用したエミュレーション環境へ移行することで、
より効率の良い、短時間で計算が完了する環境を構築することが出来ます。
■仮想化支援技術の主なポイント
・CPU内の処理における仮想化モードの実装
・CPUの命令セット内に仮想化モード用の制御命令の追加
・仮想マシン・マネージャー(VMM)動作における効率的な仮想IO切替制御の実装
ストレスなく、簡単に複数のOSを使用する為には、また、言い換えれば効率よく
ハードウェアの性能を十全に発揮した仮想環境を構築するには、仮想化支援技術を
利用した仮想化が必須となってきています。
★☆ 個人で利用できる簡単な仮想化ってありますか? ☆★
先ほども例に示したWindows 8 Proに搭載されている「Hyper-V」ですが、
バーチャライゼーション・テクノロジーが利用可能なハードウェア環境で
実現できるもっとも身近な仮想化と思われます。
Webサービスという意味であれば、マイクロソフトのテクノロジーサポート
サイトである「Technet」は、同仮想化を使用してサイト公開している
一番大規模な例ですね。
お手ごろに作成できるWindows 8 Proの仮想化環境は、どのような事ができるのか
検証してみたいと思います。
身近な仮想化 Windows 8 Proでの「Hyper-V」はどの程度のパフォーマンスがでるの?
★☆ 仮想化の動作要件ってありますか? ☆★
バーチャライゼーション・テクノロジーを利用できるハードウェア環境は
以下のポイントを満たすことが必須となります。
・Intel vPro対応CPUである事(※オーバークロック可能なKモデルは対象外)
・Intel vPro対応チップセット搭載マザーボード&BIOSである事
対応するチップセットの一覧はこちらとなります。
また、ご自身のCPUが対応しているか簡単に調べるには、
こちらのツールを実行して確認することもできます。
(※Windows環境チェック用ツールです。言語:日本語のダウンロード実施下さい。)
ダウンロードした.msiファイルを実行すると、インストーラーが実行されます。
インストール完了後は、自動的にアプリが立ち上がりますので、
CPUテクノロジータブを選択して、インテル バーチャライゼーション・テクノロジーが
対応しているかご確認ください。
CPUが対応していたら、あとは、マザーボードの対応ですが、
こちら
のページに記載されているチップセットが対応しています。
抜粋しますと、以下のチップセットとなります。
今回レビュー用にテストさせていただいているDQ77MKというインテル製
マザーボードもしっかりと記載されています。
では、仮想環境を構築してみましょう。
★☆ Windows 8 Proで仮想環境を作ってみよう! ☆★
それでは、ホスト側OSとして、検証機にWindows 8 Proを
インストールします。
インストール直後では、実のところ、仮想化を構築する
「Hyper-V」のサービスは一切インストールされていない為、
まずはこのサービスをインストールする所から実施します。
コントロールパネルを開き、プログラムタブ内の
Windows の機能の有効化または無効化をクリックします。
Windowsの機能一覧が出てきますが、Hyper-Vの+を開くと
図左のように最初はどれにもチェックがついていませんので、
図右のようにチェックを入れて、OKを選択します。
インストールが実行され、しばらく待つと、下記の通り
再起動を促されるので、OSの再起動を実施します。
再起動完了後には、サービスとして下記の通りHyper-V関連の
サービスが登録され、アプリケーション実行時に
サービスが起動するようになっています。
これで仮想化アプリケーションの準備が完了しました。
再起動後のデスクトップには、下記の2つのリンクが
増えていますので、Hyper-Vマネージャーをクリックして
起動します。
起動後の画面は下記のとおりとなります。
自分のPCのホスト名(今回でいうとGARP-VPRO)にて
設定を行っていきます。
ホスト名を右クリックすると、各種設定のパネルが開きますので
新規 → 仮想マシン をクリックします。
仮想マシンの新規作成ウィザードが起動しますので、
次へをクリックします。
新しい仮想マシンの識別名と、仮想マシンのシステムドライブを
ローカルマシンのどこに配置するかの設定を聞いてきます。
今回は、わかりやすいようにKASOU1というPC名を設定すると共に、
Cドライブ配下に別システムのシステムドライブを配置したくないので
Dドライブ(@このドライブもSSDです)にKASOUフォルダを配置し、
その下にシステム名フォルダを作成し、その配下にファイルを
配置するように設定しました。
次へを押して、メモリ設定に移動します。
次は、仮想マシンへどの程度メモリを割り当てる設定とするか確認が
出てきます。初期設定では、512MBの割り当てとなります。
今回、ホストなるPCには、16GBのメモリを搭載しているので、
十分な余裕があります。クライアントとして4GBもあれば
十分な動作ができますので、4096MBを割り当て、次へをクリックします。
ネットワークの構成ですが、この段階では、まだ仮想のネットワーク
デバイスを作成していないので選択肢がありません。
そのまま、次へをクリックします。
仮想ハードディスクの詳細設定を求められます。
デフォルトで作成するハードディスクは、
・可変容量の形式
・サイズは127GB
となっており、現時点では、この設定で問題ないため、
そのまま次へをクリックします。
仮想マシン作成してそのままOSをインストールしないので、
後でオペレーティングシステムをインストールするを
選択したまま、次へをクリックします。
作成する予定の仮想マシンの要約が表示されるので、
作成内容に認識の相違がないことを確認し、完了をクリックします。
Hper-Vマネージャに新しくKASOU1という仮想マシンが登録できました。
作成したシステムディスクの実ファイルががどうなっているか
確認しますと・・・
なんと、たった4MBの領域を持ったファイルとなっています!
可変領域を選択したので、最小限というわけですね。
これから、OSをインストールしていくと、必要に応じて
容量が増えていきました。
それでは、次にネットワークのセットアップを進めたいと思います。
仮想マシンマネージャの操作 → 仮想スイッチ マネージャーをクリックします。
仮想スイッチの作成で、どの種類のスイッチを作るか聞かれます。
仮想PCには、外部と接続するNICが必要となるので、外部を選択し、
仮想スイッチの作成をクリックします。
新しいスイッチがどのような設定で動作させるか聞いてきますので、
名前はわかりやすいように変更し(今回はそのままとします)、
どのNICを使用して通信するかを選択します。
NICが二つある場合は、ホストOS用と、ゲストの仮想マシン用に
分けてみるのもいいと思いますが、今回は1つのNICで動作させる事が
出来るのか確認したいので、メインのNICを選択してOKをクリックします。
仮想ハードウェア(KASOU1)を右クリックして設定をクリックすると、
下記の通り設定済みの内容を変更することができます。
ネットワークアダプターを選択し、新しい仮想スイッチへと切り替えて
OKをクリックすると、ハードウェアの準備完了です。
ここから、OSをインストールしていきます。
ホストマシンの光学ドライブ(F)へOSのディスクを挿入します。
仮想マシンを右クリックして接続すると、未起動の状態のマシンモニタが
起動しますので、メディア → DVDドライブ → F:のキャプチャ をクリックします。
(※Fは今回設定したハードでの光学ドライブです。適宜マシンに合った
ドライブが表示されます)
これで、仮想の光学ドライブに、OSディスクがマウントされたことになります。
では、仮想マシンに電源を入れます。
グリーンの電源スイッチを押すと仮想マシンの電源ONとなります。
そのままロードを待ちますと・・・はい、OSのセットアップ画面が
ロードされました!!
今XPの設定画面を見ると、懐かしいですね。。。
以降は、OSのセットアップを順次進めていくと、設定できます。
一通りOSの設定が完了したら、統合サービスのドライバを設定します。
OSが起動した状態で、マネージャ上の操作 → 統合サービス
セットアップ ディスクの挿入を選択します。
自動でドライバのインストールが始まり、ドライバ不明だった各種
デバイスが認識されます。
なお、仮想マシンの起動時に下記の通り警告が表示され起動できない場合は、
マザーボードのBIOS設定において、Intel VTが無効化されているという事が
原因ですので、BOIS設定を見直してください。
★☆ 仮想環境を動かしてみよう!! ☆★
では、仮想環境を実働出来る状態に持っていきます。
なんといっても、OSのセキュリティを守ることが先決ですので、
セキュリティソフトをインストールしつつ、OSのセキュリティパッチを
適用します。
仮想マシン上のタスクマネージャでは、ネットワークの帯域が増えている事から
通信を行っている事を見ることができますが、同じタイミングでのホスト側の
タスクマネージャでは、イーサネットの帯域は増えていません。
仮想化における資源の消費は、ホスト側では把握しにくいようですね。
メモリ等固定で消費する内容については、あらかじめシステム側から
使用できないようにロックされているので、その辺りが関係しているのかも
しれませんね。
それでは、仮想環境と、実環境で、どの程度の性能が発揮できるのか
チェックしていってみましょう。
★☆ 確認その1:仮想環境のグラフィック性能をチェックしてみましょう! ☆★
仮想環境で、3Dゲームなどが動くかどうかというところは
気になる点でありますので、グラフィック性能がどの程度発揮できる
物なのか確認したいと思います。
今回は、Intel Core i7 3770に搭載されているHD 4000の性能がどの程度
発揮できるかという点に焦点を当ててみようと思ったのですが・・・
あれれ・・・?
『あなたのグラフィックカードは、このテストに必要な機能をサポートしていません。』
どういう事なんでしょうか?
という事で、CPU-Zでのグラフィックの認識を見てみますと・・・
ぐらふぃっくでばいす・・・
なるほど~、つまりは、仮想で使用されるグラフィックはあくまで
表示だけができる機能をエミュレートしたものであり、
デバイスを本物(HD 4000)としてエミュレートしたものではないので、
3Dゲーム等は出来ないよって事ですね。
結論その1:3Dゲームは出来ません! Direct Xとか使うゲームも無理でした!
★☆ 確認その2:CPUの性能って発揮できますか? ☆★
グラフィック性能の発揮については、残念な結論のならざるを得ませんでしたが、
CPUの性能はどこまで発揮できるのでしょうか?
仮想環境ってどこまで早く動かせるのかが気になりますよね!
ということで、先ほどと同じくCINEBENCH 11.5のCPUチェックにて
比較を行ってみます。
■Windows XPにおいての実行結果(左 2コア時、右 4コア時)
2コア2スレッドを仮想環境に与えた際は、2.37ptsで、
4コア4スレッドを仮想環境に与えた際は、4.85ptsという結果が出ていることから
仮想環境では、CPUコア数を渡せば渡すだけ、ちゃんと反映して
性能を発揮していることが見て取れますね。
ホスト環境側で、4コア8スレッドの計算時には、7.14ptsであることから、
4コア4スレッドで8スレッドの半分以上の結果が出ていますので
上々というところでしょうか。
なお、Windoes 8 Proを仮想環境のゲストOSとした場合の結果は、
下記の通りでした。
2コアで2.85pts、4コアで5.40ptsという結果は、Windows XPでの
計測と比べて明らかにいい結果が出ていますね。
これは、仮想化するOSによっても発揮されるパフォーマンスが違うという結果ですが、
どちらかというと、マルチコアが当たり前になっている最近のOSの方がより良い
結果が出せているという感じに見受けられます。
結論その2:VT-d対応環境では、CPUの性能は十分に発揮されています!!
★☆ 確認その3:ストレージの性能って発揮できますか? ☆★
CPUの性能が十分に発揮されることが分かったので、他にPCが遅くなるボトルネックとして
考えられるのはストレージの速度による差がありますね。
今回テスト用で構築したハードウェアにおいて、
1.DQ77MKのSATA3(6Gbps)ポートに接続したSSD
2.PCIeに接続したRAIDカード(MegaRAID SAS 9265-8i)による6台のSSD-RAID
の2つを計測してどの程度の性能が出せるのか確認したいと思います。
ハードウェア詳細
・DQ77MK接続SSD(Intel SSD 520 240GB)
・RAIDカード(MegaRAID SAS 9265-8i)
・RAID用SSD(PLEXTOR PX-128M3P 6台)
まずは、ホスト側でSSDを計測した結果は、下記の通りでした。
以前に計測した結果から多少差異はありますが、
何度か計測しても変わりなかったので、これが基準点となります。
Windows XPをゲストOSとして構築した結果は、このような結果となりました。
Windows 8 ProをゲストOSとして構築した結果は、このような結果となりました。
グラフで比較しますと下記の通り結果が見えてきます。
Intel SSD 520 240GB 比較
ホスト側のOSでの計測結果と、ゲスト側のWindows 8 Proでの計測結果は
ほぼ大きな差異はないように見受けられますが、ゲスト側がXPの場合は
計測結果が振るわない結果となっています。
RAID SSD比較
計測の誤差が多少あると判断しても、やはり、先ほどの結果と同じくXPでの
結果が振るわない状況が続いていますね。
結論その3:使用するゲストOSにより、発揮できる性能に差があり、新しいOSほど早いですね!
★☆ 確認その4:PCIeの拡張カードは認識できますか? ☆★
仮想OSでの運用ができるのであれば、古いOSで使いたいソフトやハードは
いくつかあります。
今回、PCIeやPCIカードが認識できないか検討してみましたが、
まず、PCIカードは、Intelの仮想化技術で対象外ですので、
PCIeの録画カードを認識できないか検討してみました。
ハードウェアの新しい追加項目として選択できる内容は・・・
残念ながら存在しません。
調べてみた範囲では、仮想化されたOS側で使用するためには、
・ハードウェア側(PCIeカード側)に、仮想化対応のモードが必要
・仮想化するソフトウェアでも対応が必要
という感じでしたので、どの機器でも認識できるわけではないようです。
その為、Windows 8 Pro環境では、ネットワークカードの増設と、
ストレージ系の増設以外は難しいという事になります。
外部にネットワークアダプタ経由でアクセスできるようにすれば
デバイスとして使えなくはないですが、利便性と、1つのハード内で
完結しているという点において許容範囲とできるかどうかで
実用性に疑問が出てきますので、当方の考えではテスト目的以外の
実用性は難しいという事になりますね。
結論その4:追加できるハードはネットワークカードとストレージのみ!
★☆ まとめ:Windows 8 Proで実現する仮想化 ☆★
今回、バーチャライゼーション・テクノロジーを利用できるハードウェア環境での
実演として、Windows 8 Proでの仮想化を実践してみました。
実際に導入前には、7割程度の性能が発揮できるのだろうかと心の中で
疑問視していましたが、実際蓋を開けてみると、9割程度の性能が出ている結果と
なりましたので、素直に驚くと共に、サーバー環境での運用方法について
興味が出てきました。
また、クライアントとしてのハード増設の可能性がほぼないという点において
個人が使う端末という意味では、使い道があまりないように見受けられます。
どちらかというと、この仮想化で恩恵を受けそうなのは、ソフトウェアの開発や
動作確認テストをするような方ではないかと想像いたします。
別の場所でも、Windows 8 Proさえあれば、仮想HDDとなっている
VHDXファイルを持っていく事で、同じ設定のOS環境が動くという事で重宝しそうです。
個人的には、セキュリティパッチの適用テストの端末として使うのが
現実的かなと思いますが、仮想化するにあたり、ゲスト側のOSのライセンスが
別途必要なので、ちょっと厳しいかなとも思っています。
ハードの性能は思った以上に発揮されますが、個人での実用の利用環境と考えると、
利用方法が限られ、仮想化支援機能は、お仕事をされる方向きの機能だと結論付けます。
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。