HPC Pack-clusterbronnen in Azure automatisch vergroten of verkleinen volgens de clusterworkload
Belangrijk
Klassieke VM's worden op 1 maart 2023 buiten gebruik gesteld.
Als u IaaS-resources van ASM gebruikt, dient u de migratie uiterlijk 1 maart 2023 te voltooien. U wordt aangeraden al eerder over te schakelen om te kunnen profiteren van de vele functieverbeteringen in Azure Resource Manager.
Zie Uw IaaS-resources vóór 1 maart 2023 naar Azure Resource Manager migreren voor meer informatie.
Als u Azure Burst-knooppunten in uw HPC Pack-cluster implementeert of als u een HPC Pack-cluster maakt in Azure-VM's, wilt u mogelijk een manier om de clusterbronnen, zoals knooppunten of kernen, automatisch te laten groeien of verkleinen op basis van de workload in het cluster. Door de clusterresources op deze manier te schalen, kunt u uw Azure-resources efficiënter gebruiken en de kosten ervan beheersen.
In dit artikel worden twee manieren beschreven waarop HPC Pack rekenresources automatisch kan schalen:
De HPC Pack-cluster eigenschap AutoGrowShrink
Het AzureAutoGrowShrink.ps1 HPC PowerShell-script
Notitie
Azure heeft twee verschillende implementatiemodellen voor het maken en werken met resources: Resource Manager en klassiek. In dit artikel komen beide modellen aan de orde, maar u wordt aangeraden voor de meeste nieuwe implementaties het Resource Manager-model te gebruiken.
Op dit moment kunt u hpc pack-rekenknooppunten met een Windows Server-besturingssysteem alleen automatisch laten groeien en verkleinen.
De eigenschap AutoGrowShrink-cluster instellen
Vereisten
CLUSTER HPC Pack 2012 R2 Update 2 of hoger: het hoofdknooppunt van het cluster kan on-premises of op een Azure-VM worden geïmplementeerd. Zie Een hybride cluster instellen met HPC Pack om aan de slag te gaan met een on-premises hoofdknooppunt en Azure-burst-knooppunten. Zie het HPC Pack IaaS-implementatiescript om snel een HPC Pack-cluster in Azure-VM's te implementeren.
Voor een cluster met een hoofdknooppunt in Azure (Resource Manager-implementatiemodel) - Vanaf HPC Pack 2016 wordt certificaatverificatie in een Azure Active Directory-toepassing gebruikt voor het automatisch groeien en verkleinen van cluster-VM's die zijn geïmplementeerd met Behulp van Azure Resource Manager. Configureer een certificaat als volgt:
Maak na de clusterimplementatie verbinding Extern bureaublad met één hoofdknooppunt.
Upload certificaat (PFX-indeling met persoonlijke sleutel) op elk hoofd-knooppunt en installeer het in Cert:\LocalMachine\My en Cert:\LocalMachine\Root.
Begin Azure PowerShell als beheerder en voer de volgende opdrachten uit op één hoofd-knooppunt:
cd $env:CCP_HOME\bin Connect-AzureRmAccount
Als uw account zich in meer dan één tenant Azure Active Directory azure-abonnement, kunt u de volgende opdracht uitvoeren om de juiste tenant en het juiste abonnement te selecteren:
Connect-AzureRmAccount -TenantId <TenantId> -SubscriptionId <subscriptionId>
Voer de volgende opdracht uit om de momenteel geselecteerde tenant en het abonnement weer te geven:
Get-AzureRMContext
- Voer het volgende script uit
.\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName “YourHpcPackAppName” -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -TenantId xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxx
waar
DisplayName: weergavenaam van Azure Active Application. Als de toepassing niet bestaat, wordt deze gemaakt in Azure Active Directory.
Startpagina : de startpagina van de toepassing. U kunt een dummy-URL configureren, zoals in het vorige voorbeeld.
IdentifierUri : id van de toepassing. U kunt een dummy-URL configureren, zoals in het vorige voorbeeld.
CertificateThumbprint : vingerafdruk van het certificaat dat u in stap 1 op het hoofd-knooppunt hebt geïnstalleerd.
TenantId: tenant-id van uw Azure Active Directory. U kunt de tenant-id op de pagina Eigenschappen Azure Active Directory portal.
Voor meer informatie over ConfigARMAutoGrowShrinkCert.ps1, voer uit
Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed
.Voor een cluster met een hoofdknooppunt in Azure (klassiek implementatiemodel) : als u het implementatiescript HPC Pack IaaS gebruikt om het cluster te maken in het klassieke implementatiemodel, moet u de cluster-eigenschap AutoGrowShrink inschakelen door de optie AutoGrowShrink in te stellen in het clusterconfiguratiebestand. Zie de documentatie bij het downloaden van het script voor meer informatie.
U kunt ook de cluster-eigenschap AutoGrowShrink inschakelen nadat u het cluster hebt geïmplementeerd met behulp van HPC PowerShell-opdrachten die in de volgende sectie worden beschreven. Als voorbereiding hiervoor moet u eerst de volgende stappen voltooien:
Configureer een Azure-beheercertificaat op het hoofd-knooppunt en in het Azure-abonnement. Voor een testimplementatie kunt u het standaard door Microsoft HPC Azure zelf ondertekende certificaat gebruiken dat HPC Pack op het hoofd-knooppunt installeert en dat certificaat vervolgens uploaden naar uw Azure-abonnement. Zie de Richtlijnen voor de TechNet-bibliotheek voor opties en stappen.
Voer regedit uit op het hoofd-knooppunt, ga naar HKLM\SOFTWARE\Micorsoft\HPC\IaasInfo en voeg een tekenreekswaarde toe. Stel de waardenaam in op 'Vingerafdruk' en Waardegegevens op de vingerafdruk van het certificaat in stap 1.
HPC PowerShell-opdrachten om de eigenschap AutoGrowShrink in te stellen
Hieronder volgen voorbeelden van HPC PowerShell-opdrachten voor het instellen van AutoGrowShrink en het afstemmen van het gedrag met aanvullende parameters. Zie AutoGrowShrink-parameters verder in dit artikel voor de volledige lijst met instellingen.
Als u deze opdrachten wilt uitvoeren, start u HPC PowerShell als beheerder op het hoofdknooppunt van het cluster.
De eigenschap AutoGrowShrink inschakelen
Set-HpcClusterProperty –EnableGrowShrink 1
De eigenschap AutoGrowShrink uitschakelen
Set-HpcClusterProperty –EnableGrowShrink 0
Het groeiinterval in minuten wijzigen
Set-HpcClusterProperty –GrowInterval <interval>
Het verkleiningsinterval in minuten wijzigen
Set-HpcClusterProperty –ShrinkInterval <interval>
De huidige configuratie van AutoGrowShrink weergeven
Get-HpcClusterProperty –AutoGrowShrink
Knooppuntgroepen uitsluiten van AutoGrowShrink
Set-HpcClusterProperty –ExcludeNodeGroups <group1,group2,group3>
Notitie
Deze parameter wordt ondersteund vanaf HPC Pack 2016
AutoGrowShrink-parameters
Hier volgen de AutoGrowShrink-parameters die u kunt wijzigen met behulp van de opdracht Set-HpcClusterProperty .
EnableGrowShrink: schakel over om de eigenschap AutoGrowShrink in of uit te schakelen.
ParamSweepTasksPerCore : aantal parametrische opruimtaken om één kern te laten groeien. De standaardwaarde is om één kern per taak te laten groeien.
Notitie
HpC Pack QFE KB3134307 wijzigt ParamSweepTasksPerCore in TasksPerResourceUnit. Het is gebaseerd op het resourcetype van de taak en kan knooppunt, socket of kern zijn.
GrowThreshold: drempelwaarde voor taken in de wachtrij om automatische groei te activeren. De standaardwaarde is 1, wat betekent dat knooppunten automatisch worden groter als er 1 of meer taken in de wachtrij staan.
GrowInterval: interval in minuten om automatische groei te activeren. Het standaardinterval is 5 minuten.
ShrinkInterval: interval in minuten om automatische verkleining te activeren. Het standaardinterval is 5 minuten.|
ShrinkIdleTimes : het aantal doorlopende controles dat moet worden verkleind om aan te geven dat de knooppunten inactief zijn. De standaardwaarde is drie keer. Als shrinkInterval bijvoorbeeld 5 minuten is, controleert HPC Pack of het knooppunt elke vijf minuten inactief is. Als de knooppunten na drie doorlopende controles (15 minuten) in de niet-actieve status zijn, wordt dat knooppunt door HPC Pack verkleind.
ExtraNodesGrowRatio : extra percentage knooppunten dat moet worden Message Passing Interface (MPI)-taken. De standaardwaarde is 1, wat betekent dat HPC Pack knooppunten met 1% voor MPI-taken groeit.
GrowByMin: schakel over om aan te geven of het beleid voor automatische groei is gebaseerd op de minimale resources die vereist zijn voor de taak. De standaardwaarde is false, wat betekent dat HPC Pack knooppunten voor taken groeit op basis van de maximale resources die vereist zijn voor de taken.
SoaJobGrowThreshold: drempelwaarde voor binnenkomende SOA-aanvragen om het automatische groeiproces te activeren. De standaardwaarde is 50000.
Notitie
Deze parameter wordt ondersteund vanaf HPC Pack 2012 R2 Update 3.
SoaRequestsPerCore: het aantal binnenkomende SOA-aanvragen om één kern te laten groeien. De standaardwaarde is 20000.
Notitie
Deze parameter wordt ondersteund vanaf HPC Pack 2012 R2 Update 3.
ExcludeNodeGroups : knooppunten in de opgegeven knooppuntgroepen worden niet automatisch groter of kleiner.
Notitie
Deze parameter wordt ondersteund vanaf HPC Pack 2016.
MPI-voorbeeld
HPC Pack groeit standaard met 1% extra knooppunten voor MPI-taken (ExtraNodesGrowRatio is ingesteld op 1). De reden hiervoor is dat MPI mogelijk meerdere knooppunten vereist en dat de taak alleen kan worden uitgevoerd wanneer alle knooppunten gereed zijn. Wanneer Azure knooppunten start, heeft het ene knooppunt af en toe meer tijd nodig om te starten dan andere knooppunten, waardoor andere knooppunten inactief zijn terwijl wordt gewacht tot dat knooppunt gereed is. Door extra knooppunten te laten groeien, vermindert HPC Pack deze wachttijd voor resources en bespaart u mogelijk kosten. Als u het percentage extra knooppunten voor MPI-taken wilt verhogen (bijvoorbeeld tot 10%), moet u een opdracht uitvoeren die vergelijkbaar is met
Set-HpcClusterProperty -ExtraNodesGrowRatio 10
SOA-voorbeeld
SoaJobGrowThreshold is standaard ingesteld op 50000 en SoaRequestsPerCore op 20000. Als u één SOA-taak met 70000 aanvragen indient, is er één taak in de wachtrij en zijn binnenkomende aanvragen 70000. In dit geval groeit HPC Pack met 1 kern voor de taak in de wachtrij en voor binnenkomende aanvragen groeit (70000 - 50000)/20000 = 1 kern, dus in totaal groeit 2 kernen voor deze SOA-taak.
Het AzureAutoGrowShrink.ps1 uitvoeren
Vereisten
HPC Pack 2012 R2 Update 1 of hoger-cluster : het AzureAutoGrowShrink.ps1-script wordt geïnstalleerd in de map %CCP_HOME%bin. Het hoofdknooppunt van het cluster kan on-premises of op een Azure-VM worden geïmplementeerd. Zie Een hybride cluster instellen met HPC Pack om aan de slag te gaan met een on-premises hoofdknooppunt en Azure Burst-knooppunten. Zie het HPC Pack IaaS-implementatiescript voor het snel implementeren van een HPC Pack-cluster in Azure-VM's of het gebruik van een Azure-quickstart-sjabloon.
Azure PowerShell 1.4.0: het script is momenteel afhankelijk van deze specifieke versie van Azure PowerShell.
Voor een cluster met Azure-burstknooppunten : voer het script uit op een clientcomputer waarop HPC Pack is geïnstalleerd of op het hoofdknooppunt. Als u op een clientcomputer wordt uitgevoerd, moet u ervoor zorgen dat u de variabele $env:CCP_SCHEDULER naar het hoofd-knooppunt laten wijzen. De Azure-burstknooppunten moeten worden toegevoegd aan het cluster, maar ze hebben mogelijk de Not-Deployed status.
Voor een cluster dat is geïmplementeerd in Azure-VM's (Resource Manager-implementatiemodel) : voor een cluster van Azure-VM's die zijn geïmplementeerd in het Resource Manager-implementatiemodel, ondersteunt het script twee methoden voor Azure-verificatie: meld u aan bij uw Azure-account om het script elke keer uit te voeren (
Connect-AzureRmAccount
door uit te voeren of een service-principal te configureren om te verifiëren met een certificaat. HPC Pack biedt de script-ConfigARMAutoGrowShrinkCert.ps voor het maken van een service-principal met certificaat. Het script maakt een Azure Active Directory (Azure AD) en een service-principal en wijst de rol Inzender toe aan de service-principal. Als u het script wilt uitvoeren, start Azure PowerShell als beheerder en voert u de volgende opdrachten uit:cd $env:CCP_HOME\bin Connect-AzureRmAccount .\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName “YourHpcPackAppName” -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -PfxFile "d:\yourcertificate.pfx"
Voor meer informatie overConfigARMAutoGrowShrinkCert.ps1, voer uit
Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed
.Voor een cluster dat is geïmplementeerd in Azure-VM's (klassiek implementatiemodel) : voer het script uit op de VM met het hoofdknooppunt, omdat dit afhankelijk is van de Start-HpcIaaSNode.ps1- en Stop-HpcIaaSNode.ps1-scripts die daar zijn geïnstalleerd. Voor deze scripts is bovendien een Azure-beheercertificaat of een publicatie-instellingenbestand vereist (zie Rekenknooppunten beheren in een HPC Pack-cluster in Azure). Zorg ervoor dat alle rekenknooppunt-VM's die u nodig hebt, al zijn toegevoegd aan het cluster. Ze hebben mogelijk de status Gestopt.
Syntaxis
AzureAutoGrowShrink.ps1 [-NodeTemplates <String[]>] [-JobTemplates <String[]>] [-NodeType <String>]
-NumOfActiveQueuedTasksPerNodeToGrow <Single> [-NumOfActiveQueuedTasksToGrowThreshold <Int32>]
[-NumOfInitialNodesToGrow <Int32>] [-GrowCheckIntervalMins <Int32>] [-ShrinkCheckIntervalMins <Int32>]
[-ShrinkCheckIdleTimes <Int32>] [-ExtraNodesGrowRatio <Int32>] [-ArgFile <String>] [-LogFilePrefix <String>]
[<CommonParameters>]
AzureAutoGrowShrink.ps1 [-NodeTemplates <String[]>] [-JobTemplates <String[]>] [-NodeType <String>]
-NumOfQueuedJobsPerNodeToGrow <Single> [-NumOfQueuedJobsToGrowThreshold <Int32>] [-NumOfInitialNodesToGrow
<Int32>] [-GrowCheckIntervalMins <Int32>] [-ShrinkCheckIntervalMins <Int32>] [-ShrinkCheckIdleTimes <Int32>]
[-ExtraNodesGrowRatio <Int32>] [-ArgFile <String>] [-LogFilePrefix <String>] [<CommonParameters>]
AzureAutoGrowShrink.ps1 -UseLastConfigurations [-ArgFile <String>] [-LogFilePrefix <String>] [<CommonParameters>]
Parameters
NodeTemplates: namen van de knooppuntsjablonen om het bereik te definiëren voor de knooppunten die moeten worden groter en kleiner. Als dit niet is opgegeven (de standaardwaarde is @()), vallen alle knooppunten in de knooppuntgroep AzureNodes binnen het bereik wanneer NodeType de waarde AzureNodes heeft en alle knooppunten in de knooppuntgroep ComputeNodes binnen het bereik vallen wanneer NodeType de waarde ComputeNodes heeft.
JobTemplates: namen van de taaksjablonen om het bereik te definiëren voor de knooppunten die moeten worden groter.
NodeType : het type knooppunt dat moet worden groter en verkleind. Ondersteunde waarden zijn:
- AzureNodes: voor Azure PaaS-knooppunten (burst) in een on-premises of Azure IaaS-cluster.
- ComputeNodes : alleen voor rekenknooppunt-VM's in een Azure IaaS-cluster.
NumOfQueuedJobsPerNodeToGrow : het aantal taken in de wachtrij dat nodig is om één knooppunt te laten groeien.
NumOfQueuedJobsToGrowThreshold : het drempel aantal taken in de wachtrij om het groeiproces te starten.
NumOfActiveQueuedTasksPerNodeToGrow : het aantal actieve taken in de wachtrij dat nodig is om één knooppunt te laten groeien. Als NumOfQueuedJobsPerNodeToGrow is opgegeven met een waarde die groter is dan 0, wordt deze parameter genegeerd.
NumOfActiveQueuedTasksToGrowThreshold : het drempelnummer van actieve taken in de wachtrij om het groeiproces te starten.
NumOfInitialNodesToGrow : het aanvankelijke minimumaantal knooppunten dat moet worden vergroot als alle knooppunten in het bereik Niet geïmplementeerd of Gestopt (Toewijzing is verwijderd) zijn.
GrowCheckIntervalMins : het interval in minuten tussen controles om te groeien.
ShrinkCheckIntervalMins : het interval in minuten tussen controles dat moet worden verkleind.
ShrinkCheckIdleTimes : het aantal controles voor continue verkleining (gescheiden door ShrinkCheckIntervalMins) om aan te geven dat de knooppunten niet actief zijn.
UseLastConfigurations : de vorige configuraties die zijn opgeslagen in het argumentbestand.
ArgFile: de naam van het argumentbestand dat wordt gebruikt om de configuraties op te slaan en bij te werken om het script uit te voeren.
LogFilePrefix : de voorvoegselnaam van het logboekbestand. U kunt een pad opgeven. Het logboek wordt standaard naar de huidige werkmap geschreven.
Voorbeeld 1
In het volgende voorbeeld worden de Azure-burstknooppunten geconfigureerd die zijn geïmplementeerd met de Standaard AzureNode-sjabloon om automatisch te groeien en te verkleinen. Als alle knooppunten in eerste instantie de status Niet geïmplementeerd hebben, worden ten minste drie knooppunten gestart. Als het aantal taken in de wachtrij groter is dan 8, start het script knooppunten totdat het aantal de verhouding van taken in de wachtrij met NumOfQueuedJobsPerNodeToGrow overschrijdt. Als een knooppunt in drie opeenvolgende niet-actieve tijden niet actief blijkt te zijn, wordt het gestopt.
.\AzureAutoGrowShrink.ps1 -NodeTemplates @('Default AzureNode
Template') -NodeType AzureNodes -NumOfQueuedJobsPerNodeToGrow 5
-NumOfQueuedJobsToGrowThreshold 8 -NumOfInitialNodesToGrow 3
-GrowCheckIntervalMins 1 -ShrinkCheckIntervalMins 1 -ShrinkCheckIdleTimes 3
Voorbeeld 2
In het volgende voorbeeld worden de virtuele Azure-reken knooppunt-VM's die zijn geïmplementeerd met de standaardsjabloon ComputeNode geconfigureerd om automatisch te groeien en te verkleinen. De taken die zijn geconfigureerd met de standaard taaksjabloon definiëren het bereik van de workload in het cluster. Als alle knooppunten in eerste instantie zijn gestopt, worden ten minste 5 knooppunten gestart. Als het aantal actieve taken in de wachtrij groter is dan 15, start het script knooppunten totdat het aantal de verhouding van actieve taken in de wachtrij overschrijdt met NumOfActiveQueuedTasksPerNodeToGrow. Als een knooppunt tien opeenvolgende niet-actieve tijden niet actief blijkt te zijn, wordt het gestopt.
.\AzureAutoGrowShrink.ps1 -NodeTemplates 'Default ComputeNode Template' -JobTemplates 'Default' -NodeType ComputeNodes -NumOfActiveQueuedTasksPerNodeToGrow 10 -NumOfActiveQueuedTasksToGrowThreshold 15 -NumOfInitialNodesToGrow 5 -GrowCheckIntervalMins 1 -ShrinkCheckIntervalMins 1 -ShrinkCheckIdleTimes 10 -ArgFile 'IaaSVMComputeNodes_Arg.xml' -LogFilePrefix 'IaaSVMComputeNodes_log'