검색

7.8. SR-IOV 오버클라우드 배포

download PDF

SR-IOV 환경에서 RHOSP(Red Hat OpenStack Platform) 오버클라우드를 구성하는 마지막 단계는 openstack overcloud deploy 명령을 실행하는 것입니다. 명령에 대한 입력에는 사용자가 구성한 모든 다양한 오버클라우드 템플릿 및 환경 파일이 포함됩니다.

사전 요구 사항

  • 언더클라우드 호스트 및 stack 사용자의 인증 정보에 액세스합니다.
  • 이 섹션의 이전 절차에 나열된 모든 단계를 수행하고 overcloud deploy 명령에 입력으로 사용할 다양한 heat 템플릿 및 환경 파일을 모두 어셈블했습니다.

절차

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

    $ source ~/stackrc
  3. openstack overcloud deploy 명령을 입력합니다.

    openstack overcloud deploy 명령에 대한 입력을 특정 순서로 나열하는 것이 중요합니다. 일반 규칙은 먼저 기본 heat 템플릿 파일 뒤에 사용자 지정 환경 파일 및 사용자 지정 구성이 포함된 사용자 지정 템플릿을 지정합니다(예: 기본 속성 재정의).

    다음 순서로 openstack overcloud deploy 명령에 입력을 추가합니다.

    1. 오버클라우드의 SR-IOV 네트워크의 사양이 포함된 사용자 지정 네트워크 정의 파일(예: network-data.yaml )

      자세한 내용은 director 가이드를 사용하여 Red Hat OpenStack Platform 설치 및 관리의 네트워크 정의 파일 구성 옵션을 참조하십시오.

    2. RHOSP director에서 OVS 하드웨어 오프로드 환경을 배포하는 데 사용하는 ControllerComputeOvsHwOffload 역할이 포함된 역할 파일입니다.

      예: roles_data_compute_sriov.yaml

      자세한 내용은 7.1절. “SR-IOV의 역할 및 이미지 파일 생성”의 내용을 참조하십시오.

    3. 오버클라우드 네트워크를 프로비저닝한 출력 파일입니다.

      예: overcloud-networks-deployed.yaml

      자세한 내용은 director 가이드를 사용하여 Red Hat OpenStack Platform 설치 및 관리에서 오버클라우드 네트워크 정의 구성 및 프로비저닝 을 참조하십시오.

    4. 오버클라우드 VIP 프로비저닝의 출력 파일입니다.

      예: overcloud-vip-deployed.yaml

      자세한 내용은 director 가이드를 사용하여 Red Hat OpenStack Platform 설치 및 관리에서 오버클라우드의 네트워크 VIP 구성 및 프로비저닝 을 참조하십시오.

    5. 베어 메탈 노드 프로비저닝의 출력 파일입니다.

      예: overcloud-baremetal-deployed.yaml

      자세한 내용은 director 가이드를 사용하여 Red Hat OpenStack Platform 설치 및 관리에서 오버클라우드의 베어 메탈 노드 프로비저닝 을 참조하십시오.

    6. director에서 컨테이너 이미지를 가져올 위치와 저장 방법을 결정하는 데 사용하는 이미지 파일입니다.

      예: overcloud_images.yaml

      자세한 내용은 7.1절. “SR-IOV의 역할 및 이미지 파일 생성”의 내용을 참조하십시오.

    7. 환경에서 사용하는 Networking 서비스(neutron) 메커니즘 드라이버 및 라우터 체계용 환경 파일입니다.

      • ML2/OVN

        • DCVR(Distributed virtual routing): neutron-ovn-dvr-ha.yaml
        • 중앙 집중식 가상 라우팅: neutron-ovn-ha.yaml
      • ML2/OVS

        • DCVR(Distributed virtual routing): neutron-ovs-dvr.yaml
        • 중앙 집중식 가상 라우팅: neutron-ovs.yaml
    8. 메커니즘 드라이버에 따라 SR-IOV의 환경 파일입니다.

      • ML2/OVN

        • neutron-ovn-sriov.yaml
      • ML2/OVS

        • neutron-sriov.yaml

          참고

          OVS-DPDK 환경도 있고 동일한 노드에서 OVS-DPDK 및 SR-IOV 인스턴스를 찾으려면 배포 스크립트에 다음 환경 파일을 포함합니다.

          • ML2/OVN

            neutron-ovn-dpdk.yaml

          • ML2/OVS

            neutron-ovs-dpdk.yaml

    9. 다음과 같은 구성이 포함된 하나 이상의 사용자 지정 환경 파일입니다.

      • SR-IOV 노드의 PCI 패스스루 장치입니다.
      • SR-IOV 노드의 역할별 매개변수
      • SR-IOV 환경의 기본 구성 값을 덮어씁니다.

        예: sriov-overrides.yaml

        자세한 내용은 다음을 참조하십시오.

      • 7.2절. “SR-IOV의 PCI 패스스루 장치 구성”.
      • 7.3절. “역할별 매개변수 및 구성 덮어쓰기 추가”.

        예제

        샘플 openstack overcloud deploy 명령에서 발췌한 내용은 DVR을 사용하는 SR-IOV, ML2/OVN 환경에 대한 명령 입력 순서를 올바르게 정렬하는 방법을 보여줍니다.

        $ openstack overcloud deploy \
        --log-file overcloud_deployment.log \
        --templates /usr/share/openstack-tripleo-heat-templates/ \
        --stack overcloud \
        -n /home/stack/templates/network_data.yaml \
        -r /home/stack/templates/roles_data_compute_sriov.yaml \
        -e /home/stack/templates/overcloud-networks-deployed.yaml \
        -e /home/stack/templates/overcloud-vip-deployed.yaml \
        -e /home/stack/templates/overcloud-baremetal-deployed.yaml \
        -e /home/stack/templates/overcloud-images.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/services/\
        neutron-ovn-dvr-ha.yaml
        -e /usr/share/openstack-tripleo-heat-templates/environments/services/\
        neutron-ovn-sriov.yaml \
        -e /home/stack/templates/sriov-overrides.yaml
  4. openstack overcloud deploy 명령을 실행합니다.

    오버클라우드 생성이 완료되면 RHOSP director에서 오버클라우드 액세스에 도움이 되는 세부 정보를 제공합니다.

