Automatisches Vergrößern und Verkleinern der HPC Pack-Clusterressourcen in Azure entsprechend der Clusterarbeitsauslastung
Wenn Sie Azure-Knoten "burst" (Sowohl Windows als auch Linux) in Ihrem HPC Pack-Cluster bereitstellen oder einen HPC Pack-Cluster in Azure-VMs erstellen, sollten Sie die Clusterressourcen wie Knoten oder Kerne entsprechend der Workload auf dem Cluster automatisch vergrößern oder verkleinern. Wenn Sie die Clusterressourcen auf diese Weise skalieren, können Sie Ihre Azure-Ressourcen effizienter nutzen und ihre Kosten steuern.
Mit HPC Pack 2016 oder höher können Sie HPC Pack-Computeknoten, die azure Cloud ausführen, automatisch vergrößern und verkleinern, einschließlich Windows PaaS-Knoten, Azure IaaS-VM-Knoten, Azure Batchpoolknoten und Azure VM Scale Set-Knoten. Bei unterschiedlichen Knotentypen ist die Logik für die automatische Verkleinerung jedoch unterschiedlich. Und hier ist die Zusammenfassung:
Knotentyp | So aktivieren Sie | Voraussetzung | So überwachen Sie |
---|---|---|---|
Azure PaaS-Knoten |
PowerShell-Cmdlet- Set-HpcClusterProperty -EnableGrowShrink 1 |
1. Knotenvorlage für Azure PaaS-Knoten 2. Knoten, die im Cluster hinzugefügt wurden |
"Bericht zur automatischen Verkleinerung" unter ClusterManager -> Ressourcenverwaltung --> Vorgänge --> AzureOperations |
Azure IaaS-Knoten |
PowerShell-Cmdlet- Set-HpcClusterProperty -EnableGrowShrink 1 |
1. Azure Service Principal konfiguriert 2. Knoten, die im Cluster hinzugefügt wurden |
"Bericht zur automatischen Verkleinerung" unter ClusterManager -> Ressourcenverwaltung --> Vorgänge --> AzureOperations |
Azure VM Scale Set-Knoten |
PowerShell-Cmdlet- Set-HpcClusterProperty -EnableGrowShrink 1 |
1. Azure Service Principal konfiguriert 2. Knoten, die im Cluster hinzugefügt wurden |
"Bericht zur automatischen Verkleinerung" unter ClusterManager -> Ressourcenverwaltung --> Vorgänge --> AzureOperations |
Azure Batchpool | Azure Batchpool-Knotenvorlage | Azure Batchpool muss gestartet werden | Azure-Portal oder Azure-Batch-Explorer |
Hinweis
Dieses Feature wächst oder verkleinert die Azure-Ressourcen einfach automatisch, indem die vorhandenen HPC-Computeknoten in Azure gestartet oder beendet werden, es erstellt nicht automatisch neue HPC-Computeknoten oder löscht vorhandene Knoten.
Die automatische Skalierung von Azure VM-Skalierungssatzknoten wird ab HPC Pack 2016 Update 2 unterstützt.
Automatische Skalierung von Azure IaaS-VM-Knoten oder Azure VM-Skalierungssatzknoten
Um die Azure IaaS-VM-Knoten oder Azure VM-Skalierungsgruppenknoten im HPC Pack-Cluster automatisch zu vergrößern oder zu verkleinern, konfigurieren Sie einen Azure Service Principal mit Zertifikat, um Ihr Azure-Abonnement zu verwalten. Sie können sie mit PowerShell-Befehlen oder mit Cluster-Manager-GUI konfigurieren.
Nachdem der Azure-Dienstprinzipal konfiguriert wurde, können Sie die automatische Verkleinerung mithilfe HPC Pack AutoGrowShrink-Cmdletaktivieren.
Hinweis
Standardmäßig wird dem von HPC Pack erstellten Azure-Dienstprinzipal die rolle Mitwirkender auf Abonnementebene gewährt. Sie können auf Zugriffssteuerung für Azure-Ressourcen im HPC Pack-Cluster verweisen, um die Zugriffsberechtigungen für den Azure-Dienstprinzipal gemäß Ihrem Benutzerszenario manuell neu zu konfigurieren.
Konfigurieren des Azure-Dienstprinzipals mit PowerShell
Stellen Sie nach der Clusterbereitstellung eine Verbindung von Remotedesktop mit einem Kopfknoten her.
Laden Sie das Zertifikat (PFX-Format mit privatem Schlüssel) auf jeden Kopfknoten hoch, und installieren Sie es auf Cert:\LocalMachine\My. Dieses Zertifikat wird verwendet, um den Azure-Dienstprinzipal zu erstellen. Wenn Sie kein Zertifikat besitzen, können Sie zuerst ein selbstsigniertes Zertifikat erstellen.
Starten Sie Azure PowerShell als Administrator, und führen Sie die folgenden Befehle auf einem Kopfknoten aus:
cd $env:CCP_HOME\bin Connect-AzureRmAccount
Wenn Sich Ihr Konto in mehr als einem Azure Active Directory-Mandanten oder Azure-Abonnement befindet, können Sie den folgenden Befehl ausführen, um den richtigen Mandanten und das richtige Abonnement auszuwählen:
Connect-AzureRmAccount -TenantId <TenantId> -SubscriptionId <subscriptionId>
Führen Sie den folgenden Befehl aus, um den aktuell ausgewählten Mandanten und das aktuell ausgewählte Abonnement anzuzeigen:
Get-AzureRMContext
Ausführen des folgenden Skripts
.\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName "YourHpcPackAppName" -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -TenantId xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxx
where
DisplayName- – Anzeigename der Azure Active-Anwendung. Wenn die Anwendung nicht vorhanden ist, wird sie in Azure Active Directory erstellt.
HomePage- – Die Startseite der Anwendung. Sie können eine Dummy-URL wie im vorherigen Beispiel konfigurieren.
IdentifierUri – Bezeichner der Anwendung. Sie können eine Dummy-URL wie im vorherigen Beispiel konfigurieren.
CertificateThumbprint – Fingerabdruck des Zertifikats, das Sie auf dem Kopfknoten in Schritt 2 installiert haben.
TenantId- – Mandanten-ID Ihres Azure Active Directory. Sie können die Mandanten-ID über das Azure Active Directory-Portal Eigenschaften Seite abrufen.
Weitere Informationen zu ConfigARMAutoGrowShrinkCert.ps1erhalten Sie, führen Sie
Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed
aus.Nach der Konfiguration können Sie die Registrierungsschlüsseleinstellung (einschließlich ApplicationId, TenantId, Thumbprint) über DEN HPC PowerShell-Befehl überprüfen.
Get-HpcClusterRegistry
Konfigurieren des Azure-Dienstprinzipals mit cluster-Manager-GUI
Öffnen Sie HPC Pack Cluster Manager auf einem Kopfknoten.
Wechseln Sie Konfigurations- –>Seite "Aufgabenliste für die Bereitstellung".
Klicken Sie auf Azure Deployment Configurationfestlegen.
Wenn Sie diesen Assistenten durchlaufen, hilft es Ihnen, Azure Service Principal, die Azure Resource Group und VNet- zu konfigurieren, in dem Azure VM bereitgestellt wird, sowie ein Zertifikat, das für die Clusterkommunikation verwendet werden soll. Der Assistent wird wie folgt ausgeführt:
Überprüfen der Konfiguration
Nachdem Sie den Azure Service Principal erfolgreich konfiguriert haben, können Sie Azure IaaS-VM-Knoten über HPC Pack starten und beenden.
Wenn Sie HPC Pack 2016 Update 2 oder höher versionausführen, sollten Azure IaaS VM-Knoten oder Azure VM-Skalierungssatzknoten bereits in AzureIaaSNodes Knotengruppe vorhanden sein, können Sie Start oder Beenden Aktion für diese Knoten aus der HPC Cluster Manager-GUIausführen. Wenn die Aktion ausgeführt wird, wird Azure VM-Vorgang beenden oder Starten von virtuellen Azure-Computern Vorgang unter der Operations -->AzureOperations--Ansicht angezeigt.
Wenn Sie VMs haben, die manuell mit HPC Pack Update 1 oder einer früheren Version in azure
Wenn Sie noch keinen Azure IaaS-VM-Knoten haben, können Sie Hinzufügen von IaaS-Knoten folgen, um die Azure IaaS-Knotenvorlage zu erstellen und IaaS-VM-Knoten im Cluster hinzuzufügen.
Automatische Skalierung von Azure PaaS-Knoten
Bevor Sie azure Windows PaaS-Knoten durch HPC Pack Cluster automatisch verkleinern, überprüfen Sie ihre Azure-Knotenvorlage, um sicherzustellen, dass die Azure PaaS-Knoten so konfiguriert sind, dass sie manuell gestartet und beendet werden, anstatt zeitplanbasiert.
DER HPC Pack-Dienst zum automatischen Verkleinern wird dem Cluster niemals neue Ressourcen hinzufügen. Daher müssen Sie nach dem Erstellen der Azure PaaS-Knotenvorlage zuerst die Knoten zum Cluster hinzufügen, indem Sie:
- Starten Sie HPC Cluster Manager, wechseln Sie zu Ressourcenverwaltung Bereich
- Klicken Sie auf Knoten hinzufügen... Aktion aus dem Aktionsbereich wählen Sie im Assistenten "Windows Azure-Knoten hinzufügen" aus.
- Durchlaufen des Assistenten, Klicken Sie auf Ende, eine Reihe von Knoten wird im Cluster in Status "Nicht bereitgestellt" hinzugefügt.
- Automatische Verkleinerung mit HPC Pack AutoGrowShrink-Cmdlet aktivieren
Hinweis
Wenn HPC Pack die Ressource für in die Warteschlange eingereihte Aufträge vergrößern, wird die Anzahl der Knoten, die Sie in Schritt 3 hinzugefügt haben, höchstens vergrößert. Sie wird dem Cluster niemals mehr Ressource hinzufügen. So können Sie ihre Abonnementkapazität überprüfen und dem Cluster eine entsprechende Anzahl von Knoten hinzufügen.
Automatische Skalierung des Azure-Batchpools
Standardmäßig wird beim Erstellen einer Azure-Batchpoolvorlage im HPC Pack eine Standardformel für die automatische Skalierung für den Pool definiert. Sie können aber auch auf dieses Dokument verweisen, Sie Ihre eigene Skalierungsformel und die Aktualisierung in ihrer Batchknotenvorlage definieren.
HPC PowerShell-Befehle zum Festlegen der Eigenschaft "Cluster automatisch vergrößern und verkleinern"
Im Folgenden finden Sie Beispiel-HPC-PowerShell-Befehle zum Festlegen AutoGrowShrink- und zum Optimieren des Verhaltens mit zusätzlichen Parametern. Die vollständige Liste der Einstellungen finden Sie unter AutoGrowShrink-Parameter weiter unten in diesem Artikel.
Um diese Befehle auszuführen, starten Sie HPC PowerShell auf dem Clusterkopfknoten als Administrator.
So zeigen Sie die aktuelle Einstellung "AutoGrowShrink"
Get-HpcClusterProperty –AutoGrowShrink
So aktivieren Sie die AutoGrowShrink-Eigenschaft
Set-HpcClusterProperty –EnableGrowShrink 1
So deaktivieren Sie die AutoGrowShrink-Eigenschaft
Set-HpcClusterProperty –EnableGrowShrink 0
So ändern Sie das Vergrößerungsintervall in Minuten
Set-HpcClusterProperty –GrowInterval <interval>
So ändern Sie das Schrumpfintervall in Minuten
Set-HpcClusterProperty –ShrinkInterval <interval>
So zeigen Sie die aktuelle Konfiguration von AutoGrowShrink
Get-HpcClusterProperty –AutoGrowShrink
So schließen Sie Knotengruppen aus autoGrowShrink-
Set-HpcClusterProperty –ExcludeNodeGroups <group1,group2,group3>
Hinweis
Dieser Parameter wird ab HPC Pack 2016 unterstützt.
AutoGrowShrink-Parameter
Im Folgenden finden Sie AutoGrowShrink-Parameter, die Sie mithilfe des Befehls Set-HpcClusterProperty ändern können.
EnableGrowShrink – Wechseln Sie, um die AutoGrowShrink-Eigenschaft zu aktivieren oder zu deaktivieren.
TasksPerResourceUnit – Anzahl der Vorgänge, um eine Ressourceneinheit zu vergrößern (basierend auf dem Ressourceneinheitstyp des Auftrags). Standardmäßig wird eine Ressourceneinheit pro Vorgang vergrößert.
GrowThreshold – Schwellenwert für Aufträge, die Aufgaben in die Warteschlange gestellt haben, um das automatische Wachstum auszulösen. Der Standardwert ist 1, was bedeutet, dass bei mindestens 1 Aufträgen, für die Aufgaben in die Warteschlange eingereiht sind, automatisch Knoten vergrößert werden.
GrowInterval - Intervall in Minuten, um das automatische Wachstum auszulösen. Das Standardintervall beträgt 5 Minuten.
ShrinkInterval- - Intervall in Minuten, um die automatische Verkleinerung auszulösen. Das Standardintervall beträgt 5 Minuten.|
ShrinkIdleTimes- – Anzahl der kontinuierlichen Überprüfungen, um anzugeben, dass die Knoten leer sind. Der Standardwert ist 3 Mal. Wenn die ShrinkInterval- beispielsweise 5 Minuten beträgt, überprüft HPC Pack alle 5 Minuten, ob der Knoten im Leerlauf ist. Wenn sich die Knoten für alle drei kontinuierlichen Prüfungen (15 Minuten) im Leerlauf befinden, entscheidet HPC Pack, diesen Knoten zu verkleinern.
ExtraNodesGrowRatio – Zusätzlicher Prozentsatz der Knoten, der für Mpi-Aufträge (Message Passing Interface) wachsen soll. Der Standardwert ist 1, was bedeutet, dass HPC Pack Knoten 1% für MPI-Aufträge vergrößert.
GrowByMin – Wechseln Sie, um anzugeben, ob die Richtlinie für die automatische Vergrößerung auf den für den Auftrag erforderlichen Mindestressourcen basiert. Der Standardwert ist "false", was bedeutet, dass HPC Pack Knoten für Aufträge wächst, basierend auf den maximalen Ressourcen, die für die Aufträge erforderlich sind.
SoaJobGrowThreshold – Schwellenwert eingehender SOA-Anforderungen, um den automatischen Vergrößerungsprozess auszulösen. Der Standardwert ist 50000.
Hinweis
Dieser Parameter wird ab HPC Pack 2012 R2 Update 3 unterstützt.
SoaRequestsPerCore -Number eingehender SOA-Anforderungen, um einen Kern zu vergrößern. Der Standardwert ist 20000.
Hinweis
Dieser Parameter wird ab HPC Pack 2012 R2 Update 3 unterstützt.
ExcludeNodeGroups – Knoten in den angegebenen Knotengruppen werden nicht automatisch vergrößert und verkleinern.
Hinweis
Dieser Parameter wird ab HPC Pack 2016 unterstützt.
MPI-Beispiel
Hpc Pack vergrößert standardmäßig 1% zusätzliche Knoten für MPI-Aufträge (ExtraNodesGrowRatio ist auf 1 festgelegt). Der Grund dafür ist, dass MPI möglicherweise mehrere Knoten erfordert, und der Auftrag kann nur ausgeführt werden, wenn alle Knoten bereit sind. Wenn Azure Knoten startet, benötigt gelegentlich ein Knoten mehr Zeit für den Start als andere, was dazu führt, dass andere Knoten leer sind, während sie darauf warten, dass dieser Knoten bereit ist. Durch die Wachsende zusätzlicher Knoten reduziert HPC Pack diese Ressourcenwartezeit und spart potenziell Kosten. Um den Prozentsatz der zusätzlichen Knoten für MPI-Aufträge (z. B. auf 10%) zu erhöhen, führen Sie einen Befehl ähnlich aus
Set-HpcClusterProperty -ExtraNodesGrowRatio 10
SOA-Beispiel
Standardmäßig ist SoaJobGrowThreshold auf 50000 festgelegt, und SoaRequestsPerCore- auf 20000 festgelegt ist. Wenn Sie einen SOA-Auftrag mit 70000 Anforderungen übermitteln, gibt es eine Aufgabe in der Warteschlange, und eingehende Anforderungen sind 70000. In diesem Fall wächst HPC Pack 1 Kern für die in die Warteschlange eingereihte Aufgabe, und für eingehende Anforderungen wächst (70000 - 50000)/20000 = 1 Kern, wächst also insgesamt 2 Kerne für diesen SOA-Auftrag.