インテル バーチャライゼーション・テクノロジー

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索

インテル バーチャライゼーション・テクノロジー(Intel Virtualization Technology, Intel VTまたは単にVTと略される)とは、インテルによって開発された仮想化支援技術のことである。

目次

[編集] 概要

Intel VTは、仮想マシンモニタによる複数のオペレーティングシステム (OS) の並行動作をより効率的に行うための支援技術である。

VT機能がなくても、すべてソフトウェア的に仮想化技術を実装し、複数のOS(ゲストOS)を実行することは可能である。しかし、その場合パフォーマンスの低下を招いたり、ゲストOSに変更が必要となる場合もある。ハードウェア側でVTに対応することによって、これらの問題点を解決する仮想マシンモニタの実装を支援することができる。

インテルでは、Itanium 2などのIA-64アーキテクチャ用にIntel VT-iIntel Pentium DなどのIntel 64アーキテクチャ用にIntel VT-xを、また、I/O仮想化機能をIntel VT-dとして開発した。開発コードネームVanderpoolとして呼ばれていたそれらの機能を総称してIntel VTとしている。Nehalemマイクロアーキテクチャ以降は全てのCPUがVT-xに対応している。

AMDでは同様の機能をAMD Virtualization(AMD-V)として実装し、2006年5月以降に発表されたCPUに搭載している。

[編集] 仮想化支援技術

通常、オペレーティングシステムは、リングプロテクションで特権レベルと、ユーザーレベルの二つを使って実装されている(その中間のリングはかつては利用されていたが、現在は未使用の資源である)。仮想マシンモニタでは、スーパーバイザー(ハイパーバイザではない)が所属するホストOSを特権リングに、ゲストOSカーネルを中間リングに配置する。これによりゲストOSカーネルで特権命令が使われると特権違反が発生し、スーパーバイザはゲストOSがホストOSに対して資源を要求した事を検出できる。

ここでいくつかの問題が発生する。ゲストOSで使われるOSは本来特権レベルで動作している事を前提とした設計になっている。その為、例えば割り込みの禁止や許可といった非常に細粒度の資源要求が発生する事もある(x86で言うところのCLI,STI命令はスーパーバイザでは状態フラグの書き換え程度の動作しかする事がない)。しかし、リング間状態遷移はコンテキストスイッチを発生させ、その都度CPUコンテキストの全て・全レジスタ内容とフラグがメモリに書き出される事になる。粒度の細かい操作でこのような動作が頻繁に行われる事は資源の浪費であり、仮想化されたシステム全体の性能低下を招く。I/Oアクセスにおいても同様の事が言える。

仮想化支援技術では特権リングの扱いを改めてこれらの細粒度の操作を制御したり、あるいはスーパーバイザの操作を代行する事により、より粒度の粗い処理の単位として取り扱う事によって無駄を排除する事にある。割り込み制御一つをとっても、この操作の無駄を排除する事により仮想化環境の性能は概ね20%以上の性能向上が見られる。VT-xとVT-iは命令レベルでの改善、VT-dはI/Oレベルの改善をはかったものである。

[編集] Intel VTの構成要素

[編集] VT-x

VMXという動作モードの追加
i386以降の32ビットOSでは通常、リング0でカーネル等が動作するが、仮想マシンモニタはそれより高い特権モードで動作させることが望まれる(VT支援がない場合、カーネルをリング1で動作させる方法も取られた)。このため、リング0-3とは独立して、VMX rootVMX non-rootという動作モードを新たに設けた。VMX rootモードで仮想マシンモニタを動作させ、VMX non-rootモードでゲストOSを動作させる。ゲストOSで仮想化に影響のある命令が発行された場合、VMX rootモードに遷移し、仮想マシンモニタは適切な処理を行うことになる。
VMCS(Virtual Machine Control Structure)
仮想マシンモニタは、VMCSと呼ばれるデータ領域を利用し、各仮想マシンを制御する。VMX non-rootモードで動作していたCPUの状態の保存や読み出しをこの構造を利用して行う。ゲストOSを切り替える際のオーバーヘッドを軽減することができる。その他、仮想マシンを起動する命令や、再開する命令、VMXモードへ遷移・離脱する命令などが追加されている。

[編集] VT-i

VT-iは、IA-64上に実装された仮想化支援技術である。VT-xとほぼ同じ機能を有するが、特にゲストOSに対する仮想CPUリソースの割り当てを柔軟に構成できる特徴を持つ。

[編集] VT-d

I/O処理の仮想化を支援する機能。VT-dなどのハードウェア的な仮想化支援が無い場合、仮想マシンモニタは、I/Oデバイスをエミュレートし、DMAのメモリ領域のリマッピングを行う必要がある。VT-dでは、ハードウェア的にDMA転送時のリマッピングを行うようにする。この場合、通常のデバイスドライバを使用することができ、利便性や性能が向上することになる。 メモリアクセスはチップセット側の機能であるため、次世代のチップセットで対応する予定である。

[編集] VT-c

インテルの Virtualization Technology for Connectivity (VT-c) は、I/O仮想化を支援する各種技術を集めたものである。Virtual Machine Device Queues (VMDq)、Intel I/O Acceleration Technology (I/OAT)、Single Root I/O Virtualization で構成される[1]。Intel QuickData Technology は I/OAT の一コンポーネントである[2]

[編集] 関連項目

[編集] 参照

  1. ^ Intel, “Intel Virtualization Technology for Connectivity” (application/pdf), プレスリリース, http://softwarecommunity.intel.com/isn/downloads/virtualization/pdfs/20137_LAD_VTc_Tech_Brief_r04.pdf 2008年7月5日閲覧。 
  2. ^ http://www.intel.com/network/connectivity/vtc_ioat.htm Intel® I/O Acceleration Technology

[編集] 外部リンク

個人用ツール
名前空間
変種
操作
案内
ヘルプ
ツールボックス
他の言語