Verwenden von GPUs mit gruppierten VMs

Gilt für: Azure Stack HCI, Versionen 23H2 und 22H2

Hinweis

Die empfohlene Möglichkeit zum Erstellen und Verwalten von VMs in Azure Stack HCI 23H2 ist die Verwendung der Azure Arc-Steuerungsebene. Verwenden Sie den unten beschriebenen Mechanismus, um Ihre VMs nur zu verwalten, wenn Sie Funktionen benötigen, die auf virtuellen Azure Arc-Computern nicht verfügbar sind.

Dieses Thema enthält Anleitungen zur Verwendung von GPUs (Graphics Processing Units) mit gruppierten VMs, auf denen das Azure Stack HCI-Betriebssystem ausgeführt wird, um GPU-Beschleunigung für Workloads auf den gruppierten VMs zu ermöglichen.

Ab Azure Stack HCI Version 21H2 können Sie GPUs in Ihrem Azure Stack HCI-Cluster hinzufügen, um GPU-Beschleunigung für Workloads zu ermöglichen, die auf gruppierten VMs ausgeführt werden. In diesem Thema werden die grundlegenden Voraussetzungen für diese Funktion und deren Bereitstellung behandelt.

GPU-Beschleunigung wird über diskrete Gerätezuweisung (Discrete Device Assignment, DDA) bereitgestellt, die auch als GPU-Passthrough bezeichnet wird und es Ihnen ermöglicht, mindestens eine physische GPU für eine VM zu verwenden. Gruppierte VMs können GPU-Beschleunigung und Clusteringfunktionen wie Hochverfügbarkeit über Failover nutzen. Livemigration von VMs wird derzeit nicht unterstützt, aber VMs können automatisch neu gestartet und im Falle eines Fehlers dort platziert werden, wo GPU-Ressourcen verfügbar sind.

Voraussetzungen

Für die ersten Schritte benötigen Sie einen Azure Stack HCI-Cluster mit Azure Stack HCI, Version 21H2. Außerdem benötigen Sie GPUs, die auf jedem Server des Clusters physisch installiert sind.

Hinweis

Der Azure Stack HCI-Katalog gibt noch keine Informationen zur GPU-Kompatibilität oder -Zertifizierung an. Befolgen Sie die Anweisungen des Herstellers für die GPU-Installation.

Verwendungsanweisungen

In diesem Abschnitt werden die Schritte beschrieben, die zum Verwenden von Windows Admin Center oder Windows PowerShell erforderlich sind, um Ihre Clusterserver auf die GPU-Nutzung vorzubereiten. Sie können einem gruppierten GPU-Ressourcenpool einen oder mehrere virtuelle Computer zuweisen und einen virtuellen Computer aus einem gruppierten GPU-Ressourcenpool entfernen. Sie können auch PowerShell verwenden, um den automatischen Neustart zu testen.

Verwenden von Windows Admin Center

Verwenden Sie Windows Admin Center, um den Cluster vorzubereiten, einen virtuellen Computer einem GPU-Ressourcenpool zuzuweisen und die Zuweisung eines virtuellen Computers zu einem GPU-Ressourcenpool aufzuheben.

So bereiten Sie den Cluster vor und weisen einen virtuellen Computer einem GPU-Ressourcenpool zu:

  1. Wählen Sie im Menü Extras unter Erweiterungendie Option GPUs aus, um das Tool zu öffnen.

    Screenshot: GPU-Tool in Windows Admin Center

  2. Wählen Sie auf der Hauptseite des Tools die Registerkarte GPU-Pools und dann GPU-Pool erstellen aus.

    Screenshot: Seite „GPU-Pool erstellen“ in Windows Admin Center

  3. Geben Sie auf der Seite Neuer GPU-Pool Folgendes an, und wählen Sie dann Speichern aus:

    1. Name des Servers
    2. Name des GPU-Pools
    3. GPUs, die Sie dem Pool hinzufügen möchten

    Screenshot: Seite „Neuer GPU-Pool“ in Windows Admin Center zur Angabe von Servern, Poolnamen und GPUs

    Nach Abschluss des Vorgangs erhalten Sie eine Erfolgsmeldung, die den Namen des neuen GPU-Pools und des Hostservers anzeigt.

  4. Geben Sie auf der Seite VM zu GPU-Pool zuweisen Folgendes an, und wählen Sie dann Zuweisen aus:

    1. Name des Servers
    2. Name des GPU-Pools
    3. Virtueller Computer, dem Sie die GPU aus dem GPU-Pool zuweisen möchten.

    Sie können auch erweiterte Einstellungswerte für MMIO-Bereiche (Memory-Mapped IO) definieren, um die Ressourcenanforderungen für eine einzelne GPU zu bestimmen.

    Screenshot: Seite „VM zu GPU-Pool zuweisen“ in Windows Admin Center, auf der Sie einer GPU aus dem GPU-Pool eine VM zuweisen können

    Nach Abschluss des Vorgangs erhalten Sie eine Bestätigungsaufforderung, die anzeigt, dass Sie die GPU aus dem GPU-Ressourcenpool erfolgreich der VM zugewiesen haben, die unter Zugewiesene VMs angezeigt wird.

    Screenshot: Erfolgsmeldung, die die Zuweisung der GPU zur VM sowie die VM unter „Zugewiesene VMs“ anzeigt

