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


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

사전 요구 사항

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

절차

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

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  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
        Copy to Clipboard Toggle word wrap
  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
      Copy to Clipboard Toggle word wrap
    2. OVS 연결을 표시합니다.

      $ sudo ovs-vsctl show
      Copy to Clipboard Toggle word wrap

      샘플 출력

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

      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"
      Copy to Clipboard Toggle word wrap
    3. SR-IOV 컴퓨팅 노드에 tripleo-admin 으로 로그인하고 Linux 본딩을 확인합니다.

      $ cat /proc/net/bonding/<bond_name>
      Copy to Clipboard Toggle word wrap

      샘플 출력

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

      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
      Copy to Clipboard Toggle word wrap
  3. OVS 본딩을 나열합니다.

    $ sudo ovs-appctl bond/show
    Copy to Clipboard Toggle word wrap

    샘플 출력

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

    ---- 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
    Copy to Clipboard Toggle word wrap
  4. NovaPCIPassthrough 를 사용하여 인스턴스에 VF를 전달하는 경우 SR-IOV 인스턴스를 배포하여 테스트합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat