Beschreiben der Grundlagen von Azure CycleCloud

Abgeschlossen

Viele Organisationen möchten ihre lokalen HPC-Workloads in Azure verschieben, um die Hyperskalierungsfunktionen nutzen zu können. Außerdem möchten sie die mit einem solchen Übergang verbundene Lernkurve minimieren und das Fachwissen in Bezug auf die vorhandenen Bereitstellungen nutzen (z. B. einen bestimmten HPC-Planer). Schließlich möchten sie Erkenntnisse über die Leistung und die Kosten cloudbasierter Clusterressourcen gewinnen. Dies soll auf eine Weise ablaufen, die den lokalen Umgebungen entspricht.

Die Implementierung einer benutzerdefinierten Lösung, die diese Anforderungen erfüllt, gestaltet sich oft schwierig. Sie erfordert umfassende Kenntnisse über Compute-, Netzwerk- und Speicherressourcen in Azure, die als Bausteine für cloudbasierte HPC-Cluster dienen. Ohne eine entsprechende Verwaltungsschnittstelle würde der Betrieb einer solchen Lösung bei Verwendung von Azure-Standardverwaltungstools auch zu einem erheblichen Verwaltungsaufwand führen.

Azure CycleCloud widmet sich dieser Probleme und bietet eine einfache, sichere und skalierbare Möglichkeit, HPC-Planer in Azure zu implementieren. In dieser Lerneinheit erfahren Sie mehr über die grundlegende Funktionalität.

Hinweis

Azure CycleCloud ist für Bereitstellungsszenarien geeignet, in denen die Verwendung eines bestimmten HPC-Planers erforderlich ist. Dies ergänzt Azure Batch, da dieser Dienst in Azure einen Planer als Dienst bereitstellt.

What is Azure CycleCloud? (Was ist Azure CycleCloud?)

Azure CycleCloud ist ein Tool zum Bereitstellen von HPC-Clustern in Azure und zum Verwalten der zugehörigen Workloads. Es bietet eine Vielzahl von HPC-Funktionen, einschließlich der folgenden:

  • Vorlagenbasierte Bereitstellung von HPC-Clustern. Azure CycleCloud stellt anpassbare integrierte Vorlagen für die Bereitstellung der gängigsten Planer für Cluster bereit, einschließlich Slurm, OpenPBS, LSF, Grid Engine und HTCondor. Viele andere vordefinierte Vorlagen, die Sie in Ihre Azure CycleCloud-Instanz importieren können, sind im GitHub-Repository für CycleCloud verfügbar.

    Hinweis

    Vorlagen sind INI-formatierte Dateien, die eine deklarative Syntax verwenden, um zu beschreiben, wie Knoten einschließlich ihrer jeweiligen Beziehungen in einem CycleCloud-Cluster organisiert sind. Vorlagen enthalten Verweise auf Projekte, die die Knotenkonfiguration definieren.

  • Manuelle und automatisierte Skalierung von Clusterknoten. Azure CycleCloud ermöglicht die manuelle und automatisierte horizontale Skalierung verwalteter Cluster entsprechend der Länge von Auftragswarteschlangen und den Governancerichtlinien. Das Tool bietet auch eine REST-API zum Entwickeln von Adaptern für die automatische Skalierung für benutzerdefinierte Planer.

  • Knotenkonfiguration über Cloud-Init-Skripts. Azure CycleCloud unterstützt die Konfigurationsverwaltung basierend auf benutzerdefinierten Skripts, die auf verwalteten Clusterknoten ausgeführt werden, bevor andere CycleCloud-spezifische Konfigurationsaufgaben ausgeführt werden.

  • Verwaltung des internen und externen Clusterspeichers. Mit Azure CycleCloud können Sie Clusterspeicher konfigurieren, indem Sie verwaltete Azure-Datenträger und Network Attached Storage wie NFS-Server oder BeeGFS-Cluster bereitstellen, einbinden und formatieren.

  • Überwachung, Protokollierung und Warnung. Azure CycleCloud bietet eine integrierte Clusterüberwachung und lässt sich mit Azure Monitor integrieren. Es ist auch möglich, Protokolldaten aus CycleCloud-Clustern in Log Analytics zu speichern und benutzerdefinierte Metrikdashboards zu erstellen. Zusätzlich können Sie benutzerdefinierte Warnungen und E-Mail-Benachrichtigungen erstellen, die durch Telemetriedaten ausgelöst werden. Alle Azure CycleCloud-Aktivitäten werden protokolliert.

  • Authentifizierung und Autorisierung. Azure CycleCloud unterstützt die integrierte lokale Authentifizierung. Alternativ können Sie das Tool mit Active Directory Domain Services oder anderen LDAP-basierten Identitätsanbietern (Lightweight Directory Access-Protokoll) integrieren. Standardmäßig haben die lokal definierten Benutzer Zugriff auf das Betriebssystem in den verwalteten Clusterknoten, aber es ist möglich, Clusterbenutzer separat zu verwalten. Für die Verwaltung von Ressourcen in einem Azure-Abonnement können Sie einen Microsoft Entra-Dienstprinzipal oder eine verwaltete Identität verwenden.

  • Nahezu echtzeitbasierte Kostenberichte und -kontrollen. Azure CycleCloud kann die Clusternutzung nachverfolgen und schätzt die entsprechenden Kosten. Mit diesem Feature können Sie Budgetwarnungen einrichten, die ausgelöst werden, wenn die Clusterkosten den von Ihnen angegebenen monetären Betrag überschreiten. Azure CycleCloud kann auch mit Microsoft Cost Management integriert werden.

