KAE在KVM虚拟机中的使用
KAE支持在KVM(Kernel-based Virtual Machine)虚拟机中使用,使用前要求HostOS上已经建立虚拟机,且已经安装KAE,最后在HostOS上完成相关配置后方可使用。
加速器设备遵循
在HostOS上进行虚拟化配置
- 查询HostOS环境中安装的加速器和对应的bdf号。
ls -al /sys/class/uacce
- 虚拟化加速器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
在虚拟机上配置加速器
- 编辑虚拟机vm1的配置文件。
virsh edit vm1
- 在配置文件中添加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上。
- 虚拟机配置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个。
- 给虚拟机配置一个VF
- 启动虚拟机。
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
- 登录虚拟机并安装KAE。
请参见安装KAE在虚拟机上安装KAE。
- 在虚拟机上查询设备。
1
ls /sys/class/uacce/
显示如下,说明挂载的VF已经在虚拟机上读取成功。
1
hisi_sec-0
父主题: KAE的应用