Exercice - Ajouter un disque au nœud de planificateur d’un cluster HPC
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.
À 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.
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.
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.
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>
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
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.
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 surfalse
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.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.
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.
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 exemplecc-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 deUpload 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 estCompleted
, 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.
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
Exécutez les commandes suivantes pour créer une sauvegarde du modèle de cluster d’origine :
cp slurm.txt slurm.bak.txt
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.
Dans l’interface de l’éditeur Nano, passez à la section
[[node scheduler]]
. Dans cette section, recherchez la sous-section[[[volume shared]]]
, accédez à la lignePersistent = ${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.
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.
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.
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.
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.
Dans l’interface graphique d’Azure CycleCloud, accédez à la page Clusters et sélectionnez +.
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.
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.
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. 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.
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.
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.
Dans la page contoso-custom-slurm-lab-cluster, sélectionnez le lien Démarrer. Quand vous êtes invité à confirmer, sélectionnez OK.
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.
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.
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.
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.