Intermitência para o Lote do Azure com o Microsoft HPC Pack
Este tópico contém informações sobre como estender o cluster do HPC Pack para incluir pools do Lote do Azure como recursos de computação. Usando esses pools do Lote do Azure, você pode aumentar ("intermitência") a capacidade do cluster HPC sob demanda. Para obter mais informações, consulte a documentação do serviço Lote do Azure.
Neste tópico:
Pré-requisitos
cluster do HPC Pack – você deve criar e configurar pelo menos o nó principal de um cluster. O recurso de intermitência para Lote está disponível a partir do HPC Pack 2012 R2 Atualização 3.
de assinatura do Azure – se você ainda não tiver uma assinatura, inscreva-se em um de avaliação gratuita, use os benefícios do assinante do MSDN ou explore outras opções de compra.
Etapa 1: Criar conta do Lote do Azure
conta do Lote do Azure– consulte Criar e gerenciar uma conta do Lote do Azure para criar uma conta do Lote no portal do Azure.. Você precisará das seguintes informações de conta (disponíveis no portal) para acessar o Lote do HPC Pack 2012 R2 Atualização 3.
- Nome da conta do lote
- URL da conta do Lote
- Chave da conta do Lote
No HPC Pack 2016 Atualização 1 em diante, talvez seja necessário que as seguintes informações da conta intermitam para o Lote do HPC Pack de acordo com os diferentes modos de alocação de recursos do Lote do Azure (Serviço em Lote ou Assinatura de Usuário) e métodos de autenticação do cliente (Chave de Acesso em Lote ou Azure AD):
- Serivce do Lote com Chave de Acesso
- Nome da conta do lote
- URL da conta do Lote
- Chave da conta do Lote
- Serviço do Lote ou Assinatura de Usuário com o Azure AD
- Instância do AAD do Lote
- ID do locatário do AAD do Lote
- ID do ClientApp do AAD do Lote
- Chave clientApp do AAD do Lote
- Nome da conta do lote
- URL da conta do Lote
Verifique a tabela a seguir para decidir qual tipo de conta do Lote e o método de autenticação escolher. Você também pode verificar este blog e este documento para entender mais sobre o modo de alocação do pool de Assinatura de Usuário e como usar a autenticação do Azure AD para o serviço lote do Azure.
Tipo de conta/modo de alocação de pool | Métodos de autenticação | Tipos de imagem de VM | VM de baixa prioridade | VNet |
---|---|---|---|---|
Serviço em Lote | Chave de Acesso/Azure AD | PaaS/IaaS (MarketPlaceImage) / IaaS (CustomImage via Azure AD) | Sim | Sim (via Azure AD) |
Assinatura do usuário | Azure AD | IaaS (MarketPlaceImage)/ IaaS (CustomImage) | Não | Sim |
Use a CLI do Azure para criar uma conta do Lote com o modo de alocação do Pool de Serviços em Lote e use a Chave de Acesso em Lote para autenticação como abaixo:
# Authenticate CLI session.
az login
# Select the subscription
az account set -s mysubscription
# Create a resource group.
az group create --name myresourcegroup --location mylocation
# Let's add a storage account reference to the Batch account for use as 'auto-storage'
# for applications. We'll start by creating the storage account.
az storage account create -g myresourcegroup -n mystorageaccount -l mylocation --sku Standard_LRS
# Create a Batch account.
az batch account create -g myresourcegroup -n mybatchaccount -l mylocation --storage-account mystorageaccount
# Now we can display the details of our created account.
az batch account show -g myresourcegroup -n mybatchaccount
# We can view the access keys to the Batch Account for future client authentication.
az batch account keys list -g myresourcegroup -n mybatchaccount
Usar a CLI do Azure para criar uma conta do Lote com o modo de alocação do pool de Assinatura de Usuário
# Authenticate CLI session.
az login
# Select the subscription
az account set -s mysubscription
# Allow Azure Batch to access the subscription (one-time operation).
az role assignment create --assignee MicrosoftAzureBatch --role contributor
# Create a resource group.
az group create --name myresourcegroup --location mylocation
# A Batch account that will allocate pools in the user's subscription must be configured
# with a Key Vault located in the same region. Let's create this first.
az keyvault create --resource-group myresourcegroup --name mykeyvault --location mylocation --enabled-for-deployment true --enabled-for-disk-encryption true --enabled-for-template-deployment true
# We will add an access-policy to the Key Vault to allow access by the Batch Service.
az keyvault set-policy --resource-group myresourcegroup --name mykeyvault --spn ddbf3205-c6bd-46ae-8127-60eb93363864 --key-permissions all --secret-permissions all
# Now we can create the Batch account, referencing the Key Vault either by name (if they exist in the same resource group) or by its full resource ID.
az batch account create --resource-group myresourcegroup --name mybatchaccount –location mylocation --keyvault mykeyvault
Para configurar o Azure AD para autenticação em Lote e obter informações do AAD do Lote
- Obter da Instância do AAD do Lote. Se estiver usando o Azure Cloud global, a instância do AAD será https://login.microsoftonline.com/.
- Obtenha ID de locatário do AAD do Lote. No portal do Azure, clique em Mais Serviços, pesquise e escolha do Azure Active Directory, selecione seu Active Directory selecionando sua conta no canto superior direito da página e clique em Propriedades. Copie o valor guid fornecido para a ID do diretório . Esse valor também é chamado de ID do locatário.
- Registre o aplicativo cliente do Lote e obtenha ode ID do ClientApp do AAD do Lote
.
- No portal do Azure, escolha seu locatário do Azure AD selecionando sua conta no canto superior direito da página.
- Escolha Mais serviços, pesquise e escolha registros de aplicativo.
- Clique em +Novo registro de aplicativo.
- Preencha ode Nome do
, escolha de ID do aplicativoaplicativo Web/API como de tipo de aplicativo e preencha um valor específico para seu aplicativo, por exemplo,para o URI de Logon do . Clique em Criar. - Depois que o aplicativo for criado com êxito, selecione o aplicativo na lista de Registros de Aplicativo e clique em Propriedades. Copie o valor guid fornecido para o , ele será usado como ID do ClientApp do AAD do Lote .
- Configure para usar uma entidade de serviço para autenticação e obtenha a chave do ClientApp do AAD do lote.
- Solicite uma chave secreta para o aplicativo. Selecione o aplicativo criado na lista de
registros de aplicativo e clique emChaves , digite de descriçãoChave e escolha Duração e clique emSalvar . Copie o valor exibido que será usado como de chave clientApp do AAD do Lote. - Atribua uma função RBAC ao aplicativo para autenticar com uma entidade de serviço. Escolha Mais serviços, pesquise e escolha contas do Lote, clique na conta do lote criada e selecione controle de acesso (IAM). Clique em +ADICIONAR, selecione de Função de Colaborador e o aplicativo registrado. Clique em Save (Salvar).
Observação
Observe que a autenticação do Azure AD tem suporte no modo de Serviço do Lote e no modo de Assinatura do Usuário das contas do Lote.
Importante: depois de configurar o Azure AD para autenticação em Lote com as seguintes informações do AAD do Lote obtidas, abra do Gerenciador de Cluster do HPC, em configuração de --> lista de tarefas pendentes de implantação, clique em Definir de Configuração do Lote do Azure para preencher as informações adequadamente no formulário e, em seguida, clique em OK. Essa etapa é necessária ao usar o Azure AD para autenticação em Lote no HPC Pack.
- Instância do AAD do Lote
- ID do locatário do AAD do Lote
- ID do ClientApp do AAD do Lote
- Chave clientApp do AAD do Lote
Como alternativa, você pode usar o cmdlet HPC Powershell para definir informações do AAD do Lote, conforme mostrado abaixo:
# HPC PowerShell
Set-HpcClusterRegistry -BatchAADInstance '<AAD Instance e.g. https://login.microsoftonline.com/>' -BatchAADTenantId <TenantGUID> -BatchAADClientAppId <AppGUID> -BatchAADClientAppKey '<AppKey>'
Etapa 2: Criar um modelo de pool do Lote do Azure
Para criar um modelo de pool do Lote do Azure, use o Assistente para Criar Modelo de Nó no Gerenciador de Cluster do HPC.
Para criar um modelo de pool do Lote
Inicie do Gerenciador de Cluster do HPC.
Node Configuração do
, no Painel de Navegação , clique em Modelos de Nó .No painel ações do
, clique em Novo .
O Assistente para Criar Modelo de Nó é exibido.Na página Escolher Tipo de Modelo de Nó, clique modelo de pool do Lote do Azure, e clique em Próximo.
Na página Especificar Nome do Modelo, digite um nome para o modelo de nó e, opcionalmente, digite uma descrição para ele. Clique em Avançar.
No forneça as informações da conta do Lote do Azure página, preencha o nome da conta do Lote. Se o tipo de conta do Lote for Serviço em Lote, escolha batchService como tipo de conta do Lote. Se estiver usando a Chave de Acesso em Lote para autenticação, preencha a chave como Chave de Conta, se estiver usando a autenticação do Azure AD, basta deixá-la em branco. Se o tipo de conta do Lote for Assinatura de Usuário, escolha UserSubscription como tipo de conta do Lote. Preencha o de URL da conta do Lote
e o cadeia de conexão de armazenamento do Azure que obtivemos anteriormente e clique emPróximo .
Observação
quando a autenticação do AAD for necessária, verifique se a Instância do AAD do Lote, a ID do Locatário do AAD do Lote, a ID do ClientApp do AAD do Lote e a Chave do ClientApp do AAD do Lote já estão definidas no lista de tarefas pendentes de implantaçãoou a validação da conta falhará com o erro "Conta inválida do Lote do Azure. Verifique as configurações da conta do Lote do Azure." ao clicar em Próximo.
Na página de configuração de Dimensionamento Automático do Lote do Azure
, deixe Habilitar Dimensionamento Automático desmarcado e clique emPróximo .Na página Configurar Credenciais de Área de Trabalho Remota e SSH, opcionalmente, forneça as credenciais de um usuário que será criado em nós de computação do pool do Lote do Azure durante a implantação. Você pode usar as credenciais posteriormente para se conectar aos nós de computação do pool. Para nós do Linux, você também pode especificar de Chave Pública SSH e arquivo de chave privada SSH(.ppk) para SSH para o nó por meio de putty.exe. Veja aqui como gerar uma chave pública e um arquivo de chave privada para PuTTY. Observe que se você especificar a senha e as chaves SSH, as chaves SSH serão usadas para a conexão. Você também precisa copiar o arquivo de chave privada gerado (.ppk) para %CCP_HOME%Bin pasta para abrir o SSH para os nós do HPC Cluster Manager. Clique em Avançar.
Na página Especificar Script de Inicialização, com o HPC Pack 2012 R2 Atualização 3, opcionalmente especifique um tarefa de início do Lote do Azure.
- de Linha de Comando – o comando executado quando os nós de computação do Lote do Azure são iniciados
- url de origem de blob – local de armazenamento do Azure de arquivos que você carregou anteriormente e que será baixado automaticamente para nós de computação do Lote do Azure
-
caminho de arquivo local – o local para baixar os arquivos nos nós de computação do Lote do Azure
No HPC Pack 2016 Atualização 1 ou versão posterior, opcionalmente especifique uma linha de comando ou o nome de um script de inicialização a ser executado em todos os nós de computação do Lote do Azure no pool do Lote. Atualmente, o script de inicialização só tem suporte para nós do Linux. Por exemplo, se você quiser executar um script chamado startup.sh em todos os nós do Linux em um pool do Lote quando eles forem iniciados, será necessário usar a ferramenta de linha de comando HpcPack.exe para fechar e carregar o script na conta de armazenamento do Azure, como abaixo, e especificar startup.sh na linha de comando :
HpcPack.exe create startup.sh.zip startup.sh HpcPack.exe upload startup.sh.zip /account:<StorageAccountName> /key:<StorageAccountKey>
Clique em Próximo e examine todas as configurações de modelo especificadas. Clique em Criar para gerar o modelo de nó do pool do Lote do Azure.
Etapa 3: Adicionar um pool do Lote do Azure
Use o Assistente para Adicionar Nó no Gerenciador de Cluster do HPC para adicionar os nós de computação do pool do Lote.
Para adicionar um pool do Lote do Azure
No Gerenciador de Cluster do HPC, em
de Gerenciamento de Recursos, no painel ações do , clique em Adicionar Nó . O Assistente para Adicionar Nó é exibido.Na página Selecionar Método de Implantação, clique em Adicionar pool do Lote do Azure, e clique em Próximo.
Na página Especificar Informações do Pool do Lote do Azure, selecione um modelo de pool do Lote do Azure. De acordo com o tipo de conta do Lote no modelo selecionado, especifique as informações do pool da seguinte maneira:
Se o tipo de conta do Lote for Serviço em Lote,- Número de Nós de Computação - o número de nós de computação (instâncias de máquina virtual) no novo pool do Lote do Azure
- Se as máquinas virtuais são de VM dedicada ou VM de baixa prioridade
- Escolha o tipo de imagem para PaaS ou IaaSMarketPlace. Para de PaaS, escolha o família do sistema operacional. Por exemplo, Windows Server 2016. Para IaaSMarketPlace, escolha Publisher, de Oferta e Sku. Por exemplo, Canonical, UbuntuServer, 16.04-LTS.
- Tamanho dos Nós de Computação – o tamanho da função de cada nó de computação.
- Máximo de tarefas por nó de computação – o número máximo de tarefas simultâneas a serem executadas em cada nó de computação. O número padrão é igual ao número de núcleos no tamanho da função selecionada. O número máximo é três vezes maior que o número real de núcleos. Observe que as tarefas máximas por nó de computação multiplicadas pelo número de nós de computação são iguais aos núcleos totais do nó do pool do Lote.
- Pacotes de aplicativos – opcionalmente, especifique os pacotes de aplicativos que já foram adicionados na conta do Lote no formato de <Id>:<Version>,<Id>:<Version>, ... Se o tipo de conta do Lote for Assinatura de Usuário,
- Número de nós de computação – (como acima)
- Escolha o tipo de imagem para IaaSMarketPlace ou IaaSCustomImage. Para IaaSMarketPlace, escolha Publisher, Offer e Sku. Por exemplo, Canonical, UbuntuServer, 16.04-LTS. Para IaaSCustomImage, além de Publisher, Offer e Sku, a ID de Recurso de Imagem Personalizada também é necessária no formato /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}
- Tamanho dos nós de computação – (como acima)
- Máximo de tarefas por nó de computação – (como acima)
- Pacotes de aplicativos – (como acima)
- VNet – opcionalmente, especifique a ID da sub-rede para o pool do Lote. Consulte este documento como criar uma VNet e sub-rede personalizadas e obter a ID da sub-rede. Verifique também os requisitos do Lote para uma VNet personalizada especificada este documento.
Observação
Consulte
este documento de como capturar a imagem de uma VM do Linux e obter a ID do Recurso de Imagem. Para uma imagem de VM personalizada ou uma VNet personalizada (veja abaixo), é necessário atribuir explicitamente o aplicativo cliente do Lotefunção de Colaborador ao recurso por meio de suade controle de acesso(IAM). Ou a falha de 'BadRequest' pode acontecer ao iniciar o pool do Lote.
Etapa 4: Iniciar o pool
Você precisa iniciar o pool antes de executar trabalhos nele.
Para iniciar um pool do Lote do Azure
Em de Gerenciamento de Recursos, no painel de navegação , clique em nós ou pools do Lote do Azure.
No modo de exibição de Lista de
ou mapa de calor do , selecione um ou mais pools do Lote do Azure. No painel ações do
, clique em Iniciar .A caixa de diálogo Iniciar Pools do Lote do Azure é exibida. Clique em Iniciar.
O estado dos nós muda de não implantados para provisionamento.
Se você quiser acompanhar o progresso do provisionamento, selecione o pool e, no Painel de Detalhes do
, clique na guia de Log de Provisionamento do . O pool do Lote do Azure deve ser criado em menos de 1 minuto e o estado é alterado para offline.
considerações adicionais
Monitorar o status dos nós de computação do Lote do Azure– depois que o pool do Lote do Azure estiver pronto, os nós de computação do Lote do Azure ainda estarão sendo criados e iniciados. Para monitorar o status do nó, selecione o pool e, no Painel de Detalhes do , clique em de Nós de Computação em Lote do Azure.
Área de Trabalho Remota ou SSH para nós de computação – depois que os nós de computação no pool do Lote do Azure forem iniciados (o estado do nó é ocioso), você pode se conectar por Área de Trabalho Remota ou SSH a cada nó de computação se tiver configurações de modelo definidas para fazer isso, por exemplo, para executar alguma configuração manual ou solução de problemas. Para fazer isso, selecione um ou mais pools do Lote do Azure e, no painel Ações, clique em Área de Trabalho Remota/SSH. Ao se conectar a nós do Linux por meio de SSH, é necessário copiar o arquivo de chave privada gerado (.ppk) para a pasta %CCP_HOME%Bin no computador cliente.
Exibir tarefas de inicialização - Se você especificou uma tarefa de inicialização no modelo de pool do Lote do Azure, depois que o pool do Lote do Azure for iniciado, você poderá exibir a saída detalhada da tarefa de inicialização executando o seguinte cmdlet do HPC PowerShell:
Get-HpcBatchPoolStartTask -Name <PoolName>
exibição de mapa de calor – enquanto o pool do Lote do Azure está em execução, exiba o mapa de calor do pool. Em de Gerenciamento de Recursos no painel de navegação, clique em nóse escolha modo de exibição mapa de calor. Você também pode verificar o mapa de calor por VM para nós do Linux no pool. No de Gerenciamento de Recursos do
no painel de navegação, clique em de Pools do Lote do Azure e escolha exibição mapa de calor . Atualmente, os seguintes contadores de desempenho são coletados:- Uso da CPU
- Taxa de transferência de disco
- Espaço livre em disco
- Uso de rede
- Memória física disponível
.
Etapa 5: Executar um trabalho no pool
Atualmente, o HPC Pack dá suporte à execução do trabalho normal em lote/paramétrico/mpi e comandos de clusters em pools do Lote do Azure. Observe as seguintes recomendações para usar clusrun com o Lote:
Execute clusrun trabalhos em um pool do Lote do Azure quando nenhum outro trabalho em execução no pool. Se houver outros trabalhos ou tarefas em execução, o executar trabalho poderá precisar aguardar a conclusão das tarefas em execução.
Trabalhos em execução em um pool do Lote do Azure por padrão não retornam a saída da tarefa para o HPC Pack devido ao potencial impacto no desempenho. Você pode definir tarefas de versão do nó no trabalho para recuperar a saída da tarefa, se desejar. Para recuperar a saída da tarefa, altere a seguinte propriedade de cluster por meio do HPC PowerShell:
Set-HpcClusterProperty -GetAzureBatchTaskOutput $true
Etapa 6: Parar o pool
Quando você não estiver usando o pool do Lote, interrompa os recursos do Azure. Isso desprovisiona os nós de computação do pool, reduzindo os custos do uso de um pool do Lote.
Para interromper o pool
Node Gerenciamento de Recursos
, no Painel de Navegação do , clique em nósou pools do Lote do Azure .No modo de exibição de Mapa de Calor
Ou , selecione um ou mais pools do Lote do Azure que você deseja interromper. No painel ações
, clique em Parar .A caixa de diálogo Parar Pools do Lote do Azure é exibida. Clique em Parar.
Se você quiser acompanhar o progresso da parada, selecione um nó e, no Painel de Detalhes do
, clique na guia de Log de Provisionamento de .
Consulte também
Microsoft HPC Pack: de implantação de nó