Burst in Azure Batch con Microsoft HPC Pack
Questo argomento contiene informazioni sull'estensione del cluster HPC Pack per includere i pool di Azure Batch come risorse di calcolo. Usando questi pool di Azure Batch, è possibile aumentare la capacità del cluster HPC su richiesta. Per altre informazioni, vedere la documentazione del servizio Azure Batch .
In questo argomento:
Passaggio 6: Arrestare l' del pool
Prerequisiti
cluster HPC Pack: è necessario creare e configurare almeno il nodo head di un cluster. La funzionalità Burst to Batch è disponibile a partire da HPC Pack 2012 R2 Update 3.
sottoscrizione di Azure: se non si ha già una sottoscrizione, iscriversi per ottenere una versione di valutazione gratuita , usare i vantaggi dei sottoscrittori MSDN o esplorare altre opzioni di acquisto.
Passaggio 1: Creare un account Azure Batch
dell'account Azure Batch: vedere Creare e gestire un account Azure Batch per creare un account Batch nel portale di Azure .. Per eseguire il burst in Batch da HPC Pack 2012 R2 Update 3, sono necessarie le informazioni sull'account seguenti (disponibili nel portale).
- Nome account Batch
- URL dell'account Batch
- Chiave dell'account Batch
Da HPC Pack 2016 Update 1 in, potrebbero essere necessarie le informazioni sull'account seguenti per eseguire il burst in Batch da HPC Pack in base alle diverse modalità di allocazione delle risorse di Azure Batch (servizio Batch o sottoscrizione utente) e ai metodi di autenticazione client (chiave di accesso batch o Azure AD):
- Batch Serivce con chiave di accesso
- Nome account Batch
- URL dell'account Batch
- Chiave dell'account Batch
- Servizio Batch o sottoscrizione utente con Azure AD
- Istanza di Batch AAD
- Batch AAD Tenant Id
- ID app client di Batch AAD
- Chiave dell'app client AAD batch
- Nome account Batch
- URL dell'account Batch
Controllare la tabella seguente per decidere quale tipo di account Batch e metodo di autenticazione scegliere. È anche possibile controllare questo blog e questo documento per altre informazioni sulla modalità di allocazione del pool di sottoscrizioni utente e su come usare l'autenticazione di Azure AD per il servizio Azure Batch.
Modalità di allocazione del pool/tipo di account | Metodi di autenticazione | Tipi di immagine della macchina virtuale | Macchina virtuale con priorità bassa | Rete virtuale |
---|---|---|---|---|
Servizio Batch | Chiave di accesso/Azure AD | PaaS/IaaS (MarketPlaceImage) / IaaS (CustomImage tramite Azure AD) | Sì | Sì (tramite Azure AD) |
Sottoscrizione utente | Azure AD | IaaS (MarketPlaceImage)/ IaaS (CustomImage) | No | Sì |
Usare l'interfaccia della riga di comando di Azure per creare un account Batch con la modalità di allocazione del pool di servizi Batch e usare la chiave di accesso batch per l'autenticazione come indicato di seguito:
# Authenticate CLI session.
az login
# Select the subscription
az account set -s mysubscription
# Create a resource group.
az group create --name myresourcegroup --location mylocation
# Let's add a storage account reference to the Batch account for use as 'auto-storage'
# for applications. We'll start by creating the storage account.
az storage account create -g myresourcegroup -n mystorageaccount -l mylocation --sku Standard_LRS
# Create a Batch account.
az batch account create -g myresourcegroup -n mybatchaccount -l mylocation --storage-account mystorageaccount
# Now we can display the details of our created account.
az batch account show -g myresourcegroup -n mybatchaccount
# We can view the access keys to the Batch Account for future client authentication.
az batch account keys list -g myresourcegroup -n mybatchaccount
Usare l'interfaccia della riga di comando di Azure per creare un account Batch con la modalità di allocazione del pool di sottoscrizioni utente
# Authenticate CLI session.
az login
# Select the subscription
az account set -s mysubscription
# Allow Azure Batch to access the subscription (one-time operation).
az role assignment create --assignee MicrosoftAzureBatch --role contributor
# Create a resource group.
az group create --name myresourcegroup --location mylocation
# A Batch account that will allocate pools in the user's subscription must be configured
# with a Key Vault located in the same region. Let's create this first.
az keyvault create --resource-group myresourcegroup --name mykeyvault --location mylocation --enabled-for-deployment true --enabled-for-disk-encryption true --enabled-for-template-deployment true
# We will add an access-policy to the Key Vault to allow access by the Batch Service.
az keyvault set-policy --resource-group myresourcegroup --name mykeyvault --spn ddbf3205-c6bd-46ae-8127-60eb93363864 --key-permissions all --secret-permissions all
# Now we can create the Batch account, referencing the Key Vault either by name (if they exist in the same resource group) or by its full resource ID.
az batch account create --resource-group myresourcegroup --name mybatchaccount –location mylocation --keyvault mykeyvault
Per configurare Azure AD per l'autenticazione batch e ottenere informazioni su Batch AAD
- Ottenere 'istanza di Batch AAD. Se si usa cloud di Azure globale, l'istanza di AAD viene https://login.microsoftonline.com/.
- Ottenere ID tenant di Batch AAD. Nel portale di Azure fare clic su Altri servizi, cercare e scegliere Azure Active Directory, selezionare l'account di Active Directory nell'angolo superiore destro della pagina e fare clic su Proprietà. Copiare il valore GUID specificato per l'ID directory . Questo valore viene chiamato anche ID tenant.
- Registrare l'applicazione client Batch e ottenere l'ID applicazione client batch AAD .
- Nel portale di Azure scegliere il tenant di Azure AD selezionando l'account nell'angolo in alto a destra della pagina. - Scegliere Altri servizi, cercare e scegliere Registrazioni app. - Fare clic su +Nuova registrazione dell'applicazione. - Compilare il nome , scegliere 'app Web/API come tipo di applicazionee specificare un valore specifico per l'applicazione, ad esempio https://myAppName per l'URI di accesso . Fare clic su Crea. - Dopo la creazione dell'applicazione, selezionare l'applicazione nell'elenco Registrazioni app e fare clic su Proprietà. Copiare il valore GUID fornito per l'ID applicazione , che verrà usato come id applicazione batch AAD .
- Configurare per l'uso di un'entità servizio per l'autenticazione e ottenere la chiave dell'app client AAD batch.
- Richiedere una chiave privata per l'applicazione. Selezionare l'applicazione creata nell'elenco di Registrazioni app, quindi fare clic su chiavi , digitare descrizione chiave e scegliere Durata, quindi fare clic su Salva. Copiare il valore visualizzato che verrà usato come chiave dell'app client batch AAD.
- Assegnare un ruolo controllo degli accessi in base al ruolo all'applicazione per l'autenticazione con un'entità servizio. Scegliere Altri servizi, cercare e scegliere account Batch, fare clic sull'account batch creato e selezionare Controllo di accesso (IAM). Fare clic su
+ADD , selezionare ruolo collaboratoree l'applicazione registrata. Fare clic su Salva.
Nota
Si noti che l'autenticazione di Azure AD è supportata sia dalla modalità servizio Batch che dalla modalità sottoscrizione utente degli account Batch.
importante: dopo aver configurato Azure AD per l'autenticazione batch con le informazioni di Batch AAD seguenti, aprire Gestione cluster HPC, in Configurazione -> Elenco attività da eseguire, fare clic su Impostare configurazione di Azure Batch per compilare le informazioni di conseguenza nel modulo e quindi fare clic su OK. Questo passaggio è obbligatorio quando si usa Azure AD per l'autenticazione batch in HPC Pack.
- Istanza di Batch AAD
- Batch AAD Tenant Id
- ID app client di Batch AAD
- Chiave dell'app client AAD batch
In alternativa, è possibile usare il cmdlet di PowerShell HPC per impostare le informazioni di Batch AAD, come illustrato di seguito:
# HPC PowerShell
Set-HpcClusterRegistry -BatchAADInstance '<AAD Instance e.g. https://login.microsoftonline.com/>' -BatchAADTenantId <TenantGUID> -BatchAADClientAppId <AppGUID> -BatchAADClientAppKey '<AppKey>'
Passaggio 2: Creare un modello di pool di Azure Batch
Per creare un modello di pool di Azure Batch, usare la Creazione guidata modello di nodo in Gestione cluster HPC.
Per creare un modello di pool di Batch
Avviare Gestione cluster HPC.
In Configurazione, nel riquadro di spostamento fare clic su modelli di nodo .
Nel riquadro azioni
fare clic su Nuovo .
Verrà visualizzata la Creazione guidata modello di nodo.Nella pagina Scegliere il tipo di modello di nodo fare clic su modello di pool di Azure Batch, e quindi fare clic su Avanti.
Nella pagina Specifica nome modello digitare un nome per il modello di nodo e, facoltativamente, digitare una descrizione. Fare clic su Avanti.
Nella pagina Specificare le informazioni sull'account Azure Batch immettere il nome dell'account Batch. Se il tipo di account Batch è Servizio Batch, scegliere BatchService come tipo di account Batch. Se si usa la chiave di accesso batch per l'autenticazione, compilare la chiave come chiave dell'account, se si usa l'autenticazione di Azure AD, lasciare vuoto. Se il tipo di account Batch è Sottoscrizione utente, scegliere UserSubscription come tipo di account Batch. Compilare il URL dell'account Batch
e la stringa di connessione archiviazione di Azure ottenuta in precedenza e quindi fare clic su Avanti .
Nota
quando è necessaria l'autenticazione AAD, assicurarsi che l'istanza di Batch AAD, l'ID tenant batch AAD, l'ID applicazione client batch AAD e la chiave dell'app client batch AAD siano già impostati nell'elenco attività di distribuzione
Nella pagina configurazione della scalabilità automatica di Azure Batch
lasciare deselezionata Abilita scalabilità automatica e fare clic su Avanti .Nella pagina Configura credenziali Desktop remoto e SSH pagina specificare facoltativamente le credenziali di un utente che verrà creato nei nodi di calcolo del pool di Azure Batch durante la distribuzione. È possibile usare le credenziali in un secondo momento per connettersi ai nodi di calcolo del pool. Per i nodi Linux, è anche possibile specificare chiave pubblica SSH e file di chiave privata SSH (con estensione ppk) a SSH al nodo tramite putty.exe. Fare riferimento qui per informazioni su come generare una chiave pubblica e un file di chiave privata per PuTTY. Si noti che se si specificano sia la password che le chiavi SSH, le chiavi SSH verranno usate per la connessione. È anche necessario copiare il file di chiave privata generato (con estensione ppk) nella cartella %CCP_HOME%Bin per aprire SSH ai nodi da Gestione cluster HPC. Fare clic su Avanti.
Nella pagina Specificare lo script di avvio, con HPC Pack 2012 R2 Update 3, specificare facoltativamente un 'attività di avvio di Azure Batch.
- della riga di comando : comando eseguito all'avvio dei nodi di calcolo di Azure Batch
- URL origine BLOB - Percorso di archiviazione di Azure dei file caricati in precedenza e che verranno scaricati automaticamente nei nodi di calcolo di Azure Batch
-
percorso file locale: percorso in cui scaricare i file nei nodi di calcolo di Azure Batch
In HPC Pack 2016 Update 1 o versione successiva specificare facoltativamente una riga di comando o il nome di uno script di avvio da eseguire in tutti i nodi di calcolo di Azure Batch nel pool di Batch. Attualmente lo script di avvio è supportato solo per i nodi Linux. Ad esempio, se si vuole eseguire uno script denominato startup.sh in tutti i nodi Linux in un pool di Batch all'avvio, è necessario usare lo strumento da riga di comando HpcPack.exe per comprimere e caricare lo script nell'account di archiviazione di Azure come indicato di seguito e quindi specificare startup.sh nella riga di comando :
HpcPack.exe create startup.sh.zip startup.sh HpcPack.exe upload startup.sh.zip /account:<StorageAccountName> /key:<StorageAccountKey>
Fare clic Avanti ed esaminare tutte le impostazioni del modello specificate. Fare clic su Crea per generare il modello di nodo del pool di Azure Batch.
Passaggio 3: Aggiungere un pool di Azure Batch
Usare l'Aggiunta guidata nodo in Gestione cluster HPC per aggiungere i nodi di calcolo del pool di Batch.
Per aggiungere un pool di Azure Batch
In Gestione cluster HPC, in
Resource Management , nel riquadro Azionifare clic su Aggiungi nodo . Verrà visualizzata la Procedura guidata Aggiungi nodo.Nella pagina Selezionare il metodo di distribuzione fare clic su Aggiungi pool di Azure Batch, e quindi su Avanti.
Nella pagina Specificare le informazioni sul pool di Azure Batch selezionare un modello di pool di Azure Batch. In base al tipo di account Batch nel modello selezionato, specificare le informazioni sul pool come segue:
Se il tipo di account Batch è Servizio Batch,- Numero di nodi di calcolo: numero di nodi di calcolo (istanze di macchina virtuale) nel nuovo pool di Azure Batch
- Se le macchine virtuali sono macchina virtuale dedicata o macchina virtuale con priorità bassa
- Scegliere il tipo di immagine per PaaS o IaaSMarketPlace. Per
PaaS sceglierefamiglia di sistemi operativi. Ad esempio Windows Server 2016. Per IaaSMarketPlace, scegliere Publisher, Offere Sku. Ad esempio Canonical, UbuntuServer, 16.04-LTS. - Dimensioni dei nodi di calcolo: le dimensioni del ruolo di ogni nodo di calcolo.
- Numero massimo di attività per nodo di calcolo: numero massimo di attività simultanee da eseguire in ogni nodo di calcolo. Il numero predefinito è uguale al numero di core nella dimensione del ruolo selezionata. Il numero massimo è tre volte maggiore del numero effettivo di core. Si noti che il numero massimo di attività per nodo di calcolo moltiplicato per numero di nodi di calcolo è uguale ai core totali del nodo del pool di Batch.
- Pacchetti dell'app: specificare facoltativamente i pacchetti dell'applicazione già aggiunti nell'account Batch nel formato>ID <:<Versione>,<ID>:<Versione>, ... Se il tipo di account Batch è Sottoscrizione utente,
- Numero di nodi di calcolo, ad esempio sopra
- Scegliere il tipo di immagine per IaaSMarketPlace o IaaSCustomImage. Per IaaSMarketPlace scegliere Editore, Offerta e Sku. Ad esempio Canonical, UbuntuServer, 16.04-LTS. Per IaaSCustomImage, oltre a Publisher, Offer e Sku, è necessario anche l'ID risorsa immagine personalizzata nel formato /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}
- Dimensioni dei nodi di calcolo, ad esempio sopra
- Numero massimo di attività per nodo di calcolo, ad esempio sopra
- Pacchetti di app: (come sopra)
- Rete virtuale: specificare facoltativamente l'ID subnet per il pool di Batch. Per informazioni su come creare una rete virtuale e una subnet personalizzata e ottenere l'ID subnet, vedere
questo documento. Controllare anche i requisiti di Batch per una rete virtuale personalizzata specificata in questo documento .
Nota
Fare riferimento questo documento per informazioni su come acquisire un'immagine da una macchina virtuale Linux e ottenere l'ID risorsa immagine. Per un'immagine di macchina virtuale personalizzata o una rete virtuale personalizzata (vedere di seguito), è necessario assegnare in modo esplicito l'applicazione client Batch ruolo Collaboratore alla risorsa tramite il relativo Controllo di accesso (IAM). In alternativa, è possibile che si verifichi un errore "BadRequest" quando si avvia il pool di Batch.
Passaggio 4: Avviare il pool
È necessario avviare il pool prima di eseguire i processi.
Per avviare un pool di Azure Batch
In Resource Management, nel riquadro di spostamento fare clic su nodi o pool di Azure Batch.
Nella visualizzazione elenco elenco o mappa termica selezionare uno o più pool di Azure Batch.
Nel riquadro azioni
fare clic su Avvia .Viene visualizzata finestra di dialogo Avvia pool di Azure Batch. Fare clic su Avvia.
Lo stato dei nodi passa da non distribuito a Provisioning.
Per tenere traccia dello stato di avanzamento del provisioning, selezionare il pool e quindi nel riquadro dei dettagli fare clic sulla scheda Log di provisioning. Il pool di Azure Batch deve essere creato in meno di 1 minuto e lo stato cambia in Offline.
Considerazioni aggiuntive
Monitorare lo stato dei nodi di calcolo di Azure Batch: dopo che il pool di Azure Batch è pronto, i nodi di calcolo di Azure Batch vengono ancora creati e avviati. Per monitorare lo stato del nodo, selezionare il pool e quindi nel riquadro dei dettagli fare clic su nodi di calcolo di Azure Batch.
Desktop remoto o SSH per i nodi di calcolo: dopo l'avvio dei nodi di calcolo nel pool di Azure Batch (lo stato del nodo è idle), è possibile connettersi tramite Desktop remoto o SSH a ogni nodo di calcolo se sono state configurate le impostazioni del modello per farlo, ad esempio per eseguire alcune operazioni di configurazione manuale o risoluzione dei problemi. A tale scopo, selezionare uno o più pool di Azure Batch e quindi nel riquadro azioni
fare clic su Desktop remoto/SSH . Quando ci si connette ai nodi Linux tramite SSH, è necessario copiare il file di chiave privata generato (con estensione ppk) nella cartella %CCP_HOME%Bin nel computer client.Visualizzare le attività di avvio: se è stata specificata un'attività di avvio nel modello del pool di Azure Batch, dopo l'avvio del pool di Azure Batch, è possibile visualizzare l'output dettagliato dell'attività di avvio eseguendo il cmdlet HPC PowerShell seguente:
Get-HpcBatchPoolStartTask -Name <PoolName>
visualizzazione mappa termica : durante l'esecuzione del pool di Azure Batch, visualizzare la mappa termica del pool. Nel riquadro di spostamento Gestione risorse fare clic su nodi e quindi scegliere visualizzazione Mappa termica. È anche possibile controllare la mappa termica per vm per i nodi Linux nel pool. Nel riquadro di spostamento Gestione risorse fare clic su pool di Azure Batche quindi scegliere visualizzazione mappa termica. Attualmente vengono raccolti i contatori delle prestazioni seguenti:
- Utilizzo CPU
- Velocità effettiva del disco
- Spazio libero su disco
- Utilizzo rete
- Memoria fisica disponibile
.
Passaggio 5: Eseguire un processo nel pool
Attualmente, HPC Pack supporta l'esecuzione di processi batch/parametric/mpi normali e clusrun comandi nei pool di Azure Batch. Si notino le raccomandazioni seguenti per l'uso di clusrun con Batch:
Eseguire clusrun processi in un pool di Azure Batch quando non vengono eseguiti altri processi nel pool. Se sono in esecuzione altri processi o attività, potrebbe essere necessario attendere il completamento delle attività in esecuzione processo.
I processi in esecuzione in un pool di Azure Batch per impostazione predefinita non restituiscono l'output dell'attività a HPC Pack, a causa del potenziale impatto sulle prestazioni. È possibile definire le attività di rilascio del nodo nel processo per recuperare l'output dell'attività, se necessario. Per recuperare l'output dell'attività, modificare la proprietà del cluster seguente tramite HPC PowerShell:
Set-HpcClusterProperty -GetAzureBatchTaskOutput $true
Passaggio 6: Arrestare il pool
Quando non si usa il pool di Batch, arrestare le risorse di Azure. Questo esegue il deprovisioning dei nodi di calcolo del pool, riducendo i costi dell'uso di un pool di Batch.
Per arrestare il pool
Nel riquadro di spostamento
Gestione risorse fare clic su nodio pool di Azure Batch .Nella visualizzazione elenco elenco
o mappa termica selezionare uno o più pool di Azure Batch da arrestare.Nel riquadro azioni
fare clic su Arresta .Viene visualizzata finestra di dialogo Arresta pool di Azure Batch. Fare clic su Arresta.
Per tenere traccia dello stato di arresto, selezionare un nodo e quindi nel riquadro dei dettagli
fare clic sulla scheda Log di provisioning.
Vedi anche
Microsoft HPC Pack: di distribuzione dei nodi