Exercice - Ajouter un disque au nœud de planificateur d’un cluster HPC

Effectué

Azure CycleCloud s’appuie sur des modèles pour définir des configurations de cluster. Son implémentation par défaut comprend des modèles intégrés pour les planificateurs les plus courants, mais vous pouvez en trouver plusieurs autres dans le dépôt GitHub d’Azure CycleCloud.

Rappelez-vous que vous vouliez tester le processus d’implémentation d’un cluster en utilisant un modèle Azure CycleCloud personnalisé. Pour cela, vous allez tirer parti du dépôt GitHub d’Azure CycleCloud qui héberge le projet Slurm géré par Microsoft. Vous allez modifier un modèle de cluster existant à partir de ce dépôt en changeant la configuration de stockage du nœud de planificateur, importer le modèle nouvellement modifié dans votre application Azure CycleCloud, utiliser l’interface graphique de l’application pour créer un cluster et enfin valider la modification de la configuration du stockage.

Important

Pour effectuer les exercices de ce module, vous devez satisfaire les prérequis suivants :

  • Disposer d’un abonnement Azure avec une disponibilité de cœurs de processeur virtuel dans les trois groupes de tailles de machine virtuelle :
    • au moins 4 cœurs de processeur virtuel de la série DSv3
    • au moins 100 cœurs de processeur virtuel de la série FSv2
    • au moins 48 cœurs de processeur virtuel de la série NC
  • Disposer d’un compte Microsoft ou d’un compte Microsoft Entra avec le rôle Propriétaire ou Contributeur dans l’abonnement Azure.
  • Déployer une application Azure CycleCloud sur une machine virtuelle Azure accessible avec une adresse IP publique associée à son interface réseau.
  • Configurer l’application Azure CycleCloud avec l’accès au niveau du rôle Propriétaire ou Contributeur à l’abonnement Azure.
  • Disposer d’un compte d’utilisateur d’application Azure CycleCloud avec le rôle Administrateur.
  • Créer un sous-réseau de réseau virtuel Azure où vous pouvez déployer des nœuds de cluster.
  • Disposer de la clé privée de la paire de clés SSH utilisée pour configurer l’application Azure CycleCloud.

Notes

Pour plus d’informations sur l’identification et l’augmentation des quotas de processeurs virtuels dans un abonnement Azure, reportez-vous à la documentation suivante :

Notes

Vous aurez besoin de la clé privée pour vous connecter directement aux nœuds de cluster dans le dernier exercice de ce module.

Dans cet exercice, vous allez effectuer les tâches suivantes :

  • Tâche 1 : Installer et configurer l’interface CLI d’Azure CycleCloud
  • Tâche 2 : Configurer un projet Slurm Azure CycleCloud
  • Tâche 3 : Implémenter un modèle Azure CycleCloud personnalisé
  • Tâche 4 : Démarrer un nouveau cluster et examiner sa configuration de stockage

Tâche 1 : Installer et configurer l’interface CLI d’Azure CycleCloud

La plupart des tâches de gestion de cet exercice et des exercices suivants utilisent la CLI d’Azure CycleCloud : vous commencerez donc par l’installer et la connecter à votre application Azure CycleCloud. Pour simplifier l’installation initiale, vous allez utiliser Azure Cloud Shell.

Remarque

