第15章 仮想マシンへのホストデバイスの接続
ホストデバイスを仮想マシン (VM) に接続することで、仮想マシンの機能を拡張できます。ホストデバイスを仮想マシンに接続する場合、この目的のために、ハードウェアデバイスのソフトウェア抽象化である 仮想デバイス が使用されます。
15.1. 仮想デバイスの動作 リンクのコピーリンクがクリップボードにコピーされました!
物理マシンと同様に、仮想マシン (VM) にも、処理能力、メモリー、ストレージ、ネットワーク、グラフィックスなどの機能をシステムに提供するための専用デバイスが必要です。物理システムでは通常、これらの目的でハードウェアデバイスを使用します。しかし、仮想マシンはソフトウェアプロセスとして動作するため、そのようなデバイスのソフトウェア抽象化を代わりに使用する必要があります。これが 仮想デバイス と呼ばれるものです。
仮想デバイスの基礎
仮想マシンに接続する仮想デバイスは、仮想マシンの作成 時に設定できます。また、既存の仮想マシン上で管理することもできます。通常、仮想デバイスは、仮想マシンが停止している場合に限り仮想マシンに接続または接続解除できますが、仮想マシンの実行中に追加または削除できるものもあります。この機能は、デバイスの ホットプラグ および ホットアンプラグ と呼ばれています。
新しい仮想マシンを作成すると、特に指定しない限り、libvirt は、必須の仮想デバイスのデフォルトセットを自動的に作成して設定します。これは、ホストシステムのアーキテクチャーとマシンタイプに基づいており、通常は以下のものが含まれます。
- CPU
- メモリー
- キーボード
- ネットワークインターフェイスコントローラー (NIC)
- さまざまなデバイスコントローラー
- ビデオカード
- サウンドカード
仮想マシンの作成後に仮想デバイスを管理するには、コマンドライン (CLI) を使用します。ただし、仮想ストレージデバイス と ネットワークインターフェイス を管理する場合は、RHEL 10 Web コンソールを使用することもできます。
パフォーマンスまたは柔軟性
デバイスの種類によっては、RHEL 10 は複数の実装をサポートしていますが、多くの場合、パフォーマンスと柔軟性の間でトレードオフが発生します。
たとえば、仮想ディスクに使用される物理ストレージは、qcow2、raw などのさまざまな形式のファイルで示され、次のようなさまざまなコントローラーを使用して仮想マシンに提示されます。
- エミュレートされたコントローラー
-
virtio-scsi -
virtio-blk
virtio デバイスは、仮想化を目的として特別に設計されているため、エミュレートされたコントローラーは、virtio コントローラーよりも遅くなります。一方、エミュレートされたコントローラーを使用すると、virtio デバイス用のドライバーがないオペレーティングシステムを実行できます。同様に、virtio-scsi は、SCSI コマンドへのより完全な対応を提供しており、仮想マシンにより多くのディスクを割り当てることができるようにします。最後に、virtio-blk は、virtio-scsi およびエミュレートされたコントローラーよりも優れたパフォーマンスを提供しますが、ユースケースの範囲がより制限されます。たとえば、virtio-blk を使用する場合には、物理ディスクを LUN デバイスとして仮想マシンに割り当てることはできません。
仮想デバイスの種類の詳細は、仮想デバイスの種類 を参照してください。