【LinuC 201試験】2.05 仮想マシンの仕組みとKVM|Linux初学者向け解説【KVM・QEMU・libvirt】

※本ページはプロモーションが含まれています

こんにちは!いつもブログを読んでいただき、ありがとうございます。

前回の記事では「2.03 基本的なネットワーク構成」として、ip コマンドや nmcli を使ったネットワーク設定を解説しました。まだご覧になっていない方は先にそちらをどうぞ!

👉 【前回記事】 2.03 基本的なネットワーク構成(ip / nmcli)

今回からは新テーマ、「主題2.05.1:仮想マシンの仕組みとKVM」 に入ります。

「仮想化」という言葉はクラウド全盛の現代では避けては通れないキーワードですよね。とはいえ、KVMとかQEMUとかlibvirtとか、似たような名前のツールがたくさん出てきて「結局どれが何をやってるの?」ってなりがちです(笑)。

この記事では、試験で狙われやすいポイントに絞って、なるべく分かりやすく 整理していきます!

LinuC 201全体の学習ロードマップはこちらにまとめています♪

👉 【LinuC 201】独学合格へのロードマップ!勉強方法と出題範囲の全体像まとめ


📋 試験の重要情報と学習のゴール

まずは、この主題で絶対に外せない「キーワード」を確認しましょう。

項目内容
主題番号2.05.1 仮想マシンの仕組みとKVM
重要度3
主なキーワードKVMQEMUlibvirtlibvirtdvirsh/proc/cpuinfovmxsvm

📌 この記事のゴール

  • 仮想化の2つの方式(ホスト型・ハイパーバイザー型)の違いを説明できる
  • CPUの仮想化支援機能を確認するコマンドとフラグ名を覚える
  • KVM・QEMU・libvirt・virsh それぞれの役割の違いを説明できる
  • 仮想マシンの設定ファイルがどこに保存されるか分かる

1. 仮想化の2つの方式

試験では「どの層で仮想化ソフトウェアが動作しているか」という構造の違いが頻出です。まずはこの2つの方式をしっかり区別しましょう。

方式構造特徴代表的な製品
ホスト型ホストOS上でアプリとして動作導入が容易だが、OSを介するため低速VirtualBox、VMware Workstation
ハイパーバイザー型ハードウェア上で直接動作高速・高安定。サーバー環境の主流KVM、VMware ESXi、Xen

📝 ここがポイント! 「ホストOSを介さずハードウェア上で直接動作する」という説明があれば、それは**ハイパーバイザー型(ベアメタル型)**を指します。

💡 KVMの分類、ちょっと補足 KVMはLinuxカーネル上で動作するため「ホスト型に見える」と感じる方もいます。ただし、KVMはカーネル自体がハイパーバイザーとして機能する仕組みなので、LinuC試験ではハイパーバイザー型として分類されています。試験ではハイパーバイザー型として覚えておきましょう!


2. KVMの仕組みと動作条件

KVM(Kernel-based Virtual Machine) は、Linuxカーネル自体をハイパーバイザーとして機能させる技術です。2007年からLinuxカーネルに標準搭載されており、現代のクラウド環境でも広く使われています。

CPUの仮想化支援機能を確認しよう

KVMを利用するには、CPUが仮想化をハードウェアレベルでサポートしている必要があります。試験では「確認すべきファイル」と「フラグ名」が非常によく問われます!

# CPUが仮想化に対応しているか確認するコマンド
grep -E 'vmx|svm' /proc/cpuinfo
CPUベンダーフラグ名覚え方のヒント
IntelvmxIntelは VMX
AMDsvmAMDは SVM

📝 ここがポイント!

  • 確認ファイルは /proc/cpuinfo/etc/cpuinfo は存在しないので注意!)
  • カーネルモジュール kvm_intel または kvm_amd がロードされている必要がある
  • lsmod | grep kvm でモジュールのロード状況を確認できる

3. KVM・QEMU・libvirtの違い

KVMは単体で全機能を提供するわけではなく、複数のツールが連携して動作します。それぞれの役割の境界線が試験でよく問われるので、しっかり整理しましょう!

コンポーネント役割
KVMCPUとメモリの仮想化を担当(カーネルモジュール)
QEMUNIC・ディスク・画面などのハードウェアエミュレーションを担当
libvirtKVMやQEMUなどの仮想化技術を統合管理するためのAPI層
libvirtdlibvirtの命令を受け取る常駐デーモン(サービス)
virshCLIから仮想マシンを操作する管理ツール(libvirtdを経由)
virt-managerGUIから仮想マシンを操作する管理ツール(libvirtdを経由)

⚠️ 試験の引っかけポイント① 「virshは直接KVMを操作する」→ 誤り! 正しくは「virshは libvirtd を経由して KVMやQEMUを制御する」です。

⚠️ 試験の引っかけポイント② 「libvirtdが停止していてもvirshは使える」→ 誤り! virshはlibvirtdに命令を送るクライアントなので、デーモンが落ちていると操作できません。

💡 libvirtdについての補足 最近のLinux環境ではlibvirtのサービスが virtqemud などに分割されている場合があります。ただしLinuC試験では従来通り 「libvirtd」 として理解すれば問題ありません!

