Aumentar e reduzir automaticamente os recursos de cluster do HPC Pack no Azure de acordo com a carga de trabalho do cluster
Se você implantar nós de "intermitência" do Azure (Windows e Linux) no cluster do HPC Pack ou criar um cluster do HPC Pack em VMs do Azure, talvez você queira uma maneira de aumentar ou reduzir automaticamente os recursos do cluster, como nós ou núcleos, de acordo com a carga de trabalho no cluster. O dimensionamento dos recursos do cluster dessa forma permite que você use seus recursos do Azure com mais eficiência e controle seus custos.
Com o HPC Pack 2016 ou versão posterior, você pode aumentar e reduzir automaticamente os nós de computação do HPC Pack que estão executando a nuvem do Azure, incluindo nós de PaaS do Windows, nós de VM iaaS do Azure, nós do pool de lotes do Azure e nós do Conjunto de Dimensionamento de VMs do Azure. Mas para diferentes tipos de nós, a lógica de redução de crescimento automático é diferente. E aqui está o resumo:
Observação
Esse recurso apenas aumenta ou reduz automaticamente os recursos do Azure iniciando ou interrompendo os nós de computação HPC existentes no Azure, ele não criará automaticamente novos nós de computação HPC nem excluirá os nós existentes.
O dimensionamento automático de nós do conjunto de dimensionamento de VMs do Azure tem suporte da Atualização 2 do HPC Pack 2016 em diante.
Dimensionamento automático de nós de VM iaaS do Azure ou nós do conjunto de dimensionamento de VM do Azure
Para aumentar ou reduzir automaticamente os nós de VM iaaS do Azure ou nós do conjunto de dimensionamento de VM do Azure no cluster do HPC Pack, você deve configurar uma Entidade de Serviço do Azure com certificado para gerenciar sua assinatura do Azure. Você pode configurá-lo com comandos do PowerShell ou com a GUI do Gerenciador de Cluster.
Depois que a Entidade de Serviço do Azure estiver configurada, você poderá habilitar a redução automática do crescimento usando cmdlet do HPC Pack AutoGrowShrink.
Observação
Por padrão, a Entidade de Serviço do Azure criada pelo HPC Pack recebe a função Colaborador no nível de Assinatura, você pode consultar controle de acesso para recursos do Azure no cluster do HPC Pack para configurar manualmente as permissões de acesso para a Entidade de Serviço do Azure de acordo com seu cenário de usuário.
Configurar a Entidade de Serviço do Azure com o PowerShell
Após a implantação do cluster, conecte-se pela Área de Trabalho Remota a um nó principal.
Carregue o certificado (formato PFX com chave privada) em cada nó principal e instale no Cert:\LocalMachine\My. Esse certificado é usado para criar a entidade de serviço do Azure. Se você não tiver um certificado, poderá criar um autoassinado primeiro.
Inicie o Azure PowerShell como administrador e execute os seguintes comandos em um nó principal:
cd $env:CCP_HOME\bin Connect-AzureRmAccount
Se sua conta estiver em mais de um locatário do Azure Active Directory ou assinatura do Azure, você poderá executar o seguinte comando para selecionar o locatário e a assinatura corretos:
Connect-AzureRmAccount -TenantId <TenantId> -SubscriptionId <subscriptionId>
Execute o seguinte comando para exibir o locatário e a assinatura selecionados no momento:
Get-AzureRMContext
Executar o script a seguir
.\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName "YourHpcPackAppName" -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -TenantId xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxx
em que
displayName – nome de exibição do Aplicativo Ativo do Azure. Se o aplicativo não existir, ele será criado no Azure Active Directory.
HomePage – a home page do aplicativo. Você pode configurar uma URL fictícia, como no exemplo anterior.
IdentifierUri – Identificador do aplicativo. Você pode configurar uma URL fictícia, como no exemplo anterior.
CertificateThumbprint – Impressão digital do certificado instalado no nó principal na Etapa 2.
TenantId – ID do locatário do Azure Active Directory. Você pode obter a ID do Locatário no portal do Azure Active Directory página Propriedades.
Para obter mais detalhes sobre ConfigARMAutoGrowShrinkCert.ps1, execute
Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed
.Após a configuração, você pode verificar a configuração da chave do Registro (incluindo ApplicationId, TenantId, Impressão Digital) por meio do comando HPC Powershell
Get-HpcClusterRegistry
Configurar a entidade de serviço do Azure com a GUI do Gerenciador de Cluster
Abra o Gerenciador de Cluster do HPC Pack em um nó principal.
de Configuração do Goto
– página de lista de tarefas pendentes de implantação do . Clique em Definirde Configuração de Implantação do Azure.
Ao passar por esse assistente, ele ajudará você a configurar
da Entidade de Serviço do Azure, o do Grupo de Recursos do Azure e de VNet em que a VM do Azure será provisionada, bem como um certificado a ser usado para comunicação de cluster. O assistente será executado como abaixo: Assistente de Configuração de Implantação do Azure
Validando a configuração
Depois de configurar com êxito a Entidade de Serviço do Azure, você poderá iniciar e parar nós de VM iaaS do Azure por meio do HPC Pack.
Se você estiver executando
Se você tiver VMs instaladas manualmente com o HPC Pack Update 1 ou versões anteriores no azure, por padrão, elas não estão no grupo de nós AzureIaaSNodes, pois estão sendo tratadas como nó local. Nesse caso, você precisa executar parar ação contra eles, o que fará com que o serviço os coloque em grupo de nós do AzureIaaSNodes e, em seguida, o serviço poderá crescer e reduzi-los.
Se você ainda não tiver nenhum nó de VM IaaS do Azure, poderá seguir Adicionar nós IaaS para criar o modelo de nó IaaS do Azure e adicionar nós de VM IaaS ao cluster.
Dimensionamento automático de nós de PaaS do Azure
Antes de habilitar a redução automática de nós de PaaS do Windows do Azure pelo Cluster do HPC Pack, você deve verificar o modelo de nó do azure certificando-se de que os nós de PaaS do Azure estão configurados para iniciar e parar manualmente em vez de com base no agendamento de tempo.
O serviço de redução de aumento automático do HPC Pack nunca adicionará um novo recurso ao cluster. Assim, em qualquer caso depois de criar o modelo de nó paaS do azure, você precisará adicionar os nós ao cluster primeiro por:
- Inicie o Gerenciador de Cluster de HPC, vá para Painel de gerenciamento de recursos
- Clique em Adicionar Nó... ação no painel de ação, no assistente, escolha "Adicionar nós do Windows Azure"
- Ao passar pelo assistente, clique em Concluir, vários nós serão adicionados ao cluster em estado de não implantado
- Habilitar redução automática de crescimento usando cmdlet HPC Pack AutoGrowShrink
Observação
Quando o HPC Pack aumentar o recurso para trabalhos na fila, ele aumentará no máximo o número de nós adicionados na etapa 3. Ele nunca adicionará mais recursos ao cluster. Assim, você pode verificar a capacidade da assinatura e adicionar o número apropriado de nós ao cluster.
Dimensionamento automático do pool do Lote do Azure
Por padrão, ao criar um modelo de pool em lotes do Azure no HPC Pack, temos uma fórmula de dimensionamento automático padrão definida para o pool. Mas você também pode consultar este documento para definir sua própria fórmula de escala e a atualização em seu modelo de nó em lote.
Comandos do HPC PowerShell para definir a propriedade de crescimento e redução automática do cluster
A seguir estão exemplos de comandos do HPC PowerShell para definir AutoGrowShrink e ajustar seu comportamento com parâmetros adicionais. Consulte parâmetros AutoGrowShrink posteriormente neste artigo para obter a lista completa de configurações.
Para executar esses comandos, inicie o HPC PowerShell no nó principal do cluster como administrador.
Para exibir a configuração atual do AutoGrowShrink
Get-HpcClusterProperty –AutoGrowShrink
Habilitar a propriedade AutoGrowShrink
Set-HpcClusterProperty –EnableGrowShrink 1
Para desabilitar a propriedade AutoGrowShrink
Set-HpcClusterProperty –EnableGrowShrink 0
Para alterar o intervalo de crescimento em minutos
Set-HpcClusterProperty –GrowInterval <interval>
Para alterar o intervalo de redução em minutos
Set-HpcClusterProperty –ShrinkInterval <interval>
Para exibir a configuração atual do AutoGrowShrink
Get-HpcClusterProperty –AutoGrowShrink
Excluir grupos de nós do AutoGrowShrink
Set-HpcClusterProperty –ExcludeNodeGroups <group1,group2,group3>
Observação
Esse parâmetro tem suporte a partir do HPC Pack 2016
Parâmetros autoGrowShrink
Veja a seguir os parâmetros AutoGrowShrink que você pode modificar usando o comando Set-HpcClusterProperty.
EnableGrowShrink – alterne para habilitar ou desabilitar a propriedade AutoGrowShrink. TasksPerResourceUnit – número de tarefas para aumentar uma unidade de recurso (com base no tipo de unidade de recurso do trabalho). O padrão é aumentar uma unidade de recurso por tarefa.
GrowThreshold – Limite de trabalhos que têm tarefas enfileiradas para disparar o crescimento automático. O padrão é 1, o que significa que, se houver 1 ou mais trabalhos que tenham tarefas enfileiradas, aumente automaticamente os nós.
GrowInterval – Intervalo em minutos para disparar o crescimento automático. O intervalo padrão é de 5 minutos.
ShrinkInterval – Intervalo em minutos para disparar o encolhimento automático. O intervalo padrão é de 5 minutos.|
ShrinkIdleTimes – número de verificações contínuas a serem reduzidas para indicar que os nós estão ociosos. O padrão é 3 vezes. Por exemplo, se o ShrinkInterval for de 5 minutos, o HPC Pack verificará se o nó está ocioso a cada 5 minutos. Se os nós estiverem no estado ocioso para todas as três verificações contínuas (15 minutos), o HPC Pack decidirá reduzir esse nó.
ExtraNodesGrowRatio – Percentual adicional de nós a crescer para trabalhos de MPI (Interface de Passagem de Mensagem). O valor padrão é 1, o que significa que o HPC Pack aumenta os nós 1% para trabalhos de MPI.
GrowByMin – alterne para indicar se a política de crescimento automático é baseada nos recursos mínimos necessários para o trabalho. O padrão é falso, o que significa que o HPC Pack aumenta os nós para trabalhos com base nos recursos máximos necessários para os trabalhos.
SoaJobGrowThreshold - Limite de solicitações SOA de entrada para disparar o processo de crescimento automático. O valor padrão é 50000.
Observação
Esse parâmetro tem suporte a partir do HPC Pack 2012 R2 Atualização 3.
SoaRequestsPerCore -Number de solicitações SOA de entrada para aumentar um núcleo. O valor padrão é 20000.
Observação
Esse parâmetro tem suporte a partir do HPC Pack 2012 R2 Atualização 3.
ExcludeNodeGroups – os nós nos grupos de nós especificados não crescem e reduzem automaticamente.
Observação
Esse parâmetro tem suporte a partir do HPC Pack 2016.
Exemplo de MPI
Por padrão, o HPC Pack cresce 1% nós extras para trabalhos de MPI (ExtraNodesGrowRatio está definido como 1). O motivo é que o MPI pode exigir vários nós e o trabalho só pode ser executado quando todos os nós estiverem prontos. Quando o Azure inicia nós, ocasionalmente, um nó pode precisar de mais tempo para começar do que outros, fazendo com que outros nós fiquem ociosos enquanto esperam que esse nó se prepare. Ao aumentar nós extras, o HPC Pack reduz esse tempo de espera do recurso e, potencialmente, economiza custos. Para aumentar o percentual de nós extras para trabalhos de MPI (por exemplo, para 10%), execute um comando semelhante a
Set-HpcClusterProperty -ExtraNodesGrowRatio 10
Exemplo de SOA
Por padrão, soaJobGrowThreshold está definido como 50000 e SoaRequestsPerCore está definido como 20000. Se você enviar um trabalho SOA com 70000 solicitações, haverá uma tarefa enfileirada e as solicitações de entrada serão 70000. Nesse caso, o HPC Pack cresce 1 núcleo para a tarefa enfileirada e, para solicitações de entrada, cresce (70000 - 50000)/20000 = 1 núcleo, portanto, no total, cresce 2 núcleos para esse trabalho SOA.