Delen via


Een Azure Batch-pool maken in Beschikbaarheidszones

Azure-regio's die ondersteuning bieden voor Beschikbaarheidszones minimaal drie afzonderlijke zones hebben, elk met hun eigen onafhankelijke voedingsbron, netwerk en koelsysteem. Wanneer u een Azure Batch-pool maakt met behulp van configuratie van virtuele machines, kunt u ervoor kiezen om uw Batch-pool in te richten op Beschikbaarheidszones. Door uw pool te maken met dit zonegebonden beleid, kunt u uw Batch-rekenknooppunten beschermen tegen fouten op azure-datacenterniveau.

U kunt bijvoorbeeld uw pool maken met zonegebonden beleid in een Azure-regio die ondersteuning biedt voor drie Beschikbaarheidszones. Als een Azure-datacenter in de ene beschikbaarheidszone een infrastructuurfout heeft, heeft uw Batch-pool nog steeds goede knooppunten in de andere twee Beschikbaarheidszones, zodat de pool beschikbaar blijft voor taakplanning.

Regionale ondersteuning en andere vereisten

Batch onderhoudt pariteit met Azure bij het ondersteunen van Beschikbaarheidszones. Als u de zonegebonden optie wilt gebruiken, moet uw pool worden gemaakt in een ondersteunde Azure-regio.

Als u wilt dat uw Batch-pool wordt toegewezen aan meerdere beschikbaarheidszones, moet de Azure-regio waarin de pool wordt gemaakt, de aangevraagde VM-SKU in meer dan één zone ondersteunen. U kunt dit valideren door de API resource-skuslijst aan te roepen en het veld locationInfo van resourceSku te controleren. Zorg ervoor dat meer dan één zone wordt ondersteund voor de aangevraagde VM-SKU.

Voor Batch-accounts voor gebruikersabonnementsmodus moet u ervoor zorgen dat het abonnement waarin u uw pool maakt, geen zoneaanbiedingsbeperking heeft voor de aangevraagde VM-SKU. Als u dit wilt bevestigen, roept u de API resource-Sku-lijst aan en controleert u de ResourceSkuRestrictions. Als er een zonebeperking bestaat, kunt u een ondersteuningsticket indienen om de zonebeperking te verwijderen.

Houd er ook rekening mee dat u geen pool met zonegebonden beleid kunt maken als communicatie tussen knooppunten is ingeschakeld en een VM-SKU gebruikt die InfiniBand ondersteunt.

Een Batch-pool maken in Beschikbaarheidszones

In de volgende voorbeelden ziet u hoe u een Batch-pool maakt in Beschikbaarheidszones.

Notitie

Wanneer u uw pool maakt met een zonegebonden beleid, probeert de Batch-service uw pool toe te wijzen aan alle Beschikbaarheidszones in de geselecteerde regio. U kunt geen specifieke toewijzing opgeven voor de zones.

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

Aanvraagtekst

"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
}

Volgende stappen