Augmentez et réduisez automatiquement les ressources de cluster HPC Pack dans Azure en fonction de la charge de travail du cluster
Si vous déployez des nœuds Azure « burst » (Windows et Linux) dans votre cluster HPC Pack ou que vous créez un cluster HPC Pack dans des machines virtuelles Azure, vous souhaiterez peut-être augmenter ou réduire automatiquement les ressources de cluster telles que les nœuds ou les cœurs en fonction de la charge de travail sur le cluster. La mise à l’échelle des ressources de cluster de cette façon vous permet d’utiliser vos ressources Azure plus efficacement et de contrôler leurs coûts.
Avec HPC Pack 2016 ou version ultérieure, vous pouvez augmenter et réduire automatiquement les nœuds de calcul HPC Pack exécutant le cloud Azure, notamment les nœuds PaaS Windows, les nœuds de machine virtuelle Azure IaaS, les nœuds de pool Azure Batch et les nœuds de groupe de machines virtuelles identiques Azure. Toutefois, pour différents types de nœuds, la logique de réduction automatique est différente. Voici le résumé :
Remarque
Cette fonctionnalité augmente ou réduit automatiquement les ressources Azure en démarrant ou en arrêtant les nœuds de calcul HPC existants dans Azure, elle ne crée pas automatiquement de nouveaux nœuds de calcul HPC ou supprime les nœuds existants.
La mise à l’échelle automatique des nœuds du groupe de machines virtuelles identiques Azure est prise en charge à partir de HPC Pack 2016 Update 2 et versions ultérieures.
Mise à l’échelle automatique des nœuds de machine virtuelle IaaS Azure ou des nœuds de groupe de machines virtuelles identiques Azure
Pour augmenter ou réduire automatiquement les nœuds de machine virtuelle Azure IaaS ou les nœuds de groupe de machines virtuelles identiques Azure dans le cluster HPC Pack, vous devez configurer un principal de service Azure avec un certificat pour gérer votre abonnement Azure. Vous pouvez le configurer avec des commandes PowerShell ou avec l’interface graphique utilisateur du Gestionnaire de cluster.
Une fois le principal de service Azure configuré, vous pouvez activer la réduction automatique de la croissance à l’aide de applet de commande HPC Pack AutoGrowShrink.
Remarque
Par défaut, le principal de service Azure créé par HPC Pack reçoit le rôle Contributeur
Configurer le principal de service Azure avec PowerShell
Après le déploiement du cluster, connectez-vous par Bureau à distance à un nœud principal.
Chargez le certificat (format PFX avec clé privée) sur chaque nœud principal et installez-le sur Cert :\LocalMachine\My. Ce certificat est utilisé pour créer un principal de service Azure. Si vous n’avez pas de certificat, vous pouvez d’abord créer un certificat auto-signé.
Démarrez Azure PowerShell en tant qu’administrateur et exécutez les commandes suivantes sur un nœud principal :
cd $env:CCP_HOME\bin Connect-AzureRmAccount
Si votre compte se trouve dans plusieurs locataires Azure Active Directory ou abonnement Azure, vous pouvez exécuter la commande suivante pour sélectionner le locataire et l’abonnement appropriés :
Connect-AzureRmAccount -TenantId <TenantId> -SubscriptionId <subscriptionId>
Exécutez la commande suivante pour afficher le locataire et l’abonnement actuellement sélectionnés :
Get-AzureRMContext
Exécutez le script suivant
.\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName "YourHpcPackAppName" -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -TenantId xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxx
où
DisplayName - Nom complet de l’application Active Azure. Si l’application n’existe pas, elle est créée dans Azure Active Directory.
HomePage - Page d’accueil de l’application. Vous pouvez configurer une URL factice, comme dans l’exemple précédent.
IdentifierUri - Identificateur de l’application. Vous pouvez configurer une URL factice, comme dans l’exemple précédent.
CertificateThumbprint - Empreinte numérique du certificat que vous avez installé sur le nœud principal à l’étape 2.
TenantId : ID de locataire de votre annuaire Azure Active Directory. Vous pouvez obtenir l’ID de locataire à partir du portail Azure Active Directory Propriétés page.
Pour plus d’informations sur ConfigARMAutoGrowShrinkCert.ps1, exécutez
Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed
.Après la configuration, vous pouvez vérifier le paramètre de clé de Registre (y compris ApplicationId, TenantId, Thumbprint) via la commande HPC PowerShell
Get-HpcClusterRegistry
Configurer le principal du service Azure avec l’interface utilisateur utilisateur du Gestionnaire de clusters
Ouvrez HPC Pack Cluster Manager sur un nœud principal.
Goto Configuration -->page Liste des tâches de déploiement.
Cliquez sur définir la configuration du déploiement Azure.
Dans cet Assistant, il vous aidera à configurer principal du service Azure, le groupe de ressources Azure et réseau virtuel où vous aurez provisionné une machine virtuelle Azure, ainsi qu’un certificat à utiliser pour la communication de cluster. L’Assistant s’exécute comme suit :
Validation de la configuration
Une fois que vous avez correctement configuré le principal de service Azure, vous serez en mesure de démarrer et d’arrêter des nœuds de machine virtuelle IaaS Azure via HPC Pack.
Si vous exécutez HPC Pack 2016 Update 2 ou version ultérieure, les nœuds de machine virtuelle Azure IaaS ou les nœuds de groupe de machines virtuelles identiques Azure doivent déjà se trouver dans groupe de nœuds AzureIaaSNodes, vous pouvez effectuer Démarrer ou arrêter action contre eux à partir de l’interface utilisateur du Gestionnaire de clusters HPC . Une fois l’action effectuée, vous verrez
Si vous avez des machines virtuelles qui sont installées manuellement avec HPC Pack Update 1 ou une version antérieure sur Azure, par défaut, elles ne se trouvent pas dans le groupe de nœuds AzureIaaSNodes qu’elles sont traitées comme nœud local. Dans ce cas, vous devez effectuer 'action Arrêter contre eux, ce qui permettra au service de les placer dans groupe de nœuds AzureIaaSNodes, puis le service est en mesure de les développer et de les réduire.
Si vous n’avez pas encore de nœud de machine virtuelle IaaS Azure, vous pouvez suivre Ajout de nœuds IaaS pour créer un modèle de nœud IaaS Azure et ajouter des nœuds de machine virtuelle IaaS dans le cluster.
Mise à l’échelle automatique des nœuds PaaS Azure
Avant d’activer la réduction automatique des nœuds PaaS Azure Windows par cluster HPC Pack, vous devez vérifier votre modèle de nœud Azure pour vous assurer que les nœuds PaaS Azure sont configurés pour démarrer et arrêter manuellement au lieu de planifier la planification.
Le service de réduction automatique hpC Pack n’ajoute jamais de nouvelle ressource au cluster. Ainsi, dans tous les cas après avoir créé le modèle de nœud PaaS Azure, vous devez d’abord ajouter les nœuds dans le cluster en :
- Lancez HPC Cluster Manager, accédez au volet Gestion des ressources
- Cliquez sur Ajouter un nœud... action dans le volet d’action, dans l’Assistant, choisissez « Ajouter des nœuds Windows Azure »
- Dans l’Assistant, cliquez sur Terminer, un certain nombre de nœuds seront ajoutés au cluster dans état non déployé
- Activer la réduction automatique de la croissance à l’aide de l’applet de commande HPC Pack AutoGrowShrink
Remarque
Lorsque HPC Pack augmente la ressource pour les travaux en file d’attente, il augmente le nombre de nœuds que vous avez ajoutés à l’étape 3. Il n’ajoutera jamais plus de ressources au cluster. Par conséquent, vous pouvez vérifier la capacité de votre abonnement et ajouter le nombre approprié de nœuds dans le cluster.
Mise à l’échelle automatique du pool Azure Batch
Par défaut, lorsque vous créez un modèle de pool azure batch dans HPC Pack, nous avons une formule de mise à l’échelle automatique par défaut définie pour le pool. Toutefois, vous pouvez également vous référer à ce document pour définir votre propre formule de mise à l’échelle et la mise à jour dans votre modèle de nœud batch.
Commandes HPC PowerShell pour définir la propriété croissance et réduction automatique du cluster
Voici des exemples de commandes POWERShell HPC pour définir autoGrowShrink et pour régler son comportement avec des paramètres supplémentaires. Consultez paramètres AutoGrowShrink plus loin dans cet article pour obtenir la liste complète des paramètres.
Pour exécuter ces commandes, démarrez HPC PowerShell sur le nœud principal du cluster en tant qu’administrateur.
Pour afficher le paramètre actuel AutoGrowShrink
Get-HpcClusterProperty –AutoGrowShrink
Pour activer la propriété AutoGrowShrink
Set-HpcClusterProperty –EnableGrowShrink 1
Pour désactiver la propriété AutoGrowShrink
Set-HpcClusterProperty –EnableGrowShrink 0
Pour modifier l’intervalle de croissance en minutes
Set-HpcClusterProperty –GrowInterval <interval>
Pour modifier l’intervalle de réduction en minutes
Set-HpcClusterProperty –ShrinkInterval <interval>
Pour afficher la configuration actuelle de l' AutoGrowShrink
Get-HpcClusterProperty –AutoGrowShrink
Pour exclure les groupes de nœuds de l' AutoGrowShrink
Set-HpcClusterProperty –ExcludeNodeGroups <group1,group2,group3>
Remarque
Ce paramètre est pris en charge à partir de HPC Pack 2016
Paramètres AutoGrowShrink
Voici les paramètres AutoGrowShrink que vous pouvez modifier à l’aide de la commande Set-HpcClusterProperty.
EnableGrowShrink : activez ou désactivez la propriété AutoGrowShrink.
TasksPerResourceUnit - Nombre de tâches à développer une unité de ressources (en fonction du type d’unité de ressource du travail). La valeur par défaut consiste à augmenter une unité de ressources par tâche.
GrowThreshold - Seuil des travaux qui ont mis en file d’attente des tâches pour déclencher la croissance automatique. La valeur par défaut est 1, ce qui signifie qu’en cas de 1 ou plusieurs travaux qui ont des tâches en file d’attente, augmentez automatiquement les nœuds.
GrowInterval - Intervalle en minutes pour déclencher la croissance automatique. L’intervalle par défaut est de 5 minutes.
shrinkInterval - Intervalle en minutes pour déclencher la réduction automatique. L’intervalle par défaut est de 5 minutes.|
ShrinkIdleTimes - Nombre de vérifications continues à réduire pour indiquer que les nœuds sont inactifs. La valeur par défaut est 3 fois. Par exemple, si le ShrinkInterval est de 5 minutes, HPC Pack vérifie si le nœud est inactif toutes les 5 minutes. Si les nœuds sont dans l’état d’inactivité pour toutes les 3 vérifications continues (15 minutes), HPC Pack décide de réduire ce nœud.
extraNodesGrowRatio - Pourcentage supplémentaire de nœuds à développer pour les travaux MPI (Message Passing Interface). La valeur par défaut est 1, ce qui signifie que HPC Pack augmente les nœuds 1% pour les travaux MPI.
GrowByMin - Basculez pour indiquer si la stratégie de croissance automatique est basée sur les ressources minimales requises pour le travail. La valeur par défaut est false, ce qui signifie que HPC Pack augmente les nœuds pour les travaux en fonction des ressources maximales requises pour les travaux.
SoaJobGrowThreshold - Seuil des requêtes SOA entrantes pour déclencher le processus de croissance automatique. La valeur par défaut est 5 0000.
Remarque
Ce paramètre est pris en charge à partir de HPC Pack 2012 R2 Update 3.
SoaRequestsPerCore -Number des requêtes SOA entrantes pour augmenter un cœur. La valeur par défaut est 20000.
Remarque
Ce paramètre est pris en charge à partir de HPC Pack 2012 R2 Update 3.
ExcludeNodeGroups : les nœuds dans les groupes de nœuds spécifiés ne augmentent pas et réduisent automatiquement.
Remarque
Ce paramètre est pris en charge à partir de HPC Pack 2016.
Exemple MPI
Par défaut, HPC Pack augmente 1% nœuds supplémentaires pour les travaux MPI (ExtraNodesGrowRatio est défini sur 1). La raison est que MPI peut nécessiter plusieurs nœuds et que le travail ne peut s’exécuter que lorsque tous les nœuds sont prêts. Lorsque Azure démarre des nœuds, un nœud peut parfois avoir besoin de plus de temps pour démarrer que d’autres, ce qui entraîne l’inactivité d’autres nœuds en attendant que ce nœud soit prêt. En développant des nœuds supplémentaires, HPC Pack réduit ce temps d’attente des ressources et peut réduire les coûts. Pour augmenter le pourcentage de nœuds supplémentaires pour les travaux MPI (par exemple, à 10%), exécutez une commande similaire à
Set-HpcClusterProperty -ExtraNodesGrowRatio 10
Exemple SOA
Par défaut, SoaJobGrowThreshold est défini sur 5 0000 et SoaRequestsPerCore est défini sur 20000. Si vous soumettez un travail SOA avec 7 000 requêtes, il existe une tâche en file d’attente et les demandes entrantes sont 7 0000. Dans ce cas, HPC Pack augmente 1 cœur pour la tâche mise en file d’attente et, pour les requêtes entrantes, augmente (70000 - 50000)/20000 = 1 cœur, de sorte que dans le total augmente 2 cœurs pour ce travail SOA.