Chuyển đến nội dung chính

Ubuntu に KVM をインストールする: Cockpit Web UI を介して VM を管理する

Duy Tran27分
Ubuntu に KVM をインストールする: Cockpit Web UI を介して VM を管理する

強力で無料の直接統合された仮想化ソリューションをお探しの場合 Linux カーネル、その後 KVM (カーネルベースの仮想マシン) が答えです。 KVM Linux を Type-1 に変える ハイパーバイザー、たくさん走れるようになります 仮想マシン (VM) ほぼネイティブのパフォーマンスを実現します。

この記事では、インストール方法を説明します KVM 上のAからZまで 物理サーバー 2 台 特定の構成の場合:

ホスト名 IPアドレス 役割
kvm-node01 192.168.1.10 KVM ホスト #1
kvm-node02 192.168.1.11 KVM ホスト #2

この構成は、ホームラボの構築、Kubernetes クラスターの実行、または開発/テスト環境に適しています。

KVM を選択する理由

インストールに入る前に、その理由を理解しましょう KVM は一般的な選択肢です:

仮想化ソリューションを比較します。

┌─────────────────┬──────────────┬─────────────┬──────────────┐
│     Tiêu chí    │     KVM      │   VMware    │  VirtualBox  │
├─────────────────┼──────────────┼─────────────┼──────────────┤
│ Chi phí         │ Miễn phí     │ Có phí      │ Miễn phí     │
│ Hiệu năng       │ Xuất sắc     │ Xuất sắc    │ Tốt          │
│ Tích hợp Linux  │ Native       │ Cần driver  │ Cần driver   │
│ Production-ready│ Có           │ Có          │ Không        │
│ Cloud providers │ AWS, GCP...  │ VMware Cloud│ Không        │
│ Nested Virt     │ Tốt          │ Tốt         │ Hạn chế      │
└─────────────────┴──────────────┴─────────────┴──────────────┘

KVM AWS、Google Cloud、DigitalOcean などの主要なクラウド プロバイダーによって使用されており、OpenStack、Proxmox VE の基盤です。

システム要件

2 つのサーバーの構成:

システム要件

ノードごとの最小要件:

ステップ 1: ハードウェア仮想化サポートを確認する

📚 上記を実行します 両方のノード: kvm-node01 および kvm-node02

まず、CPU がハードウェア仮想化をサポートしていることを確認する必要があります。これは最も重要なステップです。CPU がサポートしていない場合は使用できません。 KVM。

CPU フラグを確認します。

# Kiểm tra số lượng CPU cores hỗ trợ virtualization
egrep -c '(vmx|svm)' /proc/cpuinfo

0 より大きい数値を返す結果は、CPU が以下をサポートしていることを意味します。

  • vmx - インテル VT-x
  • SVM - AMD-V

詳細を確認してください:

# Xem loại virtualization
lscpu | grep Virtualization

Output mẫu:

Virtualization: VT-x (Intel)

Virtualization: AMD-V (AMD)

kvm-ok ツールを使用します。

# Cài đặt cpu-checker
sudo apt update
sudo apt install -y cpu-checker

Chạy kiểm tra

sudo kvm-ok

望ましい結果:

INFO: /dev/kvm exists
KVM acceleration can be used
⚠️ 注: 結果に「KVM アクセラレーションは使用できません」と表示された場合は、BIOS/UEFI を確認し、Intel VT-x または AMD-V オプションを有効にしてください。

ステップ 2: KVM とパッケージをインストールする

📚 上記を実行します 両方のノード

インストールを続行します KVM および必要なパッケージ:

# Update hệ thống
sudo apt update && sudo apt upgrade -y

Cài đặt KVM và toàn bộ dependencies

sudo apt install -y
qemu-kvm
libvirt-daemon-system
libvirt-clients
bridge-utils
virtinst
virt-manager
libguestfs-tools
libosinfo-bin
cloud-image-utils

各パッケージの説明:

パッケージ 機能
qemu-kvm QEMU エミュレータ付き KVM 加速.加速
libvirt デーモン システム リブバート デーモンは VM を管理します
libvirtクライアント virsh などの CLI ツール
ブリッジユーティリティ 作成と管理 ネットワーク 橋。橋
バーティンスト VM を作成するための virt-install ツール
仮想マネージャー VM を管理するための GUI (オプション) サーバー。サーバー)
libguestfs-tools ディスクイメージを操作するためのツール
libosinfo-bin OS情報のデータベース
クラウドイメージユーティリティ ツールはクラウド画像を操作します

インストールを確認します。

# Kiểm tra KVM modules đã load
lsmod | grep kvm

Output mẫu (Intel):

kvm_intel 368640 0

kvm 1028096 1 kvm_intel

Output mẫu (AMD):

kvm_amd 139264 0

kvm 1028096 1 kvm_amd

ステップ 3: ユーザーとサービスを構成する

📚 上記を実行します 両方のノード

使用するには KVM コマンドごとに sudo を必要とせずに、ユーザーを必要なグループに追加します。

# Thêm user hiện tại vào group libvirt và kvm
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER

Verify groups

groups $USER

libvirtd サービスを有効にして開始します。

# Enable service khởi động cùng hệ thống
sudo systemctl enable libvirtd

Start service

sudo systemctl start libvirtd

Kiểm tra status

sudo systemctl status libvirtd

望ましい出力:

● libvirtd.service - Virtualization daemon
Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; ...)
Active: active (running) since ...
💡 ヒント: ユーザーをグループに追加した後、ログアウトして再度ログインするか、次のコマンドを実行する必要があります。 newgrp libvirt すぐに申請すること。

libvirt 接続を確認します。

# Test virsh command
virsh list --all

Nếu thành công, output sẽ là:

Id Name State

----------------------

(empty - chưa có VM nào)

ステップ 4: ネットワークブリッジを構成する

これは、VM が外部ネットワークと通信できるようにするための最も重要な手順です。静的 IP を使用して両方のサーバーのブリッジ ネットワークを構成します。

ネットワーク インターフェイス名を決定します (両方のノードで実行)。

# Liệt kê các network interfaces
ip link show

Tìm interface chính (thường là enp0s3, eth0, eno1, ens18...)

Ghi nhớ tên này để dùng ở bước sau

現在の構成をバックアップします。

sudo mkdir -p /etc/netplan/backup
sudo cp /etc/netplan/*.yaml /etc/netplan/backup/

kvm-node01 (192.168.1.10) の構成

sudo nano /etc/netplan/01-bridge-config.yaml
# /etc/netplan/01-bridge-config.yaml - kvm-node01
network:
version: 2
renderer: networkd

ethernets: enp0s3: # ⚠️ Thay bằng tên interface thực tế dhcp4: false dhcp6: false

bridges: br0: interfaces: - enp0s3 # ⚠️ Thay bằng tên interface thực tế addresses: - 192.168.1.10/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 mtu: 1500 parameters: stp: true forward-delay: 4

kvm-node02 (192.168.1.11) の構成

sudo nano /etc/netplan/01-bridge-config.yaml
# /etc/netplan/01-bridge-config.yaml - kvm-node02
network:
version: 2
renderer: networkd

ethernets: enp0s3: # ⚠️ Thay bằng tên interface thực tế dhcp4: false dhcp6: false

bridges: br0: interfaces: - enp0s3 # ⚠️ Thay bằng tên interface thực tế addresses: - 192.168.1.11/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 mtu: 1500 parameters: stp: true forward-delay: 4

構成を適用します (両方のノードで実行):

# Kiểm tra syntax
sudo netplan try

Nếu OK, áp dụng

sudo netplan apply

Verify bridge đã tạo

ip addr show br0 brctl show

望ましい出力:

bridge name     bridge id               STP enabled     interfaces
br0             8000.xxxxxxxxxxxx       yes             enp0s3
⚠️ 警告: SSH 経由でネットワーク ブリッジを構成すると、接続が失われることがあります。使用する ネットプランを試す 確認しないと、120 秒後に自動的にロールバックされます。

VM の IP プランニング

範囲 目的
192.168.1.10 - 192.168.1.11 KVMホスト
192.168.1.20 - 192.168.1.49 インフラストラクチャ VM (DNS、DHCP など)
192.168.1.50 - 192.168.1.99 Kubernetes クラスター
192.168.1.100 - 192.168.1.149 kvm-node01 上の VM
192.168.1.150 - 192.168.1.199 kvm-node02 上の VM
192.168.1.200 - 192.168.1.250 予約済み / DHCP プール
192.168.1.1 ゲートウェイ

VM の仮想ネットワーク (NAT ネットワーク) の構成

ブリッジ ネットワークに加えて、もう 1 つ作成します。 プライベート仮想ネットワーク VMの場合。このネットワークは NAT を使用するため、VM はホスト経由でインターネットにアクセスできますが、物理ネットワークからは分離されています。

仮想ネットワーク定義ファイルを作成します。

# Tạo file XML cho mạng ảo
sudo tee /tmp/vm-private-network.xml << EOF
<network>
  <name>vm-private</name>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <ip address='10.10.10.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='10.10.10.100' end='10.10.10.200'/>
    </dhcp>
  </ip>
</network>
EOF

仮想ネットワークを作成してアクティブ化します (両方のノードで実行)。

# Define network từ XML
sudo virsh net-define /tmp/vm-private-network.xml

Start network

sudo virsh net-start vm-private

Enable autostart

sudo virsh net-autostart vm-private

Verify

sudo virsh net-list --all

望ましい出力:

 Name          State    Autostart   Persistent

default active yes yes vm-private active yes yes

仮想ネットワークの詳細を表示します。

# Xem cấu hình
sudo virsh net-dumpxml vm-private

Xem DHCP leases

sudo virsh net-dhcp-leases vm-private

Xem bridge interface

ip addr show virbr1

両方のノードの仮想ネットワーク計画:

ノード 仮想ネットワーク サブネット DHCP 範囲
kvm-node01 vm-プライベート 10.10.10.0/24 10.10.10.100-149
kvm-node02 vm-プライベート 10.10.10.0/24 10.10.10.150-200
💡 注: 両方のノードは同じサブネット 10.10.10.0/24 を共有しますが、IP の競合を避けるために異なる DHCP 範囲を共有します。 2 つのノード上の VM は、仮想ネットワーク経由で相互に直接通信できます。

kvm-node02 の仮想ネットワーク構成 (同じサブネット、異なる DHCP 範囲):

# Trên kvm-node02, tạo file XML với DHCP range khác
sudo tee /tmp/vm-private-network.xml << EOF
<network>
  <n>vm-private</n>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <ip address='10.10.10.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='10.10.10.150' end='10.10.10.200'/>
    </dhcp>
  </ip>
</network>
EOF

Define và start

sudo virsh net-define /tmp/vm-private-network.xml sudo virsh net-start vm-private sudo virsh net-autostart vm-private

Web UI 経由で KVM を管理するには、Cockpit をインストールします

コックピット 管理に役立つWeb UIです KVM 直感的で簡単です。上にインストールします 両方のノード:

# Cài đặt Cockpit và module KVM
sudo apt install -y cockpit cockpit-machines

Enable và start Cockpit

sudo systemctl enable --now cockpit.socket

Kiểm tra status

sudo systemctl status cockpit.socket

Mở firewall (nếu có)

sudo ufw allow 9090/tcp

コックピットにアクセスしてください:

ノード URL
kvm-node01 https://192.168.1.10:9090
kvm-node02 https://192.168.1.11:9090

ユーザーを使用してログインする Linux あなたのものです(sudo許可が必要です)。

KVM 用コックピット インターフェイス:

KVM のコックピット機能:

特長 説明
仮想マシン VMを直感的に作成、削除、開始、停止
コンソール ブラウザ上で VNC/シリアル コンソールを直接操作
ストレージプール ディスクイメージの管理、ISOのアップロード
ネットワーク 仮想ネットワーク(NAT、ブリッジ)の作成・編集
スナップショット スナップショットの作成と復元
リソースモニター CPU、RAM、ディスク、ネットワークをリアルタイムで監視

VXLANオーバーレイネットワーク(2ノード共通仮想ネットワーク)の構成

2 つのノード上の VM が共通の仮想ネットワークを介して相互に直接通信できるようにするために、次を使用します。 VXLAN (仮想拡張可能 LAN)。 VXLAN は、物理ネットワーク全体にレイヤー 2 トンネルを作成し、異なるホスト上の VM が同じ仮想スイッチとして機能できるようにします。

VXLANオーバーレイネットワーク(2ノード共通仮想ネットワーク)の構成

ステップ 1: kvm-node01 に VXLAN インターフェイスを作成します。

# Tạo VXLAN interface với VNI 100
sudo ip link add vxlan100 type vxlan id 100 \
    local 192.168.1.10 \
    remote 192.168.1.11 \
    dstport 4789 \
    dev br0

Bật interface

sudo ip link set vxlan100 up

ステップ 2: kvm-node02 に VXLAN インターフェイスを作成します。

# Tạo VXLAN interface với VNI 100
sudo ip link add vxlan100 type vxlan id 100 
local 192.168.1.11
remote 192.168.1.10
dstport 4789
dev br0

Bật interface

sudo ip link set vxlan100 up

ステップ 3: VXLAN のブリッジを作成します (両方のノードで実行):

# Tạo bridge mới cho VXLAN
sudo ip link add vxlan-br0 type bridge
sudo ip link set vxlan-br0 up

Gắn VXLAN interface vào bridge

sudo ip link set vxlan100 master vxlan-br0

Verify

bridge link show

ステップ 4: Netplan を使用して永続的な構成を構成します。

ファイルの作成 /etc/netplan/02-vxlan.yaml 上 kvm-node01:

network:
version: 2
tunnels:
vxlan100:
mode: vxlan
id: 100
local: 192.168.1.10
remote: 192.168.1.11
port: 4789

bridges: vxlan-br0: interfaces: - vxlan100 mtu: 1450 parameters: stp: false forward-delay: 0

ファイルの作成 /etc/netplan/02-vxlan.yaml 上 kvm-node02:

network:
version: 2
tunnels:
vxlan100:
mode: vxlan
id: 100
local: 192.168.1.11
remote: 192.168.1.10
port: 4789

bridges: vxlan-br0: interfaces: - vxlan100 mtu: 1450 parameters: stp: false forward-delay: 0

構成を適用します。

sudo netplan apply

Verify VXLAN

ip -d link show vxlan100 bridge link show

ステップ 5: libvirt の VXLAN ネットワークを定義します (両方のノード)。

sudo tee /tmp/vxlan-network.xml << EOF
<network>
<name>vxlan-net</name>
<forward mode="bridge"/>
<bridge name="vxlan-br0"/>
</network>
EOF

Define và start network

sudo virsh net-define /tmp/vxlan-network.xml sudo virsh net-start vxlan-net sudo virsh net-autostart vxlan-net

Verify

sudo virsh net-list --all

ステップ 6: VXLAN ネットワークを使用して VM を作成します。

# Tạo VM với VXLAN network
sudo virt-install 
--name vm-vxlan-01
--memory 2048
--vcpus 2
--disk path=/var/lib/libvirt/images/vm-vxlan-01.qcow2,size=20
--os-variant ubuntu22.04
--network network=vxlan-net
--graphics vnc
--cdrom /var/lib/libvirt/images/ubuntu-22.04.3-live-server-amd64.iso
--noautoconsole
⚠️ MTU に注意してください: VXLAN を使用する VM は、MTU = 1450 に設定する必要があります (VXLAN ヘッダーが約 50 バイトのため)。 VM での構成:

VXLAN 接続をテストします。

# Trên VM1 (kvm-node01) - IP: 10.10.10.101
ping 10.10.10.103  # Ping đến VM3 trên kvm-node02

Kiểm tra VXLAN statistics

ip -s link show vxlan100

仮想ネットワークの種類を比較します。

種類 ユースケース VM はノード間で通信します 孤立
NAT (vm-プライベート) 単純な開発/テスト ❌ いいえ ✅ はい
橋 (br0) 本番環境、LANアクセス ✅ LAN経由 ❌ いいえ
VXLAN オーバーレイ マルチノードクラスター ✅ ダイレクトL2 ✅ はい

ステップ 5: ストレージプールの構成

📚 上記を実行します 両方のノード

ストレージ プールは、VM のディスク イメージが保存される場所です。

保存フォルダーを作成します。

# Sử dụng thư mục mặc định
sudo mkdir -p /var/lib/libvirt/images

Set permissions

sudo chown -R libvirt-qemu:kvm /var/lib/libvirt/images sudo chmod -R 775 /var/lib/libvirt/images

ストレージプールの定義:

# Tạo pool mới
sudo virsh pool-define-as 
--name default
--type dir
--target /var/lib/libvirt/images

Build và start pool

sudo virsh pool-build default sudo virsh pool-start default sudo virsh pool-autostart default

Verify

sudo virsh pool-list --all sudo virsh pool-info default

望ましい出力:

 Name      State    Autostart

default active yes

ステップ 6: ホスト名と /etc/hosts を構成する

2 つのノードがホスト名で相互に通信できるようにするには、構成が必要です SSH およびホスト名:

kvm-node01 上:

# Set hostname
sudo hostnamectl set-hostname kvm-node01

Cập nhật /etc/hosts

sudo nano /etc/hosts

127.0.0.1       localhost
192.168.1.10       kvm-node01
192.168.1.11       kvm-node02

kvm-node02 上:

# Set hostname
sudo hostnamectl set-hostname kvm-node02

Cập nhật /etc/hosts

sudo nano /etc/hosts

127.0.0.1       localhost
192.168.1.10       kvm-node01
192.168.1.11       kvm-node02

2 つのノード間の接続をテストします。

# Từ kvm-node01
ping -c 3 kvm-node02

Từ kvm-node02

ping -c 3 kvm-node01

ステップ 7: 最初の仮想マシンを作成する

インストール後 KVM 完了したら、使用する最初の VM を作成します vm-プライベート仮想ネットワーク。

方法 1: クラウド イメージを使用する (高速)

クラウド イメージは OS がプレインストールされたディスク イメージであり、設定して起動するだけで済みます。

kvm-node01 上:

# Download Ubuntu Cloud Image
cd /var/lib/libvirt/images
sudo wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img

Tạo disk image cho VM

sudo qemu-img create -f qcow2
-F qcow2
-b jammy-server-cloudimg-amd64.img
vm-test-01.qcow2 20G

Cloud-init 構成を作成します。

# Tạo thư mục cho cloud-init
sudo mkdir -p /var/lib/libvirt/cloud-init

Tạo file meta-data

sudo tee /var/lib/libvirt/cloud-init/meta-data << EOF instance-id: vm-test-01 local-hostname: vm-test-01 EOF

Tạo file user-data

sudo tee /var/lib/libvirt/cloud-init/user-data << EOF #cloud-config hostname: vm-test-01 users:

  • name: ubuntu sudo: ALL=(ALL) NOPASSWD:ALL groups: users, admin home: /home/ubuntu shell: /bin/bash lock_passwd: false

chpasswd: list: | ubuntu:ubuntu123 expire: false

package_update: true packages:

  • qemu-guest-agent
  • curl
  • wget
  • vim

runcmd:

  • systemctl enable qemu-guest-agent
  • systemctl start qemu-guest-agent EOF

Tạo cloud-init ISO

sudo cloud-localds /var/lib/libvirt/images/vm-test-01-cidata.iso
/var/lib/libvirt/cloud-init/user-data
/var/lib/libvirt/cloud-init/meta-data

vm-private 仮想ネットワークを使用して VM を作成します。

sudo virt-install 
--name vm-test-01
--memory 2048
--vcpus 2
--disk path=/var/lib/libvirt/images/vm-test-01.qcow2,format=qcow2
--disk path=/var/lib/libvirt/images/vm-test-01-cidata.iso,device=cdrom
--os-variant ubuntu22.04
--network network=vm-private
--graphics none
--import
--noautoconsole
💡 注: 使用する --network network=vm-private 代わりに --ネットワークブリッジ=br0 VM が仮想ネットワークに接続できるようにします。

VM を確認します。

# List VMs
virsh list --all

Xem IP của VM (VM sẽ nhận IP từ DHCP 10.10.10.x)

virsh domifaddr vm-test-01

Hoặc xem từ DHCP leases

sudo virsh net-dhcp-leases vm-private

Console vào VM

virsh console vm-test-01

Login: ubuntu / ubuntu123

Thoát console: Ctrl + ]

VM のネットワークを確認します。

# Sau khi login vào VM
ip addr show

Output mẫu:

eth0: 10.10.10.101/24 (mạng ảo)

Test internet (qua NAT)

ping -c 3 google.com

Test ping đến host

ping -c 3 10.10.10.1

2 つのネットワーク インターフェイスを持つ VM を作成する

VM を仮想ネットワーク (内部) とブリッジ接続 (外部) の両方に接続する必要がある場合:

sudo virt-install 
--name vm-dual-nic
--memory 2048
--vcpus 2
--disk path=/var/lib/libvirt/images/vm-dual-nic.qcow2,size=20,format=qcow2
--os-variant ubuntu22.04
--network network=vm-private
--network bridge=br0
--graphics vnc,listen=0.0.0.0
--cdrom /var/lib/libvirt/images/ubuntu-22.04.3-live-server-amd64.iso
--boot cdrom,hd
--noautoconsole
2 つのネットワーク インターフェイスを持つ VM を作成する

方法 2: ISO からインストールする

# Download Ubuntu Server ISO (nếu chưa có)
cd /var/lib/libvirt/images
sudo wget https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.iso

Tạo VM với mạng ảo

sudo virt-install
--name vm-ubuntu-01
--memory 2048
--vcpus 2
--disk path=/var/lib/libvirt/images/vm-ubuntu-01.qcow2,size=20,format=qcow2
--os-variant ubuntu22.04
--network network=vm-private
--graphics vnc,listen=0.0.0.0,port=5901
--cdrom /var/lib/libvirt/images/ubuntu-22.04.3-live-server-amd64.iso
--boot cdrom,hd
--noautoconsole

VNC に接続してインストールします。

# Xem VNC port
sudo virsh vncdisplay vm-ubuntu-01

Output: :1 (nghĩa là port 5901)

Kết nối từ máy khác bằng VNC client

Address: 192.168.1.10:5901

ネットワークの種類を比較する

ネットワークの種類 ユースケース VM IP 外部アクセス
vm-プライベート (NAT) 開発、テスト 10.10.10.x ポート転送が必要
br0 (ブリッジ) 生産、サービス 192.168.1.x 直接
デュアルNIC DMZ、多層アプリ 両方 オプション

ステップ 8: virsh を使用して仮想マシンを管理する

上記のVMを作成した後 KVM、次のようにして管理します。 バーシュ コマンド。

仮想ネットワークの管理

# Liệt kê tất cả networks
virsh net-list --all

Xem thông tin network

virsh net-info vm-private

Xem DHCP leases (IP đã cấp cho VMs)

virsh net-dhcp-leases vm-private

Xem cấu hình XML của network

virsh net-dumpxml vm-private

Start/Stop network

virsh net-start vm-private virsh net-destroy vm-private

Enable/Disable autostart

virsh net-autostart vm-private virsh net-autostart --disable vm-private

Xóa network

virsh net-undefine vm-private

基本コマンド

ライフサイクル管理:

# Liệt kê tất cả VMs
virsh list --all

Start VM

virsh start vm-test-01

Shutdown graceful

virsh shutdown vm-test-01

Force stop (như rút điện)

virsh destroy vm-test-01

Reboot

virsh reboot vm-test-01

Suspend/Resume

virsh suspend vm-test-01 virsh resume vm-test-01

Autostart khi host boot

virsh autostart vm-test-01 virsh autostart --disable vm-test-01

VM情報:

# Thông tin tổng quan
virsh dominfo vm-test-01

CPU và memory stats

virsh domstats vm-test-01

Network interfaces

virsh domiflist vm-test-01

Disk information

virsh domblklist vm-test-01

IP address

virsh domifaddr vm-test-01

スナップショット

# Tạo snapshot
virsh snapshot-create-as vm-test-01 
--name "before-upgrade"
--description "Snapshot before system upgrade"

Liệt kê snapshots

virsh snapshot-list vm-test-01

Revert về snapshot

virsh snapshot-revert vm-test-01 before-upgrade

Xóa snapshot

virsh snapshot-delete vm-test-01 before-upgrade

VMのクローンを作成する

# Shutdown VM trước khi clone
virsh shutdown vm-test-01

Clone VM

virt-clone
--original vm-test-01
--name vm-test-02
--auto-clone

VMの削除

# Shutdown VM
virsh shutdown vm-test-01

Xóa VM definition và storage

virsh undefine vm-test-01 --remove-all-storage

ステップ 9: ネストされた仮想化の構成 (オプション)

入れ子になった 仮想化 VM 内で VM を実行できる - テストする場合に便利 Kubernetes または ドッカー VMで。

インテル CPU の場合:

# Tạo file config
echo "options kvm_intel nested=1" | sudo tee /etc/modprobe.d/kvm-intel.conf

Reload module

sudo modprobe -r kvm_intel sudo modprobe kvm_intel

Verify

cat /sys/module/kvm_intel/parameters/nested

Output: Y hoặc 1

AMD CPUの場合:

# Tạo file config
echo "options kvm_amd nested=1" | sudo tee /etc/modprobe.d/kvm-amd.conf

Reload module

sudo modprobe -r kvm_amd sudo modprobe kvm_amd

Verify

cat /sys/module/kvm_amd/parameters/nested

ステップ 10: トラブルシューティング

よくあるエラー

エラー: 「ストレージ ファイルにアクセスできません」

# Kiểm tra permissions
ls -la /var/lib/libvirt/images/

Fix permissions

sudo chown libvirt-qemu:kvm /var/lib/libvirt/images/.qcow2 sudo chmod 660 /var/lib/libvirt/images/.qcow2

エラー: VM には IP アドレスがありません

# Kiểm tra bridge
brctl show
ip addr show br0

Trong VM, request DHCP

sudo dhclient -v

エラー: virsh の実行時に「権限が拒否されました」

# Thêm vào groups
sudo usermod -aG libvirt,kvm $USER

Logout và login lại

ログを表示する:

# Libvirt logs
sudo journalctl -u libvirtd -f

QEMU logs cho specific VM

sudo tail -f /var/log/libvirt/qemu/vm-test-01.log

参考文献


インストール中に問題が発生した場合は、以下にコメントを残してください。