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를 사용하고 있는 것을 보여줍니다.

      # lshw -C display
      
      *-display
             description: 3D controller
             product: GP104GL [Tesla P4]
             vendor: NVIDIA Corporation
             physical id: 0
             bus info: pci@0000:01:00.0
             version: a1
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi pciexpress cap_list
             configuration: driver=vfio-pci latency=0
             resources: irq:16 memory:f6000000-f6ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff
      Copy to Clipboard Toggle word wrap

절차

  1. NVIDIA vGPU 드라이버를 다운로드하여 시스템에 설치합니다. 자세한 내용은 NVIDIA 설명서를 참조하십시오.
  2. NVIDIA 소프트웨어 설치 관리자에서 /etc/modprobe.d/nvidia-installer-disable-nocin.conf 파일을 생성하지 않은 경우 /etc/modprobe.d/ 에 모든 이름의 conf 파일을 만들고 파일에 다음 행을 추가합니다.

    blacklist nouveau
    options nouveau modeset=0
    Copy to Clipboard Toggle word wrap
  3. 현재 커널에 대한 초기 램디스크를 다시 생성한 다음 재부팅합니다.

    # dracut --force
    # reboot
    Copy to Clipboard Toggle word wrap
  4. 커널이 그 다음vidia _vgpu_vfio 모듈을 로드하고 the nvidia-vgpu-mgr.service 서비스가 실행 중인지 확인합니다.

    # lsmod | grep nvidia_vgpu_vfio
    nvidia_vgpu_vfio 45011 0
    nvidia 14333621 10 nvidia_vgpu_vfio
    mdev 20414 2 vfio_mdev,nvidia_vgpu_vfio
    vfio 32695 3 vfio_mdev,nvidia_vgpu_vfio,vfio_iommu_type1
    
    # systemctl status nvidia-vgpu-mgr.service
    nvidia-vgpu-mgr.service - NVIDIA vGPU Manager Daemon
       Loaded: loaded (/usr/lib/systemd/system/nvidia-vgpu-mgr.service; enabled; vendor preset: disabled)
       Active: active (running) since Fri 2018-03-16 10:17:36 CET; 5h 8min ago
     Main PID: 1553 (nvidia-vgpu-mgr)
     [...]
    Copy to Clipboard Toggle word wrap

    또한 NVIDIA Ampere GPU 장치를 기반으로 vGPU를 생성하는 경우, 물리 GPU에 가상 기능을 사용하도록 설정해야 합니다. 자세한 내용은 NVIDIA 문서 를 참조하십시오.

  5. 장치 UUID 생성.

    # uuidgen
    30820a6f-b1a5-4503-91ca-0c10ba58692a
    Copy to Clipboard Toggle word wrap
  6. 감지된 GPU 하드웨어에 따라 중재된 장치의 구성으로 XML 파일을 준비합니다. 예를 들어, 다음은 0000:01:00.0 PCI 버스에서 실행되고 이전 단계에서 생성된 UUID를 사용하는 NVIDIA Tesla P4 카드에서 중재된 nvidia-63 vGPU 유형의 중재 장치를 구성합니다.

    <device>
        <parent>pci_0000_01_00_0</parent>
        <capability type="mdev">
            <type id="nvidia-63"/>
            <uuid>30820a6f-b1a5-4503-91ca-0c10ba58692a</uuid>
        </capability>
    </device>
    Copy to Clipboard Toggle word wrap
  7. 준비한 XML 파일을 기반으로 vGPU 조정 장치를 정의합니다. 예를 들면 다음과 같습니다.

    # virsh nodedev-define vgpu-test.xml
    Node device mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 created from vgpu-test.xml
    Copy to Clipboard Toggle word wrap
  8. 선택 사항: 중재 장치가 비활성으로 나열되는지 확인합니다.

    # virsh nodedev-list --cap mdev --inactive
    mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
    Copy to Clipboard Toggle word wrap
  9. 생성한 vGPU 중재 장치를 시작합니다.

    # virsh nodedev-start mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
    Device mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 started
    Copy to Clipboard Toggle word wrap
  10. 선택 사항: 중재 장치가 활성 상태로 나열되어 있는지 확인합니다.

    # virsh nodedev-list --cap mdev
    mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
    Copy to Clipboard Toggle word wrap
  11. 호스트가 재부팅된 후 자동으로 시작하도록 vGPU 장치 설정

    # 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 autostarted
    Copy to Clipboard Toggle word wrap
  12. 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>
    Copy to Clipboard Toggle word wrap

    각 UUID는 한 번에 하나의 VM에만 할당할 수 있습니다. 또한 VM에 virtio-vga 와 같은 QEMU 비디오 장치가 없는 경우 < hostdev > 행에 ramfb='on' 매개변수도 추가합니다.

  13. 할당된 VM에서 vGPU 중재 장치의 모든 기능을 사용하려면 VM에 NVIDIA vGPU 게스트 소프트웨어 라이센스를 설정합니다. 자세한 내용 및 지침은 NVIDIA 가상 GPU 소프트웨어 라이센스 서버 사용자 가이드를 참조하십시오.

