1.3. 仮想マシンコンポーネントおよびその相互作用
RHEL 8 の仮想化は、以下の主要ソフトウェアコンポーネントで設定されています。
ハイパーバイザー
RHEL 8 で仮想マシンを作成する基礎となる部分は、ハードウェアを制御し、ホストマシンで複数のオペレーティングシステムを実行できるようにするソフトウェア層で、ハイパーバイザー と呼ばれます。
ハイパーバイザーには、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 8 システムで直接使用することは意図されていません。したがって、Red Hat は、qemu-*
コマンドをサポート対象外としており、libvirt を使用して QEMU と相互作用することを強く推奨します。
ホストベースのインターフェイスの詳細は、仮想管理に使用するツールおよびインターフェイス を参照してください。
図1.1 RHEL 8 の仮想アーキテクチャー