搜索

4.2. NFV 部署支持的配置

download PDF

Red Hat OpenStack Platform(RHOSP)支持以下 NFV 部署,使用 director:

  • 单根 I/O 虚拟化(SR-IOV)
  • 带有 Data Plane Development Kit(OVS-DPDK)的 Open vSwitch

另外,您可以使用以下功能部署 RHOSP:

4.2.1. 使用 OVS 机制驱动程序部署 RHOSP

使用 OVS 机制驱动程序部署 RHOSP:

流程

  1. 修改 containers-prepare-parameter.yaml 文件,使 neutron_driver 参数设置为 ovs

    parameter_defaults:
      ContainerImagePrepare:
      - push_destination: true
        set:
         neutron_driver: ovs
         ...
  2. neutron-ovs.yaml 环境文件包含到 /usr/share/openstack-tripleo-heat-templates/environments/services 目录中。

    TEMPLATES=/usr/share/openstack-tripleo-heat-templates
    
    openstack overcloud deploy --templates \
    -e ${TEMPLATES}/environments/network-environment.yaml \
    -e ${TEMPLATES}/environments/network-isolation.yaml \
    -e ${TEMPLATES}/environments/services/neutron-ovs.yaml \
    -e ${TEMPLATES}/environments/services/neutron-ovs-dpdk.yaml \
    -e ${TEMPLATES}/environments/services/neutron-sriov.yaml \
    -e /home/stack/containers-prepare-parameter.yaml

4.2.2. 使用 OVS-DPDK 和 SR-IOV 部署 OVN

在与 OVN 相同的节点上部署 DPDK 和 SRIOV 虚拟机。

流程

  1. 生成 ComputeOvsDpdkSriov 角色:

    openstack overcloud roles generate -o roles_data.yaml Controller ComputeOvsDpdkSriov
  2. OS::TripleO::Services::OVNMetadataAgent 添加到 Controller 角色。
  3. 使用 resource_registry 参数为 OVS-DPDK 添加自定义资源:

    resource_registry:
        # Specify the relative/absolute path to the config files you want to use for override the default.
        OS::TripleO::ComputeOvsDpdkSriov::Net::SoftwareConfig:
          nic-configs/computeovsdpdksriov.yaml
        OS::TripleO::Controller::Net::SoftwareConfig:
          nic-configs/controller.yaml
  4. 在 parameter_defaults 部分中,将 tunnel type 参数的值编辑为 geneve

    NeutronTunnelTypes: 'geneve'
    NeutronNetworkType: ['geneve', 'vlan']
  5. 可选:如果您使用集中式路由模型,请禁用分布式虚拟路由(DVR):

    NeutronEnableDVR: false
  6. parameters_defaults 下,设置网桥映射:

     # The OVS logical-to-physical bridge mappings to use.
      NeutronBridgeMappings: "datacentre:br-ex,data1:br-link0,data2:br-link1"
  7. computeovsdpdksriov.yaml 文件中配置网络接口:

      - type: ovs_user_bridge
        name: br-link0
        use_dhcp: false
        ovs_extra:
         - str_replace:
           template: set port br-link0 tag=_VLAN_TAG_
           params:
            _VLAN_TAG_:
             get_param: TenantNetworkVlanID
        addresses:
         - ip_netmask:
           get_param: TenantIpSubnet
        members:
        - type: ovs_dpdk_port
          name: br-link0-dpdk-port0
          rx_queue: 1
          members:
          - type: interface
            name: eno3
      - type: sriov_pf
        name: eno4
        use_dhcp: false
        numvfs: 5
        defroute: false
        nm_controlled: true
        hotplug: true
        promisc: false
  8. 在部署脚本中包含以下 yaml 文件:

    • neutron-ovn-dpdk.yaml
    • neutron-ovn-sriov.yaml
注意