Vous pouvez aussi vous connecter à la machine virtuelle Azure hébergeant l’application Azure CycleCloud, où la CLI d’Azure CycleCloud est déjà installée.

  1. À partir de votre ordinateur, démarrez n’importe quel navigateur web compatible avec le portail Azure, accédez au portail Azure et, quand vous y êtes invité, authentifiez-vous avec un compte Microsoft, ou avec un compte Microsoft Entra ayant le rôle Contributeur ou Propriétaire dans l’abonnement Azure que vous utiliserez dans ce module.

    Remarque

    Le portail Azure prend en charge les navigateurs web modernes les plus courants, notamment les versions actuelles de Microsoft Edge, Google Chrome, Mozilla Firefox et Apple Safari.

  2. Dans le portail Azure, ouvrez Cloud Shell en sélectionnant son icône dans barre d’outils en regard de la zone de texte de la recherche.

  3. Si vous êtes invité à sélectionner Bash ou PowerShell, sélectionnez Bash.

    Remarque

    Si c’est la première fois que vous démarrez Azure Cloud Shell et que vous voyez le message Vous n’avez aucun stockage monté, sélectionnez l’abonnement que vous utilisez dans cet exercice, puis sélectionnez Créer un stockage.

  4. Dans la session Bash du volet Azure Cloud Shell , exécutez la commande suivante pour définir la valeur d’une variable sur l’adresse IP publique du serveur d’applications Azure CycleCloud (remplacez l’espace réservé <public_ip_address> par l’adresse IP publique réelle) :

    PIP=<public_ip_address>
    
  5. Exécutez la commande suivante pour télécharger le fichier .zip contenant le programme d’installation de l’interface CLI spécifique à l’instance Azure CycleCloud :

    curl -O --insecure https://$PIP/static/tools/cyclecloud-cli.zip
    
  6. Exécutez successivement les commandes suivantes pour extraire et exécuter le script qui effectue l’installation de l’interface CLI d’Azure CycleCloud :

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

    Notes

    Ignorez les messages relatifs à la variable d’environnement de chemin et passez à l’étape suivante.

  7. Exécutez la commande suivante pour établir une connexion à l’instance Azure CycleCloud, où les espaces réservés <username> et <password> désignent les informations d’identification de votre compte d’utilisateur de l’application Azure CycleCloud avec le rôle Administrateur :

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

    Notes

    Le paramètre --verify-ssl défini sur false prend en charge les scénarios où l’application Azure CycleCloud est configurée avec un certificat auto-signé ou un certificat d’une autorité de certification non approuvée.

  8. Exécutez la commande suivante pour vérifier la connexion à l’instance Azure CycleCloud en affichant la configuration de son coffre :

    cyclecloud locker list
    

    Notes

    La sortie doit inclure les noms des coffres pour chaque abonnement Azure inscrit auprès de CycleCloud et leurs conteneurs respectifs dans des comptes de stockage Azure individuels. Vous devez enregistrer le nom du coffre correspondant à l’abonnement Azure que vous prévoyez d’utiliser pour ce labo, car vous en aurez besoin plus loin dans cet exercice. La sortie de la commande est au format suivant (où l’espace réservé <locker-name> représente le nom du coffre, l’espace réservé <storage_account_name> représente le nom du compte de stockage qui héberge ce coffre et l’espace réservé <container_name> représente le nom du conteneur du coffre dans ce compte de stockage) :

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

Tâche 2 : Configurer un projet Slurm Azure CycleCloud

Ensuite, vous allez configurer un exemple de projet Slurm Azure CycleCloud. Vous allez utiliser un projet Slurm existant du dépôt GitHub d’Azure CycleCloud. Vous allez l’extraire dans votre répertoire de base d’Azure Cloud Shell, puis le charger dans le coffre Azure CycleCloud.

  1. Sur votre ordinateur, dans la session Bash du volet Azure Cloud Shell, exécutez les commandes suivantes pour créer un répertoire de projet et extraire un projet Slurm à partir du référentiel GitHub correspondant.

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

    Remarque

    Veillez à inclure le point à la fin de la seconde commande.

  2. Exécutez la commande suivante pour désigner le coffre par défaut et y charger le projet (remplacez l’espace réservé <locker_name> par le nom du coffre que vous avez identifié dans la tâche précédente, par exemple cc-lab-subscription-storage) :

    cyclecloud project default_locker <locker_name>
    cyclecloud project upload 
    

    Notes

    Vous pouvez aussi exécuter cyclecloud project upload <locker_name>, où l’espace réservé <locker_name> désigne le nom du coffre.

    Remarque

    Ignorez le message d’erreur lié à azcopy indiquant 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, suivi de Upload failed! dès lors que les copies individuelles des fichiers projet ont été correctement effectuées. Pour voir cela, vérifiez que l’état final du travail est Completed, avec zéro transfert en échec.

