Exercício – adicionar um disco ao nó do agendador de um cluster de HPC

Concluído

O Azure CycleCloud depende de modelos para definir configurações de cluster. Sua implementação padrão inclui modelos internos para os agendadores mais comuns, mas você pode encontrar vários outros no repositório GitHub do Azure CycleCloud.

Lembre-se de que você queria testar o processo de implementação de um cluster usando um modelo personalizado do Azure CycleCloud. Para essa finalidade, você aproveitará o repositório GitHub do Azure CycleCloud que hospeda o projeto Slurm com curadoria da Microsoft. Você modificará um modelo de cluster existente desse repositório alterando a configuração de armazenamento do nó do agendador, importará o modelo recém-modificado para o aplicativo Azure CycleCloud, usará a interface gráfica do aplicativo para criar um cluster e, por fim, validará a alteração da configuração de armazenamento.

Importante

Para concluir os exercícios neste módulo, você precisa atender aos seguintes pré-requisitos:

  • Tenha uma assinatura do Azure com disponibilidade de núcleos de vCPU nos três grupos de tamanhos de VM:
    • pelo menos 4 núcleos de vCPU da série DSv3
    • pelo menos 100 núcleos de vCPU da série FSv2
    • pelo menos 48 núcleos de vCPU da série NC
  • Tenha uma conta da Microsoft ou uma conta do Microsoft Entra com a função Proprietário ou Colaborador na assinatura do Azure.
  • Implante um aplicativo do Azure CycleCloud em uma VM do Azure acessível com um endereço IP público associado à sua interface de rede.
  • Configure o aplicativo Azure CycleCloud com acesso no nível de proprietário ou colaborador à assinatura do Azure.
  • Tenha uma conta de usuário do aplicativo Azure CycleCloud com a função administrador.
  • Crie uma sub-rede de rede virtual do Azure na qual você pode implantar nós de cluster.
  • Tenha a chave privada do par de chaves SSH usada para configurar o aplicativo Azure CycleCloud.

Observação

Para obter informações sobre como identificar e aumentar as cotas de vCPU em uma assinatura do Azure, consulte a seguinte documentação:

Observação

Você precisará da chave privada para se conectar diretamente aos nós de cluster no último exercício deste módulo.

Neste exercício, você executará as seguintes tarefas:

  • Tarefa 1: Instalar e configurar a CLI do Azure CycleCloud
  • Tarefa 2: Configurar um projeto de Slurm do Azure CycleCloud
  • Tarefa 3: Implementar um modelo personalizado do Azure CycleCloud
  • Tarefa 4: iniciar um novo cluster e examinar sua configuração de armazenamento

Tarefa 1: Instalar e configurar a CLI do Azure CycleCloud

A maioria das tarefas de gerenciamento neste e nos exercícios subsequentes usa a CLI do Azure CycleCloud, para que você comece instalando-a e conectando-a ao aplicativo Azure CycleCloud. Para simplificar a configuração inicial, você usará o Azure Cloud Shell.

Observação

