2.10. ML2/OVN으로 사용자 정의 역할 배포

기본 OSP 16.1 배포에서 ML2/OVN 구성 가능 서비스가 컨트롤러 노드에서 실행됩니다. 다음 예에 설명된 것과 같이 지원되는 사용자 지정 역할을 선택적으로 사용할 수 있습니다.

Networker
전용 네트워크 노드에서 OVN 구성 가능 서비스를 실행합니다.
SR-IOV로 Networker
SR-IOV를 사용하여 전용 네트워크 관리자 노드에서 OVN 구성 가능 서비스를 실행합니다.
SR-IOV가 있는 컨트롤러
SR-IOV 가능 컨트롤러 노드에서 OVN 구성 가능 서비스를 실행합니다.

자체 사용자 지정 역할을 생성할 수도 있습니다.

제한

다음 제한 사항은 이 릴리스에서 ML2/OVN 및 기본 OVN DHCP를 사용한 SR-IOV 사용에 적용됩니다.

  • 모든 외부 포트는 모든 포트에 HA 섀시 그룹이 하나뿐이므로 단일 게이트웨이 노드에서 예약됩니다.
  • 외부 포트가 논리 라우터의 게이트웨이 포트와 함께 배치되지 않으므로 VLAN 테넌트 네트워크의 VF(direct) 포트의 North/south 라우팅은 SR-IOV에서 작동하지 않습니다. https://bugs.launchpad.net/neutron/+bug/1875852 참조하십시오.

사전 요구 사항

  • 사용자 지정 역할을 배포하는 방법을 알고 있습니다. 자세한 내용은 Advanced Overcloud Customization 가이드의 Composable services and custom roles 를 참조하십시오.

절차

  1. 언더클라우드 호스트에 stack 사용자로 로그인하고 stackrc 파일을 소싱합니다.

    $ source stackrc
  2. 배포에 적합한 사용자 지정 역할 파일을 선택합니다. 필요에 따라 배포 명령에 직접 사용합니다. 또는 다른 사용자 지정 역할 파일을 결합하는 사용자 지정 역할 파일을 생성할 수 있습니다.

    DeploymentRole역할 파일

    Networker 역할

    Networker

    Networker.yaml

    SR-IOV를 통한 Networker 역할

    NetworkerSriov

    NetworkerSriov.yaml

    SR-IOV를 사용한 공동 배치 제어 및 네트워크

    ControllerSriov

    ControllerSriov.yaml

  3. [선택 사항] 이러한 사용자 지정 역할 파일 중 하나를 다른 사용자 지정 역할 파일과 결합하는 새 사용자 지정 역할 데이터 파일을 생성합니다. Advanced Overcloud Customization 가이드의 roles_data 파일 생성에 있는 지침을 따르십시오. 배포에 따라 적절한 소스 역할 파일을 포함합니다.
  4. [선택 사항] 역할의 특정 노드를 식별하기 위해 특정 하드웨어 플레이버를 생성하고 특정 노드에 플레이버를 할당할 수 있습니다. 그런 다음 환경 파일을 사용하여 역할의 플레이버를 정의하고 노드 수를 지정합니다. 자세한 내용은 Advanced Overcloud Customization 가이드의 새 역할 생성 예제를 참조하십시오.
  5. 배포에 적합한 환경 파일을 만듭니다.

    Deployment샘플 환경 파일

    Networker 역할

    neutron-ovn-dvr-ha.yaml

    SR-IOV를 통한 Networker 역할

    ovn-sriov.yaml

  6. 배포에 적합한 다음 설정을 포함합니다.

    Deployment설정

    Networker 역할

    ControllerParameters:
        OVNCMSOptions: ""
    ControllerSriovParameters:
            OVNCMSOptions: ""
    NetworkerParameters:
        OVNCMSOptions: "enable-chassis-as-gw"
    NetworkerSriovParameters:
        OVNCMSOptions: ""

    SR-IOV를 통한 Networker 역할

    OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
    
    ControllerParameters:
        OVNCMSOptions: ""
    ControllerSriovParameters:
            OVNCMSOptions: ""
    NetworkerParameters:
        OVNCMSOptions: ""
    NetworkerSriovParameters:
        OVNCMSOptions: "enable-chassis-as-gw"

    SR-IOV를 사용한 공동 배치 제어 및 네트워크

    OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
    
    ControllerParameters:
        OVNCMSOptions: ""
    ControllerSriovParameters:
            OVNCMSOptions: "enable-chassis-as-gw"
    NetworkerParameters:
        OVNCMSOptions: ""
    NetworkerSriovParameters:
        OVNCMSOptions: ""
  7. 오버클라우드를 배포합니다. -e 옵션을 사용하여 배포 명령에 환경 파일을 포함합니다. r 옵션을 사용하여 배포 명령에 사용자 지정 역할 데이터 파일을 포함합니다. 예: -r Networker.yaml 또는 -r mycustomrolesfile.yaml.

검증 단계 - OVN 배포

  1. 기본적으로 heat-admin 인 오버클라우드 SSH 사용자로 컨트롤러 또는 네트워크 노드에 로그인합니다.

    예제

    ssh heat-admin@controller-0

  2. Controller 및 Networker 노드에서 ovn_metadata_agent 가 실행 중인지 확인합니다.

    $ sudo podman ps | grep ovn_metadata

    샘플 출력

    a65125d9588d  undercloud-0.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-metadata-agent-ovn:16.1_20200813.1  kolla_start           23 hours ago  Up 21 hours ago         ovn_metadata_agent

  3. OVN 서비스 또는 전용 네트워크 노드가 있는 컨트롤러 노드가 OVS의 게이트웨이로 구성되어 있는지 확인합니다.

    $ sudo ovs-vsctl get Open_Vswitch . external_ids:ovn-cms-options

    샘플 출력

    ...
        enable-chassis-as-gw
    ...

검증 단계 - SR-IOV 배포

  1. 기본적으로 heat-admin 인 오버클라우드 SSH 사용자로 컴퓨팅 노드에 로그인합니다.

    예제

    ssh heat-admin@compute-0

  2. neutron_sriov_agent 가 컴퓨팅 노드에서 실행 중인지 확인합니다.

    $ sudo podman ps | grep neutron_sriov_agent

    샘플 출력

    f54cbbf4523a  undercloud-0.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-sriov-agent:16.2_20200813.1
    kolla_start  23 hours ago  Up 21 hours ago         neutron_sriov_agent

  3. 네트워크 사용 SR-IOV NIC가 성공적으로 감지되었는지 확인합니다.

    $ sudo podman exec -uroot galera-bundle-podman-0 mysql nova -e 'select hypervisor_hostname,pci_stats from compute_nodes;'

    샘플 출력

    computesriov-1.localdomain	{... {"dev_type": "type-PF", "physical_network": "datacentre", "trusted": "true"}, "count": 1}, ... {"dev_type": "type-VF", "physical_network": "datacentre", "trusted": "true", "parent_ifname": "enp7s0f3"}, "count": 5}, ...}
    computesriov-0.localdomain	{... {"dev_type": "type-PF", "physical_network": "datacentre", "trusted": "true"}, "count": 1}, ... {"dev_type": "type-VF", "physical_network": "datacentre", "trusted": "true", "parent_ifname": "enp7s0f3"}, "count": 5}, ...}

추가 리소스