文档首页 > > 加解密库> 开发指南(KAE加解密)> 使用案例> 加速引擎的应用> 加速引擎在KVM虚拟机中的使用

加速引擎在KVM虚拟机中的使用

分享
更新时间:2020/12/12 GMT+08:00

支持在KVM虚拟机使用加速引擎,加速器设备遵循PCIe规范,在操作系统内呈现为PCIe设备,并支持SR-IOV能力。每个加速器提供了1024个队列,单个PF默认使用256个队列,其余768个队列预留给VF使用。VF队列数量=(1024-PF队列数量)/ VF个数,余数队列会加到最后一个VF上。

推荐一个PF虚拟化出8个VF数目。

环境要求

  • HostOS上已经建立虚拟机。
  • HostOS上已经安装加速器内核驱动,虚拟机上已经安装加速引擎软件包,安装方法请参考安装加速引擎软件

在HostOS上进行虚拟化配置

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

  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. 执行virsh edit vm1命令,编辑虚拟机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。

    1
    2
    3
    4
    5
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address bus='0x76' slot='0x00' function='0x1'/>
      </source>
    </hostdev>
    

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

    • hisi_sec设备SBDF号以0000:7x:xx.x,其对应CPU0上设备;以0000:bx:xx.x为开头,对应CPU1上设备。
    • 为保证性能稳定,推荐虚拟机上核选取对应CPU上的core,同时VF也选择对应加速器上虚拟出来的VF。
    • HostOS对单个虚拟机上VF挂载个数存在上限,默认为11个。

  4. 执行virsh start vm1启动虚拟机。

    如果启动虚拟机失败,并提示上述错误,则操作以下命令,对挂载的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. 登陆虚拟机查询设备。

    1
    2
    linux-4myg:~ # ls /sys/class/uacce/
    hisi_sec-0
    

    说明挂载的VF已经在虚拟机上读取成功。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问