Como alternativa, você pode entrar na VM do Azure hospedada no aplicativo Azure CycleCloud, onde a CLI do Azure CycleCloud já está instalada.

  1. No computador, inicie qualquer navegador da Web compatível com o portal do Azure, navegue até o portal do Azure e, quando solicitado, autentique-se com uma conta da Microsoft ou uma conta do Microsoft Entra que tenha a função Colaborador ou Proprietário na assinatura do Azure que você usará neste módulo.

    Observação

    O portal do Azure dá suporte aos navegadores da Web modernos mais comuns, incluindo as versões atuais do Microsoft Edge, Google Chrome, Mozilla Firefox e Apple Safari.

  2. No portal do Azure, abra o Cloud Shell selecionando seu ícone na barra de ferramentas ao lado da caixa de texto de pesquisa.

  3. Se for solicitado que você selecione Bash ou PowerShell, selecione Bash.

    Observação

    Se esta for a primeira vez que você está iniciando o Azure Cloud Shell e receber a mensagem Você não tem nenhum armazenamento montado, selecione a assinatura que está usando neste exercício e, em seguida, selecione Criar armazenamento.

  4. Na sessão bash no painel do Azure Cloud Shell , execute o seguinte comando para definir o valor de uma variável para o endereço IP público do servidor de aplicativos do Azure CycleCloud (substitua o espaço reservado <public_ip_address> pelo endereço IP público real):

    PIP=<public_ip_address>
    
  5. Execute o seguinte comando para baixar o arquivo .zip que contém o instalador da CLI específica da instância do Azure CycleCloud:

    curl -O --insecure https://$PIP/static/tools/cyclecloud-cli.zip
    
  6. Execute os seguintes comandos sucessivamente para extrair e executar o script que executa a instalação da CLI do Azure CycleCloud:

    unzip ./cyclecloud-cli.zip
    cd ./cyclecloud-cli-installer
    ./install.sh
    

    Observação

    Ignore todas as mensagens relacionadas à variável de ambiente de caminho e continue para a próxima etapa.

  7. Execute o seguinte comando para estabelecer uma conexão com a instância do Azure CycleCloud, onde os marcadores de posição <username> e <password> designam as credenciais da sua conta de usuário do aplicativo Azure CycleCloud com a função de Administrador:

    cyclecloud initialize --batch --url=https://$PIP --username=<username> --password=<password> --verify-ssl=false
    

    Observação

    O conjunto de parâmetros --verify-ssl para false visa acomodar cenários em que o aplicativo Azure CycleCloud está configurado com um certificado autoassinado ou um certificado emitido por uma autoridade de certificação não confiável.

  8. Execute o seguinte comando para verificar a conexão com a instância do Azure CycleCloud, exibindo a configuração do cofre.

    cyclecloud locker list
    

    Observação

    A saída deve incluir os nomes dos cofres para cada assinatura do Azure registrada no CycleCloud e os respectivos contêineres em contas individuais do Armazenamento do Microsoft Azure. Você deve registrar o nome do cofre correspondente à assinatura do Azure que pretende usar para este laboratório, pois você precisará dele mais tarde neste exercício. A saída do comando está no seguinte formato (em que o <locker-name> espaço reservado representa o nome do armário, o <storage_account_name> espaço reservado representa o nome da conta de armazenamento que hospeda esse armário e o <container_name> espaço reservado representa o nome do contêiner de armário dentro dessa conta de armazenamento):

    <locker-name> (az://<storage_account_name>/<container_name>)
    

Tarefa 2: Configurar um projeto de Slurm do Azure CycleCloud

Em seguida, você configurará um projeto de exemplo do Azure CycleCloud Slurm. Você aproveitará um projeto slurm existente do repositório GitHub do Azure CycleCloud. Você o buscará em seu diretório inicial no Azure Cloud Shell e, em seguida, o carregará no cofre do Azure CycleCloud.

  1. Em seu computador, na sessão Bash do painel do Azure Cloud Shell, execute os seguintes comandos para criar um diretório de projeto e buscar um projeto Slurm do repositório correspondente do GitHub para ele.

    mkdir ~/cyclecloud-slurm && cd ~/cyclecloud-slurm
    cyclecloud project fetch https://github.com/Azure/cyclecloud-slurm . 
    

    Observação

    Não deixe de incluir o ponto à direita no final do segundo comando.

  2. Execute o comando a seguir para designar o armário padrão e carregar o projeto nele (substitua o espaço reservado <locker_name> pelo nome do armário que você identificou na tarefa anterior, como cc-lab-subscription-storage):

    cyclecloud project default_locker <locker_name>
    cyclecloud project upload 
    

    Observação

    Como alternativa, você pode executar cyclecloud project upload <locker_name>, em que o espaço reservado <locker_name> designa o nome do cofre.

    Observação

    Ignore a mensagem de erro relacionada ao azcopy informando Cannot perform sync due to error: sync must happen between source and destination of the same type, e.g., either file <-> file, or directory/container <-> directory/container seguido por Upload failed!, desde que as cópias individuais dos arquivos de projeto sejam bem-sucedidas. Para confirmar isso, verifique se o status final do trabalho está listado como Completed, com nenhuma falha nas transferências.

Tarefa 3: Implementar um modelo personalizado do Azure CycleCloud

Agora, você baixará e modificará o modelo de exemplo do Azure CycleCloud compatível com o projeto baseado no GitHub buscado. Você o usará para definir uma configuração de armazenamento personalizada que inclui um disco extra anexado ao nó do agendador e exportado por meio do NFS (sistema de arquivos de rede). Após essa modificação, você a importará para seu aplicativo Azure CycleCloud.

Observação

Você pode examinar o conteúdo do modelo com um navegador da Web navegando até o repositório Azure/cyclecloud-slurm.

  1. No computador, na janela do navegador da Web que exibe a sessão bash no painel do Azure Cloud Shell , execute o seguinte comando para alterar o diretório de trabalho para o repositório recém-buscado:

    cd ~/cyclecloud-slurm/templates
    
  2. Execute os seguintes comandos para criar um backup do modelo de cluster original:

    cp slurm.txt slurm.bak.txt
    
  3. Execute o seguinte comando para abrir o modelo baixado no editor nano:

    nano slurm.txt
    

    Observação

    Em vez do editor nano, você pode usar qualquer outro editor de texto disponível para você, incluindo o editor interno do Azure Cloud Shell.

  4. Dentro da interface do editor nano, vá para a [[node scheduler]] seção. Nessa seção, localize a [[[volume shared]]] subseção, mova para a linha Persistent = ${NFSType == "Builtin"}e adicione o seguinte conteúdo depois dela:

    
        # Add 2 premium disks in a RAID 0 configuration to the NFS export
        [[[volume nfs-1]]]
        Size = 128
        StorageAccountType = Premium_LRS
        Mount = nfs
        Persistent = true
    
        [[[volume nfs-2]]]
        Size = 128
        StorageAccountType = Premium_LRS
        Mount = nfs
        Persistent = true
    
        [[[configuration cyclecloud.mounts.nfs]]]
        mountpoint = /mnt/exports/lab
        fs_type = ext4
        raid_level = 0
    
    

    Observação

    Se você estiver usando um computador Windows, cole o conteúdo da área de transferência usando a combinação de teclas SHIFT+INSERT.

    Observação

    Suas alterações definem dois discos de armazenamento Premium de 128 GB em um volume baseado em faixa que serão montados automaticamente no nó de cabeçalho durante o provisionamento. O volume usará o ponto de montagem /mnt/exports/e será formatado automaticamente como o sistema de arquivos ext4. A Persistent = true configuração indica que os discos persistirão quando você terminar o cluster, mas eles serão excluídos automaticamente se você excluir o cluster.

    Observação

    O Azure CycleCloud implementa os volumes como discos gerenciados do Azure.

  5. Na interface do editor nano, selecione a combinação de teclas Ctrl + O , selecione a tecla Enter e, em seguida, selecione a combinação de teclas Ctrl + X para salvar as alterações feitas e fechar o arquivo.

    Observação

    Neste ponto, você pode usar sua conexão com o aplicativo Azure CycleCloud por meio da CLI para importar o modelo.

  6. Execute o seguinte comando para importar o modelo modificado na tarefa anterior para o aplicativo Azure CycleCloud:

    cyclecloud import_template -f ~/cyclecloud-slurm/templates/slurm.txt
    

    Observação

    O comando exibirá o nome do modelo importado, o estado do agendador (scheduler: Off -- --) e o número de nós totais (Total nodes: 1).

Tarefa 4: iniciar um novo cluster e examinar sua configuração de armazenamento

Para concluir este exercício, você verificará se o modelo importado para o aplicativo Azure CycleCloud fornece a funcionalidade pretendida criando um novo cluster e revisando a configuração de armazenamento de seu nó principal para garantir que ele inclua um volume composto por dois discos persistentes.

  1. No computador, abra outra janela do navegador e navegue até a URL https://<IP_address> (substitua o <marcador de posição IP_address> pelo endereço IP público do servidor de aplicativos do Azure CycleCloud). Se solicitado, confirme se deseja continuar.

  2. Se solicitado a autenticar, entre fornecendo credenciais da mesma conta de usuário do aplicativo Azure CycleCloud que você usou para configurar a CLI do Azure CycleCloud.

  3. Na interface gráfica do Azure CycleCloud, navegue até a página Clusters e selecione +.

  4. Na página Criar um Novo Cluster , selecione o ícone rotulado Slurm na forma de um triângulo isósceles com círculos pequenos em cada um de seus vértices.

    Captura de tela da página Criar um Novo Cluster do aplicativo Web do Azure CycleCloud.

  5. Na guia Sobre da página Novo Cluster do Slurm, insira contoso-custom-slurm-lab-cluster na caixa de texto Nome do Cluster.

    Captura de tela da guia Sobre da página Novo Cluster do Slurm do aplicativo Web do Azure CycleCloud.

  6. Na guia Configurações Necessárias da página Novo Cluster Slurm, defina as seguintes configurações (deixe as outras configurações com seus valores padrão) e selecione Avançar:

    Configurações Valor
    Região Selecione o nome da região do Azure em que você pretende implantar o cluster neste exercício.
    Tipo de VM do agendador Selecione Escolher na janela pop-up Selecionar um tipo de máquina. Na caixa de texto Pesquisa de SKU , insira D4s_v3. Na lista de resultados, marque a caixa de seleção ao lado da entrada D4s_v3 e selecione Aplicar.

    Observação

    Verifique se você seleciona o tamanho da VM que dá suporte à camada Premium do Armazenamento do Azure, que é necessária para provisionar discos do nó principal de acordo com sua configuração personalizada.

    Configurações Valor
    Número máximo de núcleos HPC Insira 100.
    Máximo de núcleos do HTC Insira 100.
    Número máximo de VMs por conjunto de dimensionamento Insira 40.
    ID da Sub-rede Selecione cyclecloud-rg: cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet.
  7. Na guia NAS da página Novo Cluster do Slurm, verifique se Tipo de NFS está definido como BuiltIn, aceite o valor padrão de Tamanho (GB) definido como 100 e selecione Avançar.

    Captura de tela da guia NAS da página Novo Cluster do Slurm do aplicativo Web do Azure CycleCloud.

  8. Na guia Configurações Avançadas da página Novo Cluster de Slurm , examine as opções disponíveis sem fazer alterações e selecione Avançar.

    Captura de tela da guia Configurações Avançadas da página Novo Cluster do Slurm do aplicativo Web do Azure CycleCloud.

  9. Na guia Cloud-init da página Novo Cluster Slurm, examine as opções disponíveis sem fazer alterações e selecione Salvar.

  10. Na página contoso-custom-slurm-lab-cluster, selecione o link Iniciar. Quando sua confirmação for solicitada, selecione OK.

    Captura de tela da página da guia Nós de contoso-slurm-lab-cluster no estado desativado no aplicativo Web do Azure CycleCloud.

  11. Monitore o processo de inicialização.

    Observação

    O processo envolve o provisionamento da VM do Azure que atende à função do nó mestre do cluster, a instalação e a configuração do agendador Swarm e a criação e montagem de volumes de disco. Isso pode levar cerca de cinco minutos.

  12. Depois que o status do nó do agendador for alterado para Pronto, selecione a entrada dele na guia Nós e escolha Mostrar Detalhes para mostrar a respectiva exibição detalhada.

    Captura de tela da guia Nós do nó do agendador de um contoso-custom-slurm-lab-cluster.

  13. Na janela pop-up Mostrando o agendador no cluster contoso-custom-slurm-lab-cluster, alterne para a guia , role a página até a seção Volumes e verifique se as entradas nfs-1 e nfs-2 são exibidas na lista de volumes.

    Captura de tela da página guia Nó da exibição detalhada de um cluster configurado com dois volumes NFS adicionais.

Parabéns! Você concluiu com sucesso o primeiro exercício deste módulo. Neste exercício, você implementou um cluster com base em um modelo personalizado do Azure CycleCloud. Você usou a CLI do Azure CycleCloud para importar um projeto de exemplo hospedado no repositório GitHub do Azure CycleCloud, incluindo uma cópia personalizada de um de seus modelos. Em seguida, você criou um cluster com base no modelo importado com a interface gráfica do Azure CycleCloud, iniciou-o e verificou que a alteração personalizada entrou em vigor.

Observação

Não exclua os recursos implantados e configurados neste exercício se você planeja executar o próximo exercício neste módulo. Esses recursos são necessários para você concluir o próximo exercício.