검증

  1. director 가이드를 사용하여 Red Hat OpenStack Platform 설치 및 관리에서 오버클라우드 배포 검증 단계를 수행합니다.
  2. NIC가 올바르게 분할되었는지 확인하려면 다음을 수행하십시오.

    1. 오버클라우드 컴퓨팅 노드에 tripleo-admin 으로 로그인하고 VF 수를 확인합니다.

      예제

      이 예에서 p4p1p4p2 모두에 대한 VF 수는 10 입니다.

      $ sudo cat /sys/class/net/p4p1/device/sriov_numvfs
      
      10
      
      $ sudo cat /sys/class/net/p4p2/device/sriov_numvfs
      
      10
    2. OVS 연결을 표시합니다.

      $ sudo ovs-vsctl show

      샘플 출력

      출력은 다음과 유사합니다.

      b6567fa8-c9ec-4247-9a08-cbf34f04c85f
          Manager "ptcp:6640:127.0.0.1"
              is_connected: true
          Bridge br-sriov2
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port phy-br-sriov2
                  Interface phy-br-sriov2
                      type: patch
                      options: {peer=int-br-sriov2}
              Port br-sriov2
                  Interface br-sriov2
                      type: internal
          Bridge br-sriov1
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port phy-br-sriov1
                  Interface phy-br-sriov1
                      type: patch
                      options: {peer=int-br-sriov1}
              Port br-sriov1
                  Interface br-sriov1
                      type: internal
          Bridge br-ex
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port br-ex
                  Interface br-ex
                      type: internal
              Port phy-br-ex
                  Interface phy-br-ex
                      type: patch
                      options: {peer=int-br-ex}
          Bridge br-tenant
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port br-tenant
                  tag: 305
                  Interface br-tenant
                      type: internal
              Port phy-br-tenant
                  Interface phy-br-tenant
                      type: patch
                      options: {peer=int-br-tenant}
              Port dpdkbond0
                  Interface dpdk0
                      type: dpdk
                      options: {dpdk-devargs="0000:18:0e.0"}
                  Interface dpdk1
                      type: dpdk
                      options: {dpdk-devargs="0000:18:0a.0"}
          Bridge br-tun
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port vxlan-98140025
                  Interface vxlan-98140025
                      type: vxlan
                      options: {df_default="true", egress_pkt_mark="0", in_key=flow, local_ip="152.20.0.229", out_key=flow, remote_ip="152.20.0.37"}
              Port br-tun
                  Interface br-tun
                      type: internal
              Port patch-int
                  Interface patch-int
                      type: patch
                      options: {peer=patch-tun}
              Port vxlan-98140015
                  Interface vxlan-98140015
                      type: vxlan
                      options: {df_default="true", egress_pkt_mark="0", in_key=flow, local_ip="152.20.0.229", out_key=flow, remote_ip="152.20.0.21"}
              Port vxlan-9814009f
                  Interface vxlan-9814009f
                      type: vxlan
                      options: {df_default="true", egress_pkt_mark="0", in_key=flow, local_ip="152.20.0.229", out_key=flow, remote_ip="152.20.0.159"}
              Port vxlan-981400cc
                  Interface vxlan-981400cc
                      type: vxlan
                      options: {df_default="true", egress_pkt_mark="0", in_key=flow, local_ip="152.20.0.229", out_key=flow, remote_ip="152.20.0.204"}
          Bridge br-int
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port int-br-tenant
                  Interface int-br-tenant
                      type: patch
                      options: {peer=phy-br-tenant}
              Port int-br-ex
                  Interface int-br-ex
                      type: patch
                      options: {peer=phy-br-ex}
              Port int-br-sriov1
                  Interface int-br-sriov1
                      type: patch
                      options: {peer=phy-br-sriov1}
              Port patch-tun
                  Interface patch-tun
                      type: patch
                      options: {peer=patch-int}
              Port br-int
                  Interface br-int
                      type: internal
              Port int-br-sriov2
                  Interface int-br-sriov2
                      type: patch
                      options: {peer=phy-br-sriov2}
              Port vhu4142a221-93
                  tag: 1
                  Interface vhu4142a221-93
                      type: dpdkvhostuserclient
                      options: {vhost-server-path="/var/lib/vhost_sockets/vhu4142a221-93"}
          ovs_version: "2.13.2"
    3. SR-IOV 컴퓨팅 노드에 tripleo-admin 으로 로그인하고 Linux 본딩을 확인합니다.

      $ cat /proc/net/bonding/<bond_name>

      샘플 출력

      출력은 다음과 유사합니다.

      Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
      
      Bonding Mode: fault-tolerance (active-backup)
      Primary Slave: None
      Currently Active Slave: eno3v1
      MII Status: up
      MII Polling Interval (ms): 0
      Up Delay (ms): 0
      Down Delay (ms): 0
      Peer Notification Delay (ms): 0
      
      Slave Interface: eno3v1
      MII Status: up
      Speed: 10000 Mbps
      Duplex: full
      Link Failure Count: 0
      Permanent HW addr: 4e:77:94:bd:38:d2
      Slave queue ID: 0
      
      Slave Interface: eno4v1
      MII Status: up
      Speed: 10000 Mbps
      Duplex: full
      Link Failure Count: 0
      Permanent HW addr: 4a:74:52:a7:aa:7c
      Slave queue ID: 0
  3. OVS 본딩을 나열합니다.

    $ sudo ovs-appctl bond/show

    샘플 출력

    출력은 다음과 유사합니다.

    ---- dpdkbond0 ----
    bond_mode: balance-slb
    bond may use recirculation: no, Recirc-ID : -1
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    next rebalance: 9491 ms
    lacp_status: off
    lacp_fallback_ab: false
    active slave mac: ce:ee:c7:58:8e:b2(dpdk1)
    
    slave dpdk0: enabled
      may_enable: true
    
    slave dpdk1: enabled
      active slave
      may_enable: true
  4. NovaPCIPassthrough 를 사용하여 인스턴스에 VF를 전달하는 경우 SR-IOV 인스턴스를 배포하여 테스트합니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.