Esercizio - Aggiungere un disco al nodo dell'utilità di pianificazione di un cluster HPC

Completato

Azure CycleCloud si basa su modelli per definire le configurazioni dei cluster. L'implementazione predefinita include modelli predefiniti per le utilità di pianificazione più comuni, ma è possibile trovare altri modelli nel repository GitHub di Azure CycleCloud.

Ricordare che si vuole testare il processo di implementazione di un cluster usando un modello di Azure CycleCloud personalizzato. A questo scopo, si userà il repository GitHub di Azure CycleCloud che ospita il progetto Slurm curato da Microsoft. Si modificherà un modello di cluster esistente di questo repository modificando la configurazione dell'archiviazione del nodo dell'utilità di pianificazione, si importerà il modello appena modificato nell'applicazione Azure CycleCloud, si userà l'interfaccia grafica dell'applicazione per creare un cluster e infine si convaliderà la modifica della configurazione dell'archiviazione.

Importante

Per completare gli esercizi in questo modulo, è necessario soddisfare i prerequisiti seguenti:

  • Disporre di una sottoscrizione di Azure con disponibilità di core vCPU nei tre gruppi di dimensioni delle macchine virtuali:
    • almeno 4 core vCPU della serie DSv3
    • almeno 100 core vCPU della serie FSv2
    • almeno 48 core vCPU della serie NC
  • Disporre di un account Microsoft o un account Microsoft Entra con il ruolo Proprietario o Collaboratore nella sottoscrizione di Azure.
  • Distribuire un'applicazione Azure CycleCloud in una macchina virtuale di Azure accessibile con un indirizzo IP pubblico associato alla relativa interfaccia di rete.
  • Configurare l'applicazione Azure CycleCloud con l'accesso a livello del ruolo Proprietario o Collaboratore alla sottoscrizione di Azure.
  • Disporre di un account utente dell'applicazione Azure CycleCloud con il ruolo di amministratore.
  • Creare una subnet di rete virtuale di Azure in cui è possibile distribuire i nodi del cluster.
  • Disporre della chiave privata della coppia di chiavi SSH usata per configurare l'applicazione Azure CycleCloud.

Nota

Per informazioni sull'identificazione e sull'aumento delle quote di vCPU in una sottoscrizione di Azure, vedere la documentazione seguente:

Nota

Sarà necessaria la chiave privata per connettersi direttamente ai nodi del cluster nell'ultimo esercizio di questo modulo.

In questo esercizio si eseguiranno le seguenti attività:

  • Attività 1: Installare e configurare l'interfaccia della riga di comando di Azure CycleCloud
  • Attività 2: Configurare un progetto Slurm di Azure CycleCloud
  • Attività 3: Implementare un modello di Azure CycleCloud personalizzato
  • Attività 4: Avviare un nuovo cluster ed esaminarne la configurazione dell'archiviazione

Attività 1: Installare e configurare l'interfaccia della riga di comando di Azure CycleCloud

La maggior parte delle attività di gestione in questo esercizio e in quelli successivi utilizza l'interfaccia della riga di comando di Azure CycleCloud, quindi si inizierà installandola e connettendola all'applicazione Azure CycleCloud. Per semplificare la configurazione iniziale, si userà Azure Cloud Shell.

Nota

