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 inclut des modèles intégrés pour les planificateurs les plus courants, mais vous pouvez trouver plusieurs autres dans le dépôt GitHub Azure CycleCloud.

Rappelez-vous que vous souhaitez tester le processus d’implémentation d’un cluster à l’aide d’un modèle Azure CycleCloud personnalisé. À cet effet, vous allez tirer parti du dépôt GitHub Azure CycleCloud hébergeant le projet Slurm organisé par Microsoft. Vous allez modifier un modèle de cluster existant à partir de ce référentiel en modifiant la configuration de stockage du nœud du planificateur, en important le modèle nouvellement modifié dans votre application Azure CycleCloud, en utilisant l’interface graphique de l’application pour créer un cluster et enfin valider la modification de la configuration du stockage.

Important

Pour effectuer des exercices dans ce module, vous devez remplir les conditions préalables suivantes :

  • Disposer d’un abonnement Azure avec disponibilité de cœurs de processeurs virtuels dans les trois groupes de tailles de machine virtuelle :
    • au moins 4 cœurs de processeurs virtuels de la série DSv3
    • au moins 100 cœurs de processeurs virtuels 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éployez une application Azure CycleCloud sur une machine virtuelle Azure accessible avec une adresse IP publique associée à son interface réseau.
  • Configurez 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éez un sous-réseau de réseau virtuel Azure dans lequel vous pouvez déployer des nœuds de cluster.
  • Disposez de la clé privée de la paire de clés SSH utilisée pour configurer l’application Azure CycleCloud.

Remarque

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

Remarque

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

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

  • Tâche 1 : Installer et configurer Azure CycleCloud CLI
  • 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 Azure CycleCloud CLI

La plupart des tâches de gestion dans ces exercices et les exercices suivants utilisent l’interface CLI Azure CycleCloud. Vous devez donc commencer par l’installer et la connecter à votre application Azure CycleCloud. Pour simplifier la configuration initiale, vous allez utiliser Azure Cloud Shell.

Remarque

Vous pouvez également vous connecter à la machine virtuelle Azure hébergée dans l’application Azure CycleCloud, où l’interface CLI 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, puis, lorsque vous y êtes invité, authentifiez-vous auprès d’un compte Microsoft ou d’un compte Microsoft Entra disposant du 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 la barre d’outils en regard de la zone de texte de 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 êtes présenté avec le message vous n’avez pas de stockage monté , sélectionnez l’abonnement que vous utilisez dans cet exercice, puis sélectionnez Créer un stockage.

  4. Dans la session Bash dans le 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 CLI spécifique à l’instance Azure CycleCloud :

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

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

    Remarque

    Ignorez les messages concernant la variable d’environnement de chemin d’accès 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 identifiants de votre compte d’utilisateur d’application Azure CycleCloud avec le rôle d'Administrateur.

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

    Remarque

    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 sa configuration de casier :

    cyclecloud locker list
    

    Remarque

    La sortie doit inclure les noms des espaces de stockage pour chaque abonnement Azure enregistré auprès de CycleCloud et leurs conteneurs respectifs associés dans des comptes de stockage Azure distincts. Vous devez enregistrer le nom du casier correspondant à l’abonnement Azure que vous envisagez 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 <locker-name> réservé représente le nom du casier, l’espace <storage_account_name> réservé représente le nom du compte de stockage hébergeant ce casier, et l’espace <container_name> réservé représente le nom du conteneur de stockage 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 tirer parti d’un projet Slurm existant à partir du dépôt GitHub Azure CycleCloud. Vous allez l’extraire dans votre répertoire de base dans Azure Cloud Shell, puis le charger dans le casier Azure CycleCloud.

  1. Sur votre ordinateur, dans la session Bash dans le volet Azure Cloud Shell , exécutez les commandes suivantes pour créer un répertoire de projet et récupérer 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 casier par défaut et charger le projet dans celui-ci (remplacez l’espace réservé <locker_name> par le nom du casier 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 
    

    Remarque

    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!, tant que les copies individuelles des fichiers du projet réussissent. Pour confirmer cela, vérifiez que l’état final du travail est répertorié en tant que Completed, avec aucun transfert ayant échoué.

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 compatible avec le projet GitHub récupéré. Vous l’utiliserez pour définir une configuration de stockage personnalisée qui inclut un disque supplémentaire attaché au nœud du planificateur et exporté via le système de fichiers réseau (NFS). Après cette modification, vous allez l’importer dans votre application Azure CycleCloud.

Remarque

Vous pouvez examiner le contenu du modèle avec un navigateur web en accédant au référentiel Azure/cyclecloud-slurm.

  1. Sur votre ordinateur, dans la fenêtre du navigateur web affichant la session Bash dans le volet Azure Cloud Shell , exécutez la commande suivante pour remplacer le répertoire de travail par le dépôt nouvellement récupéré :

    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
    

    Remarque

    Au lieu de l’éditeur nano, vous pouvez utiliser n’importe quel autre éditeur de texte disponible, y compris l’éditeur intégré Azure Cloud Shell.

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

    
        # 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 à l’aide de la combinaison Maj + Insertion de touches.

    Remarque

    Vos modifications définissent deux disques de stockage Premium de 128 Go dans un volume à bandes qui sera automatiquement monté sur le nœud principal pendant son approvisionnement. Le volume utilise le point de montage /mnt/export/et sera automatiquement mis en forme comme système de fichiers ext4. Le Persistent = true paramètre indique que les disques sont conservés lorsque vous terminez le cluster, mais ils seront automatiquement supprimés si vous supprimez le cluster.

    Remarque

    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 , sélectionnez la touche Entrée , puis la combinaison de touches Ctrl + X pour enregistrer les modifications que vous avez apportées et fermer le fichier.

    Remarque

    À 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é dans la tâche précédente dans l’application Azure CycleCloud :

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

    Remarque

    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 allez vérifier 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://< IP_address> (remplacez l’espace <réservé IP_address> par l’adresse IP publique du serveur d’applications Azure CycleCloud). Si vous y êtes invité, vérifiez que vous souhaitez continuer.

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

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

  4. Dans la page Créer un cluster , sélectionnez l’icône intitulée Slurm sous la forme d’un triangle isosceles avec de petits cercles à chacun de ses sommets.

    Capture d’écran de la page Créer un cluster de l’application web Azure CycleCloud.

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

    Capture d’écran de l’onglet À propos de la page Nouveau cluster Slurm de l’application web Azure CycleCloud.

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

    Réglage Valeur
    Région Sélectionnez le nom de la région Azure dans laquelle vous envisagez 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 d’ordinateur . Dans la zone de texte Recherche de 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 du stockage Azure, qui est nécessaire pour provisionner des disques du nœud principal en fonction de votre configuration personnalisée.

    Réglage Valeur
    Nombre maximum de cœurs HPC Entrez 100.
    Nombre max. de cœurs HTC Entrez 100.
    Nombre max. de machines virtuelles par groupe identique 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 Builtin, acceptez la valeur par défaut de taille (Go) sur 100, puis sélectionnez Suivant.

    Capture d’écran de l’onglet Stockage attaché au réseau de la page Nouveau cluster Slurm de l’application web Azure CycleCloud.

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

    Capture d’écran de l’onglet Paramètres avancés de la page Nouveau cluster Slurm de l’application web Azure CycleCloud.

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

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

    Capture d’écran de l’onglet Nœuds de contoso-slurm-lab-cluster à l’état désactivé dans l’application web Azure CycleCloud.

  11. Surveillez le processus de démarrage.

    Remarque

    Le processus implique l’approvisionnement de la machine virtuelle Azure qui sert le rôle du nœud principal, de l’installation et de la configuration du planificateur Swarm, ainsi que la création et le montage de volumes de disque. Cette opération peut prendre environ cinq minutes.

  12. Une fois que l’état du nœud du planificateur passe à Prêt, sélectionnez son entrée sous l’onglet Nœuds , puis sélectionnez Afficher le détail pour afficher son affichage détaillé.

    Capture d’écran de l’onglet Nœuds du nœud de planificateur d’un contoso-custom-slurm-lab-cluster.

  13. Dans la fenêtre contextuelle Affichage du planificateur dans contoso-custom-slurm-lab-cluster , basculez vers l’onglet Nœud , faites défiler vers la section Volumes et vérifiez que les entrées nfs-1 et nfs-2 s’affichent sur la liste des volumes.

    Capture d’écran de l'onglet Node dans la vue détaillée d’un cluster configuré avec deux volumes NFS supplémentaires.

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é Azure CycleCloud CLI pour importer un exemple de projet hébergé dans le référentiel GitHub Azure CycleCloud, y compris une copie personnalisée de l’un de ses modèles. Ensuite, vous avez créé un cluster basé sur le modèle importé avec l’interface graphique Azure CycleCloud, l’avez démarré et vérifié que la modification personnalisée a 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.