Wie wird Azure CycleCloud implementiert und verwendet?

CycleCloud wird als Linux-basierte Webanwendung implementiert, die Sie an jedem Ort installieren können, von dem aus Sie auf Ihre Azure-Umgebung zugreifen können. Die einfachste Möglichkeit zum Einrichten des Tools besteht in der Bereitstellung eines virtuellen Azure-Computers mithilfe des entsprechenden Azure Marketplace-Images mit der Option, die Bereitstellung unter Verwendung einer ARM-Vorlage (Azure Resource Manager) zu automatisieren. Alternativ können Sie YUM- oder APT-Pakete oder ein Containerimage verwenden, das in Microsoft Container Registry verfügbar ist.

Im Rahmen der Erstkonfiguration können Sie einen SSH-Schlüssel bereitstellen, um den Zugriff auf das Betriebssystem, das die CycleCloud-Anwendung hostet, sowie auf die anschließend bereitgestellten Clusterknoten zu schützen. Damit die CycleCloud-Anwendung mit dem Azure Resource Manager interagieren kann, müssen Sie eine Microsoft Entra-Identität auswählen, die Sicherheitskontext für diese Interaktion bietet, und ihr mithilfe der rollenbasierten Zugriffssteuerung in Azure (Role-Based Access Control, RBAC) die ausreichenden Berechtigungen im Azure-Zielabonnement zuweisen. Diese Identität kann in Form eines Dienstprinzipals oder als verwaltete Identität verwendet werden, wenn die Azure CycleCloud-Anwendung auf einer Azure-VM gehostet wird.

Eine Azure CycleCloud-Instanz erfordert auch ein Azure-Speicherkonto und einen zugehörigen Blobcontainer. Dieser Container, der als Locker (Schließfach) bezeichnet wird, bietet den Stagingbereich für die Bereitstellung von Projekten in Clusterknoten.

Nach der Installation stellt die Azure CycleCloud-Anwendung eine grafische Benutzeroberfläche bereit, mit der ein Benutzer HPC-Systeme verwalten und überwachen kann, sowie eine Befehlszeilenschnittstelle (Command-Line Interface, CLI), die die Automatisierung und Integration von CycleCloud in vorhandene Workflows erleichtert. Sie können die CLI auch verwenden, um Vorlagen zu importieren, die Clusterbereitstellung zu automatisieren und erweiterte Verwaltungsaufgaben auszuführen.

Screenshot der grafischen Benutzeroberfläche der Azure CycleCloud-Webanwendung.

Welche Architektur weist Azure CycleCloud auf?

Azure CycleCloud bietet im Vergleich zum Azure Resource Manager eine zusätzliche Abstraktionsebene, wodurch sich Benutzerinnen und Benutzer nicht mehr direkt um Compute- und Speicherressourcen in Azure kümmern müssen. Die Rolle dieser Ebene besteht darin, Konfigurationen auf Planerebene, auf die über die grafische Benutzeroberfläche oder CLI (Command Line Interface, Befehlszeilenschnittelle) zugegriffen werden kann, in Azure Resource Manager (ARM)-API-Aufrufe zu übersetzen, die mit Azure-VMs und Azure-VM-Skalierungsgruppen in benutzerdefinierten virtuellen Netzwerken und Subnetzen interagieren. Diese Aufrufe berücksichtigen auch regionale vCPU-Kontingente, Clustergrößenbeschränkungen und Einschränkungen der InfiniBand-Netzwerktopologie. Sie erleichtern darüber hinaus die Optimierung der Clusterleistung, indem sie Konstrukte wie Näherungsplatzierungsgruppen verwenden oder Clusterknoten mit demselben InfiniBand-Switch verbinden.

