Partager via


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é :

Type de nœud comment activer prérequis comment surveiller
Nœuds PaaS Azure d’applet de commande PowerShell
Set-HpcClusterProperty -EnableGrowShrink 1
1. Modèle de nœud pour les nœuds PaaS Azure
2. Nœuds ajoutés dans le cluster
« Rapport de réduction automatique de croissance » sous ClusterManager -- gestion des ressources> -- opérations> --> AzureOperations
Nœuds IaaS Azure d’applet de commande PowerShell
Set-HpcClusterProperty -EnableGrowShrink 1
1. Principal de service Azure configuré
2. Nœuds ajoutés dans le cluster
« Rapport de réduction automatique de croissance » sous ClusterManager -- gestion des ressources> -- opérations> --> AzureOperations
Nœuds du groupe de machines virtuelles identiques Azure d’applet de commande PowerShell
Set-HpcClusterProperty -EnableGrowShrink 1
1. Principal de service Azure configuré
2. Nœuds ajoutés dans le cluster
« Rapport de réduction automatique de croissance » sous ClusterManager -- gestion des ressources> -- opérations> --> AzureOperations
Pool Azure Batch Modèle de nœud de pool Azure Batch Le pool Azure Batch doit être démarré portail Azure ou Azure Batch Explorer

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 au niveau de l’abonnement. Vous pouvez faire référence à contrôle d’accès pour les ressources Azure dans le cluster HPC Pack pour configurer manuellement les autorisations d’accès pour le principal du service Azure en fonction de votre scénario utilisateur.

Configurer le principal de service Azure avec PowerShell

  1. Après le déploiement du cluster, connectez-vous par Bureau à distance à un nœud principal.

  2. 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é.

  3. 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
    
  4. Exécutez le script suivant

    .\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName "YourHpcPackAppName" -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -TenantId xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxx
    

    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.

  5. 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

  1. Ouvrez HPC Pack Cluster Manager sur un nœud principal.

  2. Goto Configuration -->page Liste des tâches de déploiement.

  3. Cliquez sur définir la configuration du déploiement Azure.

  4. 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 :

    'Assistant Paramètre de déploiement Azure

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 Dispatch Stop Azure VM Operation ou Démarrer l’opération de des machines virtuelles Azure sous l' Des opérations --vue AzureOperations.

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 :

  1. Lancez HPC Cluster Manager, accédez au volet Gestion des ressources
  2. Cliquez sur Ajouter un nœud... action dans le volet d’action, dans l’Assistant, choisissez « Ajouter des nœuds Windows Azure »
  3. Dans l’Assistant, cliquez sur Terminer, un certain nombre de nœuds seront ajoutés au cluster dans état non déployé
  4. 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.