클러스터형 VM에서 GPU 사용

적용 대상: Azure Stack HCI, 버전 23H2 및 22H2

참고

Azure Stack HCI 23H2에서 VM을 만들고 관리하는 권장 방법은 Azure Arc 컨트롤 플레인을 사용하는 것입니다. Azure Arc VM에서 사용할 수 없는 기능이 필요한 경우에만 아래에 설명된 메커니즘을 사용하여 VM을 관리합니다.

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

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

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

사전 요구 사항

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

참고

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

사용 지침

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

Windows Admin Center 사용

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

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

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

    Windows Admin Center GPU 도구의 스크린샷

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

    Windows Admin Center GPU 풀 만들기 페이지의 스크린샷

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

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

    서버, 풀 이름 및 GPU를 지정하는 Windows Admin Center 새 GPU 풀 페이지의 스크린샷

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

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

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

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

    GPU 풀에서 GPU에 VM을 할당하는 Windows Admin Center GPU 풀에 VM 할당 페이지의 스크린샷

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

    VM에 할당된 GPU 및 할당된 VM 아래에 표시되는 VM을 보여 주는 성공 프롬프트의 스크린샷

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

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

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

    할당되지 않은 VM을 보여 주는 GPU 풀에서 VM 할당 취소 페이지의 스크린샷

    프로세스가 완료되면 GPU 풀에서 VM이 할당되지 않았고 할당 상태 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 리소스의 기본 오프라인 작업을 가 아닌 saveforce-shutdown 구성합니다.

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

     Get-ClusterResource -name vmname | Set-ClusterParameter -Name "OfflineAction" -Value 3
    
  2. 이전에 만든 리소스 풀을 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을 다시 시작합니다.

다음 단계

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