여러 vGPU 프로파일을 사용하여 인스턴스를 구성하거나 동일한 Nova 컴퓨팅 노드에서 서로 다른 vGPU 프로파일을 사용하여 인스턴스를 생성할 수 있습니다.

여러 vGPU 프로파일 구성에 대한 지원은 제한적이며 vSphereVMware 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_vgpulist_vms_by_device 명령을 사용하여 ESXi를 사용할 수 있는 디바이스의 정보를 가져올 수 있습니다. 그래픽 카드를 확보하려면 shutt off instance from openstack을 수행해야 합니다.
  • gpu_profile: grid_t4-2q와 같은 nova-compute.conf의 기본 GPU 프로파일 설정의 경우 vmware:vgpu=1vmware:vgpu_profiles=grid_t4-2q로 인스턴스를 부팅할 수 있습니다. 단, 동일한 Nova 컴퓨팅 노드 내에서 두 가지 방식으로 인스턴스를 부팅하는 것은 권장되는 옵션이 아닙니다.
  • 크기 조정 및 마이그레이션은 지원되지 않습니다.

프로시저

  1. 지원되는 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"
  2. Nova 컴퓨팅을 재구성하지 않고 서로 다른 vgpu-profile로 VM을 생성합니다.

    하나의 ESXi 호스트에 2개의 그래픽 카드가 있거나 그래픽 카드 하나가 설치된 두 개의 ESXi가 있는지 확인합니다.

    1. NVIDIA GRID vGPU에 설명된 대로 nova-compute.conf를 구성합니다.
    2. 플레이버를 생성하고 vmware:vgpu_profiles 속성 설정합니다.
      openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-4q" gpu_flavor_4q
    3. gpu_flavor_4q에서 인스턴스를 부팅합니다.
      openstack server create --flavor gpu_flavor_4q --image Photo3 --network net1 gpu_inst1
    4. 플레이버를 생성하고 다른 프로파일로 vmware:vgpu_profiles 속성을 설정합니다.
      openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-8a" gpu_flavor_8a
    5. gpu_flavor_8a에서 인스턴스를 부팅합니다.
      openstack server create --flavor gpu_flavor_8a --image Photo3 --network net1 gpu_inst2
  3. 두 개의 vgpu-profile로 인스턴스를 생성합니다.
    1. NVIDIA GRID vGPU에 설명된 대로 nova-compute.conf를 구성합니다.
    2. 플레이버를 생성하고 두 개의 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
    3. gpu_flavor_2_profiles에서 인스턴스를 부팅합니다.
      openstack server create --flavor gpu_flavor_2_profiles --image Photo3 --network net1 gpu_inst3
  4. 일부 인스턴스의 전원을 꺼서 그래픽 카드 공간을 확보합니다.

    사용하지 않는 그래픽 카드가 없을 때 서로 다른 vgpu-profile로 인스턴스를 부팅하려면 일부 인스턴스의 전원을 꺼야 합니다.

    1. 일치하지 않는 리소스 제공자에 대한 수정 사항을 검증합니다.
      다음 로그가 표시되면 일부 리소스 제공자가 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
    2. 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"
    3. 출력에서 호스트 10.196.4.135에 주소(0000:03:00.00000:82:00.0)가 있는 두 개의 그래픽 카드가 있음을 알 수 있습니다. 사용되는 두 프로파일 그리드는 grid_t4-2qgrid_t4-4q입니다. 따라서 다른 프로파일이 있는 인스턴스에는 그래픽 카드를 사용할 수 없습니다. 다른 vgpu-profile로 인스턴스를 부팅하려면 그래픽 카드를 확보해야 합니다. 10.196.4.1350000:03:00.0이 있는 디바이스를 확보하려면 inst_def-3, inst_def-2inst_def-5 인스턴스의 전원을 꺼야 합니다. 도구 상자에서 OpenStack 명령을 사용해야 합니다.
      참고: vCenter 웹 콘솔에서 가상 시스템의 전원을 끄지 마십시오.
      openstack server stop inst_def-3 inst_def-2 inst_def-5