Dela via


Skapa en Azure Batch-pool över Tillgänglighetszoner

Azure-regioner som stöder Tillgänglighetszoner ha minst tre separata zoner, var och en med sin egen oberoende strömkälla, nätverk och kylsystem. När du skapar en Azure Batch-pool med hjälp av Virtual Machine Configuration kan du välja att etablera batchpoolen över Tillgänglighetszoner. Genom att skapa din pool med den här zonindelningsprincipen kan du skydda dina Batch-beräkningsnoder från fel på Azure-datacenternivå.

Du kan till exempel skapa din pool med zonindelad princip i en Azure-region som stöder tre Tillgänglighetszoner. Om ett Azure-datacenter i en tillgänglighetszon har ett infrastrukturfel kommer Batch-poolen fortfarande att ha felfria noder i de andra två Tillgänglighetszoner, så poolen förblir tillgänglig för schemaläggning av aktiviteter.

Regionalt stöd och andra krav

Batch upprätthåller paritet med Azure när det gäller stöd för Tillgänglighetszoner. Om du vill använda zonindelningsalternativet måste poolen skapas i en Azure-region som stöds.

För att batchpoolen ska kunna allokeras mellan tillgänglighetszoner måste Den Azure-region där poolen skapas ha stöd för den begärda VM-SKU:n i mer än en zon. Du kan verifiera detta genom att anropa API:et För Resurs-Skus-lista och kontrollera fältet locationInfo i resourceSku. Se till att mer än en zon stöds för den begärda vm-SKU:n.

För batchkonton i användarprenumerationsläge kontrollerar du att prenumerationen där du skapar din pool inte har någon zonerbjudandebegränsning för den begärda virtuella datorns SKU. Bekräfta detta genom att anropa API:et För resursskuLista och kontrollera ResourceSkuRestrictions. Om det finns en zonbegränsning kan du skicka ett supportärende för att ta bort zonbegränsningen.

Observera också att du inte kan skapa en pool med en zonindelad princip om kommunikation mellan noder är aktiverad och använder en VM-SKU som stöder InfiniBand.

Skapa en Batch-pool över Tillgänglighetszoner

I följande exempel visas hur du skapar en Batch-pool över Tillgänglighetszoner.

Kommentar

När du skapar din pool med en zonindelad princip försöker Batch-tjänsten allokera din pool över alla Tillgänglighetszoner i den valda regionen. Du kan inte ange en viss allokering mellan zonerna.

Batch Management Client .NET SDK

var credential = new DefaultAzureCredential();
ArmClient _armClient = new ArmClient(credential);

var batchAccountIdentifier = ResourceIdentifier.Parse("your-batch-account-resource-id");

BatchAccountResource batchAccount = _armClient.GetBatchAccountResource(batchAccountIdentifier);

var poolName = "pool2";
var imageReference = new BatchImageReference()
{
    Publisher = "canonical",
    Offer = "0001-com-ubuntu-server-jammy",
    Sku = "22_04-lts",
    Version = "latest"
};
string nodeAgentSku = "batch.node.ubuntu 22.04";

var batchAccountPoolData = new BatchAccountPoolData()
{
    VmSize = "Standard_DS1_v2",
    DeploymentConfiguration = new BatchDeploymentConfiguration()
    {
        VmConfiguration = new BatchVmConfiguration(imageReference, nodeAgentSku)
        {
            NodePlacementPolicy = BatchNodePlacementPolicyType.Zonal,
        },
    },
    ScaleSettings = new BatchAccountPoolScaleSettings()
    {
        FixedScale = new BatchAccountFixedScaleSettings()
        {
            TargetDedicatedNodes = 5,
            ResizeTimeout = TimeSpan.FromMinutes(15),
        }
    },
    
};

ArmOperation<BatchAccountPoolResource> armOperation = batchAccount.GetBatchAccountPools().CreateOrUpdate(
    WaitUntil.Completed, poolName, batchAccountPoolData);
BatchAccountPoolResource pool = armOperation.Value;

Batch REST API

REST API URL

POST {batchURL}/pools?api-version=2021-01-01.13.0
client-request-id: 00000000-0000-0000-0000-000000000000

Begärandetext

"pool": {
    "id": "pool2",
    "vmSize": "standard_a1",
    "virtualMachineConfiguration": {
        "imageReference": {
            "publisher": "Canonical",
            "offer": "UbuntuServer",
            "sku": "20.04-lts"
        },
        "nodePlacementConfiguration": {
            "policy": "Zonal"
        }
        "nodeAgentSKUId": "batch.node.ubuntu 20.04"
    },
    "resizeTimeout": "PT15M",
    "targetDedicatedNodes": 5,
    "targetLowPriorityNodes": 0,
    "maxTasksPerNode": 3,
    "enableAutoScale": false,
    "enableInterNodeCommunication": false
}

Nästa steg