SR-IOV 패스스루를 허용하도록 포트를 구성한 다음 물리적 네트워크 어댑터를 사용하는 OpenStack 인스턴스를 생성할 수 있습니다.

VM에 네트워크 이중화를 제공하기 위해 SR-IOV 물리적 NIC가 다른 여러 포트를 만들려면 다음 절차의 선택적 단계를 수행합니다.

사전 요구 사항

  • vSphere에서 SR-IOV를 사용하도록 설정합니다. "vSphere 네트워킹" 에서 호스트 물리적 어댑터에서 SR-IOV 사용 항목을 참조하십시오.
  • SR-IOV 디바이스 전용 계산 클러스터를 생성합니다. DRS 규칙은 이러한 디바이스에 적용되지 않습니다.
  • 물리적 디바이스의 MAC 주소를 유지하려면 디바이스에서 패스스루를 사용하도록 설정하기 전에 클러스터를 계산 노드로 추가합니다. 패스스루를 사용하도록 이미 설정된 경우, 사용되지 않도록 설정하고 클러스터를 다시 시작하고 직접 패스스루를 사용하도록 다시 설정할 수 있습니다.
  • VMware Integrated OpenStack 캐리어 버전 기능을 사용하도록 설정합니다. 캐리어 버전 기능을 사용하도록 설정을 참조하십시오.

프로시저

  1. Integrated OpenStack Managerroot 사용자로 로그인합니다.
    ssh root@mgmt-server-ip
  2. Nova 컴퓨팅 구성을 편집합니다.
    viocli update nova-compute
  3. nova_compute 섹션에서 다음 정보를 추가합니다.
    pci:
      passthrough_whitelist:
        type: multistring
        values:
        - '{"product_id": "*", "vendor_id": "*", "physical_network": "*"}'
    
  4. DVS 또는 NSX-T Data Center 배포를 사용하는 경우 vmware 섹션에서 dvs_moid 매개 변수를 추가합니다.
    dvs_moid: sriov-vds-moid
    dvs_moid의 값은 SR-IOV 디바이스에 대한 계산 클러스터와 연결된 분산 스위치의 MOID(관리 개체 ID)로 설정합니다.
  5. 도구 상자를 열고 admin 계정에 대한 암호를 설정합니다.
    toolbox
    export OS_PASSWORD=admin-password
  6. (선택 사항) 포트 이중화를 구성하려면 격리 속성을 사용하여 VM 플레이버를 생성합니다.
    격리 속성을 사용하면 SR-IOV 포트는 포트 이중화에 필요한 ESXi 서버 호스트의 물리적 NIC가 서로 다릅니다.
    openstack flavor set <FLAVOR_ID> --property group_policy=isolate
    FLAVOR_ID는 SR-IOV 포트가 격리된 VM에 사용되는 Nova 플레이버의 UUID입니다.
  7. SR-IOV 디바이스에 대한 제공자 네트워크를 생성합니다.
    • NSX Data Center for vSphere 배포의 경우 VLAN 또는 포트 그룹 네트워크를 생성합니다.
    • NSX-T Data Center 배포의 경우 VLAN 또는 불투명 네트워크를 생성합니다.
    • DVS 배포의 경우 VLAN 네트워크를 생성합니다.
    neutron net-create network-name --tenant-id project-uuid --provider:network_type {vlan | portgroup | nsx-net} --provider:physical_network physical-id [--provider:segmentation_id vlan-id]
    옵션 설명
    network-name

    네트워크의 이름을 입력합니다.

    --tenant-id

    포트를 생성하려는 프로젝트에 대한 UUID를 지정합니다. 프로젝트의 UUID는 openstack project list 명령을 실행하여 찾을 수 있습니다.

    --provider:network_type

    VLAN 네트워크에 대해 vlan, 포트 그룹에 대해 portgroup 또는 불투명 네트워크에 대해 nsx-net을 입력합니다.

    --provider:physical_network
    • NSX Data Center for vSphere의 VLAN 네트워크의 경우 분산 스위치의 MOID를 지정합니다.
    • NSX-T Data Center의 VLAN 네트워크의 경우 VLAN 전송 영역의 UUID를 지정합니다.
    • DVS 배포의 VLAN 네트워크의 경우 분산 vSwitch의 이름을 지정합니다.
    • 포트 그룹 네트워크의 경우 포트 그룹의 이름을 지정합니다. 네트워크 이름은 포트 그룹 이름과 일치해야 합니다.
    • 불투명 네트워크의 경우 논리적 스위치의 UUID를 지정합니다.
    --provider:segmentation_id

    VLAN 기반 네트워크를 생성하려는 경우 VLAN ID를 입력합니다.

  8. 네트워크에서 서브넷을 생성합니다.
    neutron subnet-create network-id --tenant-id project-uuid --name subnet-name
    옵션 설명
    network-id

    서브넷을 생성하려는 네트워크의 UUID를 지정합니다. 네트워크의 UUID는 openstack network list 명령을 실행하여 찾을 수 있습니다.

    --tenant-id

    서브넷을 생성하려는 프로젝트에 대한 UUID를 지정합니다.

    --name

    서브넷의 이름을 입력합니다.

  9. --vnic_type direct 매개 변수를 사용하여 패스스루 지원 포트를 생성합니다.
    neutron port-create network-id --tenant-id project-uuid --name port-name --vnic_type direct
    옵션 설명
    network-id

    포트를 생성하려는 네트워크의 UUID를 지정합니다. 네트워크의 UUID는 openstack network list 명령을 실행하여 찾을 수 있습니다.

    --tenant-id

    포트를 생성하려는 프로젝트에 대한 UUID를 지정합니다.

    --name

    포트의 이름을 입력합니다.

    참고: 패스스루 지원 포트에 대해서는 포트 보안이 지원되지 않으며 생성된 포트에 대해 사용하지 않도록 자동으로 설정됩니다.
    OpenStack 인스턴스에 물리적 네트워크 어댑터에 대한 액세스 권한을 제공하려면 이 단일 포트로 인스턴스를 구성합니다. 또는 이중화를 제공하는 여러 포트가 있는 VM을 배포하려면 출력에서 포트 ID를 기록하고 이 단계를 반복하여 두 번째 직접 포트를 생성합니다.
  10. (선택 사항) VM 플레이버 및 2개의 직접 포트가 있는 VM을 배포합니다.
    nova boot --flavor <FLAVOR_ID> --image <IMAGE_ID> --nic port-id=<port1-id> --nic port-id=<port2-id> <VM_NAME>
    옵션 설명
    FLAVOR_ID

    단계 6에서 생성된 플레이버를 지정합니다.

    --nic

    각 직접 포트로 생성된 포트 ID를 입력합니다.