Freigeben über


Burst to Azure Batch mit Microsoft HPC Pack

Dieses Thema enthält Informationen zum Erweitern Ihres HPC Pack-Clusters, um Azure Batchpools als Computeressourcen einzuschließen. Mit diesen Azure Batch-Pools können Sie die Kapazität Ihres HPC-Clusters bei Bedarf erhöhen ("burst"). Weitere Informationen finden Sie in der Dokumentation zum Azure Batch-Dienst.

In diesem Thema:

Voraussetzungen

  • HPC Pack-Cluster- – Sie müssen mindestens den Kopfknoten eines Clusters erstellen und konfigurieren. Die Burst-to-Batch-Funktion ist ab HPC Pack 2012 R2 Update 3 verfügbar.

  • Azure-Abonnement – Wenn Sie noch kein Abonnement haben, registrieren Sie sich für eine kostenlose Testversion, verwenden Sie MSDN-Abonnentenvorteile, oder erkunden Sie andere Kaufoptionen.

Schritt 1: Erstellen eines Azure-Batchkontos

Ab HPC Pack 2016 Update 1 benötigen Sie möglicherweise die folgenden Kontoinformationen, um aus HPC Pack entsprechend den verschiedenen Azure Batch-Ressourcenmodi (Batchdienst oder Benutzerabonnement) und Clientauthentifizierungsmethoden (Batchzugriffsschlüssel oder Azure AD) in Batch zu batchen:

  1. Batch serivce mit Zugriffstaste
    • Batchkontoname
    • Batchkonto-URL
    • Batchkontoschlüssel
  2. Batchdienst oder Benutzerabonnement mit Azure AD
    • Batch-AAD-Instanz
    • Batch-AAD-Mandanten-ID
    • Batch-AAD-ClientApp-ID
    • Batch-AAD-ClientApp-Schlüssel
    • Batchkontoname
    • Batchkonto-URL

Überprüfen Sie die folgende Tabelle, um zu entscheiden, welchen Batchkontotyp und welche Authentifizierungsmethode Sie auswählen möchten. Sie können auch diesem Blog und dieses Dokument, um mehr über den Zuweisungsmodus für den Benutzerabonnementpool und die Verwendung der Azure AD-Authentifizierung für den Azure Batch-Dienst zu erfahren.

Kontotyp/Poolzuordnungsmodus Authentifizierungsmethoden VM-Imagetypen VM mit niedriger Priorität VNet
Batchdienst Zugriffstaste/ Azure AD PaaS/IaaS (MarketPlaceImage) / IaaS (CustomImage via Azure AD) Ja Ja (über Azure AD)
Benutzerabonnement Azure AD IaaS (MarketPlaceImage)/ IaaS (CustomImage) Keine Ja

Verwenden Sie die Azure CLI, um ein Batchkonto mit dem Batchdienstpool-Zuordnungsmodus zu erstellen und den Batchzugriffsschlüssel für die Authentifizierung wie folgt zu verwenden:

# 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

Verwenden der Azure CLI zum Erstellen eines Batchkontos mit dem Zuweisungsmodus für Benutzerabonnements

# 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

