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파일을 소싱합니다.source ~/stackrc
[stack@director ~]$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow Controller,Compute 및 ComputePCI역할이 포함된roles_data_pci_passthrough.yaml이라는 새 역할 데이터 파일을 생성합니다.openstack overcloud roles \ generate -o /home/stack/templates/roles_data_pci_passthrough.yaml \ Compute:ComputePCI Compute Controller
(undercloud)$ openstack overcloud roles \ generate -o /home/stack/templates/roles_data_pci_passthrough.yaml \ Compute:ComputePCI Compute ControllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow roles_data_pci_passthrough.yaml을 열고 다음 매개변수 및 섹션을 편집하거나 추가합니다.Expand 섹션/패랜드 현재 값 새 값 역할 설명
역할: 컴퓨팅역할: ComputePCI역할 이름
name: 컴퓨팅name: ComputePCIdescription기본 컴퓨팅 노드 역할PCI 통과 계산 노드 역할HostnameFormatDefault%stackname%-novacompute-%index%%stackname%-novacomputepci-%index%deprecated_nic_config_namecompute.yamlcompute-pci-passthrough.yaml-
노드 정의 템플릿 node.
json 또는 node.yaml에 추가하여 오버클라우드의 PCI 패스스루 컴퓨팅 노드를등록합니다. 자세한 내용은 Director 설치 및 사용 가이드 의 오버클라우드용 노드 등록을 참조하십시오. 노드 하드웨어를 검사합니다.
openstack overcloud node introspect \ --all-manageable --provide
(undercloud)$ openstack overcloud node introspect \ --all-manageable --provideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 Director 설치 및 사용 가이드 의 베어 메탈 노드 하드웨어 인벤토리 생성을 참조하십시오.
PCI 패스스루 컴퓨팅 노드에 대해
compute-pci-passthrough오버클라우드 플레이버를 생성합니다.openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> compute-pci-passthrough
(undercloud)$ openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> compute-pci-passthroughCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<ram_size_mb>를 베어 메탈 노드의 RAM(MB)으로 바꿉니다. -
<disk_size_gb>를 베어 메탈 노드의 디스크 크기(GB)로 바꿉니다. <no_vcpus>를 베어 메탈 노드의 CPU 수로 바꿉니다.참고이러한 속성은 인스턴스를 예약하는 데 사용되지 않습니다. 그러나 계산 스케줄러는 디스크 크기를 사용하여 루트 파티션 크기를 결정합니다.
-
노드 목록을 검색하여 UUID를 확인합니다.
openstack baremetal node list
(undercloud)$ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 정의 PCI 패스스루 리소스 클래스를 사용하여 PCI 패스스루를 지정하려는 각 베어 메탈 노드에 태그를 지정합니다.
openstack baremetal node set \ --resource-class baremetal.PCI-PASSTHROUGH <node>
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.PCI-PASSTHROUGH <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <node>를 베어 메탈 노드의 ID로 바꿉니다.compute-pci-passthrough 플레이버를사용자 지정 PCI 패스스루 리소스 클래스와 연결합니다.openstack flavor set \ --property resources:CUSTOM_BAREMETAL_PCI_PASSTHROUGH=1 \ compute-pci-passthrough
(undercloud)$ openstack flavor set \ --property resources:CUSTOM_BAREMETAL_PCI_PASSTHROUGH=1 \ compute-pci-passthroughCopy to Clipboard Copied! Toggle word wrap Toggle overflow 베어 메탈 서비스 노드의 리소스 클래스에 해당하는 사용자 지정 리소스 클래스의 이름을 확인하려면 리소스 클래스를 대문자로 변환하려면 모든 문장 부호를 밑줄로 바꾸고 접두사는
CUSTOM_로 바꿉니다.참고플레이버는 베어 메탈 리소스 클래스의 인스턴스 하나만 요청할 수 있습니다.
Compute 스케줄러가 베어 메탈 플레이버 속성을 사용하여 인스턴스를 예약하지 못하도록 다음 플레이버 속성을 설정합니다.
openstack flavor set \ --property resources:VCPU=0 --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 compute-pci-passthrough
(undercloud)$ openstack flavor set \ --property resources:VCPU=0 --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 compute-pci-passthroughCopy to Clipboard Copied! Toggle word wrap Toggle overflow node-info.yaml파일에 다음 매개변수를 추가하여 PCI 패스스루 컴퓨팅 노드 수와 PCI 패스스루 지정 컴퓨팅 노드에 사용할 플레이버를 지정합니다.parameter_defaults: OvercloudComputePCIFlavor: compute-pci-passthrough ComputePCICount: 3
parameter_defaults: OvercloudComputePCIFlavor: compute-pci-passthrough ComputePCICount: 3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 역할이 생성되었는지 확인하려면 다음 명령을 입력합니다.
openstack overcloud profiles list
(undercloud)$ openstack overcloud profiles listCopy to Clipboard Copied! Toggle word wrap Toggle overflow