手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 KVM libvirt – 仮想ネットワークと管理基盤を確認する

Ubuntu 22.04 を KVM ホストとして使う場合、QEMU、KVM、libvirt、仮想ネットワーク、ストレージプールの役割を分けて確認します。仮想マシンを作る前に、libvirt の管理単位、ネットワーク接続方式、イメージ保存先を決めておくと、あとから運用状態を追いやすくなります。

この記事では、既存の Ubuntu 22.04 KVM 環境を保守する前提で、必要パッケージ、サービス、ユーザー権限、default network、ブリッジ、ストレージプールを確認します。

関連する記事
この記事で確認すること
  • KVM / QEMU / libvirt の役割
  • 必要パッケージとサービス状態
  • 管理ユーザーの権限
  • default network と bridge の使い分け
  • ストレージプールとイメージ保存先
参考
書籍
参考書籍

ストーリーで覚える Linux CLI 入門

Linux のコマンドライン操作やサーバー管理の基礎を確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

KVM と libvirt の役割

KVM は Linux カーネルの仮想化機能で、QEMU は仮想マシンを実行するエミュレーターです。libvirt はその上で仮想マシン、ネットワーク、ストレージを管理するための共通 API とサービスです。

  • KVM はカーネル側の仮想化機能
  • QEMU は仮想マシンの実行を担当する
  • libvirt は VM 定義、仮想ネットワーク、ストレージプールを管理する
  • virsh は libvirt を操作する CLI
  • virt-install は libvirt へ VM 定義を作成するための CLI

必要パッケージをインストールする

KVM ホストとして使うための基本パッケージを導入します。既存環境では、インストール済みかどうかと version を確認します。

sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst libosinfo-bin virt-top
qemu-system-x86_64 --version
virsh version
virt-install --version

仮想化支援機能を確認する

CPU の仮想化支援機能が有効か確認します。BIOS / UEFI 側で無効になっていると、KVM ホストとして期待した性能が出ません。

lscpu | grep -E 'Virtualization|Model name'
lsmod | grep -E 'kvm|vfio'
kvm-ok

libvirt サービスを確認する

Ubuntu 22.04 では libvirt 関連サービスの状態を確認します。環境によってサービス名が異なることがあるため、systemctlvirsh の両方で見ます。

systemctl status libvirtd --no-pager
systemctl status virtqemud --no-pager
virsh -c qemu:///system version
virsh -c qemu:///system nodeinfo

管理ユーザーの権限を確認する

一般ユーザーで libvirt を操作する場合は、libvirtkvm グループへの所属を確認します。グループ追加後は、再ログインして反映します。

id
sudo usermod -aG libvirt,kvm "$USER"
newgrp libvirt
virsh -c qemu:///system list --all

default network を確認する

libvirt の default network は NAT 型の仮想ネットワークです。検証用途では便利ですが、外部ネットワークから直接到達させるサーバー用途では、ブリッジを使う方が分かりやすい場合があります。

virsh -c qemu:///system net-list --all
virsh -c qemu:///system net-info default
virsh -c qemu:///system net-dumpxml default

default network を停止する場合

default network を使わない方針にする場合は、自動起動を止めます。既存 VM が使っていないことを確認してから実行します。

virsh -c qemu:///system net-destroy default
virsh -c qemu:///system net-autostart default --disable
virsh -c qemu:///system net-list --all

ブリッジを確認する

VM を物理ネットワークに近い形で接続したい場合は、ホスト側の bridge を使います。Netplan や systemd-networkd で作成した bridge が存在するか確認します。

ip link show type bridge
networkctl list
networkctl status br0
bridge link

ストレージプールを確認する

libvirt の default storage pool は、多くの場合 /var/lib/libvirt/images を指します。VM イメージの置き場所、空き容量、バックアップ対象を確認します。

virsh -c qemu:///system pool-list --all
virsh -c qemu:///system pool-info default
virsh -c qemu:///system vol-list default
df -h /var/lib/libvirt/images

イメージ保存先を確認する

QCOW2 などの仮想ディスクをどこに置くかは、性能、容量、バックアップ設計に影響します。外部ストレージを使う場合は、マウント状態も確認します。

sudo ls -ld /var/lib/libvirt/images
sudo find /var/lib/libvirt/images -maxdepth 1 -type f -name '*.qcow2' -ls
findmnt /var/lib/libvirt/images

virsh で状態を確認する

VM 作成前でも、libvirt の管理対象を virsh で確認できます。VM、ネットワーク、ストレージプールを同じ接続先で見ることが重要です。

virsh -c qemu:///system list --all
virsh -c qemu:///system net-list --all
virsh -c qemu:///system pool-list --all

運用時に見るポイント

KVM ホストの運用では、VM 作成コマンドだけでなく、ネットワーク接続方式、ディスク配置、管理権限、バックアップ範囲を決めておきます。

  • VM が NAT と bridge のどちらを使うかを決める
  • VM イメージの保存先と容量を確認する
  • 管理ユーザーを必要以上に増やさない
  • VM 名、ディスク名、IP アドレスを対応させる
  • libvirt の接続先を qemu:///system に揃える

まとめ

Ubuntu 22.04 の KVM / libvirt 環境では、パッケージ導入だけでなく、libvirt サービス、管理ユーザー、default network、bridge、ストレージプールを確認します。

virt-install で VM を作成する前に、どのネットワークへ接続し、どこにディスクを置き、どのユーザーが管理するのかを決めておくことが重要です。既存環境を保守する場合も、virsh で同じ観点を定期的に確認します。

関連する記事
Ubuntu 22.04 KVM libvirt – 仮想ネットワークと管理基盤を確認する

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る