So konfigurieren Sie Azure AD für die Batchauthentifizierung und erhalten Batch-AAD-Informationen

  1. Rufen Sie Batch-AAD-Instanzab. Bei Verwendung der globalen Azure Cloud ist die AAD-Instanz https://login.microsoftonline.com/.
  2. Rufen Sie Batch-AAD-Mandanten-IDab. Klicken Sie im Azure-Portal auf Weitere Dienste, suchen Und wählen Sie Azure Active Directory-aus, wählen Sie Ihr Active Directory aus, indem Sie Ihr Konto in der oberen rechten Ecke der Seite auswählen und auf Eigenschaftenklicken. Kopieren Sie den für die Verzeichnis-IDbereitgestellten GUID-Wert. Dieser Wert wird auch als Mandanten-ID bezeichnet.
  3. Registrieren Sie die Batchclientanwendung, und rufen Sie die Batch-AAD-ClientApp-IDab.
  • Wählen Sie im Azure-Portal Ihren Azure AD-Mandanten aus, indem Sie Ihr Konto in der oberen rechten Ecke der Seite auswählen. - Wählen Sie Weitere Dienste, suchen Und wählen Sie App-Registrierungenaus. - Klicken Sie auf +Neue Anwendungsregistrierung. - Geben Sie den Namenein, wählen Sie Web App/API als Anwendungstypaus, und geben Sie einen wert ein, der für Ihre Anwendung spezifisch ist, z. B. https://myAppName für den Anmelde-URI. Klicke auf Erstellen. – Nachdem die Anwendung erfolgreich erstellt wurde, wählen Sie die Anwendung in der Liste der App-Registrierungen aus, und klicken Sie auf Eigenschaften. Kopieren Sie den für die Anwendungs-IDbereitgestellten GUID-Wert, wird er als Batch-AAD-ClientApp-IDverwendet.
  1. Konfigurieren, um einen Dienstprinzipal für die Authentifizierung zu verwenden und den Batch-AAD-ClientApp Keyabzurufen.
  • Fordern Sie einen geheimen Schlüssel für die Anwendung an. Wählen Sie die anwendung aus, die in der Liste der App-Registrierungenerstellt wurde, und klicken Sie auf Schlüssel, geben Sie Schlüsselbeschreibung ein, und wählen Sie Daueraus, und klicken Sie dann auf Speichern. Kopieren Sie den angezeigten Wert, der als Batch-AAD-ClientApp-Schlüsselverwendet wird. – Weisen Sie der Anwendung eine RBAC-Rolle zu, um sich mit einem Dienstprinzipal zu authentifizieren. Wählen Sie Weitere Dienste, suchen Und wählen Sie Batchkonten, klicken Sie auf das erstellte Batchkonto, und wählen Sie Access Control (IAM)aus. Klicken Sie auf +ADD, wählen Sie Mitwirkenderrolle und die registrierte Anwendung aus. Klicke auf Speichern.

Hinweis

Beachten Sie, dass die Azure AD-Authentifizierung sowohl vom Batchdienstmodus als auch vom Benutzerabonnementmodus von Batchkonten unterstützt wird.

Wichtige: Nachdem Azure AD für die Batchauthentifizierung mit den folgenden abgerufenen Batch-AAD-Informationen konfiguriert wurde, öffnen Sie HPC Cluster Managerunter Konfiguration –> Bereitstellungs-Aufgabenliste, klicken Sie auf Azure Batchkonfiguration festlegen, um die Informationen entsprechend im Formular auszufüllen, und klicken Sie dann auf OK. Dieser Schritt ist erforderlich, wenn Azure AD für die Batchauthentifizierung in HPC Pack verwendet wird.

  • Batch-AAD-Instanz
  • Batch-AAD-Mandanten-ID
  • Batch-AAD-ClientApp-ID
  • Batch-AAD-ClientApp-Schlüssel

Alternativ können Sie das HPC PowerShell-Cmdlet verwenden, um Batch-AAD-Informationen wie unten dargestellt festzulegen:

# HPC PowerShell
Set-HpcClusterRegistry -BatchAADInstance '<AAD Instance e.g. https://login.microsoftonline.com/>' -BatchAADTenantId <TenantGUID> -BatchAADClientAppId <AppGUID> -BatchAADClientAppKey '<AppKey>'

Schritt 2: Erstellen einer Azure-Batchpoolvorlage

Verwenden Sie zum Erstellen einer Azure-Batchpoolvorlage den Assistenten zum Erstellen von Knotenvorlagen im HPC Cluster Manager.

So erstellen Sie eine Batchpoolvorlage

  1. Starten Sie HPC Cluster Manager.

  2. Klicken Sie in Konfigurations-im Navigationsbereichauf Knotenvorlagen.

  3. Klicken Sie im Bereich Aktionen auf Neue.
    Der Assistent zum Erstellen von Knotenvorlagen wird angezeigt.

  4. Klicken Sie auf der Seite Knotenvorlagentyp auswählen auf Azure Batchpoolvorlage, und dann auf Next.

  5. Geben Sie auf der Seite "Vorlagenname angeben" einen Namen für die Knotenvorlage ein, und geben Sie optional eine Beschreibung dafür ein. Klicken Sie auf Weiter.

  6. Geben Sie auf der Seite Geben Sie die Informationen zum Azure-Batchkonto seite ein, und geben Sie den Namen des Batchkontos ein. Wenn der Batchkontotyp batchdienst ist, wählen Sie BatchService- als Batchkontotyp aus. Wenn Sie batchzugriffsschlüssel für die Authentifizierung verwenden, geben Sie den Schlüssel als Kontoschlüsselein, wenn Sie die Azure AD-Authentifizierung verwenden, lassen Sie ihn einfach leer. Wenn der Typ des Batchkontos "Benutzerabonnement" lautet, wählen Sie UserSubscription als Batchkontotyp aus. Geben Sie die URL des Batchkontos und die Azure Storage-Verbindungszeichenfolge ein, die wir zuvor abgerufen haben, und klicken Sie dann auf Weiter.

Hinweis

Wenn die AAD-Authentifizierung erforderlich ist, stellen Sie sicher, dass die Batch-AAD-Instanz, die Batch-AAD-Mandanten-ID, die AAD-ClientApp-ID und der Batch-AAD-ClientApp-Schlüssel bereits in der Bereitstellungs-Aufgabenlistefestgelegt sind, oder die Kontoüberprüfung schlägt mit dem Fehler "Ungültiges Azure Batch-Konto fehl. Überprüfen Sie die Einstellungen des Azure Batch-Kontos." beim Klicken auf Weiter.

  1. Lassen Sie auf der Seite Azure Batch AutoScale-Konfiguration seite Autoskalierung aktivieren deaktiviert, und klicken Sie auf Nächsten.

  2. Geben Sie auf der Seite Konfigurieren von Remotedesktopanmeldeinformationen und SSH- optional die Anmeldeinformationen eines Benutzers an, der während der Bereitstellung auf Azure Batchpool-Computeknoten erstellt wird. Sie können die Anmeldeinformationen später verwenden, um eine Verbindung mit den Pool-Computeknoten herzustellen. Für Linux-Knoten können Sie auch SSH Public Key und SSH Private Key File(.ppk) zum Knoten über putty.exeangeben. Lesen Sie hier, wie Sie einen öffentlichen Schlüssel und eine private Schlüsseldatei für PuTTY generieren. Hinweis: Wenn Sie sowohl Kennwort- als auch SSH-Schlüssel angeben, werden SSH-Schlüssel für die Verbindung verwendet. Sie müssen auch die generierte Private Key-Datei (PPK) in %CCP_HOME%Bin Ordner kopieren, um SSH auf die Knoten von HPC Cluster Manager zu öffnen. Klicken Sie auf Weiter.

  3. Geben Sie auf der Seite Angeben des Startskripts mit HPC Pack 2012 R2 Update 3 optional eine Azure Batch-Startaufgabean.

    • Befehlszeilen- – der Befehl, der beim Starten von Azure Batch-Computeknoten ausgeführt wird
    • BLOB-Quell-URL – Azure-Speicherort von Dateien, die Sie zuvor hochgeladen haben und die automatisch auf Azure Batch-Computeknoten heruntergeladen werden
    • lokalen Dateipfad – Der Speicherort zum Herunterladen der Dateien auf den Azure Batch-Computeknoten
      Geben Sie in HPC Pack 2016 Update 1 oder höher optional eine Befehlszeile oder den Namen eines Startskripts an, das auf allen Azure Batch-Computeknoten im Batchpool ausgeführt werden soll. Derzeit wird das Startskript nur für Linux-Knoten unterstützt. Wenn Sie z. B. ein Skript namens startup.sh auf allen Linux-Knoten in einem Batchpool ausführen möchten, müssen Sie das Befehlszeilentool HpcPack.exe verwenden, um das Skript wie unten in das Azure-Speicherkonto hochzuladen, und geben Sie dann startup.sh in der Befehlszeilen-an:
    HpcPack.exe create startup.sh.zip startup.sh 
    HpcPack.exe upload startup.sh.zip /account:<StorageAccountName> /key:<StorageAccountKey>
    
  4. Klicken Sie auf Weiter, und überprüfen Sie alle angegebenen Vorlageneinstellungen. Klicken Sie auf Erstellen, um die Azure Batchpool-Knotenvorlage zu generieren.

Schritt 3: Hinzufügen eines Azure-Batchpools

Verwenden Sie den Assistenten zum Hinzufügen von Knoten im HPC Cluster-Manager, um die Batchpool-Computeknoten hinzuzufügen.

