Använda GPU:er med klustrade virtuella datorer

Gäller för: Azure Stack HCI, version 21H2

Det här avsnittet innehåller råd om hur du använder grafikprocessorer (GPU:er) med klustrade virtuella datorer (VM) som kör Azure Stack HCI-operativsystemet för att ge GPU-acceleration till arbetsbelastningar i klustrade virtuella datorer.

Från och med Azure Stack HCI version 21H2 kan du använda GPU:er i Azure Stack HCI-kluster för att tillhandahålla GPU-acceleration för arbetsbelastningar som körs i klustrade virtuella datorer. Det här avsnittet beskriver de grundläggande förutsättningarna för den här funktionen och hur du distribuerar den.

GPU-acceleration tillhandahålls via diskret enhetstilldelning (DDA), även kallat GPU-genomsnäckning, vilket gör att du kan dedikera en eller flera fysiska GPU:er till en virtuell dator. Klustrade virtuella datorer kan dra nytta av GPU-acceleration och klustringsfunktioner som hög tillgänglighet via redundans. Direktmigrering av virtuella datorer stöds inte för närvarande, men virtuella datorer kan startas om automatiskt och placeras där GPU-resurser är tillgängliga i händelse av ett fel.

Förutsättningar

För att komma igång behöver du ett Azure Stack HCI-kluster med minst två servrar som kör Azure Stack HCI version 21H2. Du behöver också GPU:er som är fysiskt installerade på varje server i klustret.

Anteckning

Den Azure Stack HCI-katalogen anger ännu inte GPU-kompatibilitet eller certifieringsinformation. Följ tillverkarens instruktioner för GPU-installation.

Användningsanvisningar

I det här avsnittet beskrivs de steg som krävs för att använda antingen Windows Administrationscenter eller Windows PowerShell för att förbereda klusterservrarna för GPU-användning. Du kan tilldela en eller flera virtuella datorer till en klustrad GPU-resurspool och ta bort en virtuell dator från en klustrad GPU-resurspool. Du kan också använda PowerShell för att testa automatisk omstart.

Använda Windows Administrationscenter

Använd Windows Administrationscenter för att förbereda klustret, tilldela en virtuell dator till en GPU-resurspool och ta bort tilldelning av en virtuell dator till en GPU-resurspool.

Så här förbereder du klustret och tilldelar en virtuell dator till en GPU-resurspool:

  1. På menyn Verktyg, under Tillägg,väljer du GPU:er för att öppna verktyget.

    Skärmbild av GPU-verktyget i Windows Administrationscenter

  2. På verktygets huvudsida väljer du fliken GPU-pooler och sedan Skapa GPU-pool.

    Skärmbild av sidan Skapa GPU-pooler Windows administrationscentret

  3. På sidan Ny GPU-pool anger du följande och väljer sedan Spara:

    1. Servernamn
    2. GPU-poolnamn
    3. GPU:er som du vill lägga till i poolen

    Skärmbild av sidan Ny GPU-pool Windows Administrationscenter för att ange servrar, poolnamn och GPU:er

    När processen är klar visas en kommandotolk som visar namnet på den nya GPU-poolen och värdservern.

  4. På sidan Tilldela virtuell dator till GPU-pool anger du följande och väljer sedan Tilldela:

    1. Servernamn
    2. GPU-poolnamn
    3. Virtuell dator som du vill tilldela GPU:n till från GPU-poolen.

    Du kan också definiera avancerade inställningsvärden för minnesmappade IO-utrymmen (MMIO) för att fastställa resurskrav för en enskild GPU.

    Skärmbild av sidan Tilldela virtuell dator till GPU-pool Windows Administrationscenter där du tilldelar en virtuell dator till en GPU från GPU-poolen

    När processen är klar får du en bekräftelsemeddelande som visar att du har tilldelat GPU:n från GPU-resurspoolen till den virtuella datorn, som visas under Tilldelade virtuella datorer.

    Skärmbild av en lyckad prompt som visar GPU tilldelad till en virtuell dator och den virtuella datorn som visas under Tilldelade virtuella datorer

