LinuCレベル3 3PS試験の例題と解説
主題3PS.01仮想化基盤の構築
1.1仮想化技術の動作原理と最適化
LinuCレベル3 プラットフォームスペシャリスト試験の出題範囲から「1.1 仮想化技術の動作原理と最適化」についての例題を解いてみます。
このテーマは、KVMやQEMUなどの仮想化技術に関する内容が含まれます。仮想化基盤(ハイパーバイザー)の構築に役に立つ知識ですので、しっかりと理解しておきましょう。
LinuCレベル3 プラットフォームスペシャリスト 3PS試験 出題範囲
例題
KVMとQEMUを組み合わせて使用する際の、それぞれの主な役割と動作原理について最も適切に説明しているものを一つ選択してください。
- KVMはユーザー空間で動作し、ゲストOSのCPU命令をソフトウェアでエミュレーションする役割を担う。QEMUはカーネル空間で動作し、ハードウェア仮想化支援機能(Intel VT-x/AMD-V)を管理する。
- KVMはカーネル空間で動作し、ハードウェア仮想化支援機能を利用してゲストOSのCPU実行を高速化する。QEMUはユーザー空間で動作し、仮想的なI/Oデバイス(ネットワークカード、ディスクなど)をエミュレーションする。
- KVMは、ゲストOSのI/Oリクエストを処理するために、ホストOSのカーネルI/Oスケジューラーとは独立した専用の高性能I/Oスタックをカーネル空間に持つ。QEMUは、そのI/Oスタックのフロントエンドとして動作する。
- KVMは、準仮想化(Paravirtualization)に特化した機能であり、ゲストOSのカーネルに修正が必要である。QEMUは、完全仮想化(Full Virtualization)を提供し、未修正のゲストOSを動作させる。
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「2. KVMはカーネル空間で動作し、ハードウェア仮想化支援機能を利用してゲストOSのCPU実行を高速化する。QEMUはユーザー空間で動作し、仮想的なI/Oデバイス(ネットワークカード、ディスクなど)をエミュレーションする。」です。
KVM(Kernel-based Virtual Machine)は、Linuxカーネルモジュールとしてカーネル空間で動作します。その主な役割は、CPUが持つハードウェア仮想化支援機能(Intel VT-xやAMD-Vなど)を利用可能にし、ゲストOSのCPU命令の大部分をホストCPU上でネイティブに近い速度で直接実行させることです。
QEMUは、ホストOS上で動作するユーザー空間のプロセスです。KVMと連携する際、QEMUは仮想マシンプロセスを管理し、ゲストOSが必要とする仮想的なI/Oデバイス(ディスクコントローラー、ネットワークインターフェース、グラフィックカードなど)のエミュレーションを担当します。
1. が不正解の理由:
KVMとQEMUの動作空間の記述が逆です。KVMはカーネル空間、QEMUはユーザー空間で動作します。また、CPU命令のソフトウェアエミュレーションを行うのはQEMUであり、KVMはハードウェア支援による高速化を提供します。
3. が不正解の理由:
KVMは、I/Oリクエストの処理をホストOSの標準的なI/Oスタックに依存しています。QEMUプロセスは、通常のLinuxプロセスとしてI/Oリクエストを発行し、ホストOSが提供するファイルシステムやネットワークスタックを利用して処理を行います。KVMがI/Oのために独立した専用スタックを持つわけではありません。
4. が不正解の理由:
KVM/QEMUの組み合わせは、ハードウェア仮想化支援機能により未修正のゲストOS(完全仮想化)を動作させることが可能です。また、性能最適化のためにVirtioのような準仮想化(Paravirtualization)デバイスも利用できますが、「KVMが準仮想化に特化している」という記述は不適切です。Virtioは、QEMUがゲストに提供するデバイスの一種です。
例題作成者
鯨井 貴博 (LinuCエヴァンジェリスト/登録インストラクター、LPI-Japanアカデミック認定校 ゼウスITトレーニングセンター)