Partilhar via


Aumentar e diminuir automaticamente os recursos do cluster HPC Pack no Azure, de acordo com a carga de trabalho do cluster

Importante

Os VM clássicos serão retirados a 1 de março de 2023.

Se utilizar recursos iaaS da ASM, por favor preencha a sua migração até 1 de março de 2023. Encorajamo-lo a fazer a troca mais cedo para aproveitar as muitas melhorias de funcionalidades em Azure Resource Manager.

Para mais informações, consulte a Migração dos seus recursos iaaS para a Azure Resource Manager até 1 de março de 2023.

Se colocar nós Azure "burst" no seu cluster HPC Pack ou criar um cluster HPC Pack em VMs Azure, poderá querer uma forma de aumentar ou diminuir automaticamente os recursos do cluster, tais como nós ou núcleos de acordo com a carga de trabalho no cluster. A escala dos recursos de cluster permite-lhe utilizar os seus recursos Azure de forma mais eficiente e controlar os seus custos.

Este artigo mostra-lhe duas formas que o HPC Pack fornece para reduzir automaticamente os recursos de computação:

  • A propriedade de cluster HPC Pack AutoGrowShrink

  • O AzureAutoGrowShrink.ps1 roteiro HPC PowerShell

Nota

O Azure tem dois modelos de implementação para criar e trabalhar com recursos: Resource Manager e Clássico. Este artigo inclui os dois modelos, mas a Microsoft recomenda que a maioria das implementações novas utilizem o modelo Resource Manager.

Atualmente, só é possível crescer automaticamente e encolher os nós computacional do HPC Pack que estão a executar um sistema operativo Windows Server.

Definir a propriedade de cluster AutoGRowShrink

Pré-requisitos

  • HPC Pack 2012 R2 Update 2 ou mais tarde cluster - O nó da cabeça do cluster pode ser implantado no local ou num VM Azure. Consulte configurar um cluster híbrido com o HPC Pack para começar com um nó de cabeça no local e nós "rebentados" Azure. Consulte o script de implementação do HPC Pack IaaS para implementar rapidamente um cluster HPC Pack em VMs Azure.

  • Para um cluster com nó de cabeça em Azure (modelo de implantação Resource Manager) - A partir do HPC Pack 2016, a autenticação de certificados numa aplicação Azure Ative Directory é utilizada para o crescimento e redução automática de VMs de cluster implantados através do Azure Resource Manager. Configure um certificado da seguinte forma:

    1. Após a implementação do cluster, ligue-se por Remote Desktop a um nó de cabeça.

    2. Faça o upload do certificado (formato PFX com chave privada) para cada nó de cabeça e instale em Cert:\LocalMachine\My and Cert:\LocalMachine\Root.

    3. Inicie Azure PowerShell como administrador e execute os seguintes comandos num nó de cabeça:

        cd $env:CCP_HOME\bin
    
        Connect-AzureRmAccount
    

    Se a sua conta estiver em mais de um Azure Ative Directory insuitada ou subscrição Azure, pode executar o seguinte comando para selecionar o inquilino e subscrição corretas:

        Connect-AzureRmAccount -TenantId <TenantId> -SubscriptionId <subscriptionId>
    

    Executar o seguinte comando para visualizar o inquilino e subscrição atualmente selecionados:

        Get-AzureRMContext
    
    1. Executar o seguinte script
        .\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 da aplicação ativa Azure. Se a aplicação não existir, é criada em Azure Ative Directory.

    Página Inicial - A página inicial da aplicação. Pode configurar um URL falso, como no exemplo anterior.

    IdentifierUri - Identificador do pedido. Pode configurar um URL falso, como no exemplo anterior.

    CertifiThumbprint - Impressão digital do certificado que instalou no nó de cabeça no passo 1.

    TenantId - Identificação do inquilino do seu Azure Ative Directory. Você pode obter o ID do inquilino na página Azure Ative Directory portal Propriedades.

    Para mais detalhes sobre ConfigARMAutoGrowShrinkCert.ps1, corra Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed.

  • Para um cluster com um nó de cabeça em Azure (modelo de implementação clássica) - Se utilizar o script de implementação do HPC Pack IaaS para criar o cluster no modelo de implementação clássico, ative a propriedade do cluster AutoGrowShrink definindo a opção AutoGrowShrink no ficheiro de configuração do cluster. Para mais detalhes, consulte a documentação que acompanha o download do script.

    Em alternativa, ative a propriedade do cluster AutoGrowShrink depois de implementar o cluster utilizando os comandos HPC PowerShell descritos na secção seguinte. Para preparar este, primeiro complete os seguintes passos:

    1. Configure um certificado de gestão Azure no nó de cabeça e na assinatura Azure. Para uma implementação de teste, pode utilizar o certificado auto-assinado do Microsoft HPC Azure que o HPC Pack instala no nó de cabeça e, em seguida, carregar esse certificado para a sua subscrição Azure. Para opções e passos, consulte a orientação da Biblioteca TechNet.

    2. Executar regedit no nó de cabeça, vá a HKLM\SOFTWARE\Micorsoft\HPC\IaasInfo e adicione um valor de corda. Desa estale o nome Valor para "Impressão Digital thumb", e valorize os dados para a impressão digital do certificado no passo 1.

