Exercício - Adicionar um disco ao nó do agendador 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á 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 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 o aplicativo Azure CycleCloud com o acesso de nível de função Proprietário ou Colaborador à assinatura 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.

Nota

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

Nota

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.

Nota

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 Azure e, 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.

    Nota

    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 você for solicitado a selecionar Bash ou PowerShell, selecione Bash.

    Nota

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

    Nota

    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 e <password> designam <username> 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
    

    Nota

    O --verify-ssl parâmetro definido para false acomodar 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
    

    Nota

    A saída deve incluir os nomes dos armários para cada assinatura do Azure registrada no CycleCloud e seus respetivos contêineres em contas individuais do 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 representa o nome do armário, o espaço reservado representa o nome da conta de armazenamento que hospeda esse armário e o espaço reservado representa o <locker-name> <storage_account_name> <container_name> 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, na 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 . 
    

    Nota

    Certifique-se de incluir o período à direita 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 
    

    Nota

    Como alternativa, você pode executar cyclecloud project upload <locker_name>, onde o espaço reservado <locker_name> designa o nome do armário.

    Nota

    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! 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 com falha.

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.

Nota

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
    

    Nota

    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 [[node scheduler]] seção. Nessa seção, localize a subseção, mova para a [[[volume shared]]] 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
    
    

    Nota

    Se estiver a utilizar um computador Windows, pode colar o conteúdo da Área de Transferência utilizando a combinação de teclas Shift + Insert .

    Nota

    Suas alterações definem dois discos de armazenamento Premium de 128 GB em um volume baseado em distribuição que será montado automaticamente no nó principal durante seu 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ê encerrar o cluster, mas serão excluídos automaticamente se você excluir o cluster.

    Nota

    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.

    Nota

    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
    

    Nota

    O comando exibirá o nome do modelo importado, o estado do agendador () e o número total de nós (scheduler: Off -- --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 IP_address https://< (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é 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 pequenos círculos em cada um de seus vértices.

    Screenshot of the Create a New Cluster page of the Azure CycleCloud web application.

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

    Screenshot of the About tab of the New Slurm Cluster page of the Azure CycleCloud web application.

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

    Definição valor
    País/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 Escolher na janela pop-up Selecionar um tipo de máquina. Na caixa de texto Pesquisa de SKU, digite D4s_v3. Na lista de resultados, marque a caixa de seleção ao lado da entrada D4s_v3 e, em seguida, selecione Aplicar.

    Nota

    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.

    Definição valor
    Núcleos HPC máximos Introduza 100.
    Max Núcleos HTC Introduza 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 Tipo NFS está definido como Builtin, aceite o valor padrão de Tamanho (GB) definido como 100 e selecione Avançar.

    Screenshot of the Network Attached Storage tab of the New Slurm Cluster page of the Azure CycleCloud web application.

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

    Screenshot of the Advanced Settings tab of the New Slurm Cluster page of the Azure CycleCloud web application.

  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.

    Screenshot of the Nodes tab page of contoso-slurm-lab-cluster in the off state in the Azure CycleCloud web application.

  11. Monitore o processo de inicialização.

    Nota

    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 for alterado para Pronto, selecione sua entrada na guia Nós e, em seguida, selecione Mostrar Detalhes para exibir sua exibição detalhada.

    Screenshot of the Nodes tab of the scheduler node of a contoso-custom-slurm-lab-cluster.

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

    Screenshot of the Node tab page of the detailed view of a cluster configured with two additional NFS volumes.

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.

Nota

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.