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.
CycleCloud bietet zwei Mechanismen zum Überprüfen der Integrität von VMs: Node Health Checks ist neueres Feature, das die Überprüfungen während der Bereitstellungsphase durchführt und verhindert, dass die fehlerhaften VMs beitreten, während HealthCheck sie regelmäßig ausführt, nachdem der virtuelle Computer dem Cluster als Knoten beitritt.
Knoten-Gesundheitsüberprüfungen
Node Health Checks erkennt fehlerhafte Hardware, bevor ein virtueller Computer einem CycleCloud-Cluster beitritt. Dieses Feature führt Integritätsprüfungsskripts aus, die in die offiziellen AzureHPC-Images integriert sind, die Sie unter "/opt/azurehpc/test/azurehpc-health-checks/" finden können. Die Quelle für diese Skripts befindet sich im AzureHPC Node Health Checks-Repository, aber die version, die in die Version Ihres Clusters des AzureHPC-Images integriert ist, ist möglicherweise nicht die neueste version, die im Repository verfügbar ist.
Anforderungen
Die aktuelle Version von Node Health Checks unterstützt nur AzureHPC-Images, die nach dem 7. November 2023 veröffentlicht wurden (mit azurehpc-health-checks Version v2.0.6 oder höher) und von ihnen abgeleiteten benutzerdefinierten Images. Knotenintegritätsprüfungen unterstützen derzeit Windows nicht.
Aktivieren von Knotenintegritätsprüfungen für Slurm-Cluster
Das Formular zum Erstellen von Slurm-Clustern bietet ein Kontrollkästchen zum Aktivieren der Knotenintegritätsprüfungen auf der Registerkarte "Erweiterte Einstellungen ". Wenn Sie das Kontrollkästchen aktivieren, aktivieren Sie die Knotenintegritätsprüfungen im HPC-Knotenarray des Clusters. Verwenden Sie eine benutzerdefinierte Clustervorlage, um Knotenintegritätsprüfungen für andere Knotenarrays oder für andere Clustertypen zu aktivieren.
Sie können die Knotenintegritätsprüfungen für einen ausgeführten Cluster deaktivieren, indem Sie das Kontrollkästchen deaktivieren. Sie müssen das Knotenarray nicht nach unten skalieren, damit die Änderungen wirksam werden.

Grundlegendes zu den Ergebnissen der Knotenintegritätsprüfungen
Nachdem ein virtueller Computer Integritätsprüfungen bestanden hat, wechselt er zur Softwarekonfigurationsphase.
Wenn eine VM eines der Integritätsprüfungsskripts fehlschlägt, sendet sie eine Fehlermeldung an CycleCloud und verhindert automatisch, dass der virtuelle Computer dem Cluster beitritt.

Wenn Sie den virtuellen Computer in einem NodeArray mit aktivierter Überbereitstellung starten (z. B. das Slurm hpc Node Array), wird der virtuelle Computer automatisch als Teil der Überbereitstellung ersetzt. In diesem Fall müssen Sie keine Maßnahmen ergreifen. Die fehlerfreien VMs werden dem Cluster hinzugefügt, obwohl auf der Clusterseite eine Fehlermeldung angezeigt wird, die angibt, dass mindestens eine VM Überprüfungen fehlgeschlagen hat.
Wenn Sie die VM für einen einzelnen Knoten starten, aber die Überprovisionierung im Knoten-Array deaktivieren (z. B. das Slurm HTC-Knoten-Array), oder wenn bei mehr VMs die Gesundheitsprüfungen fehlschlagen, als von der Überprovisionierung unterstützt werden, wechselt der Knoten in den Status "Fehlgeschlagen", und die Zuordnung schlägt fehl. CycleCloud versucht möglicherweise, die VM neu zu abbilden, um das Problem zu beheben. Wenn die Neuerstellung fehlschlägt, müssen Sie den Knoten beenden und ersetzen. Ein Administrator kann diesen Schritt manuell ausführen, oder der AutoScaler kann ihn automatisch ausführen.
Hinweis
Wenn Sie Knotenintegritätsprüfungen aktivieren, aber das VM-Image die Anforderungen nicht erfüllt, können alle virtuellen Computer dem Cluster beitreten. Der Status zeigt jedoch eine Warnung an, die angibt, dass Prüfungen nicht unterstützt werden.

