14.2. 仮想デバイスの種類
仮想マシン (VM) に適したデバイスタイプを選択するには、パフォーマンス、互換性、および機能に関する要件を考慮します。
RHEL 10 の仮想化では、仮想マシンにアタッチできるいくつかの異なるタイプの仮想デバイスが提供されます。
- エミュレートされたデバイス
エミュレートされたデバイスは、広く使用されている物理デバイスのソフトウェア実装です。物理デバイス用に設計されたドライバーは、エミュレートされたデバイスとも互換性があります。そのため、エミュレートされたデバイスは柔軟性に非常に優れています。
ただし、エミュレートされたデバイスでは、特定の種類のハードウェアを忠実にエミュレートする必要があるため、対応する物理デバイスやより最適化された仮想デバイスと比較して、パフォーマンスが大幅に低下する可能性があります。
次の種類のエミュレートされたデバイスがサポートされています。
- 仮想 CPU (vCPU)。さまざまな CPU モデルから選択できます。エミュレーションのパフォーマンスへの影響は、ホストの CPU とエミュレートされた仮想 CPU の差異に大きく左右されます。
- PCI バスコントローラーなどのエミュレートされたシステムコンポーネント。
- SATA、SCSI、IDE などのエミュレートされたストレージコントローラー。
- ICH9、ICH6、AC97 などのエミュレートされたサウンドデバイス。
- VGA カードなどのエミュレートされたグラフィックカード。
- rtl8139 などのエミュレートされたネットワークデバイス。
- 準仮想化デバイス
準仮想化は、仮想デバイスを仮想マシンに公開する高速かつ効率的な方法を提供します。準仮想化デバイスは、仮想マシンで使用するために特別に設計されたインターフェイスを公開するため、デバイスのパフォーマンスが大幅に向上します。RHEL 10 では、ハイパーバイザーと仮想マシン間のレイヤーとして virtio API を使用することで、仮想マシンに準仮想化デバイスを提供します。このアプローチの欠点は、ゲストオペレーティングシステムで特定のデバイスドライバーが必要になることです。
可能な場合、特に I/O 集約型アプリケーションを実行している場合は、仮想マシンにエミュレートされたデバイスの代わりに準仮想化デバイスを使用することが推奨されます。準仮想化デバイスは、I/O レイテンシーを低減し、I/O スループットを増加させます。場合によっては、ベアメタルのパフォーマンスに非常に近い値を実現します。その他の準仮想化デバイスも、他の方法では利用できない機能を仮想マシンに追加します。
以下のタイプの準仮想化デバイスに対応します。
-
準仮想化ネットワークデバイス (
virtio-net) 準仮想化ストレージコントローラー:
-
virtio-blk- ブロックデバイスエミュレーションを提供します。 -
virtio-scsi- より完全な SCSI エミュレーションを提供します。
-
- 準仮想化されたクロック
-
準仮想化されたシリアルデバイス (
virtio-serial) -
仮想マシンとそのホスト間でメモリーを動的に分散するために使用されるバルーンデバイス (
virtio-balloon)。 -
準仮想化された乱数ジェネレーター (
virtio-rng)
-
準仮想化ネットワークデバイス (
- 物理的に共有されているデバイス
特定のハードウェアプラットフォームにより、仮想マシンはさまざまなハードウェアデバイスやコンポーネントに直接アクセスできます。このプロセスは、デバイスの割り当て として、または パススルー として知られています。
この方法で接続すると、物理マシンの場合と同様に、物理デバイスの一部の側面が仮想マシンで直接利用できます。これにより、仮想マシンで使用されるデバイスのパフォーマンスが向上します。ただし、仮想マシンに物理的に接続されているデバイスはホストからは利用できず、移行もできません。
それにもかかわらず、いくつかのデバイスは、複数の仮想マシンで 共有 できます。たとえば、場合によっては、1 台の物理デバイスにより複数の 仲介デバイス を提供し、それを異なる仮想マシンに割り当てることができます。
以下の種類のパススルーデバイスに対応します。
- USB、PCI、および SCSI パススルー - 一般的な業界標準のバスを仮想マシンに直接公開し、ゲストソフトウェアで特定の機能を使用できるようにします。
- シングルルート I/O 仮想化 (SR-IOV) - PCI Express リソースのハードウェアで強制された分離を可能にする仕様です。これにより、1 つの物理 PCI リソースを、複数の仮想 PCI 機能に分割する、安全かつ効率的な作業が可能になります。これは、通常、ネットワークインターフェイスカード (NIC) に使用されます。
- NPIV (N_Port ID virtualization) - 1 つの物理ホストバスアダプター (HBA) を、複数の仮想ポートと共有するファイバーチャネル技術です。
- GPU および vGPU - 特定のタイプのグラフィックスまたは計算ワークロード用のアクセラレーター。GPU によっては仮想マシンに直接接続できるものもありますが、一部のタイプでは、基本となる物理ハードウェアを共有する仮想 GPU (vGPU) を作成する機能も提供されます。
これらのタイプの一部のデバイスはサポート対象外であるか、RHEL と互換性がない可能性があります。仮想デバイスの設定に関するサポートが必要な場合は、Red Hat サポートにお問い合わせください。