确认CPU支持虚拟化技术:
egrep -c '(vmx|svm)' /proc/cpuinfo
(输出大于0表示支持)确保BIOS中已启用虚拟化支持
对于基于Debian/Ubuntu的系统:
sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
对于基于RHEL/CentOS的系统:
sudo yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager
sudo systemctl enable --now libvirtd
sudo virsh list --all
如果看到空列表表示安装成功
sudo usermod -aG libvirt $(whoami)
sudo usermod -aG kvm $(whoami)
需要注销后重新登录生效
KVM安装后会自动创建一个名为"default"的NAT网络
sudo virsh net-list --all
sudo virsh net-start default
sudo virsh net-autostart default
编辑网络配置文件(路径可能因发行版而异):
sudo nano /etc/netplan/01-netcfg.yaml
添加桥接配置示例:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
interfaces: [enp3s0]
dhcp4: yes
parameters:
stp: false
forward-delay: 0
应用更改:
sudo netplan apply
sudo virt-install \
--name=ubuntu-vm \
--ram=2048 \
--vcpus=2 \
--disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=20 \
--os-type=linux \
--os-variant=ubuntu20.04 \
--network bridge=br0 \
--graphics spice \
--location='http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/' \
--extra-args="console=tty0 console=ttyS0,115200n8"
virt-manager
常用命令:
# 列出所有虚拟机
virsh list --all
# 启动虚拟机
virsh start vm-name
# 关闭虚拟机
virsh shutdown vm-name
# 强制停止虚拟机
virsh destroy vm-name
# 删除虚拟机
virsh undefine vm-name
# 编辑虚拟机配置
virsh edit vm-name
# 查看虚拟机信息
virsh dominfo vm-name
启用KSM(内核同页合并):
echo 1 > /sys/kernel/mm/ksm/run
使用virtio驱动提高I/O性能
考虑使用CPU pinning和NUMA亲和性配置
对于生产环境,考虑使用OVS(Open vSwitch)代替标准Linux桥接
权限问题:确保用户属于libvirt和kvm组
网络问题:检查防火墙设置,确保libvirt相关端口开放
性能问题:检查是否启用了嵌套虚拟化(对于虚拟机中运行虚拟机的情况)
图形显示问题:确保SPICE或VNC服务正常运行
如需更详细的配置或遇到特定问题,可以提供更多信息以便给出针对性建议。