1. 首页 > 软件下载 > 正文

KVM下载-KVM虚拟化平台下载地址-KVM虚拟化平台下载方法

文章目录索引

1. KVM虚拟化平台简介

1.1 最新版本信息

2. KVM下载方式

3. KVM安装实战

4. KVM配置实战

5. 虚拟机管理实战

6. 生产环境最佳实践

1. KVM虚拟化平台简介

KVM(Kernel-based Virtual Machine)是一个开源的虚拟化解决方案,已集成到Linux内核中。KVM将Linux内核转变为一个虚拟化管理程序,支持x86、ARM、PowerPC等多种架构,学习交流加群风哥微信: itpux-com。

KVM具有以下特点:

高性能:直接使用Linux内核调度,性能接近原生

安全性:利用Linux安全模块(SELinux、AppArmor)

可扩展性:支持大规模虚拟化部署

硬件支持:支持GPU、USB、PCI设备直通

1.1 最新版本信息

KVM随Linux内核更新,当前主要版本如下:

KVM 6.8:Linux 6.8内核,2024年发布

KVM 6.6:Linux 6.6 LTS内核,长期支持版

KVM 6.1:Linux 6.1 LTS内核,长期支持版

KVM 5.15:Linux 5.15 LTS内核,维护版

风哥提示:生产环境建议使用LTS内核版本(6.6或6.1),这些版本提供长期支持和安全更新。

2. KVM下载方式

KVM通过Linux内核和用户空间工具组成。更多学习教程www.fgedu.net.cn

方式一:发行版包安装(推荐)

# CentOS/RHEL/AlmaLinux/Rocky Linux安装
# yum install qemu-kvm libvirt virt-install virt-manager libvirt-client

# 安装输出案例如下:
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
qemu-kvm x86_64 17:8.2.0-11.el9 appstream 2.1 M
libvirt x86_64 9.5.0-7.el9 appstream 456 k
virt-install noarch 4.1.0-3.el9 appstream 156 k
virt-manager noarch 4.1.0-3.el9 appstream 890 k
libvirt-client x86_64 9.5.0-7.el9 appstream 234 k
Installing dependencies:
libvirt-libs x86_64 9.5.0-7.el9 appstream 1.2 M
qemu-img x86_64 17:8.2.0-11.el9 appstream 1.8 M
seabios-bin noarch 1.16.3-3.el9 appstream 234 k
edk2-ovmf noarch 20231122-2.el9 appstream 3.4 M
libvirt-daemon x86_64 9.5.0-7.el9 appstream 567 k

Transaction Summary
================================================================================
Install 5 Packages (+5 Dependent packages)

Total download size: 10.2 M
Installed size: 35 M
Downloading Packages:
(1/10): qemu-kvm-8.2.0-11.el9.x86_64.rpm 2.1 MB/s | 2.1 MB 00:01
(2/10): libvirt-9.5.0-7.el9.x86_64.rpm 456 kB/s | 456 kB 00:01
(3/10): virt-install-4.1.0-3.el9.noarch.rpm 156 kB/s | 156 kB 00:01
(4/10): virt-manager-4.1.0-3.el9.noarch.rpm 890 kB/s | 890 kB 00:01
(5/10): libvirt-client-9.5.0-7.el9.x86_64.rpm 234 kB/s | 234 kB 00:01
(6/10): libvirt-libs-9.5.0-7.el9.x86_64.rpm 1.2 MB/s | 1.2 MB 00:01
(7/10): qemu-img-8.2.0-11.el9.x86_64.rpm 1.8 MB/s | 1.8 MB 00:01
(8/10): seabios-bin-1.16.3-3.el9.noarch.rpm 234 kB/s | 234 kB 00:01
(9/10): edk2-ovmf-20231122-2.el9.noarch.rpm 3.4 MB/s | 3.4 MB 00:02
(10/10): libvirt-daemon-9.5.0-7.el9.x86_64.rpm 567 kB/s | 567 kB 00:01
——————————————————————————–
Total 10.2 MB/s | 10.2 MB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : qemu-img-17:8.2.0-11.el9.x86_64 1/10
Installing : libvirt-libs-9.5.0-7.el9.x86_64 2/10
Installing : libvirt-daemon-9.5.0-7.el9.x86_64 3/10
Installing : libvirt-9.5.0-7.el9.x86_64 4/10
Installing : libvirt-client-9.5.0-7.el9.x86_64 5/10
Installing : seabios-bin-1.16.3-3.el9.noarch 6/10
Installing : edk2-ovmf-20231122-2.el9.noarch 7/10
Installing : qemu-kvm-17:8.2.0-11.el9.x86_64 8/10
Installing : virt-install-4.1.0-3.el9.noarch 9/10
Installing : virt-manager-4.1.0-3.el9.noarch 10/10
Running scriptlet: virt-manager-4.1.0-3.el9.noarch 10/10
Verifying : qemu-kvm-17:8.2.0-11.el9.x86_64 1/10
Verifying : libvirt-9.5.0-7.el9.x86_64 2/10
Verifying : virt-install-4.1.0-3.el9.noarch 3/10
Verifying : virt-manager-4.1.0-3.el9.noarch 4/10
Verifying : libvirt-client-9.5.0-7.el9.x86_64 5/10

Installed:
libvirt-9.5.0-7.el9.x86_64 libvirt-client-9.5.0-7.el9.x86_64
libvirt-daemon-9.5.0-7.el9.x86_64 libvirt-libs-9.5.0-7.el9.x86_64
qemu-img-17:8.2.0-11.el9.x86_64 qemu-kvm-17:8.2.0-11.el9.x86_64
seabios-bin-1.16.3-3.el9.noarch edk2-ovmf-20231122-2.el9.noarch
virt-install-4.1.0-3.el9.noarch virt-manager-4.1.0-3.el9.noarch

Complete!

# Ubuntu/Debian安装
# apt-get install qemu-kvm libvirt-daemon-system libvirt-clients virt-manager

# 安装输出案例如下:
Reading package lists… Done
Building dependency tree… Done
The following additional packages will be installed:
libvirt-daemon libvirt-daemon-system libvirt-clients qemu-system-x86
qemu-utils virt-manager libguestfs-tools
Suggested packages:
libvirt-daemon-driver-storage-gluster libvirt-daemon-driver-storage-rbd
The following NEW packages will be installed:
qemu-kvm libvirt-daemon-system libvirt-clients virt-manager qemu-system-x86
qemu-utils libguestfs-tools
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 45.2 MB of archives.
After this operation, 185 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 qemu-system-x86 amd64 1:7.2+dfsg-7ubuntu2 [15.6 MB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libvirt-daemon-system amd64 8.0.0-1ubuntu7 [1,234 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 libvirt-clients amd64 8.0.0-1ubuntu7 [567 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy/main amd64 virt-manager all 1:4.1.0-1ubuntu1 [890 kB]
Fetched 45.2 MB in 12s (3,767 kB/s)
Selecting previously unselected package qemu-system-x86.
(Reading database … 156789 files and directories currently installed.)
Preparing to unpack …/qemu-system-x86_1%3a7.2+dfsg-7ubuntu2_amd64.deb …
Unpacking qemu-system-x86 (1:7.2+dfsg-7ubuntu2) …
Selecting previously unselected package libvirt-daemon-system.
Preparing to unpack …/libvirt-daemon-system_8.0.0-1ubuntu7_amd64.deb …
Unpacking libvirt-daemon-system (8.0.0-1ubuntu7) …
Selecting previously unselected package libvirt-clients.
Preparing to unpack …/libvirt-clients_8.0.0-1ubuntu7_amd64.deb …
Unpacking libvirt-clients (8.0.0-1ubuntu7) …
Selecting previously unselected package virt-manager.
Preparing to unpack …/virt-manager_1%3a4.1.0-1ubuntu1_all.deb …
Unpacking virt-manager (1:4.1.0-1ubuntu1) …
Setting up qemu-system-x86 (1:7.2+dfsg-7ubuntu2) …
Setting up libvirt-daemon-system (8.0.0-1ubuntu7) …
Setting up libvirt-clients (8.0.0-1ubuntu7) …
Setting up virt-manager (1:4.1.0-1ubuntu1) …
Processing triggers for man-db (2.10.2-1) …
Processing triggers for libc-bin (2.35-0ubuntu3.4) …

方式二:QEMU源码编译

# 下载QEMU源码(KVM用户空间组件)
# mkdir -p /fgedudb/kvm
# cd /fgedudb/kvm

# 下载QEMU 8.2.0源码
# wget https://download.qemu.org/qemu-8.2.0.tar.xz

# 下载输出案例如下:
–2026-04-05 06:10:15– https://download.qemu.org/qemu-8.2.0.tar.xz
Resolving download.qemu.org… 146.75.50.132
Connecting to download.qemu.org|146.75.50.132|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 123456789 (118M) [application/x-xz]
Saving to: ‘qemu-8.2.0.tar.xz’

qemu-8.2.0.tar.xz 100%[===============================================>] 118.00M 25.6MB/s in 4.6s

2026-04-05 06:10:20 URL:https://download.qemu.org/qemu-8.2.0.tar.xz [123456789/123456789] -> “qemu-8.2.0.tar.xz” [1]

# 验证下载文件
# ls -lh qemu-8.2.0.tar.xz
-rw-r–r– 1 root root 118M Apr 5 06:10 qemu-8.2.0.tar.xz

# 下载SHA256校验文件
# wget https://download.qemu.org/qemu-8.2.0.tar.xz.sha256

# 验证校验和
# sha256sum -c qemu-8.2.0.tar.xz.sha256
qemu-8.2.0.tar.xz: OK

# 解压源码
# tar -xf qemu-8.2.0.tar.xz
# cd qemu-8.2.0

# 安装编译依赖
# yum install ninja-build python3-devel glib2-devel pixman-devel

# 配置编译选项
# ./configure –target-list=x86_64-softmmu –enable-kvm –enable-virtfs –enable-spice

# 配置输出案例如下:
Directories:
Install prefix : /usr/local
BIOS directory : /usr/local/share/qemu
firmware path : /usr/local/share/qemu-firmware
binary directory : /usr/local/bin
library directory : /usr/local/lib
module directory : /usr/local/lib/qemu
libexec directory : /usr/local/libexec
include directory : /usr/local/include
config directory : /usr/local/etc
local state directory : /usr/local/var
Source path : /fgedudb/kvm/qemu-8.2.0
GIT submodules :

KVM support : YES
VirtFS support : YES
SPICE support : YES

# 编译QEMU
# make -j$(nproc)

# 编译输出案例如下:
GEN ui/input-keymap-atset1-to-qcode.c
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-atset1.c
GEN ui/input-keymap-qcode-to-atset2.c
GEN ui/input-keymap-qcode-to-atset3.c
GEN ui/input-keymap-qcode-to-linux.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qcode-to-sun.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN ui/input-keymap-usb-to-qcode.c
GEN ui/input-keymap-win32-to-qcode.c
GEN ui/input-keymap-x11-to-qcode.c
GEN ui/input-keymap-xorgevdev-to-qcode.c
GEN ui/input-keymap-xorgkbd-to-qcode.c
GEN ui/input-keymap-xorgxquartz-to-qcode.c
GEN ui/input-keymap-xorgxwin-to-qcode.c

LINK qemu-system-x86_64

# 安装QEMU
# make install

# 安装输出案例如下:
install -d -m 0755 “/usr/local/bin”
install -c -m 0755 qemu-system-x86_64 “/usr/local/bin”
install -c -m 0755 qemu-img “/usr/local/bin”
install -c -m 0755 qemu-io “/usr/local/bin”
install -c -m 0755 qemu-nbd “/usr/local/bin”

3. KVM安装实战

完成下载后,进行KVM环境配置。更多学习教程公众号风哥教程itpux_com

步骤1:验证硬件虚拟化支持

# 检查CPU虚拟化支持
# cat /proc/cpuinfo | grep -E “vmx|svm”

# 输出案例如下(Intel CPU):
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cat_l2 cdp_l3 invpcid_single intel_ppin cdp_l2 ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local split_lock_detect avx_vnni avx512_bf16 wbnoinvd dtherm ida arat pln pts hwp hwp_act_window hwp_epp hwp_pkg_req avx512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq la57 rdpid bus_lock_detect cldemote movdiri movdir64b enqcmd fsrm md_clear serialize tsxldtrk pconfig arch_lbr amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities

# 检查KVM模块是否加载
# lsmod | grep kvm

# 输出案例如下:
kvm_intel 364544 0
kvm 1056768 1 kvm_intel
irqbypass 16384 1 kvm

# 如果模块未加载,手动加载
# modprobe kvm
# modprobe kvm_intel

# 检查KVM设备
# ls -la /dev/kvm

# 输出案例如下:
crw-rw—- 1 root kvm 10, 232 Apr 5 06:15 /dev/kvm

# 将用户添加到kvm组
# usermod -aG kvm $(whoami)

步骤2:启动libvirt服务

# 启动libvirtd服务
# systemctl enable libvirtd
# systemctl start libvirtd

# 输出案例如下:
Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service → /usr/lib/systemd/system/libvirtd.service.

# 查看服务状态
# systemctl status libvirtd

# 输出案例如下:
● libvirtd.service – Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; preset: disabled)
Active: active (running) since Fri 2026-04-05 06:20:15 CST; 30s ago
TriggeredBy: ● libvirtd.socket
● libvirtd-ro.socket
● libvirtd-admin.socket
Docs: man:libvirtd(8)
https://libvirt.org
Main PID: 12345 (libvirtd)
Tasks: 19 (limit: 49112)
Memory: 45.6M
CPU: 1.234s
CGroup: /system.slice/libvirtd.service
├─12345 /usr/sbin/libvirtd –timeout 120
├─12400 /usr/sbin/dnsmasq –conf-file=/var/lib/libvirt/dnsmasq/default.conf –leasefile-ro –dhcp-script=/usr/libexec/libvirt_leaseshelper
└─12401 /usr/sbin/dnsmasq –conf-file=/var/lib/libvirt/dnsmasq/default.conf –leasefile-ro –dhcp-script=/usr/libexec/libvirt_leaseshelper

Apr 05 06:20:15 fgedu.net.cn systemd[1]: Started Virtualization daemon.
Apr 05 06:20:15 fgedu.net.cn libvirtd[12345]: libvirt version: 9.5.0
Apr 05 06:20:15 fgedu.net.cn libvirtd[12345]: hostname: fgedu.net.cn

# 验证KVM安装
# virsh version

# 输出案例如下:
Compiled against library: libvirt 9.5.0
Using library: libvirt 9.5.0
Using API: QEMU 9.5.0
Running hypervisor: QEMU 8.2.0

步骤3:配置网络

# 查看默认网络
# virsh net-list –all

# 输出案例如下:
Name State Autostart Persistent
——————————————
default active yes yes

# 查看默认网络配置
# virsh net-info default

# 输出案例如下:
Name: default
UUID: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Active: yes
Persistent: yes
Autostart: yes
Bridge: virbr0

# 启动默认网络
# virsh net-start default

# 输出案例如下:
Network default started

# 设置网络自动启动
# virsh net-autostart default

# 输出案例如下:
Network default marked as autostarted

# 创建桥接网络
# cat > /tmp/bridge.xml << 'EOF'
br0



EOF

# 定义桥接网络
# virsh net-define /tmp/bridge.xml

# 输出案例如下:
Network br0 defined from /tmp/bridge.xml

# 启动桥接网络
# virsh net-start br0
# virsh net-autostart br0

4. KVM配置实战

完成安装后,进行基础配置优化。学习交流加群风哥QQ113257174

步骤1:配置存储池

# 查看默认存储池
# virsh pool-list –all

# 输出案例如下:
Name State Autostart
——————————————-
default active yes

# 创建存储目录
# mkdir -p /fgedudb/kvm/images
# mkdir -p /fgedudb/kvm/iso

# 定义存储池
# cat > /tmp/images-pool.xml << 'EOF' images
/fgedudb/kvm/images
EOF

# 创建存储池
# virsh pool-define /tmp/images-pool.xml

# 输出案例如下:
Pool images defined from /tmp/images-pool.xml

# 启动存储池
# virsh pool-start images
# virsh pool-autostart images

# 输出案例如下:
Pool images started
Pool images marked as autostarted

# 创建ISO存储池
# cat > /tmp/iso-pool.xml << 'EOF' iso
/fgedudb/kvm/iso
EOF

# 定义并启动ISO存储池
# virsh pool-define /tmp/iso-pool.xml
# virsh pool-start iso
# virsh pool-autostart iso

# 查看存储池信息
# virsh pool-info images

# 输出案例如下:
Name: images
UUID: b2c3d4e5-f6a7-8901-bcde-f12345678901
State: running
Persistent: yes
Autostart: yes
Capacity: 500.00 GiB
Allocation: 50.00 GiB
Available: 450.00 GiB

步骤2:配置QEMU/KVM参数

# 编辑QEMU配置文件
# cat > /etc/libvirt/qemu.conf << 'EOF' # 用户和组配置 user = "root" group = "root" # 动态所有权 dynamic_ownership = 1 # 安全驱动 security_driver = "selinux" # 内存限制 max_processes = 4096 max_files = 4096 # 日志配置 log_level = 3 log_outputs = "3:file:/var/log/libvirt/qemu/qemu.log" # cgroup配置 cgroup_controllers = [ "cpu", "devices", "memory", "blkio", "cpuset", "cpuacct" ] # 巨页配置 hugetlbfs_mount = "/dev/hugepages" # 嵌套虚拟化(可选) # nested = 1 EOF # 重启libvirtd服务 # systemctl restart libvirtd # 配置巨页内存 # echo 2048 > /sys/kernel/mm/transparent_hugepage/hpage_pmd_size
# echo always > /sys/kernel/mm/transparent_hugepage/enabled

# 查看巨页配置
# cat /proc/meminfo | grep Huge

# 输出案例如下:
HugePages_Total: 1024
HugePages_Free: 1024
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 2097152 kB

步骤3:配置虚拟网络

# 创建NAT网络配置
# cat > /tmp/nat-network.xml << 'EOF'
nat-network










EOF

# 定义并启动NAT网络
# virsh net-define /tmp/nat-network.xml
# virsh net-start nat-network
# virsh net-autostart nat-network

# 输出案例如下:
Network nat-network defined from /tmp/nat-network.xml
Network nat-network started
Network nat-network marked as autostarted

# 创建隔离网络配置
# cat > /tmp/isolated-network.xml << 'EOF'
isolated







EOF

# 定义并启动隔离网络
# virsh net-define /tmp/isolated-network.xml
# virsh net-start isolated
# virsh net-autostart isolated

# 查看所有网络
# virsh net-list –all

# 输出案例如下:
Name State Autostart Persistent
———————————————-
default active yes yes
nat-network active yes yes
isolated active yes yes

5. 虚拟机管理实战

创建和管理KVM虚拟机。from:www.itpux.com

步骤1:创建虚拟机

# 下载操作系统ISO
# cd /fgedudb/kvm/iso
# wget https://mirrors.almalinux.org/9.3/isos/x86_64/AlmaLinux-9.3-x86_64-dvd.iso

# 使用virt-install创建虚拟机
# virt-install \
–name alma9-vm \
–memory 2048 \
–vcpus 2 \
–disk path=/fgedudb/kvm/images/alma9-vm.qcow2,size=20,format=qcow2 \
–cdrom /fgedudb/kvm/iso/AlmaLinux-9.3-x86_64-dvd.iso \
–network network=default \
–graphics vnc,listen=0.0.0.0,port=5901 \
–os-variant almalinux9 \
–boot uefi

# 创建输出案例如下:
Starting install…
Allocating ‘alma9-vm.qcow2’ | 20 GB 00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.

# 查看虚拟机状态
# virsh list –all

# 输出案例如下:
Id Name State
————————-
1 alma9-vm running
– test-vm shut off

# 查看虚拟机详情
# virsh dominfo alma9-vm

# 输出案例如下:
Id: 1
Name: alma9-vm
UUID: c3d4e5f6-a7b8-9012-cdef-123456789012
OS Type: hvm
State: running
CPU(s): 2
CPU time: 156.3s
Max memory: 2097152 KiB
Used memory: 2097152 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: selinux
Security DOI: 0
Security label: system_u:system_r:svirt_t:s0:c123,c456 (enforcing)

步骤2:虚拟机基本操作

# 启动虚拟机
# virsh start alma9-vm

# 输出案例如下:
Domain alma9-vm started

# 优雅关闭虚拟机
# virsh shutdown alma9-vm

# 输出案例如下:
Domain alma9-vm is being shutdown

# 强制关闭虚拟机
# virsh destroy alma9-vm

# 输出案例如下:
Domain alma9-vm destroyed

# 重启虚拟机
# virsh reboot alma9-vm

# 输出案例如下:
Domain alma9-vm is being rebooted

# 暂停虚拟机
# virsh suspend alma9-vm

# 输出案例如下:
Domain alma9-vm suspended

# 恢复虚拟机
# virsh resume alma9-vm

# 输出案例如下:
Domain alma9-vm resumed

# 查看虚拟机控制台
# virsh console alma9-vm

# 输出案例如下:
Connected to domain alma9-vm
Escape character is ^]

AlmaLinux 9.3
Kernel 5.14.0-362.8.1.el9_3.x86_64 on an x86_64

fgedu login:

步骤3:虚拟机快照管理

# 创建虚拟机快照
# virsh snapshot-create-as alma9-vm –name “before-update” –description “系统更新前快照”

# 输出案例如下:
Domain snapshot before-update created

# 查看快照列表
# virsh snapshot-list alma9-vm

# 输出案例如下:
Name Creation Time State
—————————————————-
before-update 2026-04-05 06:45:15 +0800 running

# 查看快照详情
# virsh snapshot-info alma9-vm –snapshotname before-update

# 输出案例如下:
Name: before-update
Domain: alma9-vm
Current: yes
State: running
Location: internal
Parent: –
Children: 0
Descendants: 0
Metadata: yes

# 恢复到快照
# virsh snapshot-revert alma9-vm –snapshotname before-update

# 输出案例如下:
Domain reverted from snapshot before-update

# 删除快照
# virsh snapshot-delete alma9-vm –snapshotname before-update

# 输出案例如下:
Domain snapshot before-update deleted

步骤4:虚拟机迁移

# 在线迁移虚拟机到另一台主机
# virsh migrate –live alma9-vm qemu+ssh://192.168.1.52/system

# 输出案例如下:
root@192.168.1.52’s password:
Migration: [100 %]

# 离线迁移虚拟机
# virsh migrate –offline alma9-vm qemu+ssh://192.168.1.52/system

# 迁移到本地存储
# virsh migrate –live –copy-storage-all alma9-vm qemu+ssh://192.168.1.52/system

# 查看迁移状态
# virsh domjobinfo alma9-vm

# 输出案例如下:
Job type: None
Time elapsed: 0 ms
Data processed: 0.000 MiB
Data remaining: 0.000 MiB
Data total: 0.000 MiB
Memory processed: 0.000 MiB
Memory remaining: 0.000 MiB
Memory total: 2.000 GiB

6. 生产环境最佳实践

生产环境部署KVM的建议配置。学习交流加群风哥微信: itpux-com

步骤1:性能优化配置

# 配置CPU模式
# 编辑虚拟机配置
# virsh edit alma9-vm

# 添加CPU配置

# 配置内存后端



# 配置磁盘I/O调度
# 在宿主机上配置
# echo noop > /sys/block/sda/queue/scheduler

# 配置虚拟机磁盘缓存


# 配置网络多队列


# 生产环境性能建议:
# – 使用host-passthrough CPU模式获得最佳性能
# – 启用巨页内存减少内存开销
# – 使用virtio驱动提高I/O性能
# – 配置多队列网络提高网络吞吐量

步骤2:高可用配置

# 配置虚拟机自动启动
# virsh autostart alma9-vm

# 输出案例如下:
Domain alma9-vm marked as autostarted

# 配置虚拟机高可用(使用Pacemaker)
# pcs resource create vm_alma9 VirtualDomain \
hypervisor=”qemu:///system” \
config=”/etc/libvirt/qemu/alma9-vm.xml” \
migration_transport=”ssh” \
op start timeout=”120s” \
op stop timeout=”120s” \
op monitor depth=”0″ timeout=”30″ interval=”10″

# 输出案例如下:
Assumed agent name ‘ocf:heartbeat:VirtualDomain’ (deduced from ‘VirtualDomain’)
Resource ‘vm_alma9’ created

# 配置虚拟机迁移约束
# pcs constraint colocation add vm_alma9 with storage-clone INFINITY
# pcs constraint order start storage-clone then vm_alma9

# 配置故障转移
# pcs resource defaults resource-stickiness=100
# pcs resource defaults migration-threshold=3

# 查看高可用状态
# pcs status

# 输出案例如下:
Cluster name: kvm_cluster
Stack: corosync
Current DC: fgedu01 (version 2.1.6-1.el9) – partition with quorum
Last updated: Fri Apr 5 07:00:15 2026
Last change: Fri Apr 5 06:55:30 2026 by root via cibadmin on fgedu01

2 nodes configured
3 resource instances configured

Online: [ fgedu01 fgedu02 ]

Full list of resources:

storage-clone (stonith:fence_ipmilan): Started fgedu01
vm_alma9 (ocf::heartbeat:VirtualDomain): Started fgedu01

Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled

步骤3:监控配置

# 安装监控工具
# yum install virt-top libvirt-devel

# 使用virt-top监控
# virt-top

# 输出案例如下:
virt-top 07:05:15 – x86_64 8/8CPU 3200MHz 32768MB
3 domains, 2 active, 2 running, 0 sleeping, 0 paused, 0 blocked
Mem: 24576MB used, 8192MB free, 0MB shared, 2048MB cache
CPU: 15.2% used, 84.8% free

ID S RDRD WRSW RXBY TXBY %CPU %MEM TIME NAME
1 R 0 0 0 0 5.2 6.2 0:15.63 alma9-vm
2 R 0 0 0 0 3.1 3.1 0:08.45 test-vm
– (other)

# 配置libvirt统计收集
# cat >> /etc/libvirt/libvirtd.conf << 'EOF' # 统计周期 stats_period = 10 # 启用CPU统计 stats_cpu = 1 # 启用磁盘统计 stats_disk = 1 # 启用网络统计 stats_net = 1 EOF # 重启libvirtd # systemctl restart libvirtd # 查看虚拟机统计 # virsh domstats --cpu --disk --interface alma9-vm # 输出案例如下: Domain: 'alma9-vm' cpu.time=1563456789 cpu.user=567890123 cpu.system=895678901 cpu.halts=12345 disk.0.name=vda disk.0.rd.reqs=1234 disk.0.rd.bytes=56789012 disk.0.wr.reqs=567 disk.0.wr.bytes=23456789 net.0.name=vnet0 net.0.rx.bytes=34567890 net.0.rx.pkts=12345 net.0.tx.bytes=23456789 net.0.tx.pkts=9876

生产环境建议:

硬件要求:CPU支持虚拟化扩展,内存建议64GB以上,使用SSD存储

网络配置:使用桥接模式或SR-IOV提高网络性能

存储配置:使用LVM或Ceph作为存储后端,配置RAID提高可靠性

监控配置:集成Prometheus/Grafana监控虚拟机资源使用

备份策略:定期备份虚拟机配置和快照,测试恢复流程

高可用配置:配置虚拟机迁移和故障转移机制

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息