鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

OpenStack支持机密虚拟机使能vhost_user加速

OpenStack使能机密虚拟机支持OVS+DPDK只需占用不超过3G大小内存大页,目前机密虚拟机仅支持1G大小大页内存,大页内存未绑定NUMA节点,不支持混合部署virtCCA机密虚拟机和普通虚拟机。

  1. 参考机密虚拟机支持DPDK-OVS网络加速准备环境。
    • 其中执行ife_topology.sh时需指定OpenStack的对外网卡br-ex,命令如下:
      sh ife_topology.sh clean
      ife_topology.sh normal BDF br-ex
      • clean/normal:ife_topology.sh脚本clean方法用于清理ovs网桥配置,normal方法用于配置OVS+DPDK。
      • BDF:指定DPDK使用的网卡BDF号。
      • br-ex:OpenStack使用的外部网桥名称。
    • libvirt启动的虚拟机在配置好网卡直通的网络后,同网段IP地址网络连通性正常,证明基础环境部署完成。

      首次部署环境可参考机密虚拟机支持DPDK-OVS网络加速,重启计算节点后,原DPDK接管的网卡会重新由内核管理,因此需重新使用DPDK接管网卡,重启后需执行以下命令,其中${BDF}为对应网卡的BDF号。dpdk-socket-mem根据NUMA节点数量修改。

      modprobe uio_pci_generic
      dpdk-devbind.py -b uio_pci_generic --force ${BDF}
      dpdk-devbind.py -s
      service openvswitch restart
      ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true other_config:dpdk-socket-mem="4096,4096,4096,4096" other_config:dpdk-lcore-mask="0x1F" other_config:pmd-cpu-mask="0x1E" other_config:dpdk-pmd-driver=/lib64/librte_pmd_hinic.so other_config:vhost-iommu-support=true
      service openvswitch restart
      systemctl restart neutron-openvswitch-agent.service
  2. 修改openstack-nova配置文件。
    1. 打开配置文件。
      vim /etc/nova/nova.conf
    2. “i”进入编辑模式,参考如下内容修改配置文件。
      [DEFAULT] 
      reserved_huge_pages=node:0,size:1GB,count:4 
      reserved_huge_pages=node:1,size:1GB,count:4 
      reserved_huge_pages=node:2,size:1GB,count:4 
      reserved_huge_pages=node:3,size:1GB,count:4
    3. “Esc”键退出编辑模式,输入:wq!,按“Enter”保存退出文件。
    4. 重启计算节点openstack-nova-compute服务。
      systemctl restart openstack-nova-compute
      • 需使用cat /sys/devices/system/node/node*/meminfo|grep HugePages命令查看NUMA节点数量和每个NUMA节点总大页HugePages_Total和可使用大页HugePages_Free的数量,HugePages_Total-HugePages_Free的值填到上述count处。
      • 通常情况DPDK会占用16*1G内存大页。
  3. 修改neutron-openvswitch-agent配置文件。
    1. 打开配置文件。
      vim /etc/neutron/plugins/ml2/openvswitch_agent.ini
    2. “i”进入编辑模式,参考如下内容修改配置文件。
      [ovs]
      datapath_type = netdev
      vhostuser_socket_dir = /var/run/openvswitch
    3. “Esc”键退出编辑模式,输入:wq!,按“Enter”键保存退出文件。
    4. 重启neutron-openvswitch-agent服务。
      systemctl restart neutron-openvswitch-agent
  4. 创建vhost_user相关flavor。
    openstack flavor create dpdk-cca-flavor --vcpus 4 --ram 8192 --disk 50 \
    --property hw:mem_page_size=1GB \
    --property trait:HW_CPU_AARCH64_HISI_VIRTCCA=required \
    --property hw:mem_secure=true \
    --property sw:qemu_cmdline="tmm-guest,id=tmm0,num-pmu-counters=1"
  5. 创建vhost_user机密虚拟机。
    openstack server create --image openEuler-image --flavor dpdk-cca-flavor --network public-network dpdk-vm
  6. 验证机密虚拟机通过OpenStack使能vhost_user。

    网卡添加网络配置后,虚拟机和IP地址同网段的另一台服务器可互相连接,网卡可用。