Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In einem Azure Batch-Workflow ist ein Computeknoten (bzw. Knoten) ein virtueller Computer, der einen Teil der Workload Ihrer Anwendung verarbeitet. Ein Pool ist eine Sammlung von Knoten, auf denen Ihre Anwendung ausgeführt wird. In diesem Artikel erfahren Sie mehr über Knoten und Pools sowie Aspekte bei deren Erstellung und Nutzung in einem Azure Batch-Workflow.
Knoten
Ein Node ist eine Azure-VM oder eine Clouddienst-VM, die der Verarbeitung eines Teils der Arbeitslast Ihrer Anwendung zugewiesen ist. Die Größe eines Knotens bestimmt die Anzahl von CPU-Kernen, die Speicherkapazität und die lokale Dateisystemgröße, die dem Knoten zugeordnet werden.
Pools mit Windows- oder Linux-Knoten können mithilfe von Azure Cloud Services, auf der Grundlage von Images aus dem Azure Virtual Machines Marketplace oder auf der Grundlage eigener benutzerdefinierter Images erstellt werden.
Knoten können alle ausführbaren Dateien oder Skripts ausführen, die von der Betriebssystemumgebung des Knotens unterstützt werden. Zu den ausführbaren Dateien oder Skripten gehören *.exe, *.cmd, *.bat und PowerShell-Skripte (für Windows) sowie Binärdateien, Shell- und Python-Skripte (für Linux).
Alle Computeknoten in Batch enthalten außerdem Folgendes:
- Eine standardmäßige Ordnerstruktur und die dazugehörigen Umgebungsvariablen, die zur Referenzierung durch Tasks verfügbar sind.
- Firewalleinstellungen, die zur Zugriffskontrolle konfiguriert sind.
- Remotezugriff auf Windows-Knoten (Remotedesktopprotokoll, RDP) und Linux-Knoten (Secure Shell, SSH), es sei denn, Sie erstellen einen Pool mit deaktiviertem Remotezugriff
Standardmäßig können Knoten miteinander kommunizieren, aber sie können nicht mit virtuellen Computern kommunizieren, die nicht Teil desselben Pools sind. Um die sichere Kommunikation zwischen Knoten und anderen VMs oder einem lokalen Netzwerk zu ermöglichen, können Sie den Pool in einem Subnetz eines virtuellen Azure-Netzwerks (VNet) bereitstellen. Wenn Sie dies tun, kann auf Ihre Knoten über öffentliche IP-Adressen zugegriffen werden. Batch erstellt diese öffentlichen IP-Adressen, die sich über die Lebensdauer des Pools möglicherweise ändern können. Sie können auch einen Pool mit statischen öffentlichen IP-Adressen erstellen , die Sie steuern, wodurch sichergestellt wird, dass sie sich nicht unerwartet ändern.
Schwimmbäder
Ein Pool ist eine Sammlung von Knoten, auf denen Ihre Anwendung ausgeführt wird.
Azure Batch-Pools basieren auf der Azure-Computeplattform. Sie bieten Funktionen für umfangreiche Zuordnungen, für die Anwendungsinstallation, die Datenverteilung und die Systemüberwachung sowie für die flexible Anpassung (Skalierung) der Computeknotenanzahl innerhalb eines Pools.
Jedem Knoten, der einem Pool hinzugefügt wird, werden ein eindeutiger Name und eine IP-Adresse zugewiesen. Beim Entfernen eines Knotens aus einem Pool gehen alle Änderungen am Betriebssystem oder an den Dateien verloren, und sein Name und die IP-Adresse werden zur späteren Verwendung freigegeben. Wenn ein Knoten einen Pool verlässt, endet seine Lebensdauer.
Ein Pool kann nur vom Batchkonto verwendet werden, in dem er erstellt wurde. Ein Batchkonto kann mehrere Pools erstellen, um die Ressourcenanforderungen der Anwendungen zu erfüllen, die ausgeführt werden müssen.
Der Pool kann manuell oder automatisch vom Batch-Dienst erstellt werden, wenn Sie die zu erledigenden Aufgaben angeben. Wenn Sie einen Pool erstellen, können Sie die folgenden Attribute angeben:
-
Knoten und Pools in Azure Batch
- Knoten
- Toto
- Betriebssystem und -version
- Konfigurationen
- Knotentyp und -ziel
- Knotengröße
- Richtlinie für automatische Skalierung
- Richtlinie zur Taskplanung
- Kommunikationsstatus
- Startaufgaben
- Anwendungspakete
- Konfiguration von VNET (virtuelles Netzwerk) und Firewall
- Lebensdauer von Pools und Computeknoten
- Automatische Pools
- Sicherheit mit Zertifikaten
- Nächste Schritte
Wichtig
Batch-Konten verfügen über ein Standardkontingent, das die Anzahl von Kernen in einem Batch-Konto begrenzt. Die Anzahl der Kerne entspricht der Anzahl von Serverknoten. Die Standardkontingente und eine Anleitung zum Erhöhen des Kontingents finden Sie unter Kontingente und Limits für den Azure Batch-Dienst. Wenn Ihr Pool seine Zielanzahl von Knoten nicht erreicht, kann das Kernkontingent der Grund sein.
Betriebssystem und -version
Wenn Sie einen Batch-Pool erstellen, können Sie die Konfiguration der Azure-VM und den Typ des Betriebssystems angeben, das auf jedem Computeknoten im Pool ausgeführt werden soll.
Konfigurationen
VM-Konfiguration
Die Konfiguration „Virtueller Computer“ gibt an, dass der Pool aus virtuellen Azure-Computern besteht. Diese virtuellen Computer können aus Linux- oder Windows-Images erstellt werden.
Der Batch-Knoten-Agent ist ein Programm, das auf jedem Knoten im Pool ausgeführt wird. Er stellt die Befehls- und Steuerungsschnittstelle zwischen dem Knoten und dem Batch-Dienst dar. Es gibt verschiedene Implementierungen des Knoten-Agents (SKUs) für verschiedene Betriebssysteme. Beim Erstellen eines Pools auf Basis der VM-Konfiguration müssen Sie nicht nur die Knotengröße und die Quelle der Images für deren Erstellen angeben, sondern auch die VM-Imagereferenz und die Knoten-Agent-SKU von Batch, die auf den Knoten installiert werden soll. Weitere Informationen zum Angeben dieser Pooleigenschaften finden Sie unter Bereitstellen von Linux-Computeknoten in Azure Batch-Pools. Sie können optional leere Datenträger an virtuelle Poolcomputer anfügen, die auf der Grundlage von Marketplace-Images erstellt wurden, oder Datenträger in benutzerdefinierte Images einschließen, die zum Erstellen der virtuellen Computer verwendet werden. Wenn Sie Datenträger einbeziehen, müssen Sie sie innerhalb eines virtuellen Computers einbinden und formatieren, um sie zu verwenden.
Knoten-Agent-SKUs
Wenn Sie einen Pool erstellen, müssen Sie je nach dem Betriebssystem des Basisimages Ihrer VHD die entsprechende nodeAgentSkuId auswählen. Eine Zuordnung der verfügbaren Knoten-Agent-SKU-IDs zu ihren Betriebssystemimages erhalten Sie durch den Aufruf des Vorgangs zum Auflisten der unterstützten Knoten-Agent-SKUs.
Benutzerdefinierte Images für VM-Pools
Weitere Informationen zum Erstellen eines Pools mit benutzerdefinierten Images finden Sie unter Verwenden der Azure Compute Gallery zum Erstellen eines benutzerdefinierten Pools.
Containerunterstützung in VM-Pools
Wenn Sie mithilfe der Batch-APIs einen VM-Konfigurationspool erstellen, können Sie den Pool zum Ausführen von Aufgaben in Docker-Containern einrichten. Derzeit müssen Sie den Pool unter Verwendung eines Images erstellen, das Docker-Container unterstützt. Verwenden Sie das Image „Windows Server 2016 Datacenter mit Containern“ aus dem Azure Marketplace, oder stellen Sie ein benutzerdefiniertes VM-Image mit Docker Community Edition oder Enterprise Edition und allen erforderlichen Treibern bereit. Die Pooleinstellungen müssen eine Containerkonfiguration enthalten, die bei der Poolerstellung Containerimages auf die virtuellen Computer kopiert. Aufgaben, die im Pool ausgeführt werden, können dann auf die Container-Images und die Containerausführungsoptionen verweisen.
Weitere Informationen finden Sie unter Ausführen von Docker-Containeranwendungen in Azure Batch.
Knotentyp und Ziel
Wenn Sie einen Pool erstellen, können Sie die gewünschten Typen von Knoten und die Zielanzahl für jeden einzelnen angeben. Es gibt zwei Knotentypen:
- Dedizierte Knoten. Dedizierte Serverknoten sind für Ihre Workloads reserviert. Sie sind in der Regel teurer als Spot-Knoten, aber sie werden garantiert nicht vorzeitig entfernt.
- Spot-Knoten. Spot-Knoten nutzen die überschüssige Kapazität in Azure, um Ihre Batch-Workloads auszuführen. Spot-Knoten sind pro Stunde preiswerter als dedizierte Knoten und ermöglichen Arbeitslasten, die eine hohe Rechenleistung erfordern. Weitere Informationen finden Sie unter Verwendung von Spot-VMs mit Batch.
Spot-Knoten können vorgezogen werden, wenn Azure nicht genügend überschüssige Kapazitäten hat. Wenn ein Knoten beim Ausführen von Aufgaben vorzeitig entfernt wird, werden die Aufgaben erneut in die Warteschlange gestellt und erneut ausgeführt, wenn wieder ein Serverknoten verfügbar ist. Spot-Knoten sind eine gute Option für Arbeitslasten, bei denen die Fertigstellungszeit flexibel ist und die Arbeit auf viele Knoten verteilt ist. Bevor Sie sich für die Verwendung von Spot-Knoten in Ihrem Szenario entscheiden, sollten Sie sicherstellen, dass der Arbeitsausfall aufgrund von vorzeitiger Entfernung minimal und leicht fortsetzbar oder wiederherstellbar ist.
Sie können sowohl Spot- als auch dedizierte Rechenknoten im selben Pool haben. Jeder Knotentyp verfügt über eine eigene Zieleinstellung, für die Sie die gewünschte Anzahl von Knoten angeben können.
Die Anzahl der Serverknoten wird als Ziel bezeichnet, da Ihr Pool in einigen Fällen unter Umständen nicht die gewünschte Anzahl von Knoten erreicht. Ein Pool kann beispielsweise das Ziel nicht erreichen, wenn er zuerst das Kernkontingent Ihres Batch-Kontos erreicht. Oder der Pool erreicht das Ziel möglicherweise nicht, wenn Sie eine automatische Skalierungsformel auf den Pool angewendet haben, der die maximale Anzahl von Knoten begrenzt.
Hinweis
Wenn Batch-Spot-Serverknoten vorzeitig entfernt werden, gehen sie zuerst in den Zustand unusable
über. Nach einiger Zeit wechseln diese Serverknoten dann in den Zustand preempted
. Batch aktiviert automatisch das Verhalten Versuchen & Wiederherstellen, um entfernte Spot-Instanzen gemäß des Best-Effort-Prinzips wiederherzustellen, um die Anzahl der Zielinstanzen aufrechtzuerhalten.
Preisinformationen für Spot- und dedizierte Knoten finden Sie unter Batch-Preise.
Knotengröße
Wenn Sie einen Azure Batch-Pool erstellen, können Sie aus fast allen in Azure verfügbaren VM-Familien und -Größen wählen. Azure bietet verschiedene VM-Größen für unterschiedliche Workloads, u.a. spezialisierte HPC-- oder GPU-fähige VM-Größen. Knoten-VM-Größen können nur zum Zeitpunkt der Erstellung eines Pools ausgewählt werden. Anders ausgedrückt: Nachdem ein Pool erstellt wurde, kann seine VM-Größe nicht mehr geändert werden.
Weitere Informationen finden Sie unter Choose a VM size for compute nodes in an Azure Batch pool (Auswählen einer VM-Größe für Computeknoten in einem Azure Batch-Pool).
Richtlinie für automatische Skalierung
Bei dynamischen Workloads können Sie eine Richtlinie für automatische Skalierung auf einen Pool anwenden. Der Batchdienst wertet Ihre Formel regelmäßig aus und passt die Anzahl der Knoten innerhalb des Pools entsprechend der aktuellen Workload und der Ressourcennutzung Ihres Berechnungsszenarios dynamisch an. So können Sie die Gesamtkosten für die Ausführung Ihrer Anwendung senken, indem Sie nur die erforderlichen Ressourcen verwenden und nicht benötigte Ressourcen freigeben.
Sie aktivieren die automatische Skalierung, indem Sie eine Formel für die automatische Skalierung erstellen und diese Formel einem Pool zuordnen. Der Batch-Dienst verwendet die Formel, um die vorgegebene Anzahl von Knoten im Pool für das nächste Skalierungsintervall (welches Sie konfigurieren können) zu bestimmen. Sie können für einen Pool die Einstellungen für die automatische Skalierung angeben, wenn Sie diesen erstellen, oder Sie können die Skalierung für einen Pool später aktivieren. Außerdem können Sie die Skalierungseinstellungen für einen Pool aktualisieren, für den die Skalierung aktiviert ist.
Beispielsweise kann es für einen Auftrag erforderlich sein, eine große Anzahl von Tasks zu übermitteln, die ausgeführt werden sollen. Sie können dem Pool eine Skalierungsformel zuweisen, die die Anzahl von Knoten im Pool auf der Grundlage der aktuellen Anzahl von Tasks in der Warteschlange sowie der Abschlussrate der Tasks im Auftrag anpasst. Der Batch-Dienst wertet die Formel in regelmäßigen Abständen aus und ändert die Größe des Pools auf Grundlage von Workload und anderen Formeleinstellungen. Der Dienst fügt bei Bedarf Knoten hinzu, wenn eine große Anzahl von Tasks in der Warteschlange vorhanden ist und entfernt Knoten, wenn keine Tasks in der Warteschlange sind oder ausgeführt werden.
Eine Skalierungsformel kann auf den folgenden Metriken basieren:
- Zeitmetriken : Basieren auf Statistiken, die alle fünf Minuten für die angegebene Anzahl von Stunden erfasst werden.
- Ressourcenmetriken : Basieren auf CPU-Auslastung, Bandbreitenauslastung, Speicherauslastung und Knotenanzahl.
- Taskmetriken: Basieren auf dem Taskstatus – beispielsweise Aktiv (in der Warteschlange), Wird ausgeführt oder Abgeschlossen.
Wenn die Anzahl von Computeknoten in einem Pool durch die automatische Skalierung verringert wird, müssen Sie sich überlegen, wie Sie Tasks behandeln, die zum Zeitpunkt des Verringerungsvorgangs ausgeführt werden. Hierfür verfügt Batch über eine Option zum Aufheben der Knotenzuordnung, die Sie in Ihre Formeln einfügen können. Sie können beispielsweise angeben, dass ausgeführte Tasks sofort beendet und dann für die Ausführung auf einem anderen Knoten erneut in die Warteschlange eingereiht werden oder dass die Fertigstellung abgewartet werden soll, bevor der Knoten aus dem Pool entfernt wird. Wenn Sie die Option zum Aufheben der Knotenzuordnung auf taskcompletion
oder retaineddata
festlegen, werden Vorgänge zur Änderung der Poolgröße so lange verhindert, bis alle Aufgaben abgeschlossen sind bzw. bis alle Aufbewahrungszeiträume für Aufgaben abgelaufen sind.
Weitere Informationen zur automatischen Skalierung einer Anwendung finden Sie unter Automatisches Skalieren von Computeknoten in einem Azure Batch-Pool.
Tipp
Legen Sie die Zielanzahl von Knoten am Ende eines Auftrags auf Null fest, und lassen Sie das Abschließen ausgeführter Tasks zu, um die Auslastung von Computeressourcen zu maximieren.
Richtlinie zur Taskplanung
Die Konfigurationsoption maximale Aufgaben pro Knoten bestimmt die maximale Anzahl von Aufgaben, die parallel auf den einzelnen Rechenknoten im Pool ausgeführt werden können.
Die Standardkonfiguration gibt an, dass jeweils eine Aufgabe auf einem Knoten ausgeführt wird. Es gibt jedoch Szenarien, in denen es von Vorteil ist, zwei oder mehr Aufgaben gleichzeitig auf einem Knoten auszuführen. Sehen Sie sich das Beispielszenario im Artikel zu gleichzeitigen Knotenaufgaben an, wie Sie potenziell von mehreren Aufgaben pro Knoten profitieren können.
Sie können auch einen Fülltyp angeben. Dieser legt fest, ob Batch die Tasks gleichmäßig auf alle Knoten eines Pools verteilt oder jeden Knoten mit der maximalen Anzahl von Tasks auffüllt, bevor Tasks einem weiteren Knoten zugewiesen werden.
Kommunikationsstatus
In den meisten Szenarien funktionieren Aufgaben unabhängig und müssen nicht miteinander kommunizieren. Es gibt aber einige Anwendungen, bei denen Tasks kommunizieren müssen, z.B. MPI-Szenarien.
Sie können einen Pool zum Zulassen der Kommunikation zwischen Knoten konfigurieren, sodass Knoten in einem Pool zur Laufzeit miteinander kommunizieren können. Wenn die Internodekommunikation aktiviert ist, können Knoten in Cloud Services-Konfigurationspools über Ports mit Nummern größer als 1100 miteinander kommunizieren, und Konfigurationspools für virtuelle Computer beschränken den Datenverkehr auf keinem Port.
Die Aktivierung der Kommunikation zwischen Knoten wirkt sich auch auf die Anordnung der Knoten in Clustern aus. Aufgrund von Bereitstellungsbeschränkungen wird unter Umständen die maximale Anzahl von Knoten in einem Pool begrenzt. Wenn Ihre Anwendung keine Kommunikation zwischen Knoten erfordert, kann der Batchdienst dem Pool eine potenziell große Anzahl von Knoten aus vielen verschiedenen Clustern und Rechenzentren zuweisen, um eine erhöhte Parallelverarbeitungsleistung zu ermöglichen.
Starttasks
Wenn gewünscht, können Sie eine Startaufgabe hinzufügen, die auf jedem Knoten ausgeführt wird, wenn dieser Knoten dem Pool beitritt, und jedes Mal, wenn ein Knoten neu gestartet oder umimaged wird. Der Starttask ist besonders nützlich, um Computeknoten für die Ausführung von Aufgaben vorzubereiten, wie zum Beispiel das Installieren der Anwendungen, die bei der Ausführung Ihrer Tasks auf den Computeknoten benötigt werden.
Anwendungspakete
Sie können Softwarepakete für die Bereitstellung auf den Computeknoten im Pool festlegen. Anwendungspakete bieten eine vereinfachte Bereitstellung und Versionsverwaltung der Anwendungen, die von Ihren Tasks ausgeführt werden. Die Anwendungspakete, die Sie für einen Pool angeben, werden auf jedem Knoten installiert, der dem Pool hinzugefügt wird, sowie wenn der Knoten neu gestartet oder ein Reimaging durchgeführt wird.
Weitere Informationen zum Bereitstellen von Anwendungen für Batch-Knoten mithilfe von Anwendungspaketen finden Sie unter Bereitstellen von Anwendungen auf Computeknoten mit Batch-Anwendungspaketen.
Virtuelles Netzwerk (VNET) und Firewallkonfiguration
Wenn Sie in Batch einen Serverknotenpool bereitstellen, können Sie den Pool einem Subnetz eines virtuellen Azure-Netzwerks (VNet) zuordnen. Um ein virtuelles Azure-VNet zu verwenden, muss die Batch-Client-API die Microsoft Entra-Authentifizierung verwenden. Die Azure Batch-Unterstützung für Microsoft Entra ID ist unter Authentifizieren von Lösungen des Azure Batch-Diensts mit Active Directory dokumentiert.
VNET-Anforderungen
Weitere Informationen zum Einrichten eines Batch-Pools in einem virtuellen Netzwerk finden Sie unter Erstellen eines Pools virtueller Maschinen mit Ihrem virtuellen Netzwerk.
Tipp
Um sicherzustellen, dass sich die öffentlichen IP-Adressen für den Zugriff auf Knoten nicht ändern, können Sie einen Pool mit festgelegten öffentlichen IP-Adressen erstellen, die von Ihnen gesteuert werden.
Lebensdauer von Pools und Serverknoten
Beim Entwerfen Ihrer Azure Batch-Lösung müssen Sie angeben, wie und wann Pools erstellt werden und wie lange Computeknoten innerhalb dieser Pools verfügbar bleiben sollen.
An einem Ende des Spektrums können Sie einen Pool für jeden Auftrag erstellen, den Sie senden, und den Pool dann löschen, sobald die Ausführung seiner Tasks abgeschlossen ist. Auf diese Weise wird die Effektivität der Nutzung erhöht, da die Knoten nur bei Bedarf zugeordnet und heruntergefahren werden, wenn sie sich im Leerlauf befinden. Dies bedeutet, dass der Auftrag bis zur Zuweisung der Knoten warten muss. Dabei ist aber wichtig zu erwähnen, dass für die Tasks die Ausführung geplant wird, sobald die Knoten einzeln zugewiesen wurden und der Starttask abgeschlossen ist, wenn angegeben wurde, dass auf den Abschluss des Starttasks gewartet werden soll. Batch wartet nicht darauf, dass alle Knoten in einem Pool verfügbar sind, bevor Aufgaben den Knoten zugewiesen werden. Dadurch ist eine maximale Auslastung aller verfügbaren Knoten gewährleistet.
Falls dagegen der sofortige Start von Aufträgen höchste Priorität hat, können Sie bereits vorab einen Pool erstellen und die zugehörigen Knoten vor der Auftragsübermittlung verfügbar machen. Dieses Szenario ermöglicht zwar den sofortigen Start von Tasks, führt aber unter Umständen auch dazu, dass sich Knoten im Leerlauf befinden, während sie auf die Zuteilung warten.
Zur Bewältigung einer variablen, kontinuierlichen Auslastung wird in der Regel ein kombinierter Ansatz verfolgt. Sie können über einen Pool verfügen, an den mehrere Aufträge übermittelt werden, und die Anzahl von Knoten mittels Skalierung flexibel an die jeweilige Auftragslast anpassen. Dies kann reaktiv auf der Grundlage der aktuellen Auslastung oder proaktiv erfolgen, sofern die Auslastung vorausgesagt werden kann. Weitere Informationen finden Sie unter Richtlinie für automatische Skalierung.
Automatische Pools
Ein Autopool ist ein Pool, den der Batchdienst erstellt, wenn ein Auftrag übermittelt wird, anstatt explizit vor den Aufträgen erstellt zu werden, die im Pool ausgeführt werden. Der Batch-Dienst verwaltet die Lebensdauer eines automatischen Pools gemäß den angegebenen Eigenschaften. Meistens werden diese Pools auch so eingestellt, dass sie nach Abschluss ihrer Aufträge automatisch gelöscht werden.
Sicherheit mit Zertifikaten
Zertifikate müssen in der Regel beim Ver- und Entschlüsseln vertraulicher Informationen für Tasks verwendet werden. Ein Beispiel wäre etwa der Schlüssel für ein Azure-Speicherkonto. Hierzu können Sie Zertifikate auf Knoten installieren. Verschlüsselte geheime Schlüssel werden über Befehlszeilenparameter an Tasks übergeben oder in einer der Taskressourcen eingebettet. Zum Entschlüsseln können dann installierte Zertifikate verwendet werden.
Zum Hinzufügen eines Zertifikats zu einem Batch-Konto können Sie den Vorgang Hinzufügen eines Zertifikats (Batch REST) oder die Methode CertificateOperations.CreateCertificate (Batch .NET) verwenden. Sie können das Zertifikat dann einem neuen oder vorhandenen Pool zuordnen.
Wenn ein Zertifikat einem Pool zugeordnet ist, installiert der Batch-Dienst das Zertifikat auf jedem Knoten im Pool. Der Batch-Dienst installiert die entsprechenden Zertifikate beim Start des Knotens, bevor Tasks gestartet werden (einschließlich Starttask und Auftrags-Manager-Task).
Wenn Sie einem bestehenden Pool ein Zertifikat hinzufügen, müssen Sie dessen Computeknoten neu starten, damit das Zertifikat auf die Knoten angewendet werden kann.
Nächste Schritte
- Erfahren Sie mehr zu Aufträgen und Tasks.
- Erfahren Sie, wie Sie Fehler in Pool- und Knotenhintergrundvorgängen erkennen und vermeiden können.