Exercício - Adicionar um disco ao nó de agendamento de um cluster 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 isso, você aproveitará a hospedagem do repositório GitHub do Azure CycleCloud 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 seu aplicativo Azure CycleCloud, usará a interface gráfica do aplicativo para criar um cluster e, finalmente, validará a alteração na configuração de armazenamento.

Importante

Para completar os exercícios deste módulo, você tem que satisfazer os seguintes pré-requisitos:

  • Ter uma assinatura do Azure com disponibilidade de núcleos vCPU nos três grupos de tamanhos de VM:
    • pelo menos 4 núcleos vCPU da série DSv3
    • pelo menos 100 núcleos vCPU da série FSv2
    • pelo menos 48 núcleos vCPU da série NC
  • Ter uma conta Microsoft ou uma conta Microsoft Entra com a função de Proprietário ou Colaborador na subscrição 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 a aplicação Azure CycleCloud com acesso ao nível de função Proprietário ou Colaborador na subscrição do Azure.
  • Tenha uma conta de usuário do aplicativo Azure CycleCloud com a função de 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 do 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 do Azure CycleCloud Slurm
  • 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, portanto, você começará instalando-a e conectando-a ao seu 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 seu computador, inicie qualquer navegador da Web compatível com o portal do Azure, navegue até o portal do Azuree, quando solicitado, autentique-se com uma conta da Microsoft ou uma conta do Microsoft Entra que tenha a função de Colaborador ou Proprietário na assinatura do Azure que você usará neste módulo.

    Observação

    O portal do Azure suporta os 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 lhe for pedido que selecione Bash ou PowerShell, selecione Bash.

    Observação

    Se esta for a primeira vez que está a iniciar o Azure Cloud Shell e lhe for apresentada a mensagem Não tem armazenamento montado, selecione a subscrição que está a utilizar neste exercício e, em seguida, selecione Criarde armazenamento .

  4. Na sessão Bash no painel do Azure Cloud Shell, execute o seguinte comando para definir o valor de uma variável como o endereço IP público do servidor de aplicações 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 relativas à 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 espaços reservados <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 parâmetro --verify-ssl definido como false acomoda cenários em que o aplicativo Azure CycleCloud é configurado com um certificado autoassinado ou um certificado de 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 sua configuração de locker:

    cyclecloud locker list
    

    Observação

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

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

Tarefa 2: Configurar um projeto do Azure CycleCloud Slurm

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ê irá buscá-lo em seu diretório base no Azure Cloud Shell e, em seguida, carregá-lo para o armário do Azure CycleCloud.

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

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

    Observação

    Certifique-se de incluir o ponto final no final do segundo comando.

  2. Execute o seguinte comando para designar o armário padrão e carregar o projeto nele (substitua o espaço reservado <locker_name> pelo nome do armário identificado 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>, onde o espaço reservado <locker_name> designa o nome do armário.

    Observação

    Ignore a mensagem de erro relacionada com o azcopy indicando 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 seguida por Upload failed! enquanto as cópias individuais dos arquivos de projeto forem bem-sucedidas. Para confirmar isso, verifique se o status final do trabalho está listado como Completed, com zero transferências falhadas.

Tarefa 3: Implementar um modelo personalizado do Azure CycleCloud

Agora, você baixará e modificará o modelo de exemplo do Azure CycleCloud que é compatível com o projeto baseado no GitHub buscado. Você o usará para definir uma configuração de armazenamento personalizada que inclua um disco extra anexado ao nó do agendador e exportado por NFS (Network File System, 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 seu 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, incluindo o editor interno do Azure Cloud Shell.

  4. Dentro da interface do editor nano, vá para a seção [[node scheduler]]. Nessa seção, localize a subseção [[[volume shared]]], 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 estiver a utilizar um computador Windows, pode colar o conteúdo da Área de Transferência (Clipboard) utilizando a combinação de teclas Shift + Insert.

    Observação

    Suas alterações definem dois discos de armazenamento Premium de 128 GB em volume baseado em stripes que serão montados automaticamente no nó principal durante o seu provisionamento. O volume usará o ponto de montagem /mnt/exports/ e será formatado automaticamente como o sistema de arquivos ext4. A configuração Persistent = true indica que os discos persistirão quando você encerrar 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 total de nós (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 seu computador, abra outra janela do navegador e navegue até a URL de https://<IP_address> (substitua o espaço reservado <IP_address> pelo endereço IP público do servidor de aplicativos do Azure CycleCloud). Se solicitado, confirme que 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é à página Clusters e depois selecione +.

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

    Captura de ecrã da página Criar um Novo Cluster da aplicação Web Azure CycleCloud.

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

    Captura de ecrã do separador Acerca da página Novo Cluster Slurm da aplicação Web Azure CycleCloud.

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

    Cenário Valor
    Região Selecione o nome da região do Azure onde você pretende implantar o cluster neste exercício.
    Tipo de VM do Agendador Selecione e escolha na janela pop-up Selecione um tipo de máquina. Na caixa de texto Pesquisa de SKU, digite D4s_v3. Na lista de resultados, selecione a caixa de seleção ao lado da entrada D4s_v3 e, em seguida, clique em Aplicar.

    Observação

    Certifique-se de selecionar 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.

    Cenário Valor
    Núcleos HPC máximos Digite 100.
    Número Máximo de Núcleos HTC Digite 100.
    Máximo de VMs por conjunto de escalas Digite 40.
    ID da sub-rede Selecione cyclecloud-rg: cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet.
  7. Na guia Network Attached Storage da página New Slurm Cluster, verifique se o NFS Type está definido como Builtin, aceite o valor padrão de Size (GB) está definido como 100e selecione Next.

    Captura de ecrã do separador Armazenamento Anexado à Rede na página Novo Cluster Slurm da Aplicação Web Azure CycleCloud.

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

    Captura de ecrã do separador Definições Avançadas da página Novo Cluster Slurm da Aplicação Web Azure CycleCloud.

  9. Na guia Cloud-init da página New Slurm Cluster, revise 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 solicitado a confirmar, selecione OK.

    Captura de ecrã da página do separador 'Nós' de contoso-slurm-lab-cluster no estado 'Desativado' na aplicação Web Azure CycleCloud.

  11. Monitore o processo de inicialização.

    Observação

    O processo envolve o provisionamento da VM do Azure que serve a função do nó principal do cluster, a instalação e a configuração do agendador do Swarm e a criação e montagem de volumes de disco. Isto pode demorar cerca de cinco minutos.

  12. Depois que o status do nó do agendador mudar para Ready, selecione sua entrada na guia Nós e, em seguida, selecione Mostrar Detalhes para exibir a sua visão detalhada.

    Captura de ecrã 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 até a seção Volumes e verifique se as entradas nfs-1 e nfs-2 exibem na lista de volumes.

    Captura de ecrã da página do separador Nó da vista detalhada de um cluster configurado com dois volumes NFS adicionais.

Parabéns;! 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 do Azure CycleCloud GitHub, 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 se a alteração personalizada entrou em vigor.

Observação

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