Red Hat Training

A Red Hat training course is available for RHEL 8

10.5. 仮想デバイスの種類

RHEL 8 の仮想化は、仮想マシンに、以下のタイプの仮想デバイスを提供できます。

エミュレートされたデバイス

エミュレートされたデバイスは、広く使用されている物理デバイスのソフトウェア実装です。物理デバイス用に設計されたドライバーは、エミュレートされたデバイスとも互換性があります。そのため、エミュレートされたデバイスは柔軟性に非常に優れています。

ただし、特定のタイプのハードウェアを正確にエミュレートする必要があるため、エミュレートされたデバイスは、対応する物理デバイス、またはより最適化された仮想デバイスと比較すると、パフォーマンスが大幅に低下する可能性があります。

以下のタイプのエミュレートされたデバイスに対応します。

  • 仮想 CPU (vCPU) があり、利用可能な CPU モデルが多数あります。エミュレーションのパフォーマンスへの影響は、ホストの CPU とエミュレートされた vCPU の差異に大きく左右されます。
  • PCI バスコントローラーなどのエミュレートされたシステムコンポーネント
  • SATA、SCSI、IDE などのエミュレートされたストレージコントローラー
  • ICH9、ICH6、AC97 などのエミュレートされたサウンドデバイス
  • VGA カードや QXL カードなどのエミュレートされたグラフィックスカード
  • rtl8139 などのエミュレートされたネットワークデバイス
準仮想化デバイス

準仮想化は、仮想デバイスを仮想マシンに公開する高速かつ効率的な方法を提供します。準仮想化デバイスは、仮想マシンで使用するために特別に設計されたインターフェースを公開するため、デバイスのパフォーマンスが大幅に向上します。RHEL 8 では、virtio API を、ハイパーバイザーと仮想マシンとの間のレイヤーとして使用して、仮想マシンに準仮想化デバイスを提供します。このアプローチの欠点は、ゲストオペレーティングシステムで特定のデバイスドライバーが必要になることです。

可能な場合、特に I/O 集約型アプリケーションを実行している場合は、仮想マシンにエミュレートされたデバイスの代わりに準仮想化デバイスを使用することが推奨されます。準仮想化デバイスは、I/O レイテンシーを低減し、I/O スループットを増加させます。場合によっては、ベアメタルのパフォーマンスに非常に近づくことがあります。その他の準仮想化デバイスも、他の方法では利用できない機能を仮想マシンに追加します。

以下のタイプの準仮想化デバイスに対応します。

  • 準仮想化ネットワークデバイス (virtio-net)
  • 準仮想化ストレージコントローラー:

    • virtio-blk - ブロックデバイスエミュレーションを提供します。
    • virtio-scsi - より完全な SCSI エミュレーションを提供します。
  • 準仮想化されたクロック
  • 準仮想化されたシリアルデバイス (virtio-serial)
  • ハイパーバイザーでゲストのメモリー使用量に関する情報を共有するために使用されるバルーンデバイス (virtio-balloon)

    ただし、バルーンデバイスにはバルーンサービスもインストールする必要があります。

  • 準仮想化された乱数ジェネレーター (virtio-rng)
  • 準仮想化グラフィックカード (QXL)
物理的に共有されているデバイス

特定のハードウェアプラットフォームにより、仮想マシンはさまざまなハードウェアデバイスやコンポーネントに直接アクセスできます。このプロセスは、デバイスの割り当て として、または パススルー として知られています。

この方法で接続すると、物理マシンの場合と同様に、物理デバイスの一部の側面が仮想マシンで直接利用できます。これにより、仮想マシンで使用されるデバイスのパフォーマンスが向上します。ただし、仮想マシンに物理的に接続されているデバイスはホストからは利用できず、移行もできません。

それにもかかわらず、いくつかのデバイスは、複数の仮想マシンで 共有 できます。たとえば、場合によっては、1 台の物理デバイスが複数の 仲介デバイス を提供します。これは、異なる仮想マシンに割り当てることができます。

以下の種類のパススルーデバイスに対応します。

  • VFIO (Virtual Function I/O) デバイスの割り当て - ハードウェアで強制された DMA および割り込み分離を使用して、デバイスをアプリケーションや仮想マシンに安全に公開します。
  • 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) を作成する機能も提供されます。