Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优

9次阅读

KVM+QEMU 是 Linux 原生高性能开源虚拟化方案,KVM 负责 CPU/ 内存加速,QEMU 处理 I/O 模拟与 VM 管理;需检查 CPU 虚拟化支持、kvm 模块加载及 libvirtd 服务;推荐 virt-install 创建 VM 并启用 virtio 驱动;生产环境应调优 CPU 模式、KSM、qcow2 存储与 virtio-net+vhost;常见问题需依次排查 /dev/kvm 权限、SELinux、显卡模型及网络配置。

Linux 虚拟化技术教程_KVMQEMU 虚拟机安装与调优

KVM+QEMU 是 Linux 原生、高性能的开源 虚拟化 方案,无需额外内核模块(KVM 已集成进主线内核),QEMU 提供设备模拟与用户态管理能力。实际部署中,KVM 负责 CPU/ 内存虚拟化加速,QEMU 处理磁盘、网卡、显卡 等 I/O 模拟和 VM 生命周期控制——二者协同工作,构成完整虚拟化

快速验证宿主机是否支持 KVM

运行以下命令检查硬件虚拟化支持与内核模块状态:

  • grep -E “(vmx|svm)” /proc/cpuinfo —— 若有输出,说明 CPU 支持 Intel VT-x(vmx)或 AMD-V(svm)
  • lsmod | grep kvm —— 应看到 kvm 和对应平台模块(kvm_intelkvm_amd)已加载
  • virsh list –all —— 若提示连接 libvirt 成功,说明管理服务就绪;若报错,需启动 libvirtd:sudo systemctl enable –now libvirtd

使用 virt-install 创建轻量级 虚拟机(推荐方式)

避免手动写 XML,用命令行一步完成安装。例如创建一台 2 核、2GB 内存、20GB 磁盘的 Ubuntu Server 虚拟机:

  • sudo virt-install
  • –name ubuntu22
  • –ram 2048
  • –vcpus 2
  • –disk size=20,bus=virtio
  • –cdrom /path/to/ubuntu-22.04-live-server-amd64.iso
  • –network network=default,model=virtio
  • –graphics none
  • –console pty,target_type=serial
  • –import

关键点:–disk bus=virtio–network model=virtio 启用半虚拟化驱动,显著提升 I/O 性能;–graphics none + –console 适合服务器场景,通过 virsh console ubuntu22 连接串口安装。

KVM 虚拟机性能调优要点

默认配置够用,但生产环境建议调整以下几项:

  • CPU 模式:在 XML 中设 ,直接暴露宿主 CPU 特性,兼容性与性能兼顾(比 host-model 更激进,需确保迁移目标宿主 CPU 架构一致)
  • 内存优化:启用 KSM(Kernel Samepage Merging)自动合并重复内存页:echo 1 | sudo tee /sys/kernel/mm/ksm/run;对大内存 VM 可开启 balloon 设备实现动态内存回收
  • 磁盘 后端:优先用 qcow2 格式(支持快照、压缩、延迟分配);存储池设为 direct LVMhost-device 可进一步降低延迟;禁用缓存(cache=none)并搭配 io=native 提升吞吐
  • 网卡优化:使用 virtio-net + vhost=on 卸载数据面到内核线程;高并发场景可绑定 vCPU 到物理核心(vcpupin)并启用 RSS

常见问题 与定位方法

遇到卡顿、启动失败或无法联网,按顺序排查:

  • 确认 /dev/kvm 存在且当前用户有读写权限(加入 kvm 组:sudo usermod -aG kvm $USER)
  • 检查 SELinux 是否拦截:临时设为 permissive 模式测试(sudo setenforce 0),如恢复则需调整策略或关闭
  • VM 启动黑屏?多数因显卡模型不匹配,改用 –graphics vnc,listen=0.0.0.0,port=5900 并用 VNC 客户端连接
  • 网络不通?确认 virbr0 网桥存在且 libvirtd 正在运行;检查 iptables/nftables 是否 DROP 了 FORWARD 链;宿主机 ping 不通 VM IP?尝试 virsh net-dhcp-leases default 查看分配记录
星耀云
版权声明:本站原创文章,由 星耀云 2025-12-31发表,共计1700字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources