클러스터형 VM에서 GPU 사용

적용 대상: Azure Stack HCI, 버전 21H2

이 항목에서는 Azure Stack HCI 운영 체제를 실행하는 클러스터형 VM(가상 머신)에서 GPU(그래픽 처리 장치)를 사용하여 클러스터형 VM의 워크로드에 GPU 가속을 제공하는 방법에 대한 지침을 제공합니다.

Azure Stack HCI, 버전 21H2부터 Azure Stack HCI 클러스터에 GPU를 포함하여 클러스터된 VM에서 실행되는 워크로드에 GPU 가속을 제공할 수 있습니다. 이 항목에서는 이 기능의 기본 필수 구성 요소 및 배포 방법에 대해 설명합니다.

GPU 가속은 GPU 통과라고도 하는 DDA(불연속 디바이스 할당)를 통해 제공되므로 하나 이상의 물리적 GPU를 VM에 바칠 수 있습니다. 클러스터형 VM은 장애 조치(failover)를 통해 GPU 가속 및 클러스터링 기능(예: 고가용성)을 활용할 수 있습니다. 실시간 마이그레이션 VM은 현재 지원되지 않지만 VM을 자동으로 다시 시작하고 실패 시 GPU 리소스를 사용할 수 있는 위치에 배치할 수 있습니다.

사전 요구 사항

시작하려면 Azure Stack HCI, 버전 21H2를 실행하는 두 개 이상의 서버로 구성된 Azure Stack HCI 클러스터가 필요합니다. 클러스터의 모든 서버에 물리적으로 설치된 GPU도 필요합니다.

참고

Azure Stack HCI 카탈로그는 아직 GPU 호환성 또는 인증 정보를 나타내지 않습니다. GPU 설치에 대한 제조업체의 지침을 따릅니다.

사용 지침

이 섹션에서는 WINDOWS ADMIN CENTER 또는 Windows PowerShell 사용하여 GPU 사용을 위해 클러스터 서버를 준비하는 데 필요한 단계를 설명합니다. 하나 이상의 VM을 클러스터형 GPU 리소스 풀에 할당하고 클러스터된 GPU 리소스 풀에서 VM을 제거할 수 있습니다. PowerShell을 사용하여 자동 다시 시작을 테스트할 수도 있습니다.

Windows Admin Center 사용

Windows Admin Center 사용하여 클러스터를 준비하고, GPU 리소스 풀에 VM을 할당하고, GPU 리소스 풀에 VM을 할당 취소합니다.

클러스터를 준비하고 GPU 리소스 풀에 VM을 할당하려면 다음을 수행합니다.

  1. 도구 메뉴의 확장에서 GPU를 선택하여 도구를 엽니다.

    Screenshot of the GPU tool in Windows Admin Center

  2. 도구의 기본 페이지에서 GPU 풀 탭을 선택한 다음 GPU 풀 만들기를 선택합니다.

    Screenshot of the Create GPU pools page in Windows Admin Center

  3. 새 GPU 풀 페이지에서 다음을 지정한 다음 저장을 선택합니다.

    1. 서버 이름
    2. GPU 풀 이름
    3. 풀에 추가하려는 GPU

    Screenshot of the New GPU pool page in Windows Admin Center to specify servers, pool name, and GPUs

    프로세스가 완료되면 새 GPU 풀 및 호스트 서버의 이름을 보여 주는 성공 프롬프트가 표시됩니다.

  4. GPU 풀에 VM 할당 페이지에서 다음을 지정한 다음 할당을 선택합니다.

    1. 서버 이름
    2. GPU 풀 이름
    3. GPU 풀에서 GPU를 할당하려는 가상 머신입니다.

    또한 메모리 매핑된 IO(IO) 공간에 대한 고급 설정 값을 정의하여 단일 GPU에 대한 리소스 요구 사항을 확인할 수 있습니다.

    Screenshot of the Assign VM to GPU pool page in Windows Admin Center where you assign a VM to a GPU from the GPU pool

    프로세스가 완료되면 GPU 리소스 풀에서 할당된 VM 아래에 표시되는 VM에 GPU를 성공적으로 할당했음을 보여 주는 확인 메시지가 표시됩니다.

    Screenshot of success prompt showing GPU assigned to a VM and the VM displaying under Assigned VMs

GPU 리소스 풀에서 VM을 할당 취소하려면 다음을 수행합니다.

  1. GPU 풀 탭에서 할당을 취소할 GPU를 선택한 다음, VM 할당 취소를 선택합니다.

  2. GPU 풀 페이지에서 VM 할당 취소 페이지의 가상 머신 목록 상자에서 VM의 이름을 지정한 다음 할당 취소를 선택합니다.

    Screenshot of Unassign VM from GPU pool page showing VM to be unassigned

    프로세스가 완료되면 VM이 GPU 풀에서 할당 취소되었다는 성공 메시지가 표시되고 할당 상태에서 GPU에 사용 가능(할당되지 않음)이 표시됩니다.

PowerShell 사용

PowerShell을 사용하여 클러스터를 준비하고, GPU 리소스 풀에 VM을 할당하고, 자동 다시 시작을 테스트합니다.

클러스터 준비

개별 디바이스 할당을 사용하여 그래픽 디바이스 배포의 지침에 따라 각 서버에 보안 완화 드라이버를 설치하고, GPU를 사용하지 않도록 설정한 다음, 호스트에서 분리하여 각 서버에서 GPU를 준비합니다. 하드웨어 공급업체에 따라 GPU 라이선스 요구 사항을 구성해야 할 수도 있습니다.

  1. 클러스터형 GPU 리소스를 포함할 각 서버에 빈 리소스 풀을 새로 만듭니다. 각 서버에서 동일한 풀 이름을 제공해야 합니다.

    PowerShell에서 관리자 권한으로 다음 cmdlet을 실행합니다.

     New-VMResourcePool -ResourcePoolType PciExpress -Name "GpuChildPool"
    
  2. 이전 단계에서 만든 리소스 풀에 각 서버에서 분리된 GPU를 추가합니다.

    PowerShell에서 다음 cmdlet을 실행합니다.

     $gpu = Get-VMHostAssignableDevice
    
     Add-VMHostAssignableDevice -HostAssignableDevice $gpu -ResourcePoolName "GpuChildPool"
    

이제 할당 가능한 GPU로 채워진 클러스터 전체 리소스 풀(명명 GpuChildPool됨)이 있습니다. 클러스터는 이 풀을 사용하여 GPU 리소스 풀에 할당된 시작되거나 이동된 VM에 대한 VM 배치를 결정합니다.

GPU 리소스 풀에 VM 할당

먼저 클러스터에 새 VM을 만들거나 기존 VM을 찾습니다.

불연속 디바이스 할당을 사용하여 그래픽 디바이스 배포의 지침에 따라 캐시 동작, 중지 작업 및 메모리 매핑된 I/O(I/O) 속성을 설정하여 DDA용 VM을 준비합니다.

  1. 클러스터 VM 리소스의 기본 오프라인 작업을 force-shutdown 대신 구성합니다 save.

    PowerShell에서 다음 cmdlet을 실행합니다.

     Get-ClusterResource -name vmname | Set-ClusterParameter -Name "OfflineAction" -Value 3
    
  2. 이전에 만든 리소스 풀을 VM에 할당합니다. 이렇게 하면 VM이 시작되거나 이동될 때 VM에 풀에서 GpuChildPool 할당된 디바이스가 필요하다는 것을 클러스터에 선언합니다.

    PowerShell에서 다음 cmdlet을 실행합니다.

     $vm | Add-VMAssignableDevice -ResourcePoolName "GpuChildPool"
    

    참고

    VM에 둘 이상의 GPU를 추가하려면 먼저 리소스 풀에 둘 이상의 할당 가능한 GPU를 사용할 수 있는지 확인한 다음 이전 명령을 다시 실행합니다.

지금 VM을 시작하는 경우 클러스터는 이 클러스터 전체 풀에서 사용 가능한 GPU 리소스가 있는 서버에 배치되도록 합니다. 또한 클러스터는 DDA를 통해 VM에 GPU를 할당하므로 VM 내의 워크로드에서 GPU에 액세스할 수 있습니다.

참고

또한 VM의 앱이 할당된 GPU를 활용할 수 있도록 VM 내에 GPU 제조업체의 드라이버를 설치해야 합니다.

VM에서 할당된 GPU를 제거할 수도 있습니다. 이렇게 하려면 PowerShell에서 다음 cmdlet을 실행합니다.

 Get-VMAssignableDevice -VMName $vm | Where-Object { $_.ResourcePoolName -eq "GpuChildPool" } | Remove-VMAssignableDevice

할당된 GPU를 사용하여 VM 장애 조치(failover)

GPU 워크로드를 사용할 수 있도록 클러스터의 기능을 테스트하려면 할당된 GPU를 사용하여 VM이 실행되는 서버에서 드레이닝 작업을 수행합니다. 서버를 드레이닝하려면 장애 조치(failover) 클러스터 유지 관리 절차의 지침을 따릅니다. 다른 서버에 사용자가 만든 풀에 사용 가능한 GPU 리소스가 충분한 경우 클러스터의 다른 서버에서 VM을 다시 시작합니다.

다음 단계

자세한 내용은 다음 항목을 참조하십시오.