Tâche 3 : Implémenter un modèle Azure CycleCloud personnalisé

À présent, vous allez télécharger et modifier l’exemple de modèle Azure CycleCloud qui est compatible avec le projet GitHub extrait. Vous allez l’utiliser pour définir une configuration de stockage personnalisée qui comprend un disque supplémentaire attaché au nœud de planificateur et exporté via NFS (Network File System). Après cette modification, vous allez l’importer dans votre application Azure CycleCloud.

Notes

Vous pouvez examiner le contenu du modèle avec un navigateur web en accédant au dépôt Azure/cyclecloud-slurm.

  1. Sur votre ordinateur, dans la fenêtre du navigateur web qui affiche la session Bash dans le volet Azure Cloud Shell, exécutez la commande suivante pour passer du répertoire de travail au dépôt récemment extrait :

    cd ~/cyclecloud-slurm/templates
    
  2. Exécutez les commandes suivantes pour créer une sauvegarde du modèle de cluster d’origine :

    cp slurm.txt slurm.bak.txt
    
  3. Exécutez la commande suivante pour ouvrir le modèle téléchargé dans l’éditeur Nano :

    nano slurm.txt
    

    Notes

    Au lieu de l’éditeur Nano, vous pouvez utiliser n’importe quel autre éditeur de texte disponible, notamment l’éditeur intégré d’Azure Cloud Shell.

  4. Dans l’interface de l’éditeur Nano, passez à la section [[node scheduler]]. Dans cette section, recherchez la sous-section [[[volume shared]]], accédez à la ligne Persistent = ${NFSType == "Builtin"}, puis ajoutez le contenu suivant après celle-ci :

    
        # 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
    
    

    Remarque

    Si vous utilisez un ordinateur Windows, vous pouvez coller le contenu du Presse-papiers en utilisant la combinaison de touches Maj+Inser.

    Remarque

    Vos modifications définissent deux disques de stockage Premium de 128 Go dans un volume agrégé par bandes, qui sera automatiquement monté sur le nœud principal lors de son provisionnement. Le volume va utiliser le point de montage /mnt/exports/ et être automatiquement formaté en système de fichiers ext4. Le paramètre Persistent = true indique que les disques sont conservés quand vous arrêtez le cluster, mais ils sont automatiquement supprimés si vous supprimez le cluster.

    Notes

    Azure CycleCloud implémente les volumes en tant que disques managés Azure.

  5. Dans l’interface de l’éditeur Nano, sélectionnez la combinaison de touches Ctrl+O, appuyez sur la touche Entrée, puis sélectionnez la combinaison de touches Ctrl+X pour enregistrer les modifications que vous avez apportées et fermer le fichier.

    Notes

    À ce stade, vous pouvez utiliser votre connexion à l’application Azure CycleCloud via l’interface CLI pour importer le modèle.

  6. Exécutez la commande suivante pour importer le modèle que vous avez modifié au cours de la tâche précédente dans l’application Azure CycleCloud :

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

    Notes

    La commande affiche le nom du modèle importé, l’état du planificateur (scheduler: Off -- --) et le nombre total de nœuds (Total nodes: 1).

Tâche 4 : Démarrer un nouveau cluster et examiner sa configuration de stockage

