「インテル® バーチャライゼーション・テクノロジー」とは!?
・CPU,チップセット,BIOS,すべてのレベルで仮想化をハードウエアとして支援
・複数のOSを独立したパーテーションで実行
・ハードウエアで仮想化を支援し,セキュリティーとパフォーマンスに貢献
バーチャライゼーション・テクノロジーとは,仮想化技術のことを指し,インテル バーチャライゼーション・テクノロジー は,ハードウエアレベルで仮想化を支援する技術の総称です.
ここで,仮想化を支援する技術と書きましたが,インテル バーチャライゼーション・テクノロジー自体で仮想化は実現できません.あくまでも,仮想化を支援するハードウエア技術であり,仮想化の実現にはソフトウエアが必要です.
仮想化マシンソフトウエアの代表的なものに,Windows7Proで使われたXPモード(正式には,Virtual PC)や,Virtual Box,VMware Playerなどがあります.
これらの仮想化マシンソフトウエアは,ホストOSと仮想OS間で,仮想マシンモニタ(VMM)として機能します.このVMMの処理をハードウエアレベルで支援するのがバーチャライぜーションテクノロジーとなります.
具体的には,VT-xとVT-dという形で,実現されています.
VT-x とは
VT-x は,CPUに実装されたバーチャライゼーション テクノロジーになります.
CPUは,その性格上,実行するレベルを4段階(リング0,1,2,3)に分けています.リング0が一番特権が高い設定となり,システムに影響を与える命令やデータへのアクセスが可能です.
ホストOSも仮想OSも仮想OSを動かすVMMも,必然的にリング0が必要となりますが,同一レベルのリング0なので,必然的に競合が起こります.この競合は,VMMのソフトウエアで処理され,回避されているのですが,パフォーマンスの低下を招いてしまっています.
そこで,このVMM処理に適した特殊なモードを用意し,ソフトウエアではなく,ハードウエア上で複雑な処理を行うようにしていました.これが,VT-xとなります.
このため,パフォーマンスが向上するだけでなく,リング0の命令に対する動作を,ハードウエアで管理するため,ソフトウエアによる攻撃から,よりセキュアになりました.
VT-d(Intel Virtualization Technology for Directed I/O) とは
VT-d は,I/Oまわりに実装されたバーチャライゼーション テクノロジーになります.
ハードウエアリソースは,仮想マシン同士が共有する必要があります.このため,VMMでは特殊なドライバーを用意して,仮想マシンや仮想OSからハードウエアを使えるようにしていました.
これらの処理をハードウエア処理で代替えする技術が,VT-dとなります.
このVT-dを介在させることで,仮想OS上のアプリケーションは,各I/Oハードウエアデバイスに,OS標準のドライバーから直接アクセスできるようになり,パフォーマンスの向上に貢献しています.
また,VMMのソフトウエア処理が介在しないため,信頼性も向上しています.
仮想マシンであることを感じさせないパフォーマンスを引き出す Intel VT
仮想化が一般的になったのは,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”をクリックすると,ネットワークの変更を適用の確認画面が出ます.
一時的にネットワーク接続が維持できなくなりますので,ホスト側で問題がないようにしておいてください.
”はい”をクリックして,作成終了です.
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。