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

기본 RHOSP(Red Hat OpenStack) 배포에서 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 을 참조하십시오.

사전 요구 사항

절차

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

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

    DeploymentRole역할 파일

    Networker 역할

    Networker

    Networker.yaml

    SR-IOV를 사용하는 Networker 역할

    NetworkerSriov

    NetworkerSriov.yaml

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

    ControllerSriov

    ControllerSriov.yaml

  3. (선택 사항) 이전에 나열된 사용자 지정 역할 파일 중 하나를 다른 사용자 지정 역할 파일과 결합하는 새 사용자 지정 역할 데이터 파일을 생성합니다.

    Director 설치 및 사용 가이드의 roles_data 파일 생성에 있는 지침을 따르십시오. 배포에 따라 적절한 소스 역할 파일을 포함합니다.

  4. (선택 사항) 역할의 특정 노드를 식별하려면 특정 하드웨어 플레이버를 생성하고 특정 노드에 플레이버를 할당할 수 있습니다. 그런 다음 환경 파일을 사용하여 역할의 플레이버를 정의하고 노드 수를 지정합니다.

    자세한 내용은 Director 설치 및 사용 가이드에서 새 역할 생성 예제를 참조하십시오.

  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: ""
    NetworkerSriYou can uovParameters:
        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. 배포 명령을 실행하고 코어 heat 템플릿, 기타 환경 파일 및 -r 옵션을 사용하여 배포 명령에 사용자 지정 역할 데이터 파일을 포함합니다.

    중요

    후속 환경 파일에 정의된 매개 변수와 리소스가 우선하므로 환경 파일의 순서가 중요합니다.

    예제

    $ openstack overcloud deploy --templates <core_heat_templates> \
    -e <other_environment_files> \
    -e /home/stack/templates/my-neutron-environment.yaml
    -r mycustom_roles_file.yaml

검증 단계

  1. Controller 또는 Networker 노드에 tripleo-admin 사용자로 로그인합니다.

    예제

    ssh tripleo-admin@controller-0

  2. ovn_metadata_agent 가 실행 중인지 확인합니다.

    $ sudo podman ps | grep ovn_metadata

    샘플 출력

    a65125d9588d  undercloud-0.ctlplane.localdomain:8787/rh-osbs ...
    openstack-neutron-metadata-agent-ovn ...
    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. 컴퓨팅 노드에 tripleo-admin 사용자로 로그인합니다.

    예제

    ssh tripleo-admin@compute-0

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

    sudo podman ps | grep neutron_sriov_agent

    샘플 출력

    f54cbbf4523a  undercloud-0.ctlplane.localdomain:8787 ...
    openstack-neutron-sriov-agent ...
    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}, ...}

추가 리소스