Anpassen von Softwareinstallationen
Azure CycleCloud-Vorlagen erleichtern das Einrichten von HPC-Clustern, indem Implementierungsdetails der zugrunde liegenden Infrastruktur abstrahiert werden, sodass Sie sich auf die Workloadverwaltung konzentrieren können. Diese Workload verfügt jedoch in der Regel über mehrere softwarebezogene Abhängigkeiten, die zusätzliche Anpassungsschritte erfordern. Glücklicherweise bietet Azure CycleCloud auch ein Framework für die Implementierung dieser Schritte durch die Unterstützung von Bereitstellungs- und Konfigurationsverwaltungsaufgaben, die direkt auf Clusterknoten angewendet werden.
Ihre Ziele umfassen die Notwendigkeit, benutzerdefinierte Images bereitzustellen und interne entwickelte Konfigurationsskripts zu verwenden, die Sie in Ihrer lokalen HPC-Umgebung verwendet haben. Sie möchten bestimmen, wie Sie die Azure CycleCloud-Funktionen verwenden können, um diese Ziele zu erreichen.
Wie implementieren Sie die Konfigurationsverwaltung mit Azure CycleCloud?
Azure CycleCloud bietet drei Hauptmethoden, die Sie beliebig kombinieren können, um Betriebssystem und Software auf Clusterknoten entsprechend Ihren eigenen Anforderungen oder Einstellungen anzupassen:
- Benutzerdefinierte Images
- Projekte
- Cloud-init
Wie können Sie benutzerdefinierte Bilder mit Azure CycleCloud verwenden?
Azure CycleCloud unterstützt Clusterknoten, die die häufigsten Linux-Verteilungen ausführen, und je nach Zeitplan, Windows Server. Die integrierten Vorlagen sind mit den empfohlenen Standardwerten vorkonfiguriert. Sie können jedoch Azure Marketplace-Images auswählen oder Knoten basierend auf benutzerdefinierten Images bereitstellen. Die letztere Option ist möglicherweise vorzuziehen, wenn Sie die Verzögerung minimieren möchten, die mit dem Setup nach der Bereitstellung des Betriebssystems und allen zusätzlichen Abhängigkeiten Ihrer HPC-Workloads verbunden ist. Es kann auch erforderlich sein, geschäftliche, sicherheits- oder Complianceanforderungen zu erfüllen.
Mit benutzerdefinierten Images können Sie die vollständige Kontrolle über die vorinstallierte Software und die anfängliche Betriebssystemkonfiguration haben. Der Hauptnachteil ist der Aufwand, der mit der Aufrechterhaltung mehrerer Bilder verbunden ist, um verschiedene Kombinationen von Anwendungen und deren Versionen, insbesondere in Entwicklungsszenarien, zu berücksichtigen.
Wie können Sie Azure CycleCloud-Projekte für die Softwareinstallation verwenden?
Ein Azure CycleCloud-Projekt ist eine Sammlung von Dateien, auf die Sie beim Definieren von Konfigurationen von Clusterknoten über Vorlagen verweisen. Projekte weisen die folgende Verzeichnisstruktur auf:
\project
|- project.ini
|- blobs
|- templates
|- specs
| |
| default
| |- cluster-init
| |- scripts
| |- files
| |- tests
| | - chef
| |- site-cookbooks
| |- data_bag
| |- roles
Die project.ini Datei enthält die Metadaten des Projekts, einschließlich Name, Bezeichnung, Version und Typ. Zu den unterstützten Typen gehören Scheduler und Anwendung. Der erste wird verwendet, um Planerdaemons auf Hauptknoten und Computeknoten zu installieren und zu initialisieren, während Letzterer Clusterworkloads definiert.
Das Blobs-Verzeichnis enthält Projekt-Blobs, z. B. Binärdateien für ein Open-Source-Projekt, das frei verteilt werden kann, und Benutzer-Blobs, die aufgrund von Lizenzierungseinschränkungen aus der Projektumverteilung ausgeschlossen werden müssen.
Das Vorlagenverzeichnis enthält Vorlagen, während das Spezifikationsverzeichnis Spezifikationen zur Definition von Konfigurationen hostet, die auf Zielclusterknoten angewendet werden sollen.
Hinweis
Ein Slurm-Projekt enthält beispielsweise mindestens zwei Spezifikationen: eine für die Planerkopfknoten und die andere für die Computeknoten.
Innerhalb des Spezifikationsverzeichnisses gibt es zwei Unterverzeichnisse mit dem Namen "cluster-init " und "custom Chef". Clusterinit enthält Skripts, die automatisch auf dem Zielknoten ausgeführt werden. Unformatierte Datendateien, die in den Zielknoten kopiert werden, und Tests, die ausgeführt werden, wenn ein Cluster im Testmodus gestartet wird. Das benutzerdefinierte Unterverzeichnis „chef“ enthält Chef-spezifische Dateien, einschließlich Cookbook-, Datenbehälter- und Rollendefinitionsdateien. Sie können Chef-Kochbücher und -Rezepte für die Konfiguration von Knoten verwenden. Cluster-init-Spezifikationen entsprechen Chef-Rollen und -Cookbooks.
Hinweis
Azure CycleCloud verwendet Chef als Konfigurationsverwaltungstool zum Vorbereiten und Konfigurieren der einzelnen Knoten. CycleCloud verwendet Chef in einem eigenständigen Modus, der nicht auf einem zentralen Chefserver basiert. Stattdessen werden alle Cookbooks, die für die verwalteten Clusterknoten bestimmt sind, während der Startphase des Betriebssystems aus dem Schließfach heruntergeladen. Zu diesem Zeitpunkt verarbeitet Chef die Liste der Rezepte, die in den Cluster-init-Spezifikationen des Knotens definiert sind, und konvertiert die zugrunde liegende VM effektiv in einen funktionierenden HPC-Knoten.
Um einen Cluster basierend auf einem Projekt bereitzustellen, müssen Sie den Inhalt des Projekts in ein Azure CycleCloud-Schließfach hochladen. Sobald der Zielknoten gestartet wird, lädt er automatisch die erforderlichen Projektdateien aus dem Schließfach herunter und verarbeitet die erforderlichen Spezifikationen.
Wie verwenden Sie Cloud-Init mit Azure CycleCloud?
Azure CycleCloud unterstützt cloud-init als Methode zum Konfigurieren von Clusterknoten während der Startphase, bevor projektbezogene Spezifikationen angewendet werden. Dies bietet eine bequeme Methode, um infrastruktur- oder softwarebezogene Abhängigkeiten zu adressieren, z. B. das Konfigurieren von Netzwerkeinstellungen oder das Anwenden von Betriebssystempaketupdates.
Sie können die Cloud-Init-Konfiguration zwar mithilfe einer Vorlage definieren, aber sie können dies auch direkt über die grafische Benutzeroberfläche von Azure CycleCloud erledigen. Beim Erstellen oder Bearbeiten eines Clusters finden Sie die relevanten Einstellungen auf der Registerkarte "Cloud-Init", in der Sie die Skripts für jeden Knotentyp eingeben können.
Hinweis
Da cloud-init vor allen Projektspezifikationen von CycleCloud ausgeführt wird, können der Scheduler und die Konfiguration, die Azure CycleCloud auf einen Knoten anwendet, Änderungen überschreiben, die über cloud-init vorgenommen wurden. Wenn Sie sicherstellen müssen, dass Ihre Befehle nach der Installation des Schedulers ausgeführt werden, sollten Sie stattdessen Azure CycleCloud-Projektspezifikationen verwenden.