Instiq
第5章 · 仮想化サーバー·v1.0.0·更新 2026/7/17·読了目安 約12分

変更要約: 初版(主題2.05・副主題2.05.1〜2.05.2に対応)

5.1仮想マシンの仕組みとKVM

この節の要点

ホスト型ハイパーバイザー型KVMVirtualBoxXen)の違い、CPU・メモリ・ストレージ・ネットワークの仮想化の仕組み、QEMU の役割、vmxsvm(仮想化支援機構)と /proc/cpuinfolscpu での確認、kvm-intelkvm-amd モジュール、libvirtd によるライフサイクル管理、virt-managerbridge-utils を学びます。

1台の物理サーバーで複数の独立した OS を同時に動かす仮想化は、検証環境の量産からデータセンターの集約まで、Linux 運用の中核技術です。LinuC-2 では Linux 標準のハイパーバイザーであるKVMを軸に、CPU・メモリ・ストレージ・ネットワークをどう「見せかける」かの仕組みが問われます。

5.1.1ホスト型とハイパーバイザー型

  • ホスト型既存の OS の上に仮想化ソフトをアプリとしてインストールする方式(例 VirtualBox)。導入は容易だがホスト OS のオーバーヘッドがかかる。
  • ハイパーバイザー型=ハードウェアを直接制御する方式。Linux ではKVMがカーネルの一部として動作し、ゲスト OS ごとに独立した実行環境を提供する。Xenは専用のハイパーバイザー層を持つ別方式。
  • KVM(Kernel-based Virtual Machine)は Linux カーネルをそのままハイパーバイザー化するモジュール群で、ゲストは通常の Linux プロセスとしてスケジューリングされる。

5.1.2CPU・メモリ・ストレージ・ネットワークの仮想化

  • CPU 仮想化=ゲストに仮想 CPU(vCPU)を割り当て、ハードウェア仮想化支援(vmx=Intel VT-x/svm=AMD-V)を使って特権命令を高速に処理する。対応の有無は /proc/cpuinfo の flags や lscpu の Virtualization 行で確認する。
  • メモリ仮想化=ゲスト物理アドレスとホスト物理アドレスを対応付け、ゲストごとに独立したメモリ空間があるように見せる。
  • ストレージ仮想化=仮想ディスクイメージファイルをゲストの物理ディスクとして提供する。ネットワーク仮想化bridge-utils 等でホストとゲストを接続する仮想ブリッジ/仮想 NIC を構成する。
試験ポイント

「KVM はカーネルモジュール+QEMU で構成される」「CPU が仮想化支援に対応しているかは lscpu または /proc/cpuinfo の vmx/svm フラグで確認」「kvm-intel は Intel、kvm-amd は AMD 用のロード対象モジュール」が最頻出です。VirtualBox=ホスト型、KVM=ハイパーバイザー型(Linuxカーネル一体型)という対比も定番です。

KVM 単体はハードウェア仮想化支援を使って CPU とメモリの仮想化を担うカーネルモジュールkvm に加え、CPU ベンダーごとの kvm-intel または kvm-amd)にすぎません。ディスクやネットワークカードなどデバイスのエミュレーションを担当するのがユーザー空間で動くQEMUで、実務では「KVM=高速化エンジン、QEMU=デバイスの提供役」という役割分担で覚えると整理しやすいです。両者を束ねて仮想マシンのライフサイクル(作成・起動・停止・削除)を管理する常駐デーモンが libvirtd で、その上に GUI 管理ツールの virt-manager が乗ります。導入手順としては、まず lscpu または cat /proc/cpuinfo で vmx(Intel)/svm(AMD)フラグの有無を確認し、対応していれば lsmod | grep kvmkvm_intelkvm_amd モジュールがロード済みかを確認します。ネットワークについては、ゲストを外部ネットワークへ透過的に参加させたい場合、bridge-utils でホストの物理 NIC を含む仮想ブリッジ(例 br0)を作成し、ゲストの仮想 NIC をそこへ接続する構成が定番です(NAT 構成に比べ、ゲストが物理 LAN 上の一員として振る舞える)。

方式代表例特徴
ホスト型VirtualBox既存OS上にアプリとして導入・導入が容易
ハイパーバイザー型KVM・Xenハードウェアを直接制御・オーバーヘッドが小さい
KVM の構成要素kvm-intel/kvm-amd+QEMU+libvirtdカーネルモジュールが高速化・QEMUがデバイス提供
注意

ひっかけ: 「KVM はデバイスのエミュレーションまで単独で行う」は誤りです。デバイスエミュレーションはQEMUの役割で、KVM は CPU/メモリの高速化を担うカーネルモジュールです。また「VirtualBox はハイパーバイザー型」も誤り=VirtualBox は既存 OS 上で動くホスト型の代表例です。vmx(Intel)と svm(AMD)を取り違える選択肢にも注意してください。

ホスト型とハイパーバイザー型の違い、KVM+QEMU+libvirtdの構成関係を示した図。
KVM=高速化・QEMU=デバイス提供

5.1.3この節のまとめ

  • ホスト型(VirtualBox)=既存OS上のアプリハイパーバイザー型(KVM・Xen)=ハードウェア直接制御
  • KVM=カーネルモジュール(kvm-intel/kvm-amd)でCPU/メモリを高速化QEMU=デバイスエミュレーション・確認は lscpu//proc/cpuinfo の vmx/svm

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. サーバーが KVM によるハードウェア仮想化支援に対応しているかを事前に確認したい。適切な方法は?

Q2. KVM 環境で、ディスクやネットワークカードなどの仮想デバイスのエミュレーションを実際に担っているコンポーネントはどれ?

Q3. ホスト型仮想化の代表例として最も適切なものはどれ?

理解度を確認第5章「仮想化サーバー」の問題を解く

学習の記録を残しませんか

参考書はすべて無料で読めます。無料登録すると、問題集での演習・既読と進捗の記録・間違えた問題の復習・ハイライトが使えます。