여러 vGPU 프로파일을 사용하여 인스턴스를 구성하거나 동일한 Nova 컴퓨팅 노드에서 서로 다른 vGPU 프로파일을 사용하여 인스턴스를 생성할 수 있습니다.
여러 vGPU 프로파일 구성에 대한 지원은 제한적이며
vSphere 및
VMware Integrated OpenStack에는 다음과 같은 제한 사항이 적용됩니다.
- Nova 컴퓨팅 CR에서
profile_fb_size_kb
를 2097152와 같은 큰 정수로 설정할 수 없습니다.
- 동일한 ESXi에서 vgpu-profile이 서로 다른 가상 시스템의 전원을 동시에 켤 수 없습니다. ESXi 호스트에 그래픽 카드가 하나만 있다면 vgpu-profileB가 있는 가상 시스템을 실행하기 전에 vgpu-profileA가 있는 가상 시스템의 전원을 꺼야 합니다.
- 두 개의 서로 다른 vgpu-profile이 있는 인스턴스의 전원을 켜서는 안 됩니다.
- 두 개의 동일한 vgpu-profile이 있는 인스턴스의 전원을 켜려면 최소 2개의 연결되지 않은 GPU 그래픽 카드가 있어야 하며 그래픽 카드는 특정 vgpu-profile에 대해서만 지원을 제공해야 합니다. 예를 들어 NVIDIA Tesla T4 그래픽 카드의 경우 두 개의
grid_t4_16q
프로파일이 있는 인스턴스만 생성할 수 있습니다. 다른 vgpu-profile은 지원하지 않습니다.
- 16G 그래픽 RAM의 그래픽 카드 하나로 구성된 ESXi의 경우
grid_t4_2q
프로파일이 있는 인스턴스 8개 또는 grid_t4_4q
가 있는 인스턴스 4개만 실행하도록 지원합니다. 총 그래픽 RAM은 지정된 값을 초과할 수 없습니다.
- VMware Integrated OpenStack은 VM 생성에 사용할 수 있는 그래픽 카드를 지정하거나 감지할 수 없습니다. 경우에 따라 실행 중인 인스턴스와는 다른 vgpu-profile로 인스턴스를 부팅하는 데 사용할 수 있는 그래픽 카드가 있는지 확인해야 합니다. 관리자는 validate_instance_vgpu 및 list_vms_by_device 명령을 사용하여 ESXi를 사용할 수 있는 디바이스의 정보를 가져올 수 있습니다. 그래픽 카드를 확보하려면
shutt off instance from openstack
을 수행해야 합니다.
gpu_profile: grid_t4-2q
와 같은 nova-compute.conf의 기본 GPU 프로파일 설정의 경우 vmware:vgpu=1
및 vmware:vgpu_profiles=grid_t4-2q
로 인스턴스를 부팅할 수 있습니다. 단, 동일한 Nova 컴퓨팅 노드 내에서 두 가지 방식으로 인스턴스를 부팅하는 것은 권장되는 옵션이 아닙니다.
- 크기 조정 및 마이그레이션은 지원되지 않습니다.
프로시저
- 지원되는 vgpu-profiles 목록을 보려면 Nova 컴퓨팅 노드 내에서 특정 Nova 컴퓨팅 포드에 명령을 실행할 수 있습니다.
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Host Name | Profile Names |
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 10.196.4.135 | [grid_t4-8q, grid_t4-8c, grid_t4-8a, grid_t4-4q, grid_t4-4c, grid_t4-4a, grid_t4-2q, grid_t4-2b4, grid_t4-2b, grid_t4-2a, grid_t4-1q, grid_t4-1b4, grid_t4-1b, grid_t4-1a, grid_t4-16q, grid_t4-16c, grid_t4-16a] |
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
VMware Integrated OpenStack Manager에서 명령을 실행할 수도 있습니다.
osctl exec -it <compute-pod-name> -- bash -c "export PYTHONWARNINGS=\"ignore:Unverified HTTPS request\" && nova-manage --config-file /tmp/share/nova-compute.conf --config-file /etc/nova/nova.conf --log-file /tmp/nova-manage.log graphic list_vgpus"
- Nova 컴퓨팅을 재구성하지 않고 서로 다른 vgpu-profile로 VM을 생성합니다.
하나의 ESXi 호스트에 2개의 그래픽 카드가 있거나 그래픽 카드 하나가 설치된 두 개의 ESXi가 있는지 확인합니다.
- NVIDIA GRID vGPU에 설명된 대로 nova-compute.conf를 구성합니다.
- 플레이버를 생성하고
vmware:vgpu_profiles
속성 설정합니다.
openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-4q" gpu_flavor_4q
-
gpu_flavor_4q
에서 인스턴스를 부팅합니다.
openstack server create --flavor gpu_flavor_4q --image Photo3 --network net1 gpu_inst1
- 플레이버를 생성하고 다른 프로파일로 vmware:vgpu_profiles 속성을 설정합니다.
openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-8a" gpu_flavor_8a
-
gpu_flavor_8a
에서 인스턴스를 부팅합니다.
openstack server create --flavor gpu_flavor_8a --image Photo3 --network net1 gpu_inst2
- 두 개의 vgpu-profile로 인스턴스를 생성합니다.
- NVIDIA GRID vGPU에 설명된 대로 nova-compute.conf를 구성합니다.
- 플레이버를 생성하고 두 개의 vgpu-profile로
vmware:vgpu_profiles
속성을 설정합니다.
openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-16q,grid_t4-16q" gpu_flavor_2_profiles
-
gpu_flavor_2_profiles
에서 인스턴스를 부팅합니다.
openstack server create --flavor gpu_flavor_2_profiles --image Photo3 --network net1 gpu_inst3
- 일부 인스턴스의 전원을 꺼서 그래픽 카드 공간을 확보합니다.
사용하지 않는 그래픽 카드가 없을 때 서로 다른 vgpu-profile로 인스턴스를 부팅하려면 일부 인스턴스의 전원을 꺼야 합니다.
- 일치하지 않는 리소스 제공자에 대한 수정 사항을 검증합니다.
다음 로그가 표시되면 일부 리소스 제공자가
ESXi의 GPU 사용과 일치하지 않는다는 의미입니다.
osctl exec -it <compute-pod-name> -- bash -c "export PYTHONWARNINGS=\"ignore:Unverified HTTPS request\" && nova-manage --config-file /tmp/share/nova-compute.conf --config-file /etc/nova/nova.conf graphic validate_instance_vgpu --fix true
로그를 다음과 같이 변경합니다.
instance 718bb1c4-c0ec-40a9-9ebd-c9ab97e85c9d's graphic_str NVIDIATesla T4 (host_40478:0000:03 does not match provider NVIDIATesla T4 (host_40478:0000:82
Fix the provider for instance 718bb1c4-c0ec-40a9-9ebd-c9ab97e85c9d
move 9b2901c2-3646-5cef-9664-81c6483d5687 to 95e5f2c3-54ad-51f9-9002-66dc8b93ce5c
이 문제를 해결하려면
--fix 명령을 추가합니다.
instance 9e7c44f9-129a-4264-ab40-d369e6b8dab9 matches
instance ba155ebc-b59b-4b7a-80f8-4afbd98cd1aa matches
instance 30c57985-56c9-43bb-96be-305eb5e4742e matches
instance 609cbc58-8a34-4d52-962c-4acc2496994c matches
Done
- Nova 컴퓨팅 노드 내에 GPU 디바이스가 있는 가상 시스템을 나열합니다. 이 명령은 특정 Nova 컴퓨팅 포드에서 실행할 수 있습니다.
nova-manage --config-file /tmp/share/nova-compute.conf --config-file /etc/nova/nova.conf graphic list_vms_by_device
+--------------+----------------+--------------+-------------------------------------------------------+---------------+
| Host Name | Device Name | pciId | VM Name | Profile Names |
+--------------+----------------+--------------+-------------------------------------------------------+---------------+
| 10.196.4.135 | NVIDIATesla T4 | 0000:03:00.0 | inst_def-3 (718bb1c4-c0ec-40a9-9ebd-c9ab97e85c9d) | [grid_t4-2q] |
| 10.196.4.135 | NVIDIATesla T4 | 0000:03:00.0 | inst_def-2 (9e7c44f9-129a-4264-ab40-d369e6b8dab9) | [grid_t4-2q] |
| 10.196.4.135 | NVIDIATesla T4 | 0000:03:00.0 | inst_def-5 (ba155ebc-b59b-4b7a-80f8-4afbd98cd1aa) | [grid_t4-2q] |
| 10.196.4.135 | NVIDIATesla T4 | 0000:82:00.0 | yingji-t4-4q-1 (7b6769b4-015f-4d3d-ad0e-ab2236cb9343) | [grid_t4-4q] |
| 10.196.4.135 | NVIDIATesla T4 | 0000:82:00.0 | yingji-t4-4q-3 (8c853458-539f-4b08-b208-518c88f24e86) | [grid_t4-4q] |
| 10.196.4.135 | NVIDIATesla T4 | 0000:82:00.0 | yingji-t4-4q-2 (8db11b02-45ac-4837-8e82-2ebe0b84bd08) | [grid_t4-4q] |
+--------------+----------------+--------------+-------------------------------------------------------+---------------+
For the instance with 2 grid_t4-16q profiles, the display looks like below.
+--------------+----------------+--------------+---------+----------------------------+
| Host Name | Device Name | pciId | VM Name | Profile Names |
+--------------+----------------+--------------+---------+----------------------------+
| 10.196.4.135 | NVIDIATesla T4 | 0000:03:00.0 | vm-08 | [grid_t4-16q, grid_t4-16q] |
| 10.196.4.135 | NVIDIATesla T4 | 0000:82:00.0 | vm-08 | [grid_t4-16q, grid_t4-16q] |
+--------------+----------------+--------------+---------+----------------------------+
두 개의
grid_t4-16q
프로파일이 있는 인스턴스의 경우 다음과 같이 표시됩니다.
+--------------+----------------+--------------+---------+----------------------------+
| Host Name | Device Name | pciId | VM Name | Profile Names |
+--------------+----------------+--------------+---------+----------------------------+
| 10.196.4.135 | NVIDIATesla T4 | 0000:03:00.0 | vm-08 | [grid_t4-16q, grid_t4-16q] |
| 10.196.4.135 | NVIDIATesla T4 | 0000:82:00.0 | vm-08 | [grid_t4-16q, grid_t4-16q] |
+--------------+----------------+--------------+---------+----------------------------+
VMware Integrated OpenStack Manager에서 명령을 실행합니다.
osctl exec -it <compute-pod-name> -- bash -c "export PYTHONWARNINGS=\"ignore:Unverified HTTPS request\" && nova-manage --config-file /tmp/share/nova-compute.conf --config-file /etc/nova/nova.conf --log-file /tmp/nova-manage.log graphic list_vms_by_device"
- 출력에서 호스트 10.196.4.135에 주소(0000:03:00.0 및 0000:82:00.0)가 있는 두 개의 그래픽 카드가 있음을 알 수 있습니다. 사용되는 두 프로파일 그리드는
grid_t4-2q
및 grid_t4-4q
입니다. 따라서 다른 프로파일이 있는 인스턴스에는 그래픽 카드를 사용할 수 없습니다. 다른 vgpu-profile로 인스턴스를 부팅하려면 그래픽 카드를 확보해야 합니다. 10.196.4.135에 0000:03:00.0이 있는 디바이스를 확보하려면 inst_def-3
, inst_def-2
및 inst_def-5
인스턴스의 전원을 꺼야 합니다. 도구 상자에서 OpenStack 명령을 사용해야 합니다.
참고: vCenter 웹 콘솔에서 가상 시스템의 전원을 끄지 마십시오.
openstack server stop inst_def-3 inst_def-2 inst_def-5