SR-IOV 패스스루를 허용하도록 포트를 구성한 다음 물리적 네트워크 어댑터를 사용하는 OpenStack 인스턴스를 생성할 수 있습니다.
VM에 네트워크 이중화를 제공하기 위해 SR-IOV 물리적 NIC가 다른 여러 포트를 만들려면 다음 절차의 선택적 단계를 수행합니다.
사전 요구 사항
- vSphere에서 SR-IOV를 사용하도록 설정합니다. "vSphere 네트워킹" 에서 호스트 물리적 어댑터에서 SR-IOV 사용 항목을 참조하십시오.
- SR-IOV 디바이스 전용 계산 클러스터를 생성합니다. DRS 규칙은 이러한 디바이스에 적용되지 않습니다.
- 물리적 디바이스의 MAC 주소를 유지하려면 디바이스에서 패스스루를 사용하도록 설정하기 전에 클러스터를 계산 노드로 추가합니다. 패스스루를 사용하도록 이미 설정된 경우, 사용되지 않도록 설정하고 클러스터를 다시 시작하고 직접 패스스루를 사용하도록 다시 설정할 수 있습니다.
- VMware Integrated OpenStack 캐리어 버전 기능을 사용하도록 설정합니다. 캐리어 버전 기능을 사용하도록 설정을 참조하십시오.
프로시저
- Integrated OpenStack Manager에
root
사용자로 로그인합니다.
- Nova 컴퓨팅 구성을 편집합니다.
viocli update nova-compute
- nova_compute 섹션에서 다음 정보를 추가합니다.
pci:
passthrough_whitelist:
type: multistring
values:
- '{"product_id": "*", "vendor_id": "*", "physical_network": "*"}'
- DVS 또는 NSX-T Data Center 배포를 사용하는 경우 vmware 섹션에서 dvs_moid 매개 변수를 추가합니다.
dvs_moid의 값은 SR-IOV 디바이스에 대한 계산 클러스터와 연결된 분산 스위치의 MOID(관리 개체 ID)로 설정합니다.
- 도구 상자를 열고
admin
계정에 대한 암호를 설정합니다.
toolbox
export OS_PASSWORD=admin-password
- (선택 사항) 포트 이중화를 구성하려면 격리 속성을 사용하여 VM 플레이버를 생성합니다.
격리 속성을 사용하면 SR-IOV 포트는 포트 이중화에 필요한 ESXi 서버 호스트의 물리적 NIC가 서로 다릅니다.
openstack flavor set <FLAVOR_ID> --property group_policy=isolate
FLAVOR_ID는 SR-IOV 포트가 격리된 VM에 사용되는 Nova 플레이버의 UUID입니다.
- 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를 입력합니다. |
- 네트워크에서 서브넷을 생성합니다.
neutron subnet-create network-id --tenant-id project-uuid --name subnet-name
옵션 |
설명 |
network-id |
서브넷을 생성하려는 네트워크의 UUID를 지정합니다. 네트워크의 UUID는 openstack network list 명령을 실행하여 찾을 수 있습니다. |
--tenant-id |
서브넷을 생성하려는 프로젝트에 대한 UUID를 지정합니다. |
--name |
서브넷의 이름을 입력합니다. |
- --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를 기록하고 이 단계를 반복하여 두 번째 직접 포트를 생성합니다.
- (선택 사항) 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를 입력합니다. |