Aumentare e ridurre automaticamente le risorse del cluster HPC Pack in Azure in base al carico di lavoro del cluster
Se si distribuiscono nodi "burst" di Azure (windows e Linux) nel cluster HPC Pack o si crea un cluster HPC Pack in macchine virtuali di Azure, è possibile aumentare o ridurre automaticamente le risorse del cluster, ad esempio nodi o core in base al carico di lavoro nel cluster. Il ridimensionamento delle risorse del cluster in questo modo consente di usare le risorse di Azure in modo più efficiente e controllarne i costi.
Con HPC Pack 2016 o versione successiva è possibile aumentare e ridurre automaticamente i nodi di calcolo HPC Pack che eseguono il cloud di Azure, inclusi i nodi PaaS di Windows, i nodi della macchina virtuale IaaS di Azure, i nodi del pool di batch di Azure e i nodi del set di scalabilità di macchine virtuali di Azure. Tuttavia, per diversi tipi di nodi, la logica di riduzione automatica è diversa. Ecco il riepilogo:
Tipo di nodo | come abilitare | prerequisito | come monitorare |
---|---|---|---|
Nodi PaaS di Azure |
cmdlet di PowerShell Set-HpcClusterProperty -EnableGrowShrink 1 |
1. Modello di nodo per i nodi PaaS di Azure 2. Nodi aggiunti nel cluster |
"Aumento automatico del report di riduzione" in ClusterManager - gestione delle risorse> - operazioni> -> AzureOperations |
Nodi IaaS di Azure |
cmdlet di PowerShell Set-HpcClusterProperty -EnableGrowShrink 1 |
1. Entità servizio di Azure configurata 2. Nodi aggiunti nel cluster |
"Aumento automatico del report di riduzione" in ClusterManager - gestione delle risorse> - operazioni> -> AzureOperations |
Nodi del set di scalabilità di macchine virtuali di Azure |
cmdlet di PowerShell Set-HpcClusterProperty -EnableGrowShrink 1 |
1. Entità servizio di Azure configurata 2. Nodi aggiunti nel cluster |
"Aumento automatico del report di riduzione" in ClusterManager - gestione delle risorse> - operazioni> -> AzureOperations |
Pool di Azure Batch | Modello di nodo del pool di Azure Batch | È necessario avviare il pool di Azure Batch | portale di Azure o Azure Batch Explorer |
Nota
Questa funzionalità aumenta o riduce automaticamente le risorse di Azure avviando o arrestando i nodi di calcolo HPC esistenti in Azure, non creerà automaticamente nuovi nodi di calcolo HPC o eliminerà i nodi esistenti.
Il ridimensionamento automatico dei nodi del set di scalabilità di macchine virtuali di Azure è supportato da HPC Pack 2016 Update 2 e versioni successive.
Ridimensionamento automatico dei nodi della macchina virtuale IaaS di Azure o dei nodi del set di scalabilità di macchine virtuali di Azure
Per aumentare o ridurre automaticamente i nodi della macchina virtuale IaaS di Azure o i nodi del set di scalabilità di macchine virtuali di Azure nel cluster HPC Pack, è necessario configurare un'entità servizio di Azure con un certificato per gestire la sottoscrizione di Azure. È possibile configurarlo con i comandi di PowerShell o con l'interfaccia utente grafica di Gestione cluster.
Dopo aver configurato l'entità servizio di Azure, è possibile abilitare la riduzione automatica usando cmdlet HPC Pack AutoGrowShrink.
Nota
Per impostazione predefinita, all'entità servizio di Azure creata da HPC Pack viene concesso il ruolo collaboratore
Configurare l'entità servizio di Azure con PowerShell
Dopo la distribuzione del cluster, connettersi da Desktop remoto a un nodo head.
Caricare il certificato (formato PFX con chiave privata) in ogni nodo head e installarlo in Cert:\LocalMachine\My. Questo certificato viene usato per creare un'entità servizio di Azure. Se non si ha un certificato, è possibile crearne uno autofirmato.
Avviare Azure PowerShell come amministratore ed eseguire i comandi seguenti in un nodo head:
cd $env:CCP_HOME\bin Connect-AzureRmAccount
Se l'account si trova in più tenant di Azure Active Directory o in una sottoscrizione di Azure, è possibile eseguire il comando seguente per selezionare il tenant e la sottoscrizione corretti:
Connect-AzureRmAccount -TenantId <TenantId> -SubscriptionId <subscriptionId>
Eseguire il comando seguente per visualizzare il tenant e la sottoscrizione attualmente selezionati:
Get-AzureRMContext
Eseguire lo script seguente
.\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName "YourHpcPackAppName" -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -TenantId xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxx
where
DisplayName - Nome visualizzato dell'applicazione Azure Active. Se l'applicazione non esiste, viene creata in Azure Active Directory.
HomePage: home page dell'applicazione. È possibile configurare un URL fittizio, come nell'esempio precedente.
IdentifierUri - Identificatore dell'applicazione. È possibile configurare un URL fittizio, come nell'esempio precedente.
CertificateThumbprint - Identificazione personale del certificato installato nel nodo head nel passaggio 2.
TenantId - ID tenant di Azure Active Directory. È possibile ottenere l'ID tenant dal portale di Azure Active Directory pagina Proprietà.
Per altre informazioni su ConfigARMAutoGrowShrinkCert.ps1, eseguire
Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed
.Dopo la configurazione, è possibile controllare l'impostazione della chiave del Registro di sistema (inclusi ApplicationId, TenantId, Identificazione personale) tramite il comando HPC PowerShell
Get-HpcClusterRegistry
Configurare l'entità servizio di Azure con l'interfaccia utente grafica di Cluster Manager
Aprire Gestione cluster HPC Pack in un nodo head.
Goto Configurazione ->pagina Elenco attività distribuzione.
Fare clic su Impostare configurazione distribuzione di Azure.
Questa procedura guidata consente di configurare
'entità servizio di Azure , il del gruppo di risorse di Azuree rete virtuale in cui verrà effettuato il provisioning della macchina virtuale di Azure e un certificato da usare per la comunicazione del cluster. La procedura guidata verrà eseguita come segue:
Convalida della configurazione
Dopo aver configurato correttamente l'entità servizio di Azure, sarà possibile avviare e arrestare i nodi della macchina virtuale IaaS di Azure tramite HPC Pack.
Se si esegue HPC Pack 2016 Update 2 o versione successiva, i nodi della macchina virtuale IaaS di Azure o i nodi del set di scalabilità di macchine virtuali di Azure devono essere già presenti in gruppo di nodi AzureIaaSNodes, è possibile eseguire Avviare o arrestare l'azione contro di essi dall'interfaccia utente grafica di HPC Cluster Manager. Quando viene eseguita l'azione, verrà visualizzato Dispatch Stop Azure VM Operation o Starting Azure Virtual Machines operation in the Operations -->AzureOperations view.
Se si dispone di macchine virtuali installate manualmente con HPC Pack Update 1 o versione precedente in Azure, per impostazione predefinita non si trovano nel gruppo di nodi AzureIaaSNodes come nodo locale. In questo caso, è necessario eseguire 'azione Arresta su di essi, in modo che il servizio li inserisca in gruppo di nodi AzureIaaSNodes e quindi il servizio sia in grado di aumentarli e ridurli.
Se non si dispone ancora di un nodo vm IaaS di Azure, è possibile seguire Aggiunta di nodi IaaS per creare un modello di nodo IaaS di Azure e aggiungere nodi vm IaaS nel cluster.
Ridimensionamento automatico dei nodi PaaS di Azure
Prima di abilitare la riduzione automatica dei nodi PaaS di Azure da parte del cluster HPC Pack, è necessario controllare il modello di nodo di Azure assicurandosi che i nodi PaaS di Azure siano configurati per l'avvio e l'arresto manuale anziché in base alla pianificazione dell'ora.
Il servizio di riduzione automatica delle dimensioni di HPC Pack non aggiungerà mai una nuova risorsa al cluster. In ogni caso, dopo aver creato il modello di nodo PaaS di Azure, è necessario aggiungere prima i nodi nel cluster:
- Avviare Gestione cluster HPC, passare a riquadro Gestione risorse
- Fare clic su Aggiungi nodo...'azione dal riquadro azioni, nella procedura guidata scegliere "Aggiungi nodi di Windows Azure"
- Durante la procedura guidata fare clic su Fine, nel cluster verrà aggiunto un numero di nodi nello stato non distribuito
- Abilitare la riduzione automatica delle dimensioni usando cmdlet AutoGrowShrink di HPC Pack
Nota
Quando HPC Pack aumenta la risorsa per i processi in coda, aumenta al massimo il numero di nodi aggiunti nel passaggio 3. Non aggiungerà mai più risorse al cluster. È quindi possibile controllare la capacità della sottoscrizione e aggiungere il numero appropriato di nodi nel cluster.
Ridimensionamento automatico del pool di Azure Batch
Per impostazione predefinita, quando si crea un modello di pool di Azure Batch in HPC Pack è disponibile una formula di scalabilità automatica predefinita definita per il pool. Ma è anche possibile fare riferimento a questo documento per definire la formula di scalabilità e l'aggiornamento nel modello di nodo batch.
Comandi di PowerShell HPC per impostare la proprietà di aumento e compattazione automatica del cluster
Di seguito sono riportati i comandi di PowerShell HPC di esempio per impostare AutoGrowShrink e ottimizzare il comportamento con parametri aggiuntivi. Vedere parametri AutoGrowShrink più avanti in questo articolo per l'elenco completo delle impostazioni.
Per eseguire questi comandi, avviare HPC PowerShell nel nodo head del cluster come amministratore.
Per visualizzare l'impostazione corrente di AutoGrowShrink
Get-HpcClusterProperty –AutoGrowShrink
Per abilitare la proprietà AutoGrowShrink
Set-HpcClusterProperty –EnableGrowShrink 1
Per disabilitare la proprietà AutoGrowShrink
Set-HpcClusterProperty –EnableGrowShrink 0
Per modificare l'intervallo di crescita in minuti
Set-HpcClusterProperty –GrowInterval <interval>
Per modificare l'intervallo di compattazione in minuti
Set-HpcClusterProperty –ShrinkInterval <interval>
Per visualizzare la configurazione corrente di AutoGrowShrink
Get-HpcClusterProperty –AutoGrowShrink
Per escludere i gruppi di nodi da AutoGrowShrink
Set-HpcClusterProperty –ExcludeNodeGroups <group1,group2,group3>
Nota
Questo parametro è supportato a partire da HPC Pack 2016
Parametri autoGrowShrink
Di seguito sono riportati i parametri AutoGrowShrink che è possibile modificare usando il comando Set-HpcClusterProperty.
EnableGrowShrink : opzione per abilitare o disabilitare la proprietàAutoGrowShrink. TasksPerResourceUnit - Numero di attività per aumentare un'unità di risorsa (in base al tipo di unità di risorsa del processo). L'impostazione predefinita consiste nell'aumentare di un'unità di risorse per ogni attività.
GrowThreshold - Soglia dei processi che hanno attività in coda per attivare la crescita automatica. Il valore predefinito è 1, ovvero se sono presenti 1 o più processi con attività in coda, aumentare automaticamente i nodi.
GrowInterval - Intervallo in minuti per attivare la crescita automatica. L'intervallo predefinito è 5 minuti.
ShrinkInterval - Intervallo in minuti per attivare la compattazione automatica. L'intervallo predefinito è 5 minuti.|
ShrinkIdleTimes - Numero di controlli continui da ridurre per indicare che i nodi sono inattive. Il valore predefinito è 3 volte. Ad esempio, se il ShrinkInterval
è di 5 minuti, HPC Pack verifica se il nodo è inattiva ogni 5 minuti. Se i nodi si trovano nello stato di inattività per tutti i 3 controlli continui (15 minuti), HPC Pack decide di compattare il nodo. extraNodesGrowRatio : percentuale aggiuntiva di nodi da aumentare per i processi MPI (Message Passing Interface). Il valore predefinito è 1, il che significa che HPC Pack aumenta i nodi 1% per i processi MPI.
GrowByMin : consente di indicare se i criteri di aumento automatico si basano sulle risorse minime necessarie per il processo. Il valore predefinito è false, il che significa che HPC Pack aumenta i nodi per i processi in base alle risorse massime necessarie per i processi.
SoaJobGrowThreshold - Soglia delle richieste SOA in ingresso per attivare il processo di aumento automatico. Il valore predefinito è 50000.
Nota
Questo parametro è supportato a partire da HPC Pack 2012 R2 Update 3.
SoaRequestsPerCore -Number di richieste SOA in ingresso per aumentare un core. Il valore predefinito è 20000.
Nota
Questo parametro è supportato a partire da HPC Pack 2012 R2 Update 3.
ExcludeNodeGroups: i nodi nei gruppi di nodi specificati non aumentano e si riducono automaticamente.
Nota
Questo parametro è supportato a partire da HPC Pack 2016.
Esempio di MPI
Per impostazione predefinita, HPC Pack aumenta di 1% nodi aggiuntivi per i processi MPI (ExtraNodesGrowRatio è impostato su 1). Il motivo è che MPI può richiedere più nodi e il processo può essere eseguito solo quando tutti i nodi sono pronti. Quando Azure avvia i nodi, occasionalmente un nodo potrebbe richiedere più tempo per l'avvio rispetto ad altri, causando l'inattività di altri nodi durante l'attesa che tale nodo sia pronto. Aumentando i nodi aggiuntivi, HPC Pack riduce il tempo di attesa delle risorse e potenzialmente consente di risparmiare sui costi. Per aumentare la percentuale di nodi aggiuntivi per i processi MPI (ad esempio, a 10%), eseguire un comando simile a
Set-HpcClusterProperty -ExtraNodesGrowRatio 10
Esempio di SOA
Per impostazione predefinita, SoaJobGrowThreshold è impostato su 50000 e soaRequestsPerCore è impostato su 20000. Se si invia un processo SOA con 70000 richieste, è presente un'attività in coda e le richieste in ingresso sono 70000. In questo caso HPC Pack aumenta di 1 core per l'attività in coda e per le richieste in ingresso aumenta (70000 - 50000)/20000 = 1 core, quindi in totale aumentano 2 core per questo processo SOA.