검증

  1. 생성한 vGPU의 기능을 쿼리하고 활성 및 지속적으로 나열되는지 확인합니다.

    # virsh nodedev-info mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
    Name:           virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
    Parent:         pci_0000_01_00_0
    Active:         yes
    Persistent:     yes
    Autostart:      yes
    Copy to Clipboard Toggle word wrap
  2. VM을 시작하고 게스트 운영 체제가 중재 장치를 NVIDIA GPU로 감지하는지 확인합니다. 예를 들어 VM에서 Linux를 사용하는 경우 다음을 실행합니다.

    # 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, nvidia
    Copy to Clipboard Toggle word wrap

알려진 문제

  • RHEL 8 게스트 운영 체제를 사용하는 VM에 NVIDIA vGPU 미디어를 할당하면 현재 해당 VM에서 Wayland 세션이 비활성화되고 대신 Xorg 세션을 로드합니다. 이는 NVIDIA 드라이버와 Wayland 간의 비호환성 때문입니다.

13.2.2. NVIDIA vGPU 장치 제거

할당된 vGPU 중재 장치의 구성을 변경하려면 할당된 VM에서 기존 장치를 제거해야 합니다. 자세한 내용은 다음을 참조하십시오.

사전 요구 사항

  • 장치를 제거할 VM이 종료됩니다.

절차

  1. 제거하려는 중재 장치의 ID를 가져옵니다.

    # virsh nodedev-list --cap mdev
    mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
    Copy to Clipboard Toggle word wrap
  2. 실행 중인 vGPU 중재 장치의 인스턴스를 중지합니다.

    # 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 Toggle word wrap
  3. 선택 사항: 중재 장치가 비활성화되었는지 확인합니다.

    # virsh nodedev-info mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
    Name:           virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
    Parent:         pci_0000_01_00_0
    Active:         no
    Persistent:     yes
    Autostart:      yes
    Copy to Clipboard Toggle word wrap
  4. 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>
    Copy to Clipboard Toggle word wrap

    중재된 장치를 중지하고 분리하면 삭제되지 않고 정의된 대로 유지합니다. 따라서 장치를 다시 시작하고 다른 VM에 연결할 수 있습니다.

  5. 선택 사항: 중지된 중재 장치를 삭제하려면 정의를 제거합니다.

    # 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 Toggle word wrap

검증

  • 장치를 중지 및 분리한 경우 중재 장치가 비활성으로 나열되어 있는지 확인합니다.

    # virsh nodedev-list --cap mdev --inactive
    mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
    Copy to Clipboard Toggle word wrap
  • 장치를 삭제한 경우 다음 명령이 표시되지 않는지 확인합니다.

    # virsh nodedev-list --cap mdev
    Copy to Clipboard Toggle word wrap

