Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Em um fluxo de trabalho do Lote do Microsoft Azure, um nó de computação (ou nó) é uma máquina virtual que processa uma parte da carga de trabalho do seu aplicativo. Um pool é uma coleção desses nós para execução do aplicativo. Esse artigo explica mais sobre nós e pools, juntamente com considerações ao criá-los e usá-los em um fluxo de trabalho do Lote do Microsoft Azure.
Nós
Um nó é uma máquina virtual (VM) do Azure ou VM do serviço de nuvem que é dedicada ao processamento de uma parte da carga de trabalho do aplicativo. O tamanho de um nó determina o número de núcleos de CPU, a capacidade de memória e o tamanho do sistema de arquivos local alocado ao nó.
Você pode criar pools de nós de Windows ou Linux usando os Serviços de Nuvem do Azure, imagens do Marketplace de Máquinas Virtuais do Azure ou imagens personalizadas preparadas por você.
Os nós podem executar qualquer arquivo executável ou script que seja compatível com seu ambiente de sistema operacional. Os executáveis ou scripts incluem *.exe, *.cmd, *.bat e scripts do PowerShell (para Windows) e binários, shell e scripts Python (para Linux).
Todos os nós de computação no Batch também incluem:
- Uma estrutura de pastas padrão e as variáveis de ambiente associadas disponíveis para a referência por tarefas.
- Configurações de firewall que são definidas para controlar o acesso.
- Acesse remotamente os nós do Windows (protocolo RDP (RDP)) e do Linux (Secure Shell (SSH)) (a menos que você crie seu pool com o acesso remoto desabilitado).
Por padrão, os nós podem se comunicar entre si, mas não podem se comunicar com máquinas virtuais que não fazem parte do mesmo pool. Para permitir que os nós se comuniquem com segurança com outras máquinas virtuais ou com uma rede local, você pode provisionar o pool em uma sub-rede de uma rede virtual do Azure (VNet). Depois que você fizer isso, os nós poderão ser acessados por meio de endereços IP públicos. O lote cria esses endereços IP públicos e eles podem mudar ao longo da vida útil do pool. Você também pode criar um pool com endereços IP públicos estáticos que você controla, o que garante que eles não mudem inesperadamente.
Piscinas
Um pool é a coleção de nós nos quais seu aplicativo é executado.
Os pools do Lote do Microsoft Azure são criados com base na plataforma de computação principal do Azure. Eles fornecem alocação em grande escala, instalação de aplicativos, distribuição de dados, monitoramento de integridade e ajuste flexível (dimensionamento) do número de nós de computação em um pool.
Todos os nós adicionados a um pool recebem um nome e um endereço IP exclusivos. Quando um nó é removido de um pool, todas as alterações feitas no sistema operacional ou arquivos são perdidas e seu nome e endereço IP são liberados para o uso futuro. Quando um nó sai de um pool, sua vida útil termina.
Um pool pode ser usado apenas pela conta Batch na qual foi criado. Uma conta do Batch pode criar vários pools para atender aos requisitos de recursos dos aplicativos que precisam ser executados.
O pool pode ser criado manualmente ou automaticamente pelo serviço de Lote quando você especifica o trabalho a ser feito. Ao criar um pool, você pode especificar os seguintes atributos:
-
Nós e pools no Lote do Microsoft Azure
- Nós
- Piscinas
- Sistema operacional e versão
- Configurações
- Tipo de nó e destino
- Tamanho do nó
- Política de dimensionamento automático
- Política de agendamento de tarefas
- Estado da comunicação
- Tarefas iniciais
- Pacotes de aplicativos
- Configuração de firewall e rede virtual (Vnet)
- Tempo de vida do nó de computação e pool
- Pools automáticos
- Segurança com certificados
- Próximas etapas
Importante
As contas do Batch têm uma cota padrão que limita o número de núcleos em uma conta do Batch. O número de núcleos corresponde ao número de nós de computação. Você pode encontrar as cotas padrão e instruções sobre como aumentar uma cota em Cotas e limites para o serviço Lote do Azure. Se o seu pool não estiver atingindo o número alvo de nós, a cota de núcleo pode ser o motivo.
Sistema operacional e versão
Quando você cria um pool de lote, especifica a configuração da máquina virtual do Azure e o tipo de sistema operacional que deseja executar em cada nó de cálculo no pool.
Configurações
Configuração de Máquina Virtual
A Configuração de Máquina Virtual especifica que o pool é composto de máquinas virtuais do Azure. Essas máquinas virtuais podem ser criadas de imagens Linux ou Windows.
O agente de nó em lote é um programa executado em cada nó no pool e fornece a interface de comando e controle entre o nó e o serviço em lote. Existem diferentes implementações do agente de nó, conhecidas como SKUs, para diferentes sistemas operacionais. Ao criar um pool com base na Configuração da Máquina Virtual, você deve especificar não apenas o tamanho dos nós e a origem das imagens usadas para criá-los, mas também a referência da imagem da máquina virtual e o SKU do agente do nó do lote a ser instalado nos nós. Para saber mais sobre como especificar essas propriedades de pool, confira Provisionamento de nós de computação do Linux em pools do Azure Batch. Opcionalmente, você pode anexar um ou mais discos de dados vazios ao pool de máquinas virtuais criadas desde imagens do Marketplace ou incluir discos de dados em imagens personalizadas usadas para criar as máquinas virtuais. Quando incluir discos de dados, você precisará montar e formatar os discos de dentro de uma VM para usá-los.
SKUs do agente de nó
Quando você cria um pool, precisa selecionar o nodeAgentSkuId apropriado, dependendo do sistema operacional da imagem base do seu VHD. Você pode obter um mapeamento dos IDs de SKU do agente de nó disponíveis para suas referências de imagem do sistema operacional chamando a operação Listar SKUs do agente de nó suportados.
Imagens personalizadas para pools de máquina virtual
Para saber como criar um pool com imagens personalizadas, veja Usar a Galeria de Computação do Azure para criar um pool personalizado.
Suporte de contêiner em pools de VM
Ao criar um pool de Configuração de Máquina Virtual usando as APIs do Lote, você pode configurar o pool para executar tarefas em contêineres do Docker. Atualmente, você deve criar o pool usando uma imagem que dê suporte a contêineres do Docker. Utilize o Windows Server 2016 Datacenter com a imagem de Contêineres do Azure Marketplace, ou forneça uma imagem de VM personalizada que inclua o Docker Community Edition ou Enterprise Edition e quaisquer drivers necessários. As configurações de pool devem incluir uma configuração de contêiner que copie as imagens de contêiner para as máquinas virtuais quando o pool é criado. As tarefas executadas no pool podem fazer referência às imagens de contêiner e às opções de execução do contêiner.
Para obter mais informações, consulte Executar aplicativos de contêiner Docker no Azure Batch.
Tipo de nó e destino
Quando você cria um pool, pode especificar quais tipos de nós deseja e a quantidade desejada para cada um. Os dois tipos de nós são:
- Nodos dedicados. Nós de computação dedicados são reservados para suas cargas de trabalho. Eles costumam ser mais caros que os nós Spot, mas há garantia de que nunca serão interrompidos.
- Nós spot. Os nós spot aproveitam a capacidade excedente no Azure para executar suas cargas de trabalho em lote. Os nós spot são mais baratos por hora do que os nós dedicados, e permitem cargas de trabalho que exigem grande potência de computação. Para obter mais informações, veja Usar VMs Spot com Batch.
Pode ocorrer preempção de nós spot quando o Azure tem capacidade excedente insuficiente. Se um nó for interrompido durante a execução de tarefas, as tarefas serão enfileiradas novamente e executadas novamente quando um nó de computação ficar disponível novamente. Nós pontuais são uma boa opção para cargas de trabalho em que o tempo de conclusão do trabalho é flexível e o trabalho é distribuído entre muitos nós. Antes de decidir usar nós Spot no seu cenário, certifique-se de que qualquer trabalho perdido devido à preempção seja mínimo e fácil de retomar ou recriar.
Você pode ter nós de computação Spot e dedicados no mesmo pool. Cada tipo de nó tem sua própria configuração de destino, para a qual você pode especificar o número desejado de nós.
O número de nós de computação é referido como um alvo porque, em algumas situações, seu grupo pode não alcançar o número desejado de nós. Por exemplo, um pool pode não atingir a meta se atingir a cota principal da sua conta do Batch primeiro. Ou o pool pode não atingir a meta se você aplicar uma fórmula de dimensionamento automático ao pool que limite o número máximo de nós.
Observação
Quando os nós de computação pontual em lote são preemptados, eles fazem a transição para o estado unusable primeiro. Depois de algum tempo, esses nós de computação farão a transição para refletir o estado preempted. O lote habilita automaticamente o comportamento Tentar e restaurar para restaurar instâncias spot removidas com o objetivo de melhor esforço para manter contagens de instâncias de destino.
Para obter informações sobre preços para nós Spot e dedicados, veja Preços em lote.
Tamanho do nó
Ao criar um pool de Lote do Azure, você pode escolher dentre quase todas as famílias de VMs e os tamanhos disponíveis no Azure. O Azure oferece vários tamanhos de VM para diferentes cargas de trabalho, incluindo tamanhos de VM especializados para HPC ou habilitados para GPU. Os tamanhos das VMs dos nós só podem ser escolhidos no momento em que um pool é criado. Em outras palavras, depois que um pool é criado, seu tamanho de VM não pode ser alterado.
Para obter mais informações, consulte Escolha um tamanho de VM para nós de computação em um pool do Azure Batch.
Política de dimensionamento automático
Para as cargas de trabalho dinâmicas, aplique uma fórmula de dimensionamento automático em um pool. O serviço do Lote avalia periodicamente sua fórmula e ajusta dinamicamente o número de nós dentro do pool de acordo com a carga de trabalho atual e o uso de recursos do cenário de computação. Isso permite reduzir o custo geral de execução do aplicativo usando apenas os recursos necessários e liberando os que você não precisa.
Você habilita o dimensionamento automático escrevendo uma fórmula de dimensionamento automático e associando-a a um pool. O serviço Batch usa a fórmula para determinar o número alvo de nós no pool para o próximo intervalo de dimensionamento (um intervalo que você pode configurar). Você pode especificar as configurações de dimensionamento automático para um pool ao criá-lo ou habilitar o dimensionamento mais tarde em um pool. Você também pode atualizar as configurações de dimensionamento em um pool com dimensionamento habilitado.
Por exemplo, talvez um trabalho exija que você envie um grande número de tarefas a serem executadas. Você pode atribuir uma fórmula de dimensionamento ao pool que ajusta o número de nós no pool com base no número atual de tarefas enfileiradas e na taxa de conclusão das tarefas no trabalho. Periodicamente, o serviço de Batch avalia a fórmula e redimensiona o pool com base na carga de trabalho e em suas outras configurações de fórmula. O serviço adiciona nós conforme necessário quando há um grande número de tarefas na fila, e remove nós quando não há tarefas em fila ou em execução.
Uma fórmula de dimensionamento pode basear-se nas seguintes métricas:
- métricas do tempo são baseadas nas estatísticas coletadas a cada cinco minutos no número de horas especificado.
- métricas do recurso são baseadas nos usos da CPU, da largura de banda e da memória, e no número de nós.
- As métricas de tarefa são baseadas no estado da tarefa, como Ativa (na fila), Em execução ou Concluída.
Quando o dimensionamento automático diminui o número de nós de computação em um pool, você deve considerar como lidar com as tarefas em execução no momento da operação de redução. Para acomodar isso, o Batch fornece uma opção de desalocação de nó que você pode incluir em suas fórmulas. Por exemplo, você pode especificar que tarefas em execução sejam interrompidas imediatamente e depois enfileiradas novamente para execução em outro nó, ou que sejam concluídas antes que o nó seja removido do pool. Definir a opção de desalocação de nó como taskcompletion ou retaineddata impede operações de redimensionamento de pool até que todas as tarefas sejam concluídas ou quando todos os períodos de retenção de tarefas expirarem, respectivamente.
Para saber mais sobre o dimensionamento automático de um aplicativo, consulte Dimensionar automaticamente nós de computação em um pool do Azure Batch.
Dica
Para maximizar a utilização de recursos de computação, defina o número alvo de nós como zero ao término de uma tarefa, mas permita a conclusão das tarefas em execução.
Política de agendamento de tarefas
A opção de configuração máx. de tarefas por nó determina o número máximo de tarefas que podem ser executadas em paralelo em cada nó de computação no pool.
A configuração padrão especifica que uma tarefa de cada vez é executada em um nó, mas há cenários em que é benéfico ter duas ou mais tarefas executadas em um nó simultaneamente. Veja o cenário de exemplo no artigo tarefas de nós simultâneos sobre como você pode se beneficiar potencialmente de múltiplas tarefas por nó.
Você também pode especificar um tipo de preenchimento, que determina se o Batch distribui as tarefas uniformemente entre todos os nós em um pool ou empacota cada nó com o número máximo de tarefas antes de atribuir tarefas a outro nó.
Estado da comunicação
Na maioria dos cenários, as tarefas operam de forma independente e não precisam se comunicar entre si. No entanto, há alguns aplicativos em que as tarefas precisam se comunicar, como os cenários MPI.
Você pode configurar um pool para permitir a comunicação entre os nós, de modo que os nós em um pool possam comunicar-se durante a execução. Quando a comunicação entre nós está habilitada, os nós nos pools de configuração de Serviços de Nuvem do Microsoft Azure podem se comunicar entre si em portas maiores que 1100, e os pools de configuração de máquina virtual não restringem o tráfego em nenhuma porta.
Habilitar a comunicação entre nós também afeta o posicionamento dos nós dentro dos clusters e pode limitar o número máximo de nós em um pool devido a restrições de implantação. Se seu aplicativo não exigir comunicação entre nós, o serviço Batch poderá alocar um número potencialmente grande de nós para o pool de muitos clusters e data centers diferentes para permitir maior poder de processamento paralelo.
Tarefas iniciais
Se desejar, você pode adicionar uma tarefa de inicialização que é executada em cada nó conforme ele se junta ao pool e sempre que um nó é reiniciado ou recriado. A tarefa inicial é particularmente útil para preparar nós de computação para a execução de tarefas, como instalar aplicativos que as tarefas executarão nos nós de computação.
pacotes de aplicativos
Você pode especificar pacotes de aplicativos para implantar nos nós de computação no pool. Os pacotes de aplicativos fornecem uma implantação simplificada e controle de versão dos aplicativos que suas tarefas executam. Os pacotes de aplicativos que você especifica para um pool são instalados em cada nó que se junta a esse pool e sempre que um nó é reinicializado ou recriado.
Para saber mais sobre como usar pacotes de aplicativos para implantar os aplicativos nos nós do Batch, consulte Implantar aplicativos em nós de computação com pacotes de aplicativos do Batch.
Configuração de firewall e VNet (rede virtual)
Quando você provisiona um pool de nós de computação no Batch, pode associar o pool a uma sub-rede de uma VNet (rede virtual) do Azure. Para usar uma VNet do Azure, a API do cliente Batch deve usar a autenticação Microsoft Entra. O suporte do Azure Batch para o Microsoft Entra ID está documentado em Autenticar as soluções de serviço Batch com o Active Directory.
Requisitos de rede virtual
Para mais informações sobre como configurar um pool de Batch em uma rede virtual, consulte Criar um pool de máquinas virtuais na sua rede virtual.
Dica
Para garantir que os endereços IP públicos usados para acessar nós não sejam alterados, você pode criar um pool com endereços IP públicos especificados que você controle.
Tempo de vida do nó de computação e pool
Quando projetar sua solução do Lote do Azure, você deverá especificar como e quando os pools são criados, e por quanto tempo os nós de computação nesses pools ficarão disponíveis.
Em uma extremidade do espectro, você pode criar um pool para cada trabalho enviado e excluir o pool logo após o término da execução de suas tarefas. Isso maximiza a utilização porque os nós são alocados apenas quando necessário e são desligados quando estão ociosos. Embora isso signifique que o trabalho deve aguardar a alocação dos nós, é importante ressaltar que as tarefas são agendadas para execução assim que os nós são alocados individualmente e a tarefa inicial é concluída, caso tenha sido especificado aguardar a conclusão da tarefa inicial. O lote não espera até que todos os nós dentro de um pool estejam disponíveis antes de atribuir tarefas aos nós. Isso garante a utilização máxima de todos os nós disponíveis.
No outro extremo do espectro, se a prioridade máxima for iniciar os trabalhos imediatamente, você pode criar um pool com antecedência e disponibilizar seus nós antes que os trabalhos sejam enviados. Nesse cenário, as tarefas podem começar imediatamente, mas os nós poderão ficar ociosos enquanto aguardam a atribuição delas.
Uma abordagem combinada normalmente é usada para lidar com uma carga variável, mas em andamento. Você pode ter um pool no qual vários trabalhos são enviados e pode aumentar ou diminuir o número de nós de acordo com a carga de trabalho. Isso pode ser feito de maneira reativa, com base na carga atual, ou proativamente, se a carga puder ser prevista. Para obter mais informações, veja Política de dimensionamento automático.
Pools automáticos
Um autopool é um pool que o serviço Batch cria quando um trabalho é enviado, em vez de ser criado explicitamente antes dos trabalhos que serão executados no pool. O serviço Batch gerencia a vida útil de um autopool de acordo com as características que você especifica. Na maioria das vezes, esses pools também são definidos para serem excluídos automaticamente após a conclusão de seus trabalhos.
Segurança com certificados
Normalmente, você precisa usar certificados ao criptografar ou descriptografar informações confidenciais para as tarefas, como a chave para uma conta de Armazenamento do Azure. Para dar suporte a isso, você pode instalar certificados nos nós. Os segredos criptografados são passados para tarefas por meio dos parâmetros de linha de comando ou incorporados em um dos recursos de tarefa, e os certificados instalados podem ser usados para descriptografá-los.
Você usa a operação Adicionar certificado (REST do Batch) ou o método CertificateOperations.CreateCertificate (.NET do Batch) para adicionar um certificado a uma conta do Batch. Então, pode associar o certificado a um pool novo ou existente.
Quando um certificado é associado a um pool, o serviço em lote instala o certificado em cada nó do pool. O serviço Lote instala os certificados apropriados quando o nó é inicializado, antes que ele execute qualquer tarefa (incluindo a tarefa inicial e a tarefa do gerenciador de trabalhos).
Se adicionar um certificado a um pool existente, você deve reinicializar seus nós de computação para que os certificados sejam aplicados aos nós.
Próximas etapas
- Saiba mais sobre trabalhos e tarefas.
- Aprenda como detectar e evitar falhas em operações em segundo plano de pool e nó .