中文
注册

KAE在KVM虚拟机中的使用

KAE支持在KVM(Kernel-based Virtual Machine)虚拟机中使用,使用前要求HostOS上已经建立虚拟机,且已经安装KAE,最后在HostOS上完成相关配置后方可使用。

加速器设备遵循 PCIe (Peripheral Component Interconnect Express)规范,在操作系统内呈现为PCIe设备,并支持SR-IOV(Single Root I/O Virtualization)能力。每个加速器提供了1024个队列,单个PF(Physical Function)默认使用256个队列,其余768个队列预留给VF(Virtual Function)使用。VF队列数量 = (1024-PF队列数量) / VF个数,余数队列会加到最后一个VF上。推荐一个PF虚拟化出8个VF数目。

在HostOS上进行虚拟化配置

  1. 查询HostOS环境中安装的加速器和对应的bdf号。
    ls -al /sys/class/uacce

  2. 虚拟化加速器VF(以hisi_sec设备为例,各虚拟出3个VF,对应hisi_sec - 8 ~ hisi_sec - 13)。
    1
    2
    echo 3 > /sys/devices/pci0000:74/0000:74:01.0/0000:76:00.0/sriov_numvfs
    echo 3 > /sys/devices/pci0000:b4/0000:b4:01.0/0000:b6:00.0/sriov_numvfs
    

在虚拟机上配置加速器

  1. 编辑虚拟机vm1的配置文件。
    virsh edit vm1
  2. 在配置文件中添加vcpu配置(以配置4个core为例)。
    1
    2
    3
    4
    5
    6
    7
    <cputune> 
    <vcpupin vcpu='0' cpuset='4'/> 
    <vcpupin vcpu='1' cpuset='5'/> 
    <vcpupin vcpu='2' cpuset='6'/> 
    <vcpupin vcpu='3' cpuset='7'/> 
    <emulatorpin cpuset='4-7'/> 
    </cputune>
    

    上述的配置完成后,虚拟机进程运行会固在指定的主机的物理CPU上。

  3. 虚拟机配置VF。
    • 给虚拟机配置一个VF
      <hostdev mode='subsystem' type='pci' managed='yes'> 
        <source> 
          <address bus='0x76' slot='0x00' function='0x1'/> 
        </source> 
      </hostdev>

      上述的配置完成后,虚拟机挂载了加速器虚拟出来的一个VF。

    • 给虚拟机配置多个VF
      <hostdev mode='subsystem' type='pci' managed='yes'> 
        <source> 
          <address bus='0x76' slot='0x00' function='0x1'/> 
        </source> 
      </hostdev>
      <hostdev mode='subsystem' type='pci' managed='yes'> 
        <source> 
          <address bus='0x76' slot='0x00' function='0x2'/> 
        </source> 
      </hostdev>
    • 本文给虚拟机配置的VF是hisi_sec-8,它对应的编码是:hisi_sec-8 -> ../../devices/pci0000:74/0000:74:01.0/0000:76:00.1/uacce/hisi_sec-8。虚拟机xml配置的数据来自于编码里的“76:00.1”,bus对应“76”,slot对应“00”,function对应“1”,而且这些数据都是16进制的,所以要加上“0x”。
    • 本文只给虚拟化并配置了SEC设备,所以虚拟机安装完成后,只有这个SEC设备可用。如果虚拟机需要zip或者HPRE设备,请参考操作SEC设备的方式进行增加。
    • hisi_sec设备SBDF号以0000:7x:xx.x,其对应CPU0上设备;以0000:bx:xx.x为开头,对应CPU1上设备。
    • 为保证性能稳定,推荐虚拟机上核选取对应CPU上的core,同时VF也选择对应加速器上虚拟出来的VF。
    • HostOS对单个虚拟机上VF挂载个数存在上限,默认为11个。
  4. 启动虚拟机。
    1
    virsh start vm1
    

    如果启动虚拟机失败,并提示“Unknown PCI header type '127'”,则需要对挂载的VF进行解绑操作,然后重新启动虚拟机。

    1
    2
    3
    echo 0000:76:00.1 > /sys/bus/pci/drivers/hisi_sec/unbind
    echo vfio-pci > /sys/devices/pci0000:74/0000:74:01.0/0000:76:00.1/driver_override
    echo 0000:76:00.1 > /sys/bus/pci/drivers_probe
    
  5. 登录虚拟机并安装KAE。

    请参见安装KAE在虚拟机上安装KAE。

  6. 在虚拟机上查询设备。
    1
    ls /sys/class/uacce/
    

    显示如下,说明挂载的VF已经在虚拟机上读取成功。

    1
    hisi_sec-0
    
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词