Open Virtual Networking (OVN) 是 Red Hat OpenStack Platform 16.2 中的默认网络机制驱动程序。如果要将 OVN 与分布式虚拟路由 (DVR) 搭配使用,则必须在 openstack overcloud deploy 命令中包含 environments/services/neutron-ovn-dvr-ha.yaml 文件。如果要在没有 DVR 的情况下使用 OVN,则必须在 openstack overcloud deploy 命令中包含 environments/services/neutron-ovn-ha.yaml 文件,并将 NeutronEnableDVR 参数设置为 false。如果要将 OVN 与 SR-IOV 搭配使用,您必须将 environments/services/neutron-ovn-sriov.yaml 文件作为 openstack overcloud deploy 命令的最后一个 OVN 环境文件中找到。

4.2.3. 使用 OVS TC 流程序卸载部署 OVN

在与 OVN 相同的节点上部署 OVS TC 流程序卸载。

注意

Red Hat Enterprise Linux 流量控制(TC)子系统不支持连接跟踪(conntrack)帮助程序或应用程序层网关(ALG)。因此,如果您使用 ALG,则必须禁用 TC Flower 卸载。

流程

  1. 生成 ComputeOvsDpdkSriov 角色:

    openstack overcloud roles generate -o roles_data.yaml \
    ControllerSriov ComputeSriov
  2. 配置与部署相关的 physical_network 参数设置。

    • 对于 VLAN,将 physical_network 参数设置为部署后您在 neutron 中创建的网络的名称。还对 NeutronBridgeMappings 参数使用这个值。
    • 在特定于角色的参数下,如 ComputeSriovOffloadParameters,确保 OvsHwOffload 参数的值为 true

      parameter_defaults:
        NeutronBridgeMappings: 'datacentre:br-ex,tenant:br-offload'
        NeutronNetworkVLANRanges: 'tenant:502:505'
        NeutronFlatNetworks: 'datacentre,tenant'
        NeutronPhysicalDevMappings:
          - tenant:ens1f0
          - tenant:ens1f1
      
        NovaPCIPassthrough:
        - address: "0000:17:00.1"
          physical_network: "tenant"
        - address: "0000:3b:00.1"
          physical_network: "tenant"
        NeutronTunnelTypes: ''
        NeutronNetworkType: 'vlan'
        ComputeSriovOffloadParameters:
          OvsHwOffload: True
          KernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=32 intel_iommu=on iommu=pt isolcpus=1-11,13-23"
          IsolCpusList: "1-11,13-23"
          NovaReservedHostMemory: 4096
          NovaComputeCpuDedicatedSet: ['1-11','13-23']
          NovaComputeCpuSharedSet: ['0','12']
  3. computeovsdpdksriov.yaml 文件中配置网络接口:

     - type: ovs_bridge
      name: br-offload
      mtu: 9000
      use_dhcp: false
      addresses:
      - ip_netmask:
         get_param: TenantIpSubnet
      members:
      - type: linux_bond
        name: bond-pf
        bonding_options: "mode=active-backup miimon=100"
        members:
        - type: sriov_pf
          name: ens1f0
          numvfs: 3
          primary: true
          promisc: true
          use_dhcp: false
          defroute: false
          link_mode: switchdev
        - type: sriov_pf
          name: ens1f1
          numvfs: 3
          promisc: true
          use_dhcp: false
          defroute: false
          link_mode: switchdev
  4. 在部署脚本中包含以下 yaml 文件:

    • ovs-hw-offload.yaml
    • neutron-ovn-sriov.yaml

       TEMPLATES_HOME=”/usr/share/openstack-tripleo-heat-templates”
          CUSTOM_TEMPLATES=”/home/stack/templates”
      
          openstack overcloud deploy --templates \
            -r ${CUSTOM_TEMPLATES}/roles_data.yaml \
            -e ${TEMPLATES_HOME}/environments/services/neutron-ovn-sriov.yaml \
            -e ${TEMPLATES_HOME}/environments/ovs-hw-offload.yaml \
            -e ${CUSTOM_TEMPLATES}/network-environment.yaml
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.