So fügen Sie einen Azure-Batchpool hinzu

  1. Klicken Sie im HPC Cluster Manager in Ressourcenverwaltungim Bereich Aktionen bereich auf Knoten hinzufügen. Der Assistent zum Hinzufügen von Knoten wird angezeigt.

  2. Klicken Sie auf der Seite Bereitstellungsmethode auswählen auf Azure Batchpool hinzufügen, und dann auf Weiter.

  3. Wählen Sie auf der Seite Azure Batch pool Information Seite eine Azure Batchpool-Vorlage aus. Geben Sie gemäß dem Typ des Batchkontos in der ausgewählten Vorlage die Poolinformationen wie folgt an:
    Wenn der Batchkontotyp "Batchdienst" lautet,

    • Anzahl der Computeknoten – die Anzahl der Computeknoten (Instanzen virtueller Computer) im neuen Azure-Batchpool
    • Gibt an, ob die virtuellen Computer dedizierte VM- oder VM mit niedriger Priorität
    • Wählen Sie den Bildtyp für PaaS oder IaaSMarketPlace aus. Wählen Sie für PaaSdie Betriebssystemfamilieaus. Z. B. Windows Server 2016. Wählen Sie für IaaSMarketPlacePublisher, Offerund Skuaus. Z.B. kanonische, UbuntuServer, 16.04-LTS.
    • Größe der Computeknoten – die Rollengröße jedes Computeknotens.
    • Max Tasks Per Compute Node – die maximale Anzahl gleichzeitiger Aufgaben, die auf jedem Computeknoten ausgeführt werden sollen. Die Standardnummer ist gleich der Anzahl der Kerne in der ausgewählten Rollengröße. Die maximale Anzahl ist dreimal größer als die tatsächliche Anzahl von Kernen. Beachten Sie, dass der max. Aufgaben pro Computeknoten multipliziert mit der Anzahl der Computeknoten den Gesamtkern des Batchpoolknotens entspricht.
    • App-Pakete – geben Sie optional die Anwendungspakete an, die bereits im Batchkonto im Format <ID>:<Version>,<ID>:<Version>, ... Wenn der Typ des Batchkontos "Benutzerabonnement" lautet,
    • Anzahl der Computeknoten – (wie oben)
    • Wählen Sie den Bildtyp für IaaSMarketPlace oder IaaSCustomImage aus. Wählen Sie für IaaSMarketPlace Publisher, Offer und Sku aus. Z.B. kanonische, UbuntuServer, 16.04-LTS. Für IaaSCustomImage ist neben Publisher, Offer und Sku auch die ID der benutzerdefinierten Bildressource im Format /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName} erforderlich.
    • Größe von Computeknoten – (wie oben)
    • Max Tasks Per Compute Node – (wie oben)
    • App-Pakete – (wie oben)
    • VNet – Geben Sie optional die Subnetz-ID für den Batchpool an. Lesen Sie dieses Dokument, wie Sie ein benutzerdefiniertes VNet und Subnetz erstellen und die Subnetz-ID abrufen. Überprüfen Sie auch die Batchanforderungen für ein benutzerdefiniertes VNet, das in diesem Dokumentangegeben ist.

    Hinweis

    Lesen Sie dieses Dokument, um das Image von einer Linux-VM zu erfassen und die Image-Ressourcen-ID abzurufen. Für ein benutzerdefiniertes VM-Image oder ein benutzerdefiniertes VNet (siehe unten) ist es erforderlich, die Batch-Clientanwendung explizit Mitwirkenden Rolle der Ressource über die Access Control (IAM)zuzuweisen. Oder der Fehler "BadRequest" kann beim Starten des Batchpools auftreten.

Schritt 4: Starten des Pools

Sie müssen den Pool starten, bevor Sie Aufträge ausführen.

So starten Sie einen Azure-Batchpool

  1. Klicken Sie in Ressourcenverwaltungim Navigationsbereichauf Knoten oder Azure Batchpools.

  2. Wählen Sie in der Ansicht Liste oder Wärmeübersicht einen oder mehrere Azure Batchpools aus.

  3. Klicken Sie im Bereich Aktionen auf Start.

    Das Dialogfeld Azure-Batchpools starten wird angezeigt. Klicken Sie auf Start.

  4. Der Status der Knoten ändert sich von Nicht bereitgestellten in Bereitstellung.

    Wenn Sie den Bereitstellungsfortschritt nachverfolgen möchten, wählen Sie den Pool aus, und klicken Sie dann im Detailbereichauf die Registerkarte Bereitstellungsprotokoll. Der Azure Batch-Pool sollte in weniger als 1 Minute erstellt werden, und der Zustand wird in Offline-geändert.