13.2.3. 시스템에 대한 NVIDIA vGPU 정보 얻기

사용 가능한 vGPU 기능의 기능을 평가하기 위해 시스템에서 중재된 장치에 대한 추가 정보를 얻을 수 있습니다(예:).

  • 지정된 유형의 중재된 장치를 만들 수 있는 장치 수는 몇 개입니까?
  • 시스템에 이미 구성된 중재된 장치는 무엇입니까.

절차

  • vGPU 중재 장치를 지원할 수 있는 호스트에서 사용 가능한 GPU 장치를 보려면 virsh nodedev-list --cap mdev_types 명령을 사용합니다. 예를 들어, 다음은 NVIDIA Quadro RTX6000 장치가 있는 시스템을 보여줍니다.

    # virsh nodedev-list --cap mdev_types
    pci_0000_5b_00_0
    pci_0000_9b_00_0
    Copy to Clipboard Toggle word wrap
  • 특정 GPU 장치에서 지원하는 vGPU 유형과 추가 메타데이터를 표시하려면 virsh nodedev-dumpxml 명령을 사용합니다.

    # virsh nodedev-dumpxml pci_0000_9b_00_0
    <device>
      <name>pci_0000_9b_00_0</name>
      <path>/sys/devices/pci0000:9a/0000:9a:00.0/0000:9b:00.0</path>
      <parent>pci_0000_9a_00_0</parent>
      <driver>
        <name>nvidia</name>
      </driver>
      <capability type='pci'>
        <class>0x030000</class>
        <domain>0</domain>
        <bus>155</bus>
        <slot>0</slot>
        <function>0</function>
        <product id='0x1e30'>TU102GL [Quadro RTX 6000/8000]</product>
        <vendor id='0x10de'>NVIDIA Corporation</vendor>
        <capability type='mdev_types'>
          <type id='nvidia-346'>
            <name>GRID RTX6000-12C</name>
            <deviceAPI>vfio-pci</deviceAPI>
            <availableInstances>2</availableInstances>
          </type>
          <type id='nvidia-439'>
            <name>GRID RTX6000-3A</name>
            <deviceAPI>vfio-pci</deviceAPI>
            <availableInstances>8</availableInstances>
          </type>
          [...]
          <type id='nvidia-440'>
            <name>GRID RTX6000-4A</name>
            <deviceAPI>vfio-pci</deviceAPI>
            <availableInstances>6</availableInstances>
          </type>
          <type id='nvidia-261'>
            <name>GRID RTX6000-8Q</name>
            <deviceAPI>vfio-pci</deviceAPI>
            <availableInstances>3</availableInstances>
          </type>
        </capability>
        <iommuGroup number='216'>
          <address domain='0x0000' bus='0x9b' slot='0x00' function='0x3'/>
          <address domain='0x0000' bus='0x9b' slot='0x00' function='0x1'/>
          <address domain='0x0000' bus='0x9b' slot='0x00' function='0x2'/>
          <address domain='0x0000' bus='0x9b' slot='0x00' function='0x0'/>
        </iommuGroup>
        <numa node='2'/>
        <pci-express>
          <link validity='cap' port='0' speed='8' width='16'/>
          <link validity='sta' speed='2.5' width='8'/>
        </pci-express>
      </capability>
    </device>
    Copy to Clipboard Toggle word wrap

13.2.4. NVIDIA vGPU 용 원격 데스크탑 스트리밍 서비스

다음 원격 데스크탑 스트리밍 서비스는 NVIDIA vGPU 또는 NVIDIA GPU 패스스루가 활성화된 RHEL 8 하이퍼바이저에서 지원됩니다.

  • HP ZCentral Remote Boost/Teradici
  • NICE DCV
  • Mechdyne TGX

지원 세부 사항은 해당 벤더 지원 매트릭스를 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat