IOMMUとは何ですか?VMのパフォーマンスが向上しますか?


28

私のマザーボードのチップセットはこの機能IOMMUをサポートしますが、仮想ハードウェアではなく実際の物理ハードウェアをVMに利用させることでVMのパフォーマンスが向上することを読んでいます(実際には理解していません)。

これにより、VMのパフォーマンスが本当に向上しますか?そして、もしそれがどうすればVirtualboxにその恩恵をもたらすことができますか?

回答:


21

要するに、IOMMUが役立つ唯一の方法は、HWリソースをVMに直接割り当て始めることです。それを持っているだけでは物事が速くなりません。

マザーボード/ CPUがこの機能を宣伝しているものを正確に知ることは役立ちます。IOMMUはシステム固有のIOマッピングメカニズムであり、ほとんどのデバイスで使用できます。

IOMMUは、Intel VT-dおよびAMD IOVの一般名のように聞こえます。この場合、デバイスを多重化できるとは思いませんが、これらすべての高度な仮想化命令が存在する前のPCIパススルーによく似ています:)。SR-IOVは異なり、周辺機器自体がサポートを提供する必要があります。HWは、仮想化されていることを認識しており、自身のHW スライスをVMに委任できます。多くのVMは、非常に低いオーバーヘッドで同時にSR-IOVデバイスと通信できます。

SR-IOVよりも高速なのはPCIパススルーだけですが、その場合、そのデバイスを使用できるのは1つのVMだけであり、ホストオペレーティングシステムでも使用できません。PCIパススルーは、ファイバーチャネルSANに接続することでメリットが得られる強力なデータベースを実行するVMに役立ちます。

HWに近づくと制限がありますが、たとえばライブマイグレーションを必要とする展開ではVMの移植性が低下します。これは、SR-IOVとPCIパススルーの両方に適用されます。

通常、デフォルトの仮想化Linuxデプロイメントでは、最初は非常に高速なVirtIOが使用されます。


それをマザーボードのユーザーガイドから読み、チップセットがそれをサポートしていれば、ホストハードウェアへの何らかの物理的アクセスを提供できると言っています。
ウリエレーラ

私はXen Wikiを読んだばかりで、IOMMUはSR-IOVもやっているように見えますが、私はXenを使用しておらず、Virtualboxはこれをうまく利用していないようです。
ウリヘレラ

いいえ、ほとんどのコンピューターにはIOMMUがありません。たぶんあなたはIO-APICを考えていますか?
psusi

1
実際、このウィキペディアの記事は、これをかなりよく説明しています:en.wikipedia.org/wiki/X86_virtualization。IOMMUサポートの大きな利点は、実行時に通過するデバイスを変更できることです。カーネル引数リストでデバイスの範囲を指定する必要があり、それらの周辺機器のみがパススルーに適格でした。IOMMUでは、必要に応じてデバイスを再マッピングできます。繰り返しますが、これは排他的アクセスです。ホストが使用するか、VMの1つが使用します。これは実際にはサーバー中心の機能です。
ppetraki

1
@UriHerrera KVMを使用することをお勧めします。KVMは、IntelとAMDの両方の仮想化拡張機能もサポートしています。より柔軟で、VirtualBoxにある機能を含むより多くの機能を備えています。
Oxwivi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.