Använda en hanterad avbildning för att skapa en anpassad avbildningspool

Om du vill skapa en anpassad avbildningspool för batchpoolens virtuella datorer kan du använda en hanterad avbildning för att skapa en Azure Compute Gallery-avbildning. Endast en hanterad avbildning stöds, men endast för API-versioner fram till och med 2019-08-01.

Varning

Stöd för att skapa en Batch-pool med hjälp av en hanterad avbildning dras tillbaka efter den 31 mars 2026. Migrera till värd för anpassade avbildningar i Azure Compute Gallery för att skapa en anpassad avbildningspool i Batch. Mer information finns i migreringsguiden.

Det här avsnittet beskriver hur du skapar en anpassad avbildningspool med endast en hanterad avbildning.

Förutsättningar

  • En hanterad avbildningsresurs. Om du vill skapa en pool med virtuella datorer med en anpassad avbildning måste du ha eller skapa en hanterad avbildningsresurs i samma Azure-prenumeration och region som Batch-kontot. Avbildningen ska skapas från ögonblicksbilder av den virtuella datorns operativsystemdisk (OS) och eventuellt dess anslutna datadiskar.

    • Använd en unik anpassad avbildning för varje pool du skapar.
    • Om du vill skapa en pool med avbildningen med hjälp av Batch-API:erna anger du resurs-ID:t för avbildningen, som är av formuläret /subscriptions/xxxx-xxxxxx-xxxxx-xxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myImage.
    • Den hanterade avbildningsresursen bör finnas under poolens livslängd så att det går att skala upp. Den kan tas bort när poolen har tagits bort.
  • Microsoft Entra-autentisering. Batch-klient-API:et måste använda Microsoft Entra-autentisering. Azure Batch-stöd för Microsoft Entra-ID dokumenteras i Autentisera Batch-tjänstlösningar med Active Directory.

Förbereda en hanterad avbildning

I Azure kan du förbereda en hanterad avbildning från:

  • Ögonblicksbilder av en virtuell Azure-dators operativsystem och datadiskar
  • En generaliserad virtuell Azure-dator med hanterade diskar
  • En generaliserad lokal virtuell hårddisk som laddats upp till molnet

Om du vill skala Batch-pooler på ett tillförlitligt sätt med en hanterad avbildning rekommenderar vi att du bara skapar den hanterade avbildningen med hjälp av den första metoden: med hjälp av ögonblicksbilder av den virtuella datorns diskar. Följande steg visar hur du förbereder en virtuell dator, tar en ögonblicksbild och skapar en hanterad avbildning från ögonblicksbilden.

Förbereda en virtuell dator

Om du skapar en ny virtuell dator för avbildningen använder du en Azure Marketplace-avbildning från första part som stöds av Batch som basavbildning för den hanterade avbildningen. Endast avbildningar från första part kan användas som basavbildning. En fullständig lista över Azure Marketplace-avbildningsreferenser som stöds av Azure Batch finns i Lista över avbildningar som stöds.

Kommentar

Du kan inte använda en avbildning från tredje part som har ytterligare licens- och köpvillkor som basavbildning. Information om dessa Marketplace-avbildningar finns i vägledningen för virtuella Linux - eller Windows-datorer .

Om du vill använda avbildning från tredje part kan du använda Azure Compute-galleriet. Mer information finns i Använda Azure Compute-galleriet för att skapa en anpassad avbildningspool.

  • Kontrollera att den virtuella datorn har skapats med en hanterad disk. Det här är standardinställningen för lagring när du skapar en virtuell dator.
  • Installera inte Azure-tillägg, till exempel tillägget För anpassat skript, på den virtuella datorn. Om avbildningen innehåller ett förinstallerat tillägg kan Azure stöta på problem när du distribuerar Batch-poolen.
  • När du använder anslutna datadiskar måste du montera och formatera diskarna från en virtuell dator för att kunna använda dem.
  • Kontrollera att basoperativsystemavbildningen som du anger använder standard temp-enheten. Batch-nodagenten förväntar sig för närvarande den temporära standardenheten.
  • Kontrollera att OS-disken inte är krypterad.
  • När den virtuella datorn körs ansluter du till den via RDP (för Windows) eller SSH (för Linux). Installera nödvändig programvara eller kopiera önskade data.

Skapa en ögonblicksbild av en virtuell dator

En ögonblicksbild är en fullständig, skrivskyddad kopia av en virtuell hårddisk. Om du vill skapa en ögonblicksbild av ett operativsystem eller datadiskar för virtuella datorer kan du använda Azure-portalen eller kommandoradsverktygen. Anvisningar och alternativ för att skapa en ögonblicksbild finns i vägledningen för virtuella datorer.

Skapa en bild från en eller flera ögonblicksbilder

Om du vill skapa en hanterad avbildning från en ögonblicksbild använder du Azure-kommandoradsverktyg som kommandot az image create . Du kan skapa en avbildning genom att ange en ögonblicksbild av os-disken och eventuellt en eller flera ögonblicksbilder av datadisken.

Skapa en pool från en hanterad avbildning

När du har hittat resurs-ID:t för den hanterade avbildningen skapar du en anpassad avbildningspool från avbildningen. Följande steg visar hur du skapar en anpassad avbildningspool med antingen Batch Service eller Batch Management.

Kommentar

Kontrollera att den identitet som du använder för Microsoft Entra-autentisering har behörighet till avbildningsresursen. Se Autentisera Batch-tjänstlösningar med Active Directory.

Resursen för den hanterade avbildningen måste finnas under poolens livslängd. Om den underliggande resursen tas bort kan poolen inte skalas.

Batch Service .NET SDK

private static VirtualMachineConfiguration CreateVirtualMachineConfiguration(ImageReference imageReference)
{
    return new VirtualMachineConfiguration(
        imageReference: imageReference,
        nodeAgentSkuId: "batch.node.windows amd64");
}

private static ImageReference CreateImageReference()
{
    return new ImageReference(
        virtualMachineImageId: "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/images/{image definition name}");
}

private static void CreateBatchPool(BatchClient batchClient, VirtualMachineConfiguration vmConfiguration)
{
    try
    {
        CloudPool pool = batchClient.PoolOperations.CreatePool(
            poolId: PoolId,
            targetDedicatedComputeNodes: PoolNodeCount,
            virtualMachineSize: PoolVMSize,
            virtualMachineConfiguration: vmConfiguration);

        pool.Commit();
    }

REST API för Batch Management

REST API-URI

 PUT https://management.azure.com/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Batch/batchAccounts/{account name}/pools/{pool name}?api-version=2020-03-01

Begärandetext

 {
   "properties": {
     "vmSize": "{VM size}",
     "deploymentConfiguration": {
       "virtualMachineConfiguration": {
         "imageReference": {
           "id": "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/images/{image name}"
         },
         "nodeAgentSkuId": "{Node Agent SKU ID}"
       }
     }
   }
 }

Överväganden för stora pooler

Om du planerar att skapa en pool med hundratals virtuella datorer eller fler med hjälp av en anpassad avbildning är det viktigt att följa föregående vägledning för att använda en avbildning som skapats från en ögonblicksbild av en virtuell dator.

Observera även följande överväganden:

  • Storleksgränser – Batch begränsar poolstorleken till 2 500 dedikerade beräkningsnoder eller 1 000 dekornoder när du använder en anpassad avbildning.

    Om du använder samma bild (eller flera bilder baserat på samma underliggande ögonblicksbild) för att skapa flera pooler kan de totala beräkningsnoderna i poolerna inte överskrida de föregående gränserna. Vi rekommenderar inte att du använder en bild eller dess underliggande ögonblicksbild för mer än en enda pool.

    Gränserna kan minskas om du konfigurerar poolen med inkommande NAT-pooler.

  • Ändra tidsgräns för storlek – Om poolen innehåller ett fast antal noder (autoskalning inte) ökar du egenskapen resizeTimeout för poolen till ett värde som 20–30 minuter. Om din pool inte når sin målstorlek inom tidsgränsen utför du en annan storleksändringsåtgärd.

    Om du planerar en pool med fler än 300 beräkningsnoder kan du behöva ändra storlek på poolen flera gånger för att nå målstorleken.

Genom att använda Azure Compute-galleriet kan du skapa större pooler med dina anpassade avbildningar tillsammans med fler repliker med delad avbildning tillsammans med förbättrade prestandafördelar, till exempel minskad tid för noder att bli redo.

Överväganden för att använda Packer

Du kan bara skapa en hanterad avbildningsresurs direkt med Packer med Batch-konton i användarprenumerationsläge. För konton i Batch-tjänstläge måste du först skapa en virtuell hårddisk och sedan importera den virtuella hårddisken till en hanterad avbildningsresurs. Beroende på poolallokeringsläge (användarprenumeration eller Batch-tjänst) varierar stegen för att skapa en hanterad avbildningsresurs.

Se till att resursen som används för att skapa den hanterade avbildningen finns under livslängden för alla pooler som refererar till den anpassade avbildningen. Om du inte gör det kan det leda till poolallokeringsfel och/eller storleksändringsfel.

Om bilden eller den underliggande resursen tas bort kan du få ett fel som liknar: There was an error encountered while performing the last resize on the pool. Please try resizing the pool again. Code: AllocationFailed. Om du får det här felet kontrollerar du att den underliggande resursen inte har tagits bort.

Mer information om hur du använder Packer för att skapa en virtuell dator finns i Skapa en Linux-avbildning med Packer eller Skapa en Windows-avbildning med Packer.

Nästa steg