KVM虚拟化安装:宿主机配置与虚拟机创建流程
KVM(Kernel-based Virtual Machine)是Linux内核自带的虚拟化方案,服务器虚拟化部署时无需额外购买商业授权。安装前先确认CPU支持硬件虚拟化:grep -E "(vmx|svm)" /proc/cpuinfo有输出即支持Intel VT-x或AMD-V。宿主机建议使用Ubuntu Server 22.04或CentOS Stream 9等长期支持版本,安装kvm、libvirt与virtinst组件即可。
# Ubuntu 宿主机安装 KVM 组件
sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst
sudo systemctl enable --now libvirtd
# 确认 KVM 内核模块已加载
lsmod | grep kvm
libvirtd启动后,管理工具virsh和virt-install即可使用。物理机建议开启宿主机的IOMMU与透传相关BIOS选项,后续做PCI直通或NIC绑定会更顺畅。
创建KVM虚拟机:virt-install命令行创建与网卡桥接配置
命令行创建虚拟机用virt-install工具,一次性指定CPU、内存、磁盘与安装介质。生产环境推荐把虚拟网卡接到桥接网卡上,使虚拟机与宿主机同处一个二层网络,便于NAT隔离环境的服务互访。
# 创建桥接网卡 br0
sudo nmcli con add type bridge ifname br0 con-name br0
sudo nmcli con modify br0 ipv4.addresses 192.168.10.10/24
sudo nmcli con modify br0 ipv4.gateway 192.168.10.1
sudo nmcli con modify br0 ipv4.dns 192.168.10.1
sudo nmcli con add type bridge-slave ifname eno1 master br0
# 创建虚拟机
sudo virt-install \
--name web01 \
--memory 4096 \
--vcpus 4 \
--disk path=/var/lib/libvirt/images/web01.qcow2,size=50,format=qcow2 \
--network bridge=br0,model=virtio \
--os-variant ubuntu22.04 \
--cdrom /opt/iso/ubuntu-22.04-server.iso \
--graphics vnc,listen=0.0.0.0
磁盘用qcow2格式,支持增量快照和更小的初始占用。–network指定桥接后,虚拟机和宿主机同网段,后续无需再配置端口转发。
KVM增量备份与快照:qcow2格式的磁盘快照管理
KVM原生支持qcow2增量快照,创建、回滚、删除都通过virsh完成。快照适合做短期回退点,不适合当作长期备份的唯一手段,因为快照依赖原始磁盘文件,磁盘文件损坏时快照一并失效。
# 创建快照
virsh snapshot-create-as web01 backup-20260909 "2026-09-09 更新前"
# 查看快照列表
virsh snapshot-list web01
# 回滚到快照
virsh snapshot-revert web01 backup-20260909
# 删除快照
virsh snapshot-delete web01 backup-20260909
qemu-kvm还支持外部快照,即生成一个新qcow2文件作为覆盖层,原磁盘只读。这种方式更适合配合备份工具做增量备份。
KVM备份方案实践:从virsh dumpxml到离线镜像备份
KVM的完整备份分两部分:配置文件与磁盘镜像。配置文件保存了虚拟机的CPU型号、内存、网卡等元数据;磁盘镜像则是数据本体。
# 备份虚拟机配置
virsh dumpxml web01 > /backup/kvm/web01.xml
# 离线备份磁盘镜像(需先停机或使用块级快照)
virsh shutdown web01
cp /var/lib/libvirt/images/web01.qcow2 /backup/kvm/web01.qcow2
virsh start web01
# 在线备份使用 virsh snapshot-create-as --disk-only 外部快照后拷贝底层盘
virsh snapshot-create-as web01 backup-1 --disk-only
cp /var/lib/libvirt/images/web01.qcow2 /backup/kvm/web01-$(date +%F).qcow2
virsh blockcommit web01 web01.qcow2 --active --pivot
在线备份时用外部快照冻结一致性,拷贝完成后把快照合并回主盘。备份文件建议同时保留dumpxml与qcow2,二者缺一不可。
KVM恢复演练与异地备份:从备份镜像还原虚拟机的完整流程
还原虚拟机只做三步:把磁盘镜像恢复到目标路径,用dumpxml配置定义虚拟机,启动验证。若原宿主机不可用,可直接在新宿主机上恢复。
# 恢复磁盘镜像
cp /backup/kvm/web01.qcow2 /var/lib/libvirt/images/web01.qcow2
# 恢复配置
virsh define /backup/kvm/web01.xml
# 启动并验证
virsh start web01
virsh list --all
恢复完成后确认IP、服务端口与数据完整性。备份频率按数据变更速度定,核心业务建议每天全量加每6小时增量。异地备份用rsync同步或复制qcow到对象存储均可,只要保证磁盘与配置能同时取回。
KVM备份体系的要点在于快照解决时间点回退,外部快照解决在线一致性,dumpxml解决配置还原,三者组合才能构成可用的恢复方案。定期做一次恢复演练,比备份工具本身更能暴露问题。
原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/kvm-xu-ni-hua-yu-fu-wu-qi-bei-fen-shi-zhan-xu-ni-ji-kuai/