5장. PCI 패스스루 구성
PCI 통과를 사용하여 그래픽 카드 또는 네트워크 장치와 같은 물리적 PCI 장치를 인스턴스에 연결할 수 있습니다. 장치에 PCI 패스스루를 사용하는 경우 인스턴스는 작업을 수행하기 위해 장치에 대한 전용 액세스를 예약하고 호스트에서 장치를 사용할 수 없습니다.
라우팅된 공급자 네트워크에서 PCI 패스스루 사용
계산 서비스는 여러 프로바이더 네트워크에 걸쳐 있는 단일 네트워크를 지원하지 않습니다. 네트워크에 여러 물리적 네트워크가 포함된 경우 계산 서비스에서는 첫 번째 실제 네트워크만 사용합니다. 따라서 라우팅된 공급자 네트워크를 사용하는 경우 모든 컴퓨팅 노드에서 동일한 physical_network
이름을 사용해야 합니다.
VLAN 또는 플랫 네트워크에서 라우팅된 공급자 네트워크를 사용하는 경우 모든 세그먼트에 동일한 physical_network
이름을 사용해야 합니다. 그런 다음 네트워크에 대한 여러 세그먼트를 만들고 세그먼트를 적절한 서브넷에 매핑합니다.
클라우드 사용자가 PCI 장치가 연결된 인스턴스를 생성할 수 있도록 하려면 다음을 완료해야 합니다.
- PCI 패스스루를 위해 컴퓨팅 노드를 지정합니다.
- 필요한 PCI 장치가 있는 PCI 패스스루에 대해 컴퓨팅 노드를 구성합니다.
- Overcloud를 배포합니다.
- PCI 장치가 연결된 인스턴스를 시작하기 위한 플레이버를 만듭니다.
사전 요구 사항
- 컴퓨팅 노드에는 필수 PCI 장치가 있습니다.
5.1. PCI 패스스루를 위한 컴퓨팅 노드 지정
물리적 PCI 장치가 연결된 인스턴스용으로 Compute 노드를 지정하려면 새 역할 파일을 생성하여 PCI 패스스루 역할을 구성하고 PCI 패스스루를 위해 Compute 노드에 태그를 지정하는 데 사용할 새 오버클라우드 플레이버 및 PCI 통과 리소스 클래스를 구성해야 합니다.
절차
-
stack
사용자로 언더클라우드에 로그인합니다. stackrc
파일을 소싱합니다.[stack@director ~]$ source ~/stackrc
Controller
,Compute 및 Compute
PCI
역할이 포함된roles_data_pci_passthrough.yaml
이라는 새 역할 데이터 파일을 생성합니다.(undercloud)$ openstack overcloud roles \ generate -o /home/stack/templates/roles_data_pci_passthrough.yaml \ Compute:ComputePCI Compute Controller
roles_data_pci_passthrough.yaml
을 열고 다음 매개변수 및 섹션을 편집하거나 추가합니다.섹션/패랜드 현재 값 새 값 역할 설명
역할: 컴퓨팅
역할: ComputePCI
역할 이름
name: 컴퓨팅
name: ComputePCI
description
기본 컴퓨팅 노드 역할
PCI 통과 계산 노드 역할
HostnameFormatDefault
%stackname%-novacompute-%index%
%stackname%-novacomputepci-%index%
deprecated_nic_config_name
compute.yaml
compute-pci-passthrough.yaml
-
노드 정의 템플릿 node.
json 또는 node.
yaml에 추가하여 오버클라우드의 PCI 패스스루 컴퓨팅 노드를
등록합니다. 자세한 내용은 Director 설치 및 사용 가이드 의 오버클라우드 노드 등록을 참조하십시오. 노드 하드웨어를 검사합니다.
(undercloud)$ openstack overcloud node introspect \ --all-manageable --provide
자세한 내용은 Director 설치 및 사용 가이드 의 베어 메탈 노드 하드웨어 인벤토리 생성을 참조하십시오.
PCI 패스스루 컴퓨팅
노드의 compute-pci-passthrough
오버클라우드 플레이버를 생성합니다.(undercloud)$ openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> compute-pci-passthrough
-
<ram_size_mb>
를 베어 메탈 노드의 RAM(MB)으로 바꿉니다. -
<disk_size_gb>
를 베어 메탈 노드의 디스크 크기(GB)로 바꿉니다. <no_vcpus>
를 베어 메탈 노드의 CPU 수로 바꿉니다.참고이러한 속성은 인스턴스를 예약하는 데 사용되지 않습니다. 그러나 계산 스케줄러는 디스크 크기를 사용하여 루트 파티션 크기를 결정합니다.
-
사용자 정의 PCI 패스스루 리소스 클래스를 사용하여 PCI 패스스루를 지정하려는 각 베어 메탈 노드에 태그를 지정합니다.
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.PCI-PASSTHROUGH <node>
<node>
를 베어 메탈 노드의 ID로 바꿉니다.compute-pci-passthrough 플레이버를
사용자 지정 PCI 패스스루 리소스 클래스와 연결합니다.(undercloud)$ openstack flavor set \ --property resources:CUSTOM_BAREMETAL_PCI_PASSTHROUGH=1 \ compute-pci-passthrough
베어 메탈 서비스 노드의 리소스 클래스에 해당하는 사용자 지정 리소스 클래스의 이름을 확인하려면 리소스 클래스를 대문자로 변환하려면 모든 문장 부호를 밑줄로 바꾸고 접두사는
CUSTOM_
로 바꿉니다.참고플레이버는 베어 메탈 리소스 클래스의 인스턴스 하나만 요청할 수 있습니다.
Compute 스케줄러가 베어 메탈 플레이버 속성을 사용하여 인스턴스를 예약하지 못하도록 다음 플레이버 속성을 설정합니다.
(undercloud)$ openstack flavor set \ --property resources:VCPU=0 --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 compute-pci-passthrough
node-info.yaml
파일에 다음 매개변수를 추가하여 PCI 패스스루 컴퓨팅 노드 수와 PCI 패스스루 지정 컴퓨팅 노드에 사용할 플레이버를 지정합니다.parameter_defaults: OvercloudComputePCIFlavor: compute-pci-passthrough ComputePCICount: 3
역할이 생성되었는지 확인하려면 다음 명령을 입력합니다.
(undercloud)$ openstack overcloud profiles list