Hinweis

Eine Näherungsplatzierungsgruppe ermöglicht das Platzieren von virtuellen Azure-Computer nahe beieinander, ohne InfiniBand-Netzwerke zu berücksichtigen. Azure CycleCloud ermöglicht Es Ihnen, ein eigenes spezifisches Konstrukt zu verwenden, das als PlacementGroupId bezeichnet wird, um Clusterknoten in einem einzigen Azure VM Scale Set zu gruppieren, der mit demselben Netzwerkswitch verbunden ist. Sie können diese beiden Features kombinieren, was allerdings zu einer reduzierten Anzahl von Knoten führen kann, die Sie innerhalb derselben Azure-VM-Skalierungsgruppe bereitstellen können.

Azure CycleCloud orchestriert den Lebenszyklus von HPC-Clustern, die in der Regel aus einem oder mehreren HPC-Planer-Hauptknoten und Serverknoten bestehen. Das Tool kann aber auch Network Attached Storage wie einen NFS-Server oder BeeGFS-Cluster, Azure NetApp Files, Azure HPC Cache und Microsoft Entra Domain Services einschließen. Es enthält einen internen NoSQL-Datenspeicher, der Cluster- und Knotenstatus zwischenspeichert. Das Knotenüberwachungssystem ermöglicht Warnungen. Die Verwaltungsfunktionen werden über die REST-API verfügbar gemacht und können über das Web und die CLI genutzt werden.

Die automatische Skalierung des verwalteten Clusters basiert auf dem Bedarfsrechner und der Bibliothek für die automatische Skalierung. In der nächsten Lerneinheit dieses Kurses erfahren Sie mehr über deren Merkmale.

Diagramm der allgemeinen Architektur von Azure CycleCloud.

Was genau ist der Azure CycleCloud-Clusterlebenszyklus?

Der Lebenszyklus eines Clusters beginnt mit der Auswahl einer Vorlage, die dessen Definition enthält. Sie haben die Möglichkeit, eine der integrierten Vorlagen zu verwenden oder eine benutzerdefinierte Vorlage zu erstellen und in die CycleCloud-Anwendung zu importieren. Die Vorlage enthält in der Regel mehrere Parameter, mit denen Sie die Clusterkonfiguration während der Erstellung anpassen können. Die Besonderheiten des Clustererstellungsprozesses hängen davon ab, ob Sie das Web oder die CLI verwenden.

Nach der Erstellung eines Clusters können Sie diesen starten. Beim Starten eines Clusters wird eine Abfolge von Tasks für jeden Knoten ausgelöst, der Teil der auf Clustervorlagen basierenden Definition ist. Diese Sequenz besteht aus einem Aufruf von Azure Resource Manager, der die Bereitstellung einer Azure-VM anfordert, die als Beschaffungsstatus bezeichnet wird. Darauf folgt die Konfiguration der VM (einschließlich der Ausführung der Initialisierung, die im entsprechenden Projekt definiert ist), die Ausführung von Skripts zum Installieren und Konfigurieren der Planungssoftware sowie die Bereitstellung und Einbindung von Dateisystemvolumes. Nach Abschluss der Sequenz erreicht der Knoten den Zustand "Gestartet" . Alle unbehandelten oder unbekannten Fehler führen zum Fehlerstatus .

Nachdem die Clusterknoten ausgeführt wurden, ist abhängig vom Betriebssystem der Remotezugriff über SSH oder das Remotedesktopprotokoll (RDP) möglich. Sie können solche Verbindungen verwenden, um Clusteraufträge zu übermitteln. Je nach Clusterkonfiguration kann dies die Skalierung des Clusters auslösen.

Sie können einen Cluster beenden, wenn er alle übermittelten Aufträge abgeschlossen hat. Das Beenden des Clusters stoppt und entfernt dessen Knoten und löscht alle nicht persistenten Volumes, wodurch der Cluster in den Zustand Aus versetzt wird.