虚拟机运行缓慢或CPU模式无法配置host-passthrouph
可能原因
可能原因一
默认的开源QEMU配置中,kvm配置项为auto,使用默认参数创建虚拟机时,可能并未开启KVM硬件加速。可参考解决方案处理。
可能原因二
与CPU型号有关,当前环境CPU不支持KVM硬件加速功能。
执行virt-host-validate命令查询当前环境CPU是否支持KVM硬件加速功能,若显示如下,表示当前环境不支持KVM硬件加速功能。请咨询相关CPU处理器技术支持人员或更换为支持KVM硬件加速功能的环境解决。
解决方案
- (可选)参考中1至4安装必要的依赖。
- (可选)从https://download.qemu.org/下载4.1.0版本的QEMU源码包,并将下载的源码包上传至环境中。
- (可选)执行如下命令,修改目录权限。
chmod +x ./qemu-4.1.0.tar.xz
- (可选)执行如下命令,解压QEMU源码包。
tar -xf ./qemu-4.1.0.tar.xz
- (可选)执行如下命令,进入QEMU源码目录。
cd qemu-4.1.0/
- (可选)构建并安装QEMU。
- (可选)检查QEMU版本。
- 执行如下命令,重启libvirtd服务。
[root@localhost etc]# service libvirtd restart Redirecting to /bin/systemctl restart libvirtd.service
- 执行如下命令,关闭AppArmor。
systemctl disable apparmor
若系统环境为openEuler 22.03 LTS/openEuler 20.03 LTS/Kylin V10 SP2/KyLinV10/BC Linux 21.10系统,可跳过此步骤。
- 执行如下命令,重启系统。
若系统环境为openEuler 22.03 LTS/openEuler 20.03 LTS/Kylin V10 SP2/KyLinV10系统,可跳过此步骤。
- 执行如下命令,查看QEMU版本。
[root@localhost qemu-4.1.0]# virsh version Compiled against library: libvirt 6.0.0 Using library: libvirt 6.0.0 Using API: QEMU 6.0.0 Running hypervisor: QEMU 4.1.0
- 执行如下命令,重启libvirtd服务。
- 修改目标虚拟机的配置文本中domian类型和cpu模式。
- 执行如下命令,查询虚拟机列表。
[root@localhost ~]# virsh list --all Id Name State ---------------------------- 1 centos running
- (可选)执行如下命令,关闭目标虚拟机。
virsh shutdown <domain>
[root@localhost vm]# virsh shutdown centos Domain centos is being shutdown
- 执行以下命令,打开目标虚拟机的配置文本。
- 将配置文件中的“domian type”修改为“kvm”,将“cpu mode”修改为“host-passthrough”。
<domain type='kvm'> <name>xxx</name> <uuid>xxxxxx</uuid> <memory unit='KiB'>xxxx</memory> <currentMemory unit='KiB'>xxxx</currentMemory> <vcpu placement='static' cpuset=xxxxx</vcpu> ...... <cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='20' threads='1'/> </cpu> ... ...
- 执行如下命令,查询虚拟机列表。
父主题: FAQ