3.2. NFV 배포에 지원되는 구성
RHOSP(Red Hat OpenStack Platform)는 director를 사용하여 다음과 같은 NFV 배포를 지원합니다.
- SR-IOV(단일 루트 I/O 가상화)
- 데이터 플레인 개발 키트(OVS-DPDK)를 사용하여 Open vSwitch
또한 다음 기능을 사용하여 RHOSP를 배포할 수 있습니다.
기본 SDN(소프트웨어 정의 네트워킹) 솔루션으로 OVN(Open Virtual Network)을 사용한 RHOSP NFV 배포는 지원되지 않습니다. RHOSP 16.1.4에서는 일반적으로 다음과 같은 RHOSP NFV OVN 구성을 사용할 수 있습니다.
- SR-IOV와 함께 배치된 OVS-DPDK가 있는 OVN
- OVS TC Flower 오프로드가 포함된 OVN
3.2.1. OVS 메커니즘 드라이버를 사용하여 RHOSP 배포
OVS 메커니즘 드라이버를 사용하여 RHOSP를 배포합니다.
절차
neutron_driver
매개변수가ovs
로 설정되도록containers-prepare-parameter.yaml
파일을 수정합니다.parameter_defaults: ContainerImagePrepare: - push_destination: true set: neutron_driver: ovs ...
배포 스크립트를 사용하여
/usr/share/openstack-tripleo-heat-templates/environments/services 디렉터리에
환경 파일을 추가합니다.neutron-
ovs.yamlTEMPLATES=/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
3.2.2. OVS-DPDK 및 SR-IOV를 사용하여 OVN 배포
이 RHOSP NFV OVN 구성은 일반적으로 RHOSP 16.1.4에서 사용할 수 있습니다.
OVN과 동일한 노드에 DPDK 및 SRIOV VM을 배포합니다.
절차
ComputeOvsDpdkSriov
역할을 생성합니다.openstack overcloud roles generate -o roles_data.yaml Controller ComputeOvsDpdkSriov
-
OS::TripleO::Services::OVNMetadataAgent
를 Controller 역할에 추가합니다. 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
parameter_defaults 섹션에서 tunnel type 매개 변수 값을 cal
ve로 편집합니다
.NeutronTunnelTypes: 'geneve' NeutronNetworkType: ['geneve', 'vlan']
선택 사항: 중앙 집중식 라우팅 모델을 사용하는 경우 VR(Distributed Virtual Routing)을 비활성화합니다.
NeutronEnableDVR: false
parameters_defaults
에서 브리지 매핑을 설정합니다.# The OVS logical-to-physical bridge mappings to use. NeutronBridgeMappings: "datacentre:br-ex,data1:br-link0,data2:br-link1"
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
배포 스크립트에 다음 yaml 파일을 포함합니다.
- neutron-ovn-dpdk.yaml
- neutron-ovn-sriov.yaml
OVN(Open Virtual Networking)은 Red Hat OpenStack Platform 16.1의 기본 네트워킹 메커니즘 드라이버입니다. DVR(분산 가상 라우팅)로 OVN을 사용하려면 openstack overcloud deploy
명령에 environments/services/neutron-ovn-dvr-ha.yaml
파일을 포함해야 합니다. DVR 없이 OVN을 사용하려면 openstack overcloud deploy
명령에 environments/services/neutron-ovn-ha.yaml
파일을 포함하고 NeutronEnableDVR
매개변수를 false
로 설정해야 합니다. SR-IOV와 함께 OVN을 사용하려면 openstack overcloud deploy
명령에서 마지막 OVN 환경 파일에 environments/services/neutron-ovn-sriov.yaml
파일을 포함해야 합니다.
3.2.3. OVS TC Flower 오프로드를 사용하여 OVN 배포
OVN과 동일한 노드에 OVS TC Flower 오프로드를 배포합니다.
이 RHOSP NFV OVN 구성은 일반적으로 RHOSP 16.1.4에서 사용할 수 있습니다.
Red Hat Enterprise Linux Traffic Control( 8.5) 하위 시스템은 연결 추적(conntrack) 도우미 또는 애플리케이션 계층 게이트웨이(ALG)를 지원하지 않습니다. 따라서 ALG를 사용하는 경우 TC Flower 오프로드를 비활성화해야 합니다.
절차
ComputeOvsDpdkSriov
역할을 생성합니다.openstack overcloud roles generate -o roles_data.yaml ControllerSriov ComputeSriov
배포와 관련된
physical_network
매개 변수 설정을 구성합니다.-
VLAN의 경우 배포 후 neutron에서 생성한 네트워크의 이름으로
physical_network
매개 변수를 설정합니다.NeutronBridgeMappings
매개변수에도 이 값을 사용합니다. ComputeSriovOffloadParameters와 같은 역할별 매개 변수에서
매개 변수의 값이Ovs
HwOffloadtrue
인지 확인합니다.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']
-
VLAN의 경우 배포 후 neutron에서 생성한 네트워크의 이름으로
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
배포 스크립트에 다음 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