虚拟机运行缓慢或CPU模式无法配置host-passthrouph

问题描述

虚拟机创建成功后,运行速度缓慢,且配置CPU模式为host-passthrouph时出现以下报错,如图1所示。

图1 报错信息

可能原因

可能原因一

默认的开源QEMU配置中,kvm配置项为auto,使用默认参数创建虚拟机时,可能并未开启KVM硬件加速。可参考解决方案处理。

可能原因二

与CPU型号有关,当前环境CPU不支持KVM硬件加速功能。

执行virt-host-validate命令查询当前环境CPU是否支持KVM硬件加速功能,若显示如下,表示当前环境不支持KVM硬件加速功能。请咨询相关CPU处理器技术支持人员或更换为支持KVM硬件加速功能的环境解决。

解决方案

  1. 修改QEMU源码后重新构建并安装QEMU。
  2. 修改目标虚拟机的配置文本中domian类型和cpu模式。

    1. 执行如下命令,查询虚拟机列表。

      virsh list --all

      [root@localhost ~]# virsh list --all
       Id   Name         State
      ----------------------------
       1    centos      running

      若目标虚拟机回显信息显示状态为“running”,则执行2.b;否则,请直接执行2.c~2.d

    2. (可选)执行如下命令,关闭目标虚拟机。

      virsh shutdown <domain>

      [root@localhost vm]# virsh shutdown centos
      Domain centos is being shutdown
    3. 执行以下命令,打开目标虚拟机的配置文本。

      virsh edit <domian>

    4. 将配置文件中的“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>
      ... ...