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 zum Azure Batch-Dienst finden Sie in der Azure.com Dokumentation .

Inhalt dieses Themas:

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 nicht über ein Abonnement verfügen, registrieren Sie sich für eine kostenlose Testversion, verwenden Sie die Vorteile von MSDN-Abonnenten 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 diesen Blog und dieses Dokument überprüfen, um mehr über den Zuweisungsmodus des Benutzerabonnements 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
Batch-Dienst Zugriffstaste/ Azure AD PaaS/IaaS (MarketPlaceImage) / IaaS (CustomImage via Azure AD) Ja Ja (über Azure AD)
Benutzerabonnement Azure AD IaaS (MarketPlaceImage)/ IaaS (CustomImage) Nein 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. Abrufen einer Batch-AAD-Instanz. Bei Verwendung der globalen Azure Cloud lautet https://login.microsoftonline.com/die AAD-Instanz .
  2. Abrufen der Batch-AAD-Mandanten-ID. 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 "Eigenschaften" klicken. Kopieren Sie den für die Verzeichnis-ID bereitgestellten GUID-Wert. Dieser Wert wird auch als Mandanten-ID bezeichnet.
  3. Registrieren Sie die Batchclientanwendung, und rufen Sie die Batch-AAD-ClientApp-ID ab.
  • 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" aus, suchen Sie und wählen Sie "App-Registrierungen" aus. - Klicken Sie auf +Neue Anwendungsregistrierung. - Geben Sie den Namen ein, wählen Sie web app/API als Anwendungstyp aus, und geben Sie einen wert ein, der für Ihre Anwendung spezifisch ist, z. B. https://myAppName für den Anmelde-URI. Klicken Sie 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-ID bereitgestellten GUID-Wert, er wird als Batch-AAD-ClientApp-ID verwendet.
  1. Konfigurieren, um einen Dienstprinzipal für die Authentifizierung zu verwenden und den Batch-AAD-ClientApp-Schlüssel abzurufen.
  • Fordern Sie einen geheimen Schlüssel für die Anwendung an. Wählen Sie die in der Liste der App-Registrierungen erstellte Anwendung aus, und klicken Sie auf "Schlüssel", geben Sie die Schlüsselbeschreibung ein, und wählen Sie " Dauer" aus, und klicken Sie dann auf " Speichern". Kopieren Sie den angezeigten Wert, der als Batch-AAD-ClientApp-Schlüssel verwendet 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" aus, 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. Klicken Sie auf Speichern.

Hinweis

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