Attributreferenz
| Merkmal | Typ | Definition |
|---|---|---|
| EnableNodeHealthChecks | Boolean | (Optional) Aktivieren der Knoten-Gesundheitsprüfungen beim Systemstart für diesen Knoten oder das Knoten-Array. |
HealthCheck
Azure CycleCloud bietet einen Mechanismus zum Beenden virtueller Computer (VMs), die sich in einem fehlerhaften Zustand namens HealthCheck befinden. Sowohl System- als auch benutzerdefinierte Skripts (Python und Bash) werden regelmäßig (fünf Minuten unter Windows, 10 Minuten unter Linux) ausgeführt, um den Gesamtzustand einer VM zu ermitteln. HealthCheck ermöglicht Administratoren das Definieren von Bedingungen, unter denen VMs beendet werden sollen, ohne manuell überwachen und korrigieren zu müssen.
Integrierte HealthCheck-Skripts
CycleCloud-aktivierte VMs enthalten zwei Standard-HealthCheck-Skripts:
- Das skript converge_timeout beendet eine Instanz, die die Softwarekonfiguration nicht innerhalb von vier Stunden nach dem Start beendet. Sie können diesen Timeoutzeitraum mit der
cyclecloud.keepalive.timeoutEinstellung (in Sekunden definiert) steuern. - Das skript scheduled_shutdown sucht in $JETPACK_HOME/run/scheduled_shutdown nach Markerdateien, die eine einzelne Zeile enthalten, die eine Herunterfahrenszeit in Unix-Zeitstempel sekunden und eine optionale zweite Zeile mit einer Erklärung enthält. Wenn die aktuelle Zeit später als der früheste Zeitstempel in den Dateien ist, wird der virtuelle Computer als fehlerhaft betrachtet.
Funktionsweise
Die HealthCheck-Skripts befinden sich im Verzeichnis $JETPACK_HOME/config/healthcheck.d . Linux unterstützt sowohl Python- als auch Bash-Skripts, während Windows nur Python-Skripts unterstützt. Das Skript überprüft die Integrität des virtuellen Computers. Wenn das Skript den virtuellen Computer als nicht einwandfrei erkennt, beendet es sich mit einem Status von 254. Dieser Status teilt CycleCloud mit, dass der virtuelle Computer fehlerhaft ist und beendet werden soll.
Wenn Sie sich bei einem virtuellen Computer anmelden, auf dem HealthCheck ausgeführt wird, können Sie verhindern, dass der virtuelle Computer heruntergefahren wird, indem Sie den Jetpack-Befehl keepaliv ausführen. Bei Linux-Instanzen können Sie einen Zeitraum in Stunden oder forever angeben. Unter Windows forever ist die einzige Option.
Hinweis
Wenn der HealthCheck-Agent feststellt, dass ein virtueller Computer fehlerhaft ist, fordert er an, dass CycleCloud den virtuellen Computer beendet. Der Agent beendet den virtuellen Computer nicht lokal mithilfe des shutdown Befehls. Wenn der virtuelle Computer nicht mit CycleCloud kommunizieren kann, bleibt er trotz seines fehlerhaften Zustands aktiv, bis er wieder eine Verbindung mit CycleCloud herstellen kann.
Beispiel
Als einfaches Beispiel schreiben Sie ein HealthCheck-Skript, das sicherstellt, dass eine Linux-VM nicht länger als 24 Stunden aktiv ist. Verwenden Sie dieses Skript, um Entfernungen mit niedriger Priorität zu simulieren und zu testen, wie ein Workflow auf eine entfernte VM reagiert. Platzieren Sie dieses Skript in /opt/cycle/jetpack/config/healthcheck.d/healthcheck_example.sh.
#!/bin/bash
# Get the uptime of the system (in seconds) and check to see if it is
# greater than 86,400 (24 hours in seconds). If it is, exit 254 to
# signal that the VM is unhealthy.
if (( $(cat /proc/uptime | awk '{print ($1 > 86400)}'))); then
exit 254
fi
Hinweis
Platzieren Sie dieses Skript mithilfe von CycleCloud Project auf einem virtuellen Computer, oder fügen Sie es direkt hinzu, wenn Sie ein benutzerdefiniertes Image erstellen.