インテル バーチャライゼーション・テクノロジーインテル バーチャライゼーション・テクノロジー(Intel Virtualization Technology、Intel VTまたは単にVTと略される)とは、インテルによって開発された仮想化支援技術のことである。 当初、インテルは開発コードネームからVanderpool Technologyという名称を用いていた為[1]、現在でもVTをVanderpool Technologyの略とする表記が散見される[2]。また、VT-x を指して単に Intel VT と呼称する場合もある[3]。 概要Intel VTは、仮想マシンモニタによる複数のオペレーティングシステム (OS) の並行動作をより効率的に行うための支援技術である。 VT機能がなくても、すべてソフトウェア的に仮想化技術を実装し、複数のOS(ゲストOS)を実行することは可能である。しかし、その場合パフォーマンスの低下を招いたり、ゲストOSに変更が必要となる場合もある。ハードウェア側で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に対応している[4]。 AMDでは同じコンセプトの機能をAMD Virtualization(AMD-V)として開発し、2006年5月以降に発表されたCPUに実装しているが、Intel VTと互換性はない。 仮想化支援技術通常、オペレーティングシステムは、リングプロテクションで特権レベルと、ユーザーレベルの二つを使って実装されている(その中間のリングはかつては利用されていたが、現在は未使用の資源である)。仮想マシンモニタでは、スーパーバイザー(ハイパーバイザではない)が所属するホスト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-xVT-x は、Intelによるx86仮想化の実装例である。単に Intel VT と呼称する場合もある[3]。
VT-iVT-iは、IA-64上に実装された仮想化支援技術である。VT-xとほぼ同じ機能を有するが、特にゲストOSに対する仮想CPUリソースの割り当てを柔軟に構成できる特徴を持つ。 VT-dダイレクト I/O 向けインテル VT(Intel VT-d)[3] とは、I/O処理の仮想化を支援する機能。VT-dなどのハードウェア的な仮想化支援が無い場合、仮想マシンモニタは、I/Oデバイスをエミュレートし、DMAのメモリ領域のリマッピングを行う必要がある。VT-dでは、ハードウェア的にDMA転送時のリマッピングを行うようにする。この場合、通常のデバイスドライバを使用することができ、利便性や性能が向上することになる。 メモリアクセスはチップセット側の機能であるため、次世代のチップセットで対応する予定である。Intel 3シリーズチップセットでは違う容量のDRAMメモリを混載した場合に問題が出るため利用ができない場合がある。 VT-cVT-c (Virtualization Technology for Connectivity) は、均衡的なサーバー性能の為の最適なI/Oの仮想化を支援する、各種技術の総称[3]。Virtual Machine Device Queues (VMDq)、Intel I/O Acceleration Technology (I/OAT)、Single Root I/O Virtualization (SR-IOV) で構成される[5]。Intel QuickData Technology は I/OAT の一コンポーネントである[6]。 関連項目
参照
外部リンク
|