Aracılığıyla paylaş


Kullanılabilirlik Alanları genelinde Azure Batch havuzu oluşturma

Kullanılabilirlik Alanları destekleyen Azure bölgeleri, her biri kendi bağımsız güç kaynağı, ağ ve soğutma sistemine sahip en az üç ayrı bölgeye sahiptir. Sanal Makine Yapılandırması'nı kullanarak bir Azure Batch havuzu oluşturduğunuzda, Batch havuzunuzu Kullanılabilirlik Alanları genelinde sağlamayı seçebilirsiniz. Bu bölge ilkesiyle havuzunuzu oluşturmak, Batch işlem düğümlerinizi Azure veri merkezi düzeyindeki hatalardan korumaya yardımcı olur.

Örneğin, üç Kullanılabilirlik Alanları destekleyen bir Azure bölgesinde bölge ilkesiyle havuzunuzu oluşturabilirsiniz. Kullanılabilirlik Alanı'ndaki bir Azure veri merkezinde altyapı hatası varsa, Batch havuzunuzun diğer iki Kullanılabilirlik Alanları iyi durumda düğümleri olmaya devam eder, bu nedenle havuz görev zamanlaması için kullanılabilir durumda kalır.

Bölgesel destek ve diğer gereksinimler

Batch, destek Kullanılabilirlik Alanları üzerinde Azure ile eşliği korur. Bölgesel seçeneği kullanmak için havuzunuzun desteklenen bir Azure bölgesinde oluşturulması gerekir.

Batch havuzunuzun kullanılabilirlik alanları arasında ayrılması için, havuzun oluşturulduğu Azure bölgesinin birden fazla bölgede istenen VM SKU'sunu desteklemesi gerekir. Kaynak Skus Listesi API'sini çağırarak ve resourceSku'nun locationInfo alanını denetleyerek bunu doğrulayabilirsiniz. İstenen VM SKU'su için birden fazla bölgenin desteklendiğinden emin olun.

Kullanıcı aboneliği modu Batch hesapları için havuzunuzu oluşturmakta olduğunuz aboneliğin istenen VM SKU'su üzerinde bölge teklifi kısıtlaması olmadığından emin olun. Bunu onaylamak için Kaynak Sku'ları Listesi API'sini çağırın ve ResourceSkuRestrictions'ı denetleyin. Bölge kısıtlaması varsa, bölge kısıtlamasını kaldırmak için bir destek bileti gönderebilirsiniz.

Ayrıca, düğümler arası iletişim etkinse ve InfiniBand'i destekleyen bir VM SKU'su kullanıyorsa, bölge ilkesine sahip bir havuz oluşturamazsınız.

Kullanılabilirlik Alanları genelinde Batch havuzu oluşturma

Aşağıdaki örneklerde, Kullanılabilirlik Alanları genelinde Batch havuzunun nasıl oluşturulacağı gösterilmektedir.

Not

Bir bölge ilkesiyle havuzunuzu oluştururken Batch hizmeti havuzunuzu seçilen bölgedeki tüm Kullanılabilirlik Alanları ayırmaya çalışır; bölgeler arasında belirli bir ayırma belirtemezsiniz.

Batch Management İstemcisi .NET SDK'sı

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'si

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

Request body

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

Sonraki adımlar