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

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

5.2仮想マシンの作成と管理

この節の要点

virt-manager(GUI)とvirt-install(CLI)による仮想マシンの作成、完全仮想化準仮想化virtio)の違い、virshによるコマンドラインでのライフサイクル操作、virt-manager によるパフォーマンス監視を学びます。

前節で KVM の仕組みを押さえたら、次は実際に仮想マシンを作って動かして観察する運用の視点です。GUI・CLI どちらからでも作成でき、デバイスの見せ方(完全仮想化か準仮想化か)を選び、virsh で日々のライフサイクルを回すのが LinuC-2 の実務像です。

5.2.1仮想マシンの作成

  • virt-manager=仮想マシンの作成・起動・コンソール接続・設定変更を行うGUI管理ツール。ウィザード形式で ISO 指定・メモリ/CPU割り当て・ディスク作成を進められる。
  • virt-install=同等の作成処理をコマンドラインから一括指定するツール。スクリプト化・自動プロビジョニングに向く(例 virt-install --name vm1 --memory 2048 --vcpus 2 --disk size=20 --cdrom /path/to.iso)。

5.2.2完全仮想化と準仮想化(virtio)

  • 完全仮想化=ゲストに実在するハードウェアと同じデバイスをエミュレーションして見せる方式。ゲスト OS の変更は不要だが、エミュレーションのオーバーヘッドが大きい。
  • 準仮想化=ゲストがハイパーバイザー向けに最適化された仮想デバイスドライバを使うことで、エミュレーションのオーバーヘッドを削減する方式。KVM/QEMU 環境ではvirtioがその標準実装(virtio-blk=ディスク、virtio-net=ネットワーク等)。
  • virsh=コマンドラインから仮想マシンのライフサイクルを操作するツール(virsh list --all=一覧、virsh startvirsh shutdownvirsh destroy=起動/正常停止/強制停止、virsh undefine=定義削除)。virt-manager でもパフォーマンス(CPU/メモリ使用率等)を監視できる。
試験ポイント

「virt-install はCLIで作成を完結できる(自動化向き)」「virtio は準仮想化の標準実装でオーバーヘッドを削減」「virsh destroy は強制停止・virsh shutdown は正常停止」の3点が頻出です。「完全仮想化=ゲスト変更不要だが遅い/準仮想化=ゲスト側にvirtioドライバが要るが速い」というトレードオフの対比も定番です。

実務の作成フローは、検証や単発作業ならvirt-managerのウィザードで完結させ、同じ構成を何十台も展開するならvirt-installをシェルスクリプトに組み込んで冪等かつ再現可能に作る、という使い分けが定石です。作成時に選べるデバイスの見せ方が完全仮想化準仮想化で、前者はゲストに一切変更を求めず「本物のハードウェアがある」ように振る舞わせる代わりにエミュレーションのコストがかかります。後者、特に KVM/QEMU の標準であるvirtioは、ゲスト側に virtio 対応ドライバがあることを前提に、ハイパーバイザーとの通信路を簡略化してディスク I/O やネットワークのスループットを大きく改善します。多くの Linux ディストリビューションは virtio ドライバを標準搭載しているため、実務では特別な事情がない限り virtio を選ぶのが基本方針です。日々の運用では GUI を開かずにvirsh list --allで状態を一覧し、virsh start vm1で起動、virsh shutdown vm1でゲスト OS に正常なシャットダウンを要求し、応答がないときの最終手段としてvirsh destroy vm1(電源プラグを抜くのに相当する強制停止)を使います。パフォーマンスの継続観察には virt-manager の詳細ビューで CPU・メモリ・ディスク I/O・ネットワークのグラフを確認するのが定番の運用手順です。

項目完全仮想化準仮想化(virtio)
ゲスト側の変更不要virtio対応ドライバが必要
性能エミュレーションのオーバーヘッド大通信路簡略化で高速
代表デバイスエミュレートされた実機相当デバイスvirtio-blk・virtio-net
注意

ひっかけ: 「virsh destroy はディスク上の仮想マシン定義そのものを削除する」は誤りです。virsh destroy強制停止(電源断相当)にすぎず、定義を消すのは virsh undefine です。また「準仮想化はゲストOSの変更なしに使える」も誤り=準仮想化(virtio)はゲスト側に対応ドライバが必要で、変更不要なのは完全仮想化の方です。

virt-manager/virt-installでの作成フローと、完全仮想化・準仮想化(virtio)の対比、virshライフサイクル操作の図。
virsh: start/shutdown/destroy/undefine

5.2.3この節のまとめ

  • virt-manager=GUI作成/virt-install=CLI一括作成(自動化向き)
  • 完全仮想化=ゲスト変更不要だが低速/準仮想化(virtio)=ゲストにドライバ要だが高速。運用は virsh start/shutdown/destroy/undefine

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

理解度チェック

(軽い確認用)

Q1. 同一構成の仮想マシンを50台、スクリプトで自動プロビジョニングしたい。最も適した作成手段は?

Q2. ディスクI/Oのスループットを重視し、ゲスト側に対応ドライバを導入してKVM/QEMU向けに最適化したデバイスを使いたい。採用すべき方式は?

Q3. 応答しなくなった仮想マシン vm1 を、電源を強制的に落とすのと同等の方法で即座に停止したい。適切なコマンドは?

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

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

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