HPC PowerShell ordena para definir a propriedade AutoGrowShrink

Seguem-se os comandos HPC PowerShell para definir o AutoGrowShrink e para afinar o seu comportamento com parâmetros adicionais. Consulte os parâmetros AutoGrowShrink mais tarde neste artigo para obter a lista completa de definições.

Para executar estes comandos, inicie o HPC PowerShell no nó da cabeça do cluster como administrador.

Para ativar a propriedade AutoGrowShrink

Set-HpcClusterProperty –EnableGrowShrink 1

Para desativar a propriedade AutoGrowShrink

Set-HpcClusterProperty –EnableGrowShrink 0

Para alterar o intervalo de crescimento em minutos

Set-HpcClusterProperty –GrowInterval <interval>

Para alterar o intervalo de encolher em minutos

Set-HpcClusterProperty –ShrinkInterval <interval>

Para ver a configuração atual do AutoGrowShrink

Get-HpcClusterProperty –AutoGrowShrink

Excluir grupos de nó de AutoGrowShrink

Set-HpcClusterProperty –ExcludeNodeGroups <group1,group2,group3>

Nota

Este parâmetro é suportado a partir de HPC Pack 2016

Parâmetros AutoGrowShrink

Seguem-se os parâmetros AutoGrowShrink que pode modificar utilizando o comando Set-HpcClusterProperty .

  • EnableGrowShrink - Switch para ativar ou desativar a propriedade AutoGrowShrink .

  • ParamSweepTasksPerCore - Número de tarefas de varredura paramétrica para crescer um núcleo. O padrão é crescer um núcleo por tarefa.

    Nota

    O Pacote HPC QFE KB3134307 altera o ParamSweepTasksPerCore para TasksPerResourceUnit. Baseia-se no tipo de recurso de trabalho e pode ser nó, tomada ou núcleo.

  • GrowThreshold - Limiar de tarefas em fila para desencadear o crescimento automático. O padrão é 1, o que significa que se houver 1 ou mais tarefas no estado de fila, aumente automaticamente os nós.

  • GrowInterval - Intervalo em minutos para desencadear o crescimento automático. O intervalo predefinido é de 5 minutos.

  • ShrinkInterval - Intervalo em minutos para ativar a redução automática. O intervalo por defeito é de 5 minutos.|

  • ShrinkIdleTimes - Número de verificações contínuas para encolher para indicar que os nós estão inativos. O padrão é de 3 vezes. Por exemplo, se o ShrinkInterval for de 5 minutos, o Pacote HPC verifica se o nó está inativo a cada 5 minutos. Se os nós estiverem no estado de marcha lenta após 3 verificações contínuas (15 minutos), então o HPC Pack encolhe esse nó.

  • ExtraNodesGrowRatio - Percentagem adicional de nós a crescer para trabalhos de Interface de Passagem de Mensagens (MPI). O valor padrão é 1, o que significa que o HPC Pack cresce 1% para empregos de MPI.

  • GrowByMin - Switch para indicar se a política de auto-sobrancelhas se baseia nos recursos mínimos necessários para o trabalho. O incumprimento é falso, o que significa que o HPC Pack cresce a nós para empregos com base nos recursos máximos necessários para os postos de trabalho.

  • SoaJobGrowThreshold - Limiar dos pedidos de SOA para desencadear o processo de crescimento automático. O valor predefinido é 50000.

    Nota

    Este parâmetro é suportado a partir de HPC Pack 2012 R2 Update 3.

  • SoaRequestsPerCore - Número de pedidos de SOA para crescer um núcleo. O valor padrão é 20000.

    Nota

    Este parâmetro é suportado a partir de HPC Pack 2012 R2 Update 3.

  • Excluir Grupos De - Os nós nos grupos de nó especificados não crescem automaticamente e encolhem.

    Nota

    Este parâmetro é suportado a partir de HPC Pack 2016.

Exemplo mpi

Por predefinição, o HPC Pack cresce 1% de nó de nó extra para empregos de MPI (ExtraNodesGrowRatio está definido para 1). A razão é que o MPI pode exigir múltiplos nós, e o trabalho só pode funcionar quando todos os nós estiverem prontos. Quando Azure começa os nós, ocasionalmente um nó pode precisar de mais tempo para começar do que outros, fazendo com que outros nós fiquem inativos enquanto esperam que o nó se prepare. Ao cultivar nós extras, o HPC Pack reduz este tempo de espera de recursos e potencialmente poupa custos. Para aumentar a percentagem de nóns extra para empregos de MPI (por exemplo, para 10%), executar um comando semelhante a