In alternativa, è possibile accedere alla macchina virtuale di Azure ospitata nell'applicazione Azure CycleCloud dove è già installata l'interfaccia della riga di comando di Azure CycleCloud.

  1. Dal computer avviare qualsiasi Web browser compatibile con il portale di Azure, passare al portale di Azure e, quando viene richiesto, eseguire l'autenticazione con un account Microsoft o Microsoft Entra con il ruolo Collaboratore o Proprietario nella sottoscrizione di Azure che verrà usata in questo modulo.

    Nota

    Il portale di Azure supporta i Web browser moderni più comuni, tra cui le versioni correnti di Microsoft Edge, Google Chrome, Mozilla Firefox e Apple Safari.

  2. Nel portale di Azure aprire Cloud Shell selezionando la relativa icona sulla barra degli strumenti accanto alla casella di testo di ricerca.

  3. Se viene richiesto di selezionare Bash o PowerShell, selezionare Bash.

    Nota

    Se è la prima volta che si avvia Azure Cloud Shell e viene visualizzato il messaggio Non sono state montate risorse di archiviazione, selezionare la sottoscrizione in uso in questo esercizio, quindi selezionare Crea archivio.

  4. Nella sessione di Bash, nel riquadro Azure Cloud Shell eseguire il comando seguente per impostare il valore di una variabile sull'indirizzo IP pubblico del server applicazioni Azure CycleCloud (sostituire il segnaposto <public_ip_address> con l'indirizzo IP pubblico effettivo):

    PIP=<public_ip_address>
    
  5. Eseguire il comando seguente per scaricare il file ZIP contenente il programma di installazione dell'interfaccia della riga di comando specifico dell'istanza di Azure CycleCloud:

    curl -O --insecure https://$PIP/static/tools/cyclecloud-cli.zip
    
  6. Eseguire i comandi seguenti in successione per estrarre ed eseguire lo script che avvia l'installazione dell'interfaccia della riga di comando di Azure CycleCloud:

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

    Nota

    Ignorare eventuali messaggi relativi alla variabile di ambiente del percorso e continuare con il passaggio successivo.

  7. Eseguire il comando seguente per stabilire una connessione all'istanza di Azure CycleCloud, dove i segnaposto <username> e <password> designano le credenziali dell'account utente dell'applicazione Azure CycleCloud con il ruolo di amministratore:

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

    Nota

    Il parametro --verify-ssl impostato su false consente di supportare scenari in cui l'applicazione Azure CycleCloud è configurata con un certificato autofirmato o un certificato di un'autorità di certificazione non attendibile.

  8. Eseguire il comando seguente per verificare la connessione all'istanza di Azure CycleCloud visualizzando la relativa configurazione del locker:

    cyclecloud locker list
    

    Nota

    L'output deve includere i nomi dei locker per ogni sottoscrizione di Azure registrata con CycleCloud e i rispettivi contenitori nei singoli account di archiviazione di Azure. È necessario registrare il nome del locker corrispondente alla sottoscrizione di Azure che si intende usare per questo lab, perché sarà necessario più avanti in questo esercizio. L'output del comando è nel formato seguente (dove il segnaposto <locker-name> rappresenta il nome del locker, il segnaposto <storage_account_name> rappresenta il nome dell'account di archiviazione che ospita tale locker e il segnaposto <container_name> rappresenta il nome del contenitore del locker in tale account di archiviazione):

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

Attività 2: Configurare un progetto Slurm di Azure CycleCloud

Successivamente, si configurerà un progetto Slurm di Azure CycleCloud di esempio. Si userà un progetto Slurm esistente disponibile nel repository GitHub di Azure CycleCloud. Sarà necessario recuperarlo nella home directory in Azure Cloud Shell e quindi caricarlo nel locker Azure CycleCloud.

  1. Nel computer, nella sessione di Bash nel riquadro Azure Cloud Shell eseguire i comandi seguenti per creare una directory di progetto e recuperare un progetto Slurm dal repository GitHub corrispondente.

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

    Nota

    Assicurarsi di includere il punto alla fine del secondo comando.

  2. Eseguire il comando seguente per designare il locker predefinito e caricarvi il progetto (sostituire il segnaposto <locker_name> con il nome del locker identificato nell'attività precedente, ad esempio, cc-lab-subscription-storage):

    cyclecloud project default_locker <locker_name>
    cyclecloud project upload 
    

    Nota

    In alternativa, è possibile eseguire cyclecloud project upload <locker_name>, dove il segnaposto <locker_name> designa il nome del locker.

    Nota

    Ignorare il messaggio di errore correlato ad azcopy, 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, seguito da Upload failed!, a condizione che le singole copie dei file di progetto abbiano esito positivo. Per verificare che sia così, controllare che lo stato finale del processo sia indicato come Completed, senza errori di trasferimento.

Attività 3: Implementare un modello di Azure CycleCloud personalizzato

A questo punto, si scaricherà e si modificherà il modello di Azure CycleCloud di esempio compatibile con il progetto basato su GitHub recuperato. Il modello verrà usato per definire una configurazione dell'archiviazione personalizzata che include un disco aggiuntivo collegato al nodo dell'utilità di pianificazione ed esportato tramite il file system di rete (NFS). Dopo questa modifica, si eseguirà l'importazione nell'applicazione Azure CycleCloud.

Nota

È possibile esaminare il contenuto del modello con un Web browser passando al repository Azure/cyclecloud-slurm.

  1. Nel computer, all'interno della finestra del Web browser in cui è visualizzata la sessione di Bash, nel riquadro Azure Cloud Shell eseguire il comando seguente per modificare la directory di lavoro nel repository appena recuperato:

    cd ~/cyclecloud-slurm/templates
    
  2. Eseguire i comandi seguenti per creare un backup del modello di cluster originale:

    cp slurm.txt slurm.bak.txt
    
  3. Eseguire il comando seguente per aprire il modello scaricato nell'editor nano:

    nano slurm.txt
    

    Nota

    Invece dell'editor nano, è possibile usare qualsiasi altro editor di testo disponibile, incluso l'editor predefinito di Azure Cloud Shell.

  4. Nell'interfaccia dell'editor nano passare alla sezione [[node scheduler]]. All'interno di tale sezione individuare la sottosezione [[[volume shared]]], passare alla riga Persistent = ${NFSType == "Builtin"} e aggiungere il contenuto seguente dopo di essa:

    
        # 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 si usa un computer Windows, è possibile incollare il contenuto degli Appunti usando la combinazione di tasti MAIUSC+INS.

    Nota

    Le modifiche definiscono due dischi di archiviazione Premium da 128 GB in un volume basato su striping che verrà montato automaticamente nel nodo head durante il provisioning. Il volume userà il punto di montaggio /mnt/exports/ e verrà formattato automaticamente come file system ext4. L'impostazione Persistent = true indica che i dischi verranno mantenuti quando si termina il cluster, ma verranno eliminati automaticamente se si elimina il cluster.

    Nota

    Azure CycleCloud implementa i volumi come dischi gestiti di Azure.

  5. Nell'interfaccia dell'editor Nano selezionare la combinazione di tasti CTRL+O, premere INVIO e quindi selezionare la combinazione di tasti CTRL+X per salvare le modifiche apportate e chiudere il file.

    Nota

    A questo punto, è possibile usare la connessione all'applicazione Azure CycleCloud tramite l'interfaccia della riga di comando per importare il modello.

  6. Eseguire il comando seguente per importare nell'applicazione Azure CycleCloud il modello modificato nell'attività precedente:

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

    Nota

    Il comando visualizzerà il nome del modello importato, lo stato dell'utilità di pianificazione (scheduler: Off -- --) e il numero totale di nodi (Total nodes: 1).

Attività 4: Avviare un nuovo cluster ed esaminarne la configurazione dell'archiviazione

Per concludere questo esercizio, si verificherà che il modello importato nell'applicazione Azure CycleCloud offra le funzionalità previste creando un nuovo cluster ed esaminando la configurazione di archiviazione del nodo head per assicurarsi che includa un volume costituito da due dischi persistenti.

  1. Nel computer aprire un'altra finestra del browser e passare all'URL https://<IP_address> (sostituire il segnaposto <IP_address> con l'indirizzo IP pubblico del server applicazioni Azure CycleCloud). Se richiesto, confermare di voler continuare.

  2. Se viene richiesto di eseguire l'autenticazione, accedere fornendo le credenziali dello stesso account utente dell'applicazione Azure CycleCloud usato per configurare l'interfaccia della riga di comando di Azure CycleCloud.

  3. Nell'interfaccia grafica di Azure CycleCloud passare alla pagina Clusters (Cluster) e selezionare +.

  4. Nella pagina Create a New Cluster (Crea un nuovo cluster) selezionare l'icona con l'etichetta Slurm a forma di triangolo isoscele con piccoli cerchi ai vertici.

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

  5. Nella casella About (Informazioni) della pagina New Slurm Cluster (Nuovo cluster Slurm), immettere contoso-custom-slurm-lab-cluster nella casella di testo Cluster Name (Nome cluster).

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

  6. Nella scheda Required Settings (Impostazioni obbligatorie) della pagina New Slurm Cluster (Nuovo cluster Slurm) configurare le impostazioni seguenti (lasciare i valori predefiniti per le altre impostazioni) e selezionare Next (Avanti):

    Impostazione Valore
    Area Selezionare il nome dell'area di Azure in cui si intende distribuire il cluster in questo esercizio.
    Scheduler VM Type (Tipo di VM dell'utilità di pianificazione) Selezionare Choose (Scegli) nella finestra popup Select a machine type (Selezionare un tipo di computer). Nella casella di testo SKU Search (Ricerca SKU) immettere D4s_v3. Nell'elenco dei risultati selezionare la casella di controllo accanto alla voce D4s_v3, quindi selezionare Apply (Applica).

    Nota

    Assicurarsi di selezionare dimensioni della macchina virtuale che supportino il livello Premium di Archiviazione di Azure, necessario per effettuare il provisioning dei dischi del nodo head in base alla configurazione personalizzata.

    Impostazione Valore
    Max HPC Cores (Numero massimo core HPC) Immettere 100.
    Max HTC Cores (Numero massimo core HTC) Immettere 100.
    Max VMs per Scaleset (Numero massimo VM per set di scalabilità) Immettere 40.
    Subnet ID Selezionare cyclecloud-rg: cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet.
  7. Nella scheda Network Attached Storage della pagina New Slurm Cluster (Nuovo cluster Slurm) verificare che l'opzione NFS Type (Tipo NTF) sia impostata su Builtin (Predefinito), accettare il valore predefinito di Size (GB) (Dimensioni - GB) impostato su 100 e selezionare Next (Avanti).

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

  8. Nella scheda Advanced Settings (Impostazioni avanzate) della pagina New Slurm Cluster (Nuovo cluster Slurm) esaminare le opzioni disponibili senza apportare alcuna modifica e selezionare Next (Avanti).

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

  9. Nella scheda Cloud-init della pagina New Slurm Cluster (Nuovo cluster Slurm) esaminare le opzioni disponibili senza apportare alcuna modifica e selezionare Save (Salva).

  10. Nella pagina contoso-custom-slurm-lab-cluster selezionare il collegamento Start (Avvia). Quando viene richiesto di confermare, fare clic su OK.

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

  11. Monitorare il processo di avvio.

    Nota

    Il processo prevede il provisioning della macchina virtuale di Azure che svolge il ruolo di nodo master del cluster, l'installazione e la configurazione dell'utilità di pianificazione Swarm e la creazione e il montaggio dei volumi del disco. Possono essere necessari circa cinque minuti.

  12. Quando lo stato del nodo dell'utilità di pianificazione cambia in Ready (Pronto), selezionare la relativa voce nella scheda Nodes (Nodi), quindi selezionare Show Detail (Mostra dettagli) per aprire una vista dettagliata.

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

  13. Nella finestra popup Showing scheduler in contoso-custom-slurm-lab-cluster cluster (Visualizzazione dell'utilità di pianificazione nel cluster contoso-custom-slurm-lab-cluster) passare alla scheda Node (Nodo), scorrere fino alla sezione Volumes (Volumi) e verificare che le voci nfs-1 e nfs-2 siano presenti nell'elenco di volumi.

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

Congratulazioni. Il primo esercizio del modulo è stato completato. In questo esercizio è stato implementato un cluster basato su un modello di Azure CycleCloud personalizzato. È stata usata l'interfaccia della riga di comando di Azure CycleCloud per importare un progetto di esempio ospitato nel repository GitHub di Azure CycleCloud, inclusa una copia personalizzata di uno dei relativi modelli. È stato quindi creato un cluster basato sul modello importato con l'interfaccia grafica di Azure CycleCloud che è stato avviato e si è verificato che la modifica personalizzata sia stata apportata.

Nota

Non eliminare le risorse distribuite e configurate in questo esercizio se si prevede di eseguire l'esercizio successivo in questo modulo. Tali risorse sono necessarie per completare l'esercizio successivo.