Zusätzliche Überlegungen

  • Überwachen des Status von Azure Batch-Computeknoten– Nachdem der Azure Batch-Pool bereit ist, werden die Azure Batch-Computeknoten noch erstellt und gestartet. Um den Knotenstatus zu überwachen, wählen Sie den Pool aus, und klicken Sie dann im Detailbereichauf Azure Batch Compute Nodes.

  • Remotedesktop oder SSH zum Berechnen von Knoten – Nachdem die Computeknoten im Azure Batch-Pool gestartet wurden (Knotenstatus ist Leerlauf), können Sie eine Verbindung über Remotedesktop oder SSH mit jedem Computeknoten herstellen, wenn Sie die Vorlageneinstellungen so konfiguriert haben, z. B. um eine manuelle Konfiguration oder Problembehandlung durchzuführen. Wählen Sie dazu einen oder mehrere Azure Batch-Pools aus, und klicken Sie dann im Bereich Aktionen Bereich auf Remotedesktop/SSH-. Beim Herstellen einer Verbindung mit Linux-Knoten über SSH-ist es erforderlich, die generierte Private Key-Datei (PPK) in den ordner %CCP_HOME%Bin auf dem Clientcomputer zu kopieren.

  • Anzeigen von Startaufgaben – Wenn Sie eine Startaufgabe in der Azure Batch-Poolvorlage angegeben haben, können Sie nach dem Start des Azure Batch-Pools die detaillierte Ausgabe der Startaufgabe anzeigen, indem Sie das folgende HPC PowerShell-Cmdlet ausführen:

    Get-HpcBatchPoolStartTask -Name <PoolName>   
    
  • Wärmebildansicht – Während der Azure Batch-Pool ausgeführt wird, zeigen Sie die Wärmekarte des Pools an. Klicken Sie in Ressourcenverwaltung im Navigationsbereich auf Knotenund wählen Sie dann Wärmebildansicht aus. Sie können auch die Wärmekarte pro VM für Linux-Knoten im Pool überprüfen. Klicken Sie in Ressourcenverwaltungs- im Navigationsbereich auf Azure Batchpools, und wählen Sie dann Wärmebildansicht aus. Derzeit werden die folgenden Leistungsindikatoren erfasst:

    • CPU-Verbrauch
    • Datenträgerdurchsatz
    • Freier Speicherplatz
    • Netzwerknutzung
    • Verfügbarer physischer Arbeitsspeicher

,

Schritt 5: Ausführen eines Auftrags im Pool

Derzeit unterstützt HPC Pack sowohl das Ausführen eines normalen Batch-/parametric/mpi-Auftrags als auch clusrun Befehle in Azure Batchpools. Beachten Sie die folgenden Empfehlungen für die Verwendung von clusrun mit Batch:

  • Führen Sie clusrun Aufträge in einem Azure-Batchpool aus, wenn keine anderen Aufträge im Pool ausgeführt werden. Wenn andere Aufträge oder Aufgaben ausgeführt werden, muss der clusrun Auftrag möglicherweise warten, bis die ausgeführten Aufgaben abgeschlossen sind.

  • Aufträge, die in einem Azure Batch-Pool ausgeführt werden, geben die Vorgangsausgabe standardmäßig nicht an HPC Pack zurück, da sich dies auf die potenzielle Leistung auswirkt. Sie können Knotenfreigabeaufgaben im Auftrag definieren, um die Vorgangsausgabe abzurufen, wenn Sie möchten. Um die Vorgangsausgabe abzurufen, ändern Sie die folgende Clustereigenschaft über HPC PowerShell:

    Set-HpcClusterProperty -GetAzureBatchTaskOutput $true  
    

Schritt 6: Beenden des Pools

Wenn Sie den Batchpool nicht verwenden, beenden Sie die Azure-Ressourcen. Dadurch werden die Pool-Computeknoten aufgehoben, wodurch die Kosten für die Verwendung eines Batchpools reduziert werden.

So beenden Sie den Pool

  1. Klicken Sie in Ressourcenverwaltungs-im Navigationsbereich auf Knoten oder Azure Batchpools.

  2. Wählen Sie in der Ansicht Liste oder Wärmebild einen oder mehrere Azure Batchpools aus, die Sie beenden möchten.

  3. Klicken Sie im Bereich Aktionen auf Beenden.

    Das Dialogfeld Beenden von Azure-Batchpools wird angezeigt. Klicken Sie auf beenden.

  4. Wenn Sie den Status zum Beenden nachverfolgen möchten, wählen Sie einen Knoten aus, und klicken Sie dann im Detailbereichauf die Registerkarte Bereitstellungsprotokoll.

Siehe auch

Microsoft HPC Pack: Knotenbereitstellung