インテル バーチャライゼーション・テクノロジー(Intel VT)とは
インテル バーチャライゼーション・テクノロジー(Intel Virtualization Technology)、通称Intel VTは、
インテルが開発した
仮想化支援技術の総称です。当初は開発コード名からVanderpool Technologyと呼ばれていましたが、現在ではVTという略称が一般的です。VT-xという名称で呼ばれることもありますが、これらはIntel VTの一部を指しています。
概要
Intel VTは、仮想マシンモニタ(
ハイパーバイザ)を用いて複数の
オペレーティングシステム(OS)を同時に実行する際に、より効率的な動作を可能にする技術です。
ソフトウェアのみで
仮想化を実装することも可能ですが、その場合、パフォーマンスの低下やゲストOSの変更が必要になることがあります。Intel VTのような
ハードウェア支援技術を利用することで、これらの問題を解決し、仮想環境をより快適に利用できます。
インテルは、Itanium 2などの
IA-64アーキテクチャ向けにIntel VT-i、
Pentium DなどのIntel 64アーキテクチャ向けにIntel VT-x、そしてI/O
仮想化機能としてIntel VT-dを開発しました。これらの機能を総称してIntel VTと呼んでいます。
Nehalemマイクロアーキテクチャ以降のCore i3以上の
CPUは、VT-xに対応しています。一方、AMDは同様のコンセプトでAMD Virtualization(AMD-V)を開発していますが、Intel VTとの互換性はありません。
通常のOSは、
リングプロテクションという仕組みを利用し、特権レベルとユーザーレベルの二つの階層で動作します。仮想マシンモニタでは、ホストOSを特権リングに、ゲストOS
カーネルを中間リングに配置します。これにより、ゲストOS
カーネルが特権命令を実行しようとすると、特権違反が発生し、仮想マシンモニタがその処理を検出できます。
しかし、ゲストOSは本来特権レベルで動作することを前提に設計されているため、割り込みの禁止や許可など、細粒度の資源要求が頻繁に発生します。
リングプロテクションにおけるリング間の状態遷移は、
CPUコンテキストの切り替えを伴い、性能低下を招きます。
仮想化支援技術は、特権リングの扱いを再定義し、これらの細粒度の操作を制御したり、スーパーバイザの操作を代行したりすることで、より効率的な処理を実現します。これにより、
仮想化環境の性能を大幅に向上させることができます。例えば、割り込み制御の最適化だけで、20%以上の性能向上が見られることがあります。
Intel VTは、命令レベルの改善を行うVT-xとVT-i、I/Oレベルの改善を行うVT-dで構成されています。
Intel VTの構成要素
VT-x
VT-xは、x86アーキテクチャにおける
仮想化の実装例であり、単にIntel VTと呼ばれることもあります。
VMX動作モードの追加
32ビットOSでは、通常リング0で
カーネルが動作しますが、仮想マシンモニタはより高い特権モードで動作する必要があります。このため、VT-xでは、リング0-3とは別にVMX rootとVMX non-rootという2つの動作モードが追加されました。仮想マシンモニタはVMX rootモードで、ゲストOSはVMX non-rootモードで動作します。ゲストOSが
仮想化に影響のある命令を発行すると、VMX rootモードに遷移し、仮想マシンモニタが適切な処理を行います。
VMCS (Virtual Machine Control Structure)
仮想マシンモニタは、VMCSというデータ領域を使用して、各仮想マシンを制御します。VMX non-rootモードで動作していた
CPUの状態の保存や読み出しをVMCSを使用して行います。これにより、ゲストOSの切り替え時のオーバーヘッドを削減できます。VMCSには、仮想マシンを起動、再開、VMXモードへ遷移・離脱する命令が含まれています。
VT-i
VT-iは、
IA-64アーキテクチャ向けに実装された
仮想化支援技術です。VT-xとほぼ同様の機能を持ちますが、ゲストOSに対する仮想
CPUリソースの割り当てを柔軟に構成できる点が特徴です。
VT-d
ダイレクトI/O向け
インテルVT(Intel VT-d)は、I/O処理の
仮想化を支援する機能です。VT-dがない場合、仮想マシンモニタはI/Oデバイスをエミュレートし、DMAのメモリ領域をリマッピングする必要があります。VT-dでは、
ハードウェア的にDMA転送時のリマッピングを行うことで、通常のデバイスドライバを使用でき、利便性と性能を向上させることができます。メモリアクセスは
チップセット側の機能であるため、対応する
チップセットが必要です。
VT-c
VT-c(Virtualization Technology for Connectivity)は、サーバー性能の最適化を目的としたI/O
仮想化技術の総称です。VMDq、I/OAT、SR-IOVで構成されています。
関連項目
仮想マシン
IOMMU
x86
仮想化
Microsoft
Hyper-V
Parallels Desktop
VirtualBox
Microsoft Virtual PC
Microsoft Virtual Server
VMware
Xen (仮想化ソフトウェア)
参照
インテル® バーチャライゼーション・テクノロジー
対応製品リスト(インテル)
*
チップセット・デスクトップボード一覧