Så här tar du bort tilldelning av en virtuell dator från en GPU-resurspool:

  1. På fliken GPU-pooler väljer du den GPU som du vill ta bort tilldelning av och väljer sedan Ta bort tilldelning av virtuell dator.

  2. På sidan Ta bort tilldelning av virtuell dator från GPU-pool går du till listrutan Virtuella datorer, anger namnet på den virtuella datorn och väljer sedan Ta bort tilldelning.

    Skärmbild av sidan Ta bort tilldelning av virtuell dator från GPU-pool som visar att den virtuella datorn ska tas bort från tilldelning

    När processen har slutförts får du ett meddelande om att den virtuella datorn har otilldelades från GPU-poolen, och under Tilldelningsstatus visar GPU:n Tillgänglig (Inte tilldelad).

Använd PowerShell

Använd PowerShell för att förbereda klustret, tilldela en virtuell dator till en GPU-resurspool och testa automatisk omstart.

Förbereda klustret

Förbered GPU:erna på varje server genom att installera säkerhetsminskningsdrivrutiner på varje server, inaktivera GPU:er och demontera dem från värden enligt anvisningarna i Distribuera grafikenheter med diskret enhetstilldelning. Beroende på maskinvaruleverantören kan du också behöva konfigurera eventuella GPU-licensieringskrav.

  1. Skapa en ny tom resurspool på varje server som ska innehålla klustrade GPU-resurser. Se till att ange samma poolnamn på varje server.

    Kör följande cmdlet som administratör i PowerShell:

     New-VMResourcePool -ResourcePoolType PciExpress -Name "GpuChildPool"
    
  2. Lägg till de demonterade GPU:erna från varje server i resurspoolen som du skapade i föregående steg.

    Kör följande cmdlets i PowerShell:

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

Nu har du en resurspool för hela klustret (med namnet GpuChildPool ) som är ifylld med tilldelningsbara GPU:er. Klustret använder den här poolen för att fastställa VM-placering för alla startad eller flyttad virtuella datorer som har tilldelats till GPU-resurspoolen.

Tilldela en virtuell dator till en GPU-resurspool

Börja med att antingen skapa en ny virtuell dator i klustret eller hitta en befintlig virtuell dator.

Förbered den virtuella datorn för DDA genom att ange dess cachebeteende, stoppåtgärd och minnesmappade I/O-egenskaper (MMIO) enligt anvisningarna i Distribuera grafikenheter med diskret enhetstilldelning.

  1. Konfigurera den virtuella klusterdatorns standardåtgärd offline som force-shutdown i stället för save .

    Kör följande cmdlet i PowerShell:

     Get-ClusterResource -name vmname | Set-ClusterParameter -Name "OfflineAction" -Value 3
    
  2. Tilldela den resurspool som du skapade tidigare till den virtuella datorn. Detta deklarerar till klustret att den virtuella datorn kräver en tilldelad enhet från GpuChildPool poolen när den antingen startas eller flyttas.

    Kör följande cmdlet i PowerShell:

     $vm | Add-VMAssignableDevice -ResourcePoolName "GpuChildPool"
    

    Anteckning

    Om du vill lägga till fler än en GPU till den virtuella datorn kontrollerar du först att resurspoolen har fler än en tilldelad GPU tillgänglig och kör sedan föregående kommando igen.

Om du startar den virtuella datorn nu ser klustret till att det placeras på en server med tillgängliga GPU-resurser från den här klusteromfattande poolen. Klustret tilldelar också GPU:n till den virtuella datorn via DDA, vilket gör att GPU kan nås från arbetsbelastningar i den virtuella datorn.

Anteckning

Du måste också installera drivrutiner från GPU-tillverkaren på den virtuella datorn så att appar på den virtuella datorn kan dra nytta av den GPU som tilldelats dem.

Du kan också ta bort en tilldelad GPU från en virtuell dator. Det gör du genom att köra följande cmdlet i PowerShell:

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

Redundansväxling av en virtuell dator med en tilldelad GPU

Testa klustrets möjlighet att hålla GPU-arbetsbelastningen tillgänglig genom att utföra en tömningsåtgärd på servern där den virtuella datorn körs med en tilldelad GPU. Om du vill tömma servern följer du anvisningarna i underhållsproceduren för redundanskluster. Klustret startar om den virtuella datorn på en annan server i klustret, så länge en annan server har tillräckligt med tillgängliga GPU-resurser i poolen som du skapade.

Nästa steg

Mer information finns i: