Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Ao criar um pool de lotes do Azure usando a Configuração de Máquina Virtual, você especifica uma imagem de VM que fornece o sistema operacional para cada nó de computação no pool. Você pode criar um pool de máquinas virtuais com uma imagem do Azure Marketplace com suporte ou criar uma imagem personalizada com uma imagem da Galeria de Computação do Azure.
Benefícios da Galeria de Computação do Azure
Ao usar a Galeria de Computação do Azure para sua imagem personalizada, você tem controle sobre o tipo e a configuração do sistema operacional, bem como sobre o tipo de discos de dados. A sua Imagem Partilhada pode incluir aplicações e dados de referência que ficam disponíveis em todos os nós do pool Batch assim que são provisionados.
Você também pode ter várias versões de uma imagem, conforme necessário para seu ambiente. Quando você usa uma versão de imagem para criar uma VM, a versão da imagem é usada para criar novos discos para a VM.
O uso de uma Imagem Compartilhada economiza tempo na preparação dos nós de computação do pool para executar sua carga de trabalho em lote. É possível usar uma imagem do Azure Marketplace e instalar software em cada nó de computação após o provisionamento, mas usar uma Imagem Compartilhada normalmente é mais eficiente. Além disso, você pode especificar várias réplicas para a Imagem Compartilhada, portanto, ao criar pools com muitas VMs (mais de 600 VMs), economizará tempo na criação do pool.
Usar uma Imagem Compartilhada configurada para seu cenário pode oferecer várias vantagens:
- Use as mesmas imagens em todas as regiões. Você pode criar réplicas de imagens compartilhadas em diferentes regiões para que todos os seus pools utilizem a mesma imagem.
- Configure o sistema operacional (SO). Você pode personalizar a configuração do disco do sistema operativo da imagem.
- Pré-instalar aplicações. A pré-instalação de aplicativos no disco do sistema operacional é mais eficiente e menos propensa a erros do que a instalação de aplicativos após o provisionamento dos nós de computação com uma tarefa de início.
- Copie grandes quantidades de dados uma vez. Torne os dados estáticos parte da Imagem Compartilhada gerenciada copiando-os para os discos de dados de uma imagem gerenciada. Isso só precisa ser feito uma vez e torna os dados disponíveis para cada nó do pool.
- Aumente as piscinas para tamanhos maiores. Com a Galeria de Computação do Azure, você pode criar pools maiores com suas imagens personalizadas, juntamente com mais réplicas de imagens compartilhadas.
- Melhor desempenho do que usar apenas uma imagem gerenciada como uma imagem personalizada. Para um pool de imagens personalizadas de Imagem Compartilhada, o tempo para atingir o estado estacionário é até 25% mais rápido e a latência ociosa da VM é até 30% menor.
- Versionamento e agrupamento de imagens para facilitar a gestão. A definição de agrupamento de imagens contém informações sobre por que a imagem foi criada, para que sistema operacional ela é e informações sobre como usar a imagem. O agrupamento de imagens permite uma gestão de imagens mais fácil. Para obter mais informações, consulte Definições de imagem.
Pré-requisitos
- Uma conta do Azure Batch. Para criar uma conta de lote, consulte os inícios rápidos de lote usando o portal do Azure ou a CLI do Azure.
Observação
A autenticação usando o Microsoft Entra ID é necessária. Se você usar a Autenticação de Chave Compartilhada, receberá um erro de autenticação.
- uma imagem da Galeria de Computação do Azure. Para criar uma imagem compartilhada, você precisa ter ou criar um recurso de imagem gerenciado. A imagem deve ser criada a partir de instantâneos do disco do sistema operacional da VM e, se necessário, dos discos de dados anexados.
Observação
Se a Imagem Partilhada estiver numa subscrição diferente da conta Batch, tem de registar o fornecedor de recursos Microsoft.Batch na subscrição onde reside a Imagem Partilhada. Ambas as assinaturas devem pertencer ao mesmo locatário do Microsoft Entra.
A imagem pode estar em uma região diferente, desde que tenha réplicas na mesma região da sua conta do Batch.
Se você usar um aplicativo Microsoft Entra para criar um pool de imagens personalizado com uma imagem da Galeria de Computação do Azure, esse aplicativo deverá ter recebido uma função interna do Azure que lhe dê acesso à Imagem Compartilhada. Você pode conceder esse acesso no portal do Azure navegando até a Imagem Compartilhada, selecionando Controle de acesso (IAM) e adicionando uma atribuição de função para o aplicativo.
Observação
As permissões de leitor para a imagem da Galeria de Computação do Azure são inadequadas, pois exigem a execução da seguinte ação mínima: Microsoft.Compute/disks/beginGetAccess/action para acesso apropriado.
Preparar uma imagem compartilhada
No Azure, você pode preparar uma imagem compartilhada a partir de uma imagem gerenciada, que pode ser criada a partir de:
- Instantâneos do sistema operacional e dos discos de dados de uma VM do Azure
- Uma VM do Azure generalizada com discos gerenciados
- Um VHD local generalizado carregado na nuvem
Observação
O Batch suporta apenas imagens compartilhadas generalizadas; uma Imagem Compartilhada especializada não pode ser usada para criar um pool.
As etapas a seguir mostram como preparar uma VM, tirar um instantâneo e criar uma imagem a partir do instantâneo.
Preparar uma VM
Se estiver a criar uma nova VM para a imagem, utilize a imagem do Azure Marketplace suportada pelo Batch como imagem base para a imagem gerida.
Para obter uma lista completa das referências de imagem atuais do Azure Marketplace suportadas pelo Azure Batch, utilize uma das seguintes APIs para devolver uma lista de imagens de VM do Windows e Linux:
- PowerShell: Imagens suportadas pelo Azure Batch
- CLI do Azure: imagens suportadas pelo pool de lotes do Azure
- APIs de serviço em lote: APIs de serviço em lote e imagens suportadas do serviço Batch do Azure
Siga estas diretrizes ao criar VMs:
- Verifique se a VM foi criada com um disco gerenciado. Essa é a configuração de armazenamento padrão quando você cria uma VM.
- Não instale extensões do Azure, como a extensão Script Personalizado, na VM. Se a imagem contiver uma extensão pré-instalada, o Azure poderá encontrar problemas ao fazer o deployment do pool de Batch.
- Ao usar discos de dados anexados, você precisa montar e formatar os discos de dentro de uma VM para usá-los.
- Certifique-se de que a imagem base do SO fornecida utiliza a unidade temporária predefinida. O agente do nodo Batch atualmente espera que a unidade temporária seja a padrão.
- Certifique-se de que o disco do SO não está encriptado.
- Quando a VM estiver em execução, conecte-se a ela via RDP (para Windows) ou SSH (para Linux). Instale qualquer software necessário ou copie os dados desejados.
- Para um provisionamento de pool mais rápido, use a configuração de cache de disco ReadWrite para o disco do sistema operacional da VM.
Criar uma Galeria de Computação do Azure
Você precisa criar uma Galeria de Computação do Azure para disponibilizar sua imagem personalizada. Selecione esta galeria ao criar a imagem nas etapas a seguir. Para saber como criar uma Galeria de Computação do Azure para suas imagens, consulte Criar uma Galeria de Computação do Azure.
Criar uma imagem
Para criar uma imagem de uma VM no portal, consulte Capturar uma imagem de uma VM.
Para criar uma imagem usando uma fonte diferente de uma VM, consulte Criar uma imagem.
Observação
Se a imagem base tiver informações do plano de compra, certifique-se de que a imagem da galeria tenha informações do plano de compra idênticas às da imagem base. Para obter mais informações sobre como criar imagens com plano de compra, consulte Fornecer informações do plano de compra do Azure Marketplace ao criar imagens.
Se a imagem base não tiver informações do plano de compra, evite especificar qualquer informação do plano de compra para a imagem da galeria.
Para obter informações do plano de compra destas imagens do Marketplace, consulte as orientações para VMs Linux ou Windows.
Use o Azure PowerShell Get-AzGalleryImageDefinition ou Azure CLI az sig image-definition show para verificar se a imagem da galeria tem informações corretas do plano.
Criar um pool a partir de uma Imagem Compartilhada usando a CLI do Azure
Para criar um pool a partir de sua Imagem Compartilhada usando a CLI do Azure, use o az batch pool create
comando. Especifique o ID da --image
imagem compartilhada no campo. Verifique se o tipo de sistema operacional e o SKU correspondem às versões especificadas por --node-agent-sku-id
Importante
A ID de SKU do agente do nó deve estar alinhada com o editor/oferta/SKU para que o nó seja iniciado.
az batch pool create \
--id mypool --vm-size Standard_A1_v2 \
--target-dedicated-nodes 2 \
--image "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}" \
--{node-agent-sku-id}
Criar um pool a partir de uma imagem compartilhada usando C#
Como alternativa, você pode criar um pool a partir de uma Imagem Compartilhada usando o SDK do C#.
private static VirtualMachineConfiguration CreateVirtualMachineConfiguration(ImageReference imageReference)
{
return new VirtualMachineConfiguration(
imageReference: imageReference,
nodeAgentSkuId: {});
}
private static ImageReference CreateImageReference()
{
return new ImageReference(
virtualMachineImageId: "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}");
}
private static void CreateBatchPool(BatchClient batchClient, VirtualMachineConfiguration vmConfiguration)
{
try
{
CloudPool pool = batchClient.PoolOperations.CreatePool(
poolId: PoolId,
targetDedicatedComputeNodes: PoolNodeCount,
virtualMachineSize: PoolVMSize,
virtualMachineConfiguration: vmConfiguration);
pool.Commit();
}
...
}
Criar um pool a partir de uma imagem compartilhada usando Python
Você também pode criar um pool a partir de uma Imagem Compartilhada usando o SDK do Python:
# Import the required modules from the
# Azure Batch Client Library for Python
import azure.batch as batch
import azure.batch.models as batchmodels
from azure.common.credentials import ServicePrincipalCredentials
# Specify Batch account and service principal account credentials
account = "{batch-account-name}"
batch_url = "{batch-account-url}"
ad_client_id = "{sp-client-id}"
ad_tenant = "{tenant-id}"
ad_secret = "{sp-secret}"
# Pool settings
pool_id = "LinuxNodesSamplePoolPython"
vm_size = "STANDARD_D2_V3"
node_count = 1
# Initialize the Batch client with Azure AD authentication
creds = ServicePrincipalCredentials(
client_id=ad_client_id,
secret=ad_secret,
tenant=ad_tenant,
resource="https://batch.core.windows.net/"
)
client = batch.BatchServiceClient(creds, batch_url)
# Configure the start task for the pool
start_task = batchmodels.StartTask(
command_line="printenv AZ_BATCH_NODE_STARTUP_DIR"
)
start_task.run_elevated = True
# Create an ImageReference which specifies the image from
# Azure Compute Gallery to install on the nodes.
ir = batchmodels.ImageReference(
virtual_machine_image_id="/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}"
)
# Create the VirtualMachineConfiguration, specifying
# the VM image reference and the Batch node agent to
# be installed on the node.
vmc = batchmodels.VirtualMachineConfiguration(
image_reference=ir,
{node_agent_sku_id}
)
# Create the unbound pool
new_pool = batchmodels.PoolAddParameter(
id=pool_id,
vm_size=vm_size,
target_dedicated_nodes=node_count,
virtual_machine_configuration=vmc,
start_task=start_task
)
# Create pool in the Batch service
client.pool.add(new_pool)
Criar um pool a partir de uma Imagem Compartilhada ou Imagem Personalizada usando o portal do Azure
Use as etapas a seguir para criar um pool a partir de uma Imagem Compartilhada no portal do Azure.
- Abra o portal do Azure.
- Vá para Contas em lote e selecione a sua conta.
- Selecione Pools e, em seguida, Add para criar um novo pool.
- Na seção Tipo de Imagem , selecione Galeria de Computação do Azure.
- Preencha as seções restantes com informações sobre sua imagem gerenciada.
- Selecione OK.
- Depois que o nó estiver alocado, use Connect para gerar usuário e o arquivo RDP para Windows OU use SSH para Linux para fazer login no nó alocado e verificar.
Considerações para piscinas grandes
Se você planeja criar um pool com centenas ou milhares de VMs ou mais usando uma Imagem Compartilhada, use as diretrizes a seguir.
Números de réplica da Azure Compute Gallery. Para cada pool com até 300 instâncias, recomendamos que você mantenha pelo menos uma réplica. Por exemplo, se estiveres a criar um pool com 3.000 VMs, deves manter pelo menos 10 réplicas da tua imagem. Sugerimos sempre manter mais réplicas do que os requisitos mínimos para um melhor desempenho.
Redimensionar o tempo de espera. Se o pool contiver um número fixo de nós (se ele não for dimensionado automaticamente), aumente a
resizeTimeout
propriedade do pool dependendo do tamanho do pool. Para cada 1.000 VMs, o tempo limite de redimensionamento recomendado é de pelo menos 15 minutos. Por exemplo, o tempo limite de redimensionamento recomendado para um pool com 2.000 VMs é de pelo menos 30 minutos.
Próximos passos
- Para obter uma visão geral detalhada do Batch, consulte o Fluxo de trabalho do serviço de Batch e recursos.
- Saiba mais sobre a Galeria de Computação do Azure.