Pour conclure cet exercice, vous vérifierez que le modèle que vous avez importé dans l’application Azure CycleCloud fournit les fonctionnalités prévues en créant un cluster et en examinant la configuration de stockage de son nœud principal pour vous assurer qu’il inclut un volume composé de deux disques persistants.

  1. Sur votre ordinateur, ouvrez une autre fenêtre de navigateur et accédez à l’URL https://<adresse_IP> (remplacez l’espace réservé <adresse_IP> par l’adresse IP publique du serveur d’applications Azure CycleCloud). Si vous y êtes invité, confirmez que vous voulez continuer.

  2. Si vous êtes invité à vous authentifier, connectez-vous en fournissant les informations d’identification du compte d’utilisateur de l’application Azure CycleCloud que vous avez utilisé pour configurer l’interface CLI d’Azure CycleCloud.

  3. Dans l’interface graphique d’Azure CycleCloud, accédez à la page Clusters et sélectionnez +.

  4. Dans la page Créer un cluster, sélectionnez l’icône Slurm qui représente un triangle isocèle avec de petits cercles à chacun de ses sommets.

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

  5. Sous l’onglet À propos de de la page Nouveau cluster Slurm, entrez contoso-custom-slurm-lab-cluster dans la zone de texte Nom du cluster.

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

  6. Sous l’onglet Paramètres requis de la page Nouveau cluster Slurm, configurez les paramètres suivants (laissez les autres avec leurs valeurs par défaut) et sélectionnez Suivant :

    Paramètre Valeur
    Région Sélectionnez le nom de la région Azure où vous prévoyez de déployer le cluster dans cet exercice.
    Type de machine virtuelle du planificateur Sélectionnez Choisir dans la fenêtre contextuelle Sélectionner un type de machine. Dans la zone de texte Rechercher une référence SKU, entrez D4s_v3. Dans la liste des résultats, cochez la case en regard de l’entrée D4s_v3, puis sélectionnez Appliquer.

    Remarque

    Veillez à sélectionner la taille de machine virtuelle qui prend en charge le niveau Premium de Stockage Azure, qui est nécessaire pour provisionner les disques du nœud principal conformément à votre configuration personnalisée.

    Paramètre Valeur
    Nombre max. de cœurs HPC Entrez 100.
    Nombre max. de cœurs HTC Entrez 100.
    Nombre max. de machines virtuelles par groupe de machines virtuelles identiques Entrez 40.
    ID de sous-réseau Sélectionnez cyclecloud-rg: cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet.
  7. Sous l’onglet Stockage attaché au réseau de la page Nouveau cluster Slurm , vérifiez que le Type NFS est défini sur Intégré, acceptez la valeur par défaut de Taille (Go) définie sur 100, puis sélectionnez Suivant.

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

  8. Sous l’onglet Paramètres avancés de la page Nouveau cluster Slurm, passez en revue les options disponibles sans effectuer aucune modification, puis sélectionnez Suivant.

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

  9. Sous l’onglet Cloud-init de la page Nouveau cluster Slurm, passez en revue les options disponibles sans effectuer aucune modification, puis sélectionnez Enregistrer.

  10. Dans la page contoso-custom-slurm-lab-cluster, sélectionnez le lien Démarrer. Quand vous êtes invité à confirmer, sélectionnez OK.

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

  11. Supervisez le processus de démarrage.

    Notes

    Le processus implique le provisionnement de la machine virtuelle Azure qui prend en charge le rôle du nœud principal du cluster, l’installation et la configuration du planificateur Swarm, et la création et le montage des volumes de disques. Ceci peut durer environ cinq minutes.

  12. Lorsque l’état du nœud du planificateur passe à Prêt, sélectionnez son entrée dans l’onglet Nœuds, puis sélectionnez Afficher les détails pour afficher la vue détaillée.

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

  13. Dans la fenêtre contextuelle Affichage du planificateur dans le cluster contoso-custom-slurm-lab-cluster, accédez à l’onglet Nœud, faites défiler jusqu’à la section Volumes, puis vérifiez que les entrées nfs-1 et nfs-2 apparaissent dans la liste des volumes.

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

Félicitations ! Vous avez effectué avec succès le premier exercice de ce module. Dans cet exercice, vous avez implémenté un cluster basé sur un modèle Azure CycleCloud personnalisé. Vous avez utilisé l’interface CLI d’Azure CycleCloud pour importer un exemple de projet hébergé dans le dépôt GitHub d’Azure CycleCloud, notamment une copie personnalisée d’un de ses modèles. Ensuite, vous avez créé un cluster basé sur le modèle importé avec l’interface graphique d’Azure CycleCloud, vous l’avez démarré et vous avez vérifié que la modification personnalisée avait pris effet.

Remarque

Ne supprimez pas les ressources que vous avez déployées et configurées dans cet exercice si vous envisagez d’exécuter l’exercice suivant dans ce module. Vous avez besoin de ces ressources pour effectuer l’exercice suivant.