QEMUだけでも動く?KVMとの組み合わせが重要な理由

QEMUは単体でも仮想化できますが、それだけだとソフトウェアエミュレーションになるためかなり遅いです。KVMと組み合わせることで、CPUの仮想化支援機能を活かしたハードウェアレベルの高速化が実現します。

QEMU単体    → ソフトウェアエミュレーション(低速)
QEMU + KVM  → ハードウェア支援で高速化(実用レベル)

📝 ここがポイント! 「QEMUはKVMなしでも動作するが、KVMと組み合わせることで高速化される」という点を押さえておきましょう!

virsh の代表的なコマンド

# 仮想マシンの一覧を表示(実行中のみ)
virsh list

# 仮想マシンの一覧を表示(停止中も含む)
virsh list --all

# 仮想マシンを起動する
virsh start <VM名>

# 仮想マシンをシャットダウンする
virsh shutdown <VM名>

4. 重要なディレクトリとファイル構成

仮想マシンの設定やディスクイメージがどこに保存されるかは、試験でも実務でも重要な知識です。

パス何が入っているか
/etc/libvirt/qemu/仮想マシンの定義ファイル(XML形式
/var/lib/libvirt/images/仮想ディスクイメージのデフォルト保存先
/dev/kvmKVMのデバイスファイル。ユーザ空間からKVM機能を利用するための入口

📝 ここがポイント! 仮想マシンの設定ファイルはXML形式で保存されます。「/etc/libvirt/qemu/ にXMLで保存される」という組み合わせをセットで覚えておきましょう!


5. 完全仮想化 vs 準仮想化

実装方法による分類も試験範囲に含まれます。KVMとXenの違いを軸に整理しておきましょう。

方式特徴代表製品
完全仮想化CPUの仮想化支援機能(Intel VT-x / AMD-V)を利用し、ゲストOSを無修正で動作させるKVM、VMware
準仮想化ハイパーバイザーと連携するためにゲストOSの一部を修正するXen(完全仮想化もサポート)

📝 ここがポイント! KVM = 完全仮想化、Xen = 準仮想化が有名(ただし完全仮想化もサポートしている)というセットで覚えましょう。


6. 試験で狙われる!引っかけパターンまとめ 💣

過去問を解いていて「ここは引っかかりやすい!」と感じたポイントをまとめました。試験直前にここだけは見直してくださいね!

#間違いパターン正しい理解
1「virshは直接KVMを操作する」❌ virshは libvirtd を経由する
2「libvirtdが停止していてもvirshは使える」❌ libvirtdが起動していないとvirshは動かない
3「KVMはホスト型仮想化だ」❌ LinuC試験ではハイパーバイザー型に分類
4「KVMはゲストOSの修正が必要」❌ KVMは完全仮想化。ゲストOS無修正で動く
5「CPUフラグの確認は /etc/cpuinfo❌ 正しくは /proc/cpuinfo
6「QEMUはKVMなしでは動かない」❌ QEMU単体でも動作する。KVMで高速化される

🎓 一緒に使っている教材はこちら

私がメインで使っている参考書と問題集です。よければ一緒に勉強していきましょう(笑)

【PR】▶ あずき本(Linux教科書 LinuCレベル2 Version 10.0対応) 概念や仕組みをしっかり理解したいときの辞書代わりに。まずここで基礎を固めます。


✅ まとめ

今回学習した内容の重要ポイントをまとめます。

仮想化の方式

方式代表製品特徴
ホスト型VirtualBox、VMware WorkstationホストOS上で動作
ハイパーバイザー型KVM、VMware ESXi、Xenハードウェア上で直接動作

コンポーネントの役割

コンポーネント役割
KVMCPUとメモリの仮想化
QEMUハードウェアエミュレーション
libvirt仮想化技術を統合管理するAPI層
libvirtd常駐デーモン(virshの命令を受け取る)
virshCLIの管理ツール(libvirtd経由)
virt-managerGUIの管理ツール(libvirtd経由)

重要なパスとコマンド

項目内容
CPU確認コマンドgrep -E 'vmx|svm' /proc/cpuinfo
Intel CPUのフラグvmx
AMD CPUのフラグsvm
VM定義ファイル/etc/libvirt/qemu/(XML形式)
ディスクイメージ/var/lib/libvirt/images/
KVMデバイスファイル/dev/kvm

💡 コラム:KVMは試験だけじゃない! KVMはAWS(Nitroのベース技術)やOpenStack(標準ハイパーバイザー)など、現代のクラウド基盤にも広く使われている技術です。LinuCでKVMを学ぶことは、そのままクラウド技術の理解にも直結します。試験勉強しながら実務知識も積み上げられるお得なテーマなので、ぜひしっかり押さえておきましょう!


お疲れ様でした!仮想化はコンポーネントが多くて最初はごちゃごちゃに見えますが、「KVMがCPU・メモリ、QEMUがハードウェア、libvirtがまとめ役」という役割分担さえ頭に入ればグッとスッキリしてきますよ。

LinuC 201合格に向けて、これからも一緒に頑張りましょう!応援しています。


※本記事はLinuC レベル2 Version 10.0 の出題範囲をもとに作成しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA