web-dev-qa-db-ja.com

VGAパススルーは複数のVMインスタンスをサポートできますか?

LinuxKVMとQEMUを使用してVGAパススルーを設定する方法を説明するガイドがたくさんあります。しかし、私は疑問に思っていました...

同じビデオカードを同時に複数のVMに渡すことは可能ですか?いいえと思いますが、VMで両方の画面を使用できるようにしたいのですが、一方を特定の画面専用にしたり、切り替えたいときにビデオを再構成するためにゲストをシャットダウンしたりする必要はありません。

この質問 すでに質問されていますが、それは5年前のことで、状況が変わったのではないかと思います。

2
Wes Sayeed

これは、ビデオカードがサポートしている場合にのみ実行できますが、ほとんどの場合はサポートされていません。

ほとんどのビデオカードは、一度に1つのOSと通信することしかできないように設計されています。したがって、カードをホストOSに渡すことができます(その後、ホストOSのみがカードを使用できます)。または、(IOMMUを使用して)グラフィックカード全体を単一のVMに排他的に与えることができます。そうすれば、VMはそれを使用できますが、ホストOSは使用できません。他のVM。どういうわけか一度に複数のVMにカードを渡そうとすると、ゲストOSは両方とも一度にカードと通信しようとするため、どちらも正しく機能しません。単一のゲストOSの観点からは、次のようになります。グラフィックカードが不思議なことにあなたが求めていないことをし続けていたら。

これらすべての例外は、ビデオカードがハードウェア仮想化を明示的にサポートしている場合です。これにより、各VMにそれ自体の複数の異なるビューを表示でき、各VMは、の完全なグラフィックカードが表示されていると見なします。たとえば、 このAMDプレスリリース は、この機能を備え、一度に複数のVMにGPUアクセラレーションを提供できるグラフィックカードのセットについて説明しています。

2
Peter Maydell