1.3. 仮想マシンコンポーネントおよびその相互作用

RHEL 9 の仮想化は、以下の主要ソフトウェアコンポーネントで設定されています。

ハイパーバイザー

RHEL 9 で仮想マシンを作成する基礎となる部分は、ハードウェアを制御し、ホストマシンで複数のオペレーティングシステムを実行できるようにするソフトウェア層で、ハイパーバイザー と呼ばれます。

ハイパーバイザーには、KVM (Kernel-based Virtual Machine) モジュールと仮想化カーネルドライバーが含まれます。このコンポーネントでは、ホストマシンの Linux カーネルにより、ユーザー空間のソフトウェアに仮想化のリソースが提供されます。

ユーザー空間レベルでは、QEMU エミュレーターが、ゲスト OS を実行できる完全に仮想化されたハードウェアプラットフォームをシミュレートし、リソースがホストでどのように割り当てられ、ゲストに示されるかを管理します。

さらに、libvirt ソフトウェアスイートが管理層および通信層として機能し、QEMU とのやり取りを容易にし、セキュリティールールを適用し、仮想マシンを設定して実行するための追加ツールを多数提供します。

XML 設定

ホストベースの XML 設定ファイル (ドメイン XML ファイルとも呼ばれます) では、個別の仮想マシンの設定およびデバイスをすべて決定します。設定には以下が含まれます。

  • メタデータ (仮想マシンの名前、タイムゾーン、その他の仮想マシンの情報など)
  • 仮想マシンのデバイスの説明 (仮想 CPU (vCPU)、ストレージデバイス、入出力デバイス、ネットワークインターフェイスカード、その他の物理ハードウェアおよび仮想ハードウェアなど)
  • 仮想マシンの設定 (使用可能な最大メモリー量、再起動設定、仮想マシンの動作に関するその他の設定など)

XML 設定の内容の詳細は、仮想マシンの XML 設定例 を参照してください。

コンポーネントのインタラクション

仮想マシンが起動すると、ハイパーバイザーは XML 設定を使用して、ホストのユーザー空間プロセスとして仮想マシンのインスタンスを作成します。ハイパーバイザーは、仮想マシンプロセスが、ホストベースのインターフェイス (virsh ユーティリティー、virt-install ユーティリティー、guestfish ユーティリティー、Web コンソールの GUI など) にアクセスできるようにします。

このような仮想化ツールを使用すると、libvirt が、入力を QEMU の命令に変換します。QEMU が命令を KVM に伝え、カーネルが命令を実行するのに必要なリソースを適切に割り当てるようになります。これにより、QEMU が、仮想マシンの作成や修正、仮想マシンのオペレーティングシステムでのアクションの実行など、対応するユーザー空間を変更します。

注記

QEMU はアーキテクチャーの必須コンポーネントですが、セキュリティーに関する懸念があるため、RHEL 9 システムで直接使用することは意図されていません。したがって、Red Hat は、qemu-* コマンドをサポート対象外としており、libvirt を使用して QEMU と相互作用することを強く推奨します。

ホストベースのインターフェイスの詳細は、仮想管理に使用するツールおよびインターフェイス を参照してください。

図1.1 RHEL 9 の仮想アーキテクチャー

仮想アーキテクチャー