Partilhar via


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:

Tipo de nó como habilitar pré-requisito como monitorar
Nós de PaaS do Azure de cmdlet do PowerShell
Set-HpcClusterProperty -EnableGrowShrink 1
1. Modelo de nó para nós de PaaS do Azure
2. Nós adicionados no cluster
"Relatório de redução de crescimento automático" em ClusterManager --> Gerenciamento de recursos -- operações de> --> AzureOperations
Nós de IaaS do Azure de cmdlet do PowerShell
Set-HpcClusterProperty -EnableGrowShrink 1
1. Entidade de Serviço do Azure configurada
2. Nós adicionados no cluster
"Relatório de redução de crescimento automático" em ClusterManager --> Gerenciamento de recursos -- operações de> --> AzureOperations
Nós do Conjunto de Dimensionamento de VMs do Azure de cmdlet do PowerShell
Set-HpcClusterProperty -EnableGrowShrink 1
1. Entidade de Serviço do Azure configurada
2. Nós adicionados no cluster
"Relatório de redução de crescimento automático" em ClusterManager --> Gerenciamento de recursos -- operações de> --> AzureOperations
Pool do Lote do Azure Modelo de nó do pool do Lote do Azure O pool do Lote do Azure precisa ser iniciado portal do azure ou gerenciador de lotes do Azure

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

  1. Após a implantação do cluster, conecte-se pela Área de Trabalho Remota a um nó principal.

  2. 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.

  3. 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
    
  4. 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.

  5. 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

  1. Abra o Gerenciador de Cluster do HPC Pack em um nó principal.

  2. de Configuração do Goto – página de lista de tarefas pendentes de implantação do.

  3. Clique em Definirde Configuração de Implantação do Azure.

  4. 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 hpc pack 2016 atualização 2 ou posterior versão, nós de VM iaaS do Azure ou nós do conjunto de dimensionamento de VM do Azure já devem estar no grupo de nós do AzureIaaSNodes, você pode executar iniciar ou parar ação contra eles nogui do Gerenciador de Cluster do HPC do . Quando a ação for executada, você verá Operação de Parada de Expedição da VM do Azure ou iniciando a operação de de Máquinas Virtuais do Azure no de Operações do --exibição de do AzureOperations.

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:

  1. Inicie o Gerenciador de Cluster de HPC, vá para Painel de gerenciamento de recursos
  2. Clique em Adicionar Nó... ação no painel de ação, no assistente, escolha "Adicionar nós do Windows Azure"
  3. Ao passar pelo assistente, clique em Concluir, vários nós serão adicionados ao cluster em estado de não implantado
  4. 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.