Wichtig: Klicken Sie nach der Konfiguration von Azure AD für die Batchauthentifizierung mit den folgenden erhaltenen Batch-AAD-Informationen, öffnen Sie HPC Cluster Manager unter Configuration -> Deployment To-do List, klicken Sie auf " Azure Batch-Konfiguration 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 der Konfiguration im Navigationsbereich auf Knotenvorlagen.

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

  4. Klicken Sie auf der Seite "Knotenvorlagentyp auswählen " auf die Vorlage "Azure Batchpool", und klicken Sie dann auf "Weiter".

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

  6. Geben Sie auf der Seite " Azure Batch-Kontoinformationen bereitstellen " den Namen des Batchkontos ein. Wenn der Batchkontotyp "Batchdienst" lautet, wählen Sie "BatchService" als Batchkontotyp aus. Wenn Sie batchzugriffsschlüssel für die Authentifizierung verwenden, geben Sie den Schlüssel als Kontoschlüssel ein, 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. Füllen Sie die URL des Batchkontos und die zuvor abgerufene Azure Storage-Verbindungszeichenfolge aus, 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-Aufgabenliste festgelegt sind, oder die Kontoüberprüfung schlägt mit dem Fehler "Ungültiges Azure-Batchkonto" fehl. Überprüfen Sie die Einstellungen des Azure-Batchkontos." beim Klicken auf "Weiter".

  1. Lassen Sie auf der Azure Batch AutoScale-Konfigurationsseite " Automatische Skalierung aktivieren" deaktiviert, und klicken Sie auf "Weiter".

  2. Geben Sie auf der Seite "Remotedesktopanmeldeinformationen und SSH konfigurieren " 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) für SSH über putty.exeangeben. Informationen zum Generieren eines öffentlichen Schlüssels und einer Datei mit einem privaten Schlüssel für PuTTY finden Sie hier . 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 " Startskript angeben " mit HPC Pack 2012 R2 Update 3 optional eine Azure Batch-Startaufgabe an.

    • Befehlszeile – 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
    • Lokaler 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 beispielsweise 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 zu zippen und hochzuladen, und geben Sie dann startup.sh in der Befehlszeile 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 im Bereich "Aktionen" im Bereich "Ressourcenverwaltung" 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 klicken Sie dann auf "Weiter".

  3. Wählen Sie auf der Seite " Informationen zum Azure-Batchpool angeben " eine Azure-Batchpoolvorlage 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 sind.
    • Wählen Sie den Bildtyp für PaaS oder IaaSMarketPlace aus. Wählen Sie für PaaS die Betriebssystemfamilie aus. Z. B. Windows Server 2016. Wählen Sie für IaaSMarketPlacePublisher, Offer und Sku aus. 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. In diesem Dokument erfahren Sie, wie Sie ein benutzerdefiniertes VNet und Subnetz erstellen und die Subnetz-ID abrufen. Überprüfen Sie außerdem die Batchanforderungen für ein in diesem Dokument angegebenes benutzerdefiniertes VNet.

    Hinweis

    In diesem Dokument erfahren Sie, wie Sie ein Image von einer Linux-VM erfassen und die Image-Ressourcen-ID abrufen. Für ein benutzerdefiniertes VM-Image oder ein benutzerdefiniertes VNet (siehe unten) ist es erforderlich, die Rolle " Mitwirkender der Batch-Clientanwendung" der Ressource über die Zugriffssteuerung (IAM) explizit 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 im Navigationsbereich im Ressourcenverwaltungsbereich auf Knoten oder Azure-Batchpools.

  2. Wählen Sie in der Listen- oder Wärmeübersichtsansicht 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 wird von "Nicht bereitgestellt " in "Bereitstellung" geändert.

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

Zusätzliche Überlegungen

  • Überwachen Sie den 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 Detailbereich auf Azure Batch Compute Nodes.

  • Remotedesktop oder SSH zum Berechnen von Knoten – Nachdem die Computeknoten im Azure Batch-Pool gestartet wurden (Knotenstatus ist im 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 " auf "Remotedesktop/SSH". Beim Herstellen einer Verbindung mit Linux-Knoten über SSH ist es erforderlich, die generierte private Schlüsseldatei (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 Starten des Azure-Batchpools 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 im Navigationsbereich " Ressourcenverwaltung " auf "Knoten", und wählen Sie dann die Wärmebildansicht aus. Sie können auch die Wärmekarte pro VM für Linux-Knoten im Pool überprüfen. Klicken Sie im Navigationsbereich " Ressourcenverwaltung " auf "Azure Batchpools", und wählen Sie dann die Wärmezuordnungsansicht aus. Derzeit werden die folgenden Leistungsindikatoren erfasst:

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

.

Schritt 5: Ausführen eines Auftrags im Pool

Derzeit unterstützt HPC Pack das Ausführen von normalen Batch-/parametric/mpi-Befehlen und Clusrun-Befehlen 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 Batch-Pool 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 im Navigationsbereich im Ressourcenverwaltungsbereich auf Knoten oder Azure-Batchpools.

  2. Wählen Sie in der Listen- oder Wärmebildansicht einen oder mehrere Azure Batchpools aus, die Sie beenden möchten.

  3. Klicken Sie im Bereich "Aktionen " auf "Beenden".

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

  4. Wenn Sie den Status des Beendens nachverfolgen möchten, wählen Sie einen Knoten aus, und klicken Sie dann im Detailbereich auf die Registerkarte "Bereitstellungsprotokoll ".

Siehe auch

Microsoft HPC Pack: Knotenbereitstellung