Set-HpcClusterProperty -ExtraNodesGrowRatio 10

Exemplo SOA

Por padrão, o SoaJobGrowThreshold está definido para 50000 e o SoaRequestsPerCore está definido para 20000. Se submeter um trabalho SOA com 70000 pedidos, há uma tarefa em fila e os pedidos de entrada são 70000. Neste caso, o HPC Pack cresce 1 núcleo para a tarefa em fila, e para pedidos de entrada, cresce (70000 - 50000)/20000 = 1 núcleo, pelo que no total cresce 2 núcleos para este trabalho soa.

Executar o roteiro de AzureAutoGrowShrink.ps1

Pré-requisitos

  • HPC Pack 2012 R2 Update 1 ou mais tarde cluster - O script AzureAutoGrowShrink.ps1 está instalado na pasta %CCP_HOME%bin. O nó da cabeça do cluster pode ser implantado no local ou num VM Azure. Consulte configurar um cluster híbrido com o HPC Pack para começar com um nó de cabeça no local e nós "rebentados" Azure. Consulte o script de implementação do HPC Pack IaaS para implementar rapidamente um cluster do Pacote HPC em VMs Azure ou utilize um modelo de arranque rápido Azure.

  • Azure PowerShell 1.4.0 - O script depende atualmente desta versão específica de Azure PowerShell.

  • Para um cluster com nós de rajada Azure - Execute o script num computador cliente onde o HPC Pack está instalado ou no nó de cabeça. Se estiver a funcionar num computador cliente, certifique-se de que define a variável $env:CCP_SCHEDULER apontar para o nó de cabeça. Os nós "rebentados" do Azure devem ser adicionados ao aglomerado, mas podem estar no estado Not-Deployed.

  • Para um cluster implantado em VMs Azure (modelo de implantação Resource Manager) - Para um conjunto de VMs Azure implantados no modelo de implantação Resource Manager, a escritura suporta dois métodos para a autenticação Azure: inscreva-se na sua conta Azure para executar o script sempre (executando Connect-AzureRmAccount, ou configuure um diretor de serviço para autenticar com um certificado. O HPC Pack fornece o ConfigARMAutoGrowShrinkCert.ps de script para criar um principal de serviço com certificado. O script cria uma aplicação Azure Ative Directory (Azure AD) e um principal de serviço, e atribui o papel de Contribuinte ao principal do serviço. Para executar o script, comece Azure PowerShell como administrador e execute os seguintes comandos:

    cd $env:CCP_HOME\bin
    
    Connect-AzureRmAccount
    
    .\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName “YourHpcPackAppName” -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -PfxFile "d:\yourcertificate.pfx"
    

    Para mais detalhes sobre ConfigARMAutoGrowShrinkCert.ps1, corra Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed,

  • Para um cluster implantado em VMs Azure (modelo de implementação clássica) - Execute o script no nó de cabeça VM, porque depende da Start-HpcIaaSNode.ps1 e Stop-HpcIaaSNode.ps1 scripts que aí estão instalados. Esses scripts requerem ainda um certificado de gestão Azure ou um ficheiro de definições de publicação (ver Gerir nós de computação num cluster do HPC Pack em Azure). Certifique-se de que todos os VMs de nó de computação de que necessita já estão adicionados ao cluster. Podem estar no estado de paragem.

Sintaxe

AzureAutoGrowShrink.ps1 [-NodeTemplates <String[]>] [-JobTemplates <String[]>] [-NodeType <String>]
    -NumOfActiveQueuedTasksPerNodeToGrow <Single> [-NumOfActiveQueuedTasksToGrowThreshold <Int32>]
    [-NumOfInitialNodesToGrow <Int32>] [-GrowCheckIntervalMins <Int32>] [-ShrinkCheckIntervalMins <Int32>]
    [-ShrinkCheckIdleTimes <Int32>] [-ExtraNodesGrowRatio <Int32>] [-ArgFile <String>] [-LogFilePrefix <String>]
    [<CommonParameters>]

AzureAutoGrowShrink.ps1 [-NodeTemplates <String[]>] [-JobTemplates <String[]>] [-NodeType <String>]
    -NumOfQueuedJobsPerNodeToGrow <Single> [-NumOfQueuedJobsToGrowThreshold <Int32>] [-NumOfInitialNodesToGrow
    <Int32>] [-GrowCheckIntervalMins <Int32>] [-ShrinkCheckIntervalMins <Int32>] [-ShrinkCheckIdleTimes <Int32>]
    [-ExtraNodesGrowRatio <Int32>] [-ArgFile <String>] [-LogFilePrefix <String>] [<CommonParameters>]

AzureAutoGrowShrink.ps1 -UseLastConfigurations [-ArgFile <String>] [-LogFilePrefix <String>] [<CommonParameters>]

Parâmetros

  • NodeTemplates - Nomes dos modelos de nó para definir o âmbito para os nós crescerem e encolherem. Se não for especificado (o valor padrão é @()), todos os nós do grupo nó node AzureNodes estão no âmbito quando o NodeType tem um valor de AzureNodes, e todos os nós no grupo de nó ComputeNodes estão no âmbito quando o NodeType tem um valor de ComputeNodes.

  • JobTemplates - Nomes dos modelos de trabalho para definir a margem para os nós crescerem.

  • NóTipo - O tipo de nó para crescer e encolher. Os valores suportados são:

    • AzureNodes – para os nós Azure PaaS (explosão) em um aglomerado no local ou Azure IaaS.
    • ComputeNodes - para vMs de nó computacional apenas em um cluster Azure IaaS.
  • NumOfQueuedJobsPerNodeToGrow - Número de empregos em fila necessária para cultivar um nó.

  • NumOfQueuedJobsToGrowThreshold - O número de postos de trabalho em fila para iniciar o processo de crescimento.

  • NumOfActiveQueuedTasksPerNodeToGrow - O número de tarefas em fila ativa necessárias para cultivar um nó. Se numOfQueuedJobsPerNodeToGrow for especificado com um valor superior a 0, este parâmetro é ignorado.

  • NumOfActiveQueuedTasksToGrowThreshold - O número limiar de tarefas em fila ativa para iniciar o processo de crescimento.

  • NumOfInitialNodesToGrow - O número mínimo inicial de nós a crescer se todos os nós de âmbito não forem implantados ou parados (Deallocated).

  • GrowCheckIntervalMins - O intervalo em minutos entre as verificações a crescer.

  • ShrinkCheckIntervalMins - O intervalo em minutos entre as verificações a encolher.

  • ShrinkCheckIdleTimes - O número de verificações de redução contínua ( separadas por ShrinkCheckIntervalMins) para indicar que os nós estão inativos.

  • Utilização ConfiguraçõesLast - As configurações anteriores guardadas no ficheiro de argumento.

  • ArgFile- O nome do ficheiro de argumento utilizado para guardar e atualizar as configurações para executar o script.

  • LogFilePrefix - O nome prefixo do ficheiro de registo. Pode especificar um caminho. Por predefinição, o registo é escrito para o diretório de trabalho atual.

Exemplo 1

O exemplo a seguir configura os nós de rutura Azure implantados com o Modelo AzureNode padrão para crescer e encolher automaticamente. Se todos os nós estiverem inicialmente no estado não implantado , pelo menos 3 nós são iniciados. Se o número de empregos em fila exceder 8, o script começa a acenar até que o seu número exceda o rácio de empregos em fila para NumOfQueuedJobsPerNodeToGrow. Se um nó estiver inativo em 3 vezes inativos consecutivos, é parado.

.\AzureAutoGrowShrink.ps1 -NodeTemplates @('Default AzureNode
 Template') -NodeType AzureNodes -NumOfQueuedJobsPerNodeToGrow 5
 -NumOfQueuedJobsToGrowThreshold 8 -NumOfInitialNodesToGrow 3
 -GrowCheckIntervalMins 1 -ShrinkCheckIntervalMins 1 -ShrinkCheckIdleTimes 3

Exemplo 2

O exemplo a seguir configura os VMs de nó de computação Azure implantados com o Modelo ComputeNode padrão para crescer e encolher automaticamente. Os trabalhos configurados pelo modelo de trabalho predefinido definem o âmbito da carga de trabalho no cluster. Se todos os nós forem inicialmente parados, pelo menos 5 nós são iniciados. Se o número de tarefas em fila ativa exceder 15, o script inicia os nós até que o seu número exceda o rácio de tarefas em fila ativa para NumOfActiveQueuedTasksPerNodeToGrow. Se um nó estiver inativo em 10 vezes inativos consecutivos, é parado.

.\AzureAutoGrowShrink.ps1 -NodeTemplates 'Default ComputeNode Template' -JobTemplates 'Default' -NodeType ComputeNodes -NumOfActiveQueuedTasksPerNodeToGrow 10 -NumOfActiveQueuedTasksToGrowThreshold 15 -NumOfInitialNodesToGrow 5 -GrowCheckIntervalMins 1 -ShrinkCheckIntervalMins 1 -ShrinkCheckIdleTimes 10 -ArgFile 'IaaSVMComputeNodes_Arg.xml' -LogFilePrefix 'IaaSVMComputeNodes_log'