Agile Cat — in the cloud

Nehalem と仮想化

Posted in Virtualization by Agile Cat on March 31, 2009

仮想化における EPT と VT-d の効果

Best Practices for Paravirtualization Enhancements from Intel Virtualization Technology: EPT and VT-d

Last Modified On
October 2, 2008 10:20 AM PDT

Overview

Paravirtualization は仮想化されたシステムのパフォーマンスを向上させるためのテクニックであり、Virtual Machine Monitor (VMM)がソフトウェアにより動的にエミュレートしなくてはならないハードウェア・リソースの割合を減らすことで、完全な仮想化のシナリオを実現する。これまでのエミュレーションは、バイナリー・トランスレーションを伴っている。そのエミュレーションは、ホスト OS との互換性を得るために、VMM 内のソフトウェア・ベースのプロセスが、ゲスト OS からのハードウェア・コールをトラップしトランスレーションする流れの中で行われていた。 このトランスレーションにおいて必要とされる計算により、本質的な処理オーバーヘッドが生じ、環境全体のパフォーマンスとスケーラビリティが減少していた。

Paravirtualization は、Virtual Machines (VM) と適切なドライバを提供する、VMM 内のソフトウェア・インターフェイス構築することで、また、動的にエミュレートされるハードウェアに代わる要素を構築することで、このバイナリ・トランスレーションへの依存を取り除く。また、一般的な Paravirtualization ではゲスト・オペレーティング・システムの修正が必要とされるが、Xen や VMware などの多様なゲスト OS を、Intel VT により修正を施すことなく実行できるようになる。

EPT Old 09_03_31 

従来からの仮想化テクノロジー

EPT New 09_03_31 

Nehalem で実装される仮想化テクノロジー

Hardware Page Table Virtualization は、メモリの仮想化についてハードウェア・アシストを、VM 間での物理メモリに対するパーティショニングとアロケーションを含めて提供する。 メモリを仮想化するためには、物理メモリ内で実際には連続的に確保されていない、仮想的に連続するアドレス空間を VM が参照しなければならない。そのため、ゲスト OS は、仮想と物理のメモリ・アドレス間のマッピングを、ページ・テーブルにストアする。

物理的なシステム・メモリに対して、ゲスト OS はネイティブのダイレクト・アクセスを持たない。 そのため、同時に多数のVMを受け入れるための、メモリの仮想化における別のレベルが存在してしまい、それを VMM が処理しなければならなくなる。つまり、物理メモリとゲスト OS ページ・テーブル間のマッピングが、VMM の中で行なわれなくてはならない。 メモリを仮想化するための、この付加的なレイヤにおける処理速度を向上させるため、Intel と AMD はハードウェア・アシストついて発表した。 それらのテクノロジーは、Intel では Extended Page Tables(EPT)と呼ばれ、AMD では Nested Page Tables (NPT)と呼ばれるが、概念的なレベルにおいて極めて類似したものとなっている。

Intel Virtualization Technology for Directed I/O (Intel VT-d) は、DMA(direct memory access)の再マッピングと、デバイスが生成する割り込みをサポートすることで、I/O デバイス間の分離を促進する。 この VT-d を利用する VMM は、I/O リソースを特定の VM へ向けて、ダイレクトに割り当てることができる。 したがって、エミュレートされたデバイス・ドライバの提供を VMM に要求することなく、無修正のゲスト OS から、それらのリソースへ向けたダイレクト・アクセスが達成される。 さらに、I/O デバイスを特定の VM に割り当てる場合には、そのデバイスは他の VM からアクセスされなくなり、同様に、他の VM はそのデバイスにアクセスできなくなる。

この割り込みに関する仮想化と DMA 転送により、VM におけるデバイス・コントロールが、他の VM がコントロールするメモリ・スペースへのアクセスから隔離される。 そして VT-d の下では、それぞれの物理メモリ領域と、それぞれの I/O デバイスとのマッピングが、I/O memory management unit(IOMMU)に記録される。 その結果とし、アクセスを要求している I/O デバイスを識別しながら、メモリ・ロケーションに対するアクセスがコントロールされる。

VT-d に関する詳細およびソフトウェアに対するメリットについては、以下のドキュメントを参照して欲しい。

"IntelR Virtualization Technology for Directed I/O (VT-d): Enhancing Intel platforms for efficient virtualization of I/O devices"

Tagged with: , ,
%d bloggers like this: