13.2. NVIDIA vGPU 장치 관리
vGPU 기능을 사용하면 실제 NVIDIA GPU 장치를 중재 장치라고 하는 여러 가상 장치로 나눌 수 있습니다. 그런 다음 이러한 중재된 장치를 여러 VM(가상 머신)에 가상 GPU로 할당할 수 있습니다. 결과적으로 이러한 VM은 단일 물리적 GPU의 성능을 공유할 수 있습니다.
중재된 장치를 사용하거나 사용하지 않고 VM에 물리적 GPU를 할당하면 호스트에서 GPU를 사용할 수 없습니다.
13.2.1. NVIDIA vGPU 장치 설정 링크 복사링크가 클립보드에 복사되었습니다!
NVIDIA vGPU 기능을 설정하려면 GPU 장치용 NVIDIA vGPU 드라이버를 다운로드하고 중재된 장치를 생성하여 원하는 가상 머신에 할당해야 합니다. 자세한 지침은 아래를 참조하십시오.
사전 요구 사항
GPU는 vGPU 중재 장치를 지원합니다. vGPU 생성을 지원하는 NVIDIA GPU의 최신 목록은 NVIDIA vGPU 소프트웨어 설명서를 참조하십시오.
호스트에서 사용 중인 GPU를 모르는 경우 lshw 패키지를 설치하고
lshw-C 디스플레이 명령을 사용합니다. 다음 예제에서는 시스템이 vGPU와 호환되는 NVIDIA Tesla P4 GPU를 사용하고 있는 것을 보여줍니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
절차
- NVIDIA vGPU 드라이버를 다운로드하여 시스템에 설치합니다. 자세한 내용은 NVIDIA 설명서를 참조하십시오.
NVIDIA 소프트웨어 설치 관리자에서 /etc/modprobe.d/nvidia-installer-disable-nocin.conf 파일을 생성하지 않은 경우 /etc/modprobe.d/ 에 모든 이름의
conf파일을 만들고 파일에 다음 행을 추가합니다.blacklist nouveau options nouveau modeset=0
blacklist nouveau options nouveau modeset=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 현재 커널에 대한 초기 램디스크를 다시 생성한 다음 재부팅합니다.
dracut --force reboot
# dracut --force # rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow 커널이 그 다음vidia
_vgpu_vfio모듈을 로드하고 thenvidia-vgpu-mgr.service서비스가 실행 중인지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또한 NVIDIA Ampere GPU 장치를 기반으로 vGPU를 생성하는 경우, 물리 GPU에 가상 기능을 사용하도록 설정해야 합니다. 자세한 내용은 NVIDIA 문서 를 참조하십시오.
장치 UUID 생성.
uuidgen
# uuidgen 30820a6f-b1a5-4503-91ca-0c10ba58692aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 감지된 GPU 하드웨어에 따라 중재된 장치의 구성으로 XML 파일을 준비합니다. 예를 들어, 다음은 0000:01:00.0 PCI 버스에서 실행되고 이전 단계에서 생성된 UUID를 사용하는 NVIDIA Tesla P4 카드에서 중재된
nvidia-63vGPU 유형의 중재 장치를 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 준비한 XML 파일을 기반으로 vGPU 조정 장치를 정의합니다. 예를 들면 다음과 같습니다.
virsh nodedev-define vgpu-test.xml
# virsh nodedev-define vgpu-test.xml Node device mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 created from vgpu-test.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 중재 장치가 비활성으로 나열되는지 확인합니다.
virsh nodedev-list --cap mdev --inactive
# virsh nodedev-list --cap mdev --inactive mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 생성한 vGPU 중재 장치를 시작합니다.
virsh nodedev-start mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
# virsh nodedev-start mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 Device mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 startedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 중재 장치가 활성 상태로 나열되어 있는지 확인합니다.
virsh nodedev-list --cap mdev
# virsh nodedev-list --cap mdev mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트가 재부팅된 후 자동으로 시작하도록 vGPU 장치 설정
virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
# virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 Device mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 marked as autostartedCopy to Clipboard Copied! Toggle word wrap Toggle overflow vGPU 리소스를 공유할 VM에 중재된 장치를 연결합니다. 이를 위해 이전에 cryptoreated UUID와 함께 다음 행을 VM의 XML 구성의 <devices/> 섹션에 추가합니다.
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='on'> <source> <address uuid='30820a6f-b1a5-4503-91ca-0c10ba58692a'/> </source> </hostdev><hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='on'> <source> <address uuid='30820a6f-b1a5-4503-91ca-0c10ba58692a'/> </source> </hostdev>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 UUID는 한 번에 하나의 VM에만 할당할 수 있습니다. 또한 VM에
virtio-vga와 같은 QEMU 비디오 장치가 없는 경우 <hostdev> 행에ramfb='on'매개변수도 추가합니다.- 할당된 VM에서 vGPU 중재 장치의 모든 기능을 사용하려면 VM에 NVIDIA vGPU 게스트 소프트웨어 라이센스를 설정합니다. 자세한 내용 및 지침은 NVIDIA 가상 GPU 소프트웨어 라이센스 서버 사용자 가이드를 참조하십시오.
검증
생성한 vGPU의 기능을 쿼리하고 활성 및 지속적으로 나열되는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VM을 시작하고 게스트 운영 체제가 중재 장치를 NVIDIA GPU로 감지하는지 확인합니다. 예를 들어 VM에서 Linux를 사용하는 경우 다음을 실행합니다.
lspci -d 10de: -k
# lspci -d 10de: -k 07:00.0 VGA compatible controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 32GB] (rev a1) Subsystem: NVIDIA Corporation Device 12ce Kernel driver in use: nvidia Kernel modules: nouveau, nvidia_drm, nvidiaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
알려진 문제
- RHEL 8 게스트 운영 체제를 사용하는 VM에 NVIDIA vGPU 미디어를 할당하면 현재 해당 VM에서 Wayland 세션이 비활성화되고 대신 Xorg 세션을 로드합니다. 이는 NVIDIA 드라이버와 Wayland 간의 비호환성 때문입니다.
13.2.2. NVIDIA vGPU 장치 제거 링크 복사링크가 클립보드에 복사되었습니다!
할당된 vGPU 중재 장치의 구성을 변경하려면 할당된 VM에서 기존 장치를 제거해야 합니다. 자세한 내용은 다음을 참조하십시오.
사전 요구 사항
- 장치를 제거할 VM이 종료됩니다.
절차
제거하려는 중재 장치의 ID를 가져옵니다.
virsh nodedev-list --cap mdev
# virsh nodedev-list --cap mdev mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 실행 중인 vGPU 중재 장치의 인스턴스를 중지합니다.
virsh nodedev-destroy mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
# virsh nodedev-destroy mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 Destroyed node device 'mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 중재 장치가 비활성화되었는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VM의 XML 구성에서 장치를 제거합니다. 이렇게 하려면
virsh edit유틸리티를 사용하여 VM의 XML 구성을 편집하고 mdev 구성 세그먼트를 제거합니다. 세그먼트는 다음과 유사합니다.<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'> <source> <address uuid='30820a6f-b1a5-4503-91ca-0c10ba58692a'/> </source> </hostdev><hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'> <source> <address uuid='30820a6f-b1a5-4503-91ca-0c10ba58692a'/> </source> </hostdev>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중재된 장치를 중지하고 분리하면 삭제되지 않고 정의된 대로 유지합니다. 따라서 장치를 다시 시작하고 다른 VM에 연결할 수 있습니다.
선택 사항: 중지된 중재 장치를 삭제하려면 정의를 제거합니다.
virsh nodedev-undefine mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
# virsh nodedev-undefine mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 Undefined node device 'mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
장치를 중지 및 분리한 경우 중재 장치가 비활성으로 나열되어 있는지 확인합니다.
virsh nodedev-list --cap mdev --inactive
# virsh nodedev-list --cap mdev --inactive mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 장치를 삭제한 경우 다음 명령이 표시되지 않는지 확인합니다.
virsh nodedev-list --cap mdev
# virsh nodedev-list --cap mdevCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2.3. 시스템에 대한 NVIDIA vGPU 정보 얻기 링크 복사링크가 클립보드에 복사되었습니다!
사용 가능한 vGPU 기능의 기능을 평가하기 위해 시스템에서 중재된 장치에 대한 추가 정보를 얻을 수 있습니다(예:).
- 지정된 유형의 중재된 장치를 만들 수 있는 장치 수는 몇 개입니까?
- 시스템에 이미 구성된 중재된 장치는 무엇입니까.
절차
vGPU 중재 장치를 지원할 수 있는 호스트에서 사용 가능한 GPU 장치를 보려면
virsh nodedev-list --cap mdev_types명령을 사용합니다. 예를 들어, 다음은 NVIDIA Quadro RTX6000 장치가 있는 시스템을 보여줍니다.virsh nodedev-list --cap mdev_types
# virsh nodedev-list --cap mdev_types pci_0000_5b_00_0 pci_0000_9b_00_0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 GPU 장치에서 지원하는 vGPU 유형과 추가 메타데이터를 표시하려면
virsh nodedev-dumpxml명령을 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2.4. NVIDIA vGPU 용 원격 데스크탑 스트리밍 서비스 링크 복사링크가 클립보드에 복사되었습니다!
다음 원격 데스크탑 스트리밍 서비스는 NVIDIA vGPU 또는 NVIDIA GPU 패스스루가 활성화된 RHEL 8 하이퍼바이저에서 지원됩니다.
- HP ZCentral Remote Boost/Teradici
- NICE DCV
- Mechdyne TGX
지원 세부 사항은 해당 벤더 지원 매트릭스를 참조하십시오.