Ubuntu KVM-QEMU-libvirt HEW

分享

本文记录在Ubuntu系统中配置虚拟化环境的完整过程,包括libvirt、KVM、QEMU等核心组件的安装与验证。

一、方案

虚拟化方案:KVM + QEMU + libvirt

二、安装虚拟化组件

2.1 安装基础虚拟化工具

sudo apt update
sudo apt install qemu qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

2.2 验证KVM支持

egrep -c '(vmx|svm)' /proc/cpuinfo

输出大于0表示CPU支持硬件虚拟化。

2.3 启动libvirt服务

sudo systemctl enable libvirtd
sudo systemctl start libvirtd
sudo systemctl status libvirtd

2.4 将当前用户加入libvirt组

sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
newgrp libvirt

三、安装固件和BIOS支持

sudo apt install ovmf seabios qemu-efi-aarch64

已安装的关键包:

  • ovmf - UEFI固件支持
  • seabios - 传统BIOS支持
  • qemu-efi-aarch64 - ARM64 UEFI支持

四、QEMU系统模拟器

QEMU提供了多种系统架构的模拟支持:

sudo apt install qemu-system
qemu-system-x86      # x86/x64架构
qemu-system-arm      # ARM架构
qemu-system-ppc      # PowerPC架构
qemu-system-riscv    # RISC-V架构
qemu-system-sparc    # SPARC架构
qemu-system-s390x    # IBM S/390架构
qemu-system-mips     # MIPS架构

五、网络配置

5.1 启用默认网络

sudo virsh net-list --all
sudo virsh net-start default
sudo virsh net-autostart default

5.2 检查网桥配置

ip link show
virsh net-dumpxml default

六、存储池配置

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

默认存储池路径通常位于/var/lib/libvirt/images/

七、验证安装

virsh version
qemu-img --version
libvirtd --version
sudo systemctl status libvirtd

八、创建第一个虚拟机

8.1 下载测试镜像

wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
mv jammy-server-cloudimg-amd64.img /var/lib/libvirt/images/

8.2 使用virt-install安装

sudo virt-install   --name ubuntu-test   --ram 2048   --disk path=/var/lib/libvirt/images/jammy-server-cloudimg-amd64.img   --vcpus 2   --os-type linux   --os-variant ubuntu22.04   --network bridge=virbr0   --graphics vnc   --noautoconsole

8.3 管理虚拟机

virsh list --all
virsh start ubuntu-test
virsh shutdown ubuntu-test
virsh destroy ubuntu-test
virsh undefine ubuntu-test

九、常用管理命令

# 列出所有虚拟机
virsh list --all

# 查看虚拟机信息
virsh dominfo ubuntu-test

# 访问虚拟机控制台
virsh console ubuntu-test

# 远程连接
virsh -c qemu:///system
virsh -c qemu+ssh://user@host/system

# 快照管理
virsh snapshot-create ubuntu-test
virsh snapshot-list ubuntu-test
virsh snapshot-revert ubuntu-test snapshot-name

# 克隆虚拟机
virt-clone --original ubuntu-test --name ubuntu-clone --auto-clone

十、性能优化

10.1 启用KVM加速

qemu-system-x86_64 -enable-kvm -m 4096 -cdrom install.iso

10.2 CPU pinning

virsh edit ubuntu-test
# 添加以下内容
<cputune>
  <vcpupin vcpu='0' cpuset='0-1'/>
  <vcpupin vcpu='1' cpuset='2-3'/>
</cputune>

10.3 内存巨页

sudo sysctl vm.nr_hugepages=1024
sudo sysctl -w vm.nr_hugepages=1024

十一、故障排查

# 查看libvirt日志
sudo journalctl -u libvirtd -f

# 查看虚拟机日志
sudo virsh console ubuntu-test

# 检查KVM模块状态
lsmod | grep kvm
cat /dev/kvm

# 检查网络桥接
brctl show
ip addr show virbr0

# 常见错误处理
# 错误: failed to find kernel
virt-install --location http://archive.ubuntu.com/ubuntu/dists/jammy/main/installer-amd64/

# 错误: permission denied
sudo chmod 666 /dev/kvm

十二、远程管理

12.1 启用libvirt TCP连接

sudo systemctl edit libvirtd
# 添加以下内容
[Service]
ExecStart=
ExecStart=/usr/sbin/libvirtd -v --listen

十三、ubuntu 26.04 新功能

切换到 Virtualization HWE stack

sudo ubuntu_virt_helper switch

参考资源