So heben Sie die Zuweisung einer VM zu einem GPU-Ressourcenpool auf:

  1. Wählen Sie auf der Registerkarte GPU-Pools die GPU aus, deren Zuweisung Sie aufheben möchten, und wählen Sie dann Zuweisung der VM aufheben aus.

  2. Geben Sie auf der Seite Zuweisung der VM zu GPU-Pool aufheben im Listenfeld Virtuelle Computer den Namen der VM an, und wählen Sie dann Zuweisung aufheben aus.

    Screenshot: Seite „Zuweisung der VM zu GPU-Pool aufheben“, auf der die VM angezeigt wird, deren Zuweisung aufgehoben werden soll

    Nach Abschluss des Vorgangs erhalten Sie eine Erfolgsmeldung, dass die Zuweisung der VM zum GPU-Pool aufgehoben wurde. Unter Zuweisungsstatus wird die GPU als Verfügbar (Nicht zugewiesen) angezeigt.

Verwenden von PowerShell

Verwenden Sie PowerShell, um den Cluster vorzubereiten, eine VM einem GPU-Ressourcenpool zuzuweisen und den automatischen Neustart zu testen.

Vorbereiten des Clusters

Bereiten Sie die GPUs auf jedem Server vor, indem Sie Treiber für die Sicherheitsrisikominderung auf jedem Server installieren, die GPUs deaktivieren und ihre Bereitstellung gemäß den Anweisungen unter Bereitstellen von Grafikgeräten mit diskreter Gerätezuweisung auf dem Host aufheben. Je nach Hardwareanbieter müssen Sie möglicherweise auch GPU-Lizenzierungsanforderungen konfigurieren.

  1. Erstellen Sie einen neuen leeren Ressourcenpool auf jedem Server, der die gruppierten GPU-Ressourcen enthält. Stellen Sie sicher, dass Sie auf jedem Server den gleichen Poolnamen angeben.

    Führen Sie das folgende Cmdlet als Administrator in PowerShell aus:

     New-VMResourcePool -ResourcePoolType PciExpress -Name "GpuChildPool"
    
  2. Fügen Sie die GPUs mit aufgehobener Bereitstellung von jedem Server dem Ressourcenpool hinzu, den Sie im vorherigen Schritt erstellt haben.

    Führen Sie in PowerShell die folgenden Cmdlets aus:

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

Sie verfügen nun über einen clusterweiten Ressourcenpool (mit dem Namen GpuChildPool), der mit zuweisbaren GPUs aufgefüllt wird. Der Cluster verwendet diesen Pool, um die VM-Platzierung für alle gestarteten oder verschobenen VMs zu bestimmen, die dem GPU-Ressourcenpool zugewiesen sind.

Zuweisen einer VM zu einem GPU-Ressourcenpool

Erstellen Sie zunächst eine neue VM in Ihrem Cluster, oder suchen Sie nach einer vorhandenen VM.

Bereiten Sie die VM für DDA vor, indem Sie das Cacheverhalten, die Stoppaktion und die MMIO-Eigenschaften (Memory-Mapped E/A) gemäß den Anweisungen unter Bereitstellen von Grafikgeräten mit diskreter Gerätezuweisung festlegen.

  1. Konfigurieren Sie die standardmäßige Offlineaktion der Cluster-VM-Ressource als force-shutdown und nicht als save.

    Führen Sie in PowerShell das folgende Cmdlet aus:

     Get-ClusterResource -name vmname | Set-ClusterParameter -Name "OfflineAction" -Value 3
    
  2. Weisen Sie den Ressourcenpool, den Sie zuvor erstellt haben, der VM zu. Dadurch wird für den Cluster deklariert, dass die VM ein zugewiesenes Gerät aus dem GpuChildPool-Pool benötigt, wenn sie gestartet oder verschoben wird.

    Führen Sie in PowerShell das folgende Cmdlet aus:

     $vm | Add-VMAssignableDevice -ResourcePoolName "GpuChildPool"
    

    Hinweis

    Wenn Sie der VM mehr als eine GPU hinzufügen möchten, überprüfen Sie zunächst, ob im Ressourcenpool mehr als eine zuweisbare GPU verfügbar ist, und führen Sie dann den vorherigen Befehl erneut aus.

Wenn Sie die VM jetzt starten, stellt der Cluster sicher, dass er auf einem Server mit verfügbaren GPU-Ressourcen aus diesem clusterweiten Pool platziert wird. Der Cluster weist der VM auch die GPU über DDA zu, wodurch von Workloads innerhalb der VM auf die GPU zugegriffen werden kann.

Hinweis

Sie müssen auch Treiber ihres GPU-Herstellers auf der VM installieren, damit Apps auf der VM die ihnen zugewiesene GPU nutzen können.

Sie können auch eine zugewiesene GPU von einem virtuellen Computer entfernen. Führen Sie dazu in PowerShell das folgende Cmdlet aus:

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

Ausführen eines Failovers für eine VM mit einer zugewiesenen GPU

Um zu testen, ob der Cluster Ihre GPU-Workload verfügbar halten kann, führen Sie einen Ausgleichsvorgang auf dem Server aus, auf dem die VM mit einer zugewiesenen GPU ausgeführt wird. Befolgen Sie die Anweisungen unter Wartungsverfahren für Failovercluster, um den Server zu entladen. Der Cluster startet die VM auf einem anderen Server im Cluster neu, solange ein anderer Server über genügend verfügbare GPU-Ressourcen im Pool verfügt, den Sie erstellt haben.

Nächste Schritte

Weitere Informationen finden Sie auch unter: