Megosztás a következőn keresztül:


Állapot-ellenőrzések

A CycleCloud két mechanizmust kínál a virtuális gépek állapotának ellenőrzésére: a Node Health Checks egy újabb funkció, amely elvégzi az ellenőrzéseket a kiépítési fázisban, és megakadályozza, hogy a nem kifogástalan állapotú virtuális gépek csatlakozzanak, míg a HealthCheck rendszeres időközönként futtatja őket, miután a virtuális gép csomópontként csatlakozott a fürthöz.

Csomópont állapot-ellenőrzései

A csomópontállapot-ellenőrzések észlelik a nem megfelelő állapotú hardvereket, mielőtt egy virtuális gép csatlakozhatna a CycleCloud-fürthöz. A funkció jelenlegi verziója a hivatalos AzureHPC-rendszerképekbe beépített állapot-ellenőrzési szkripteket futtat, amelyek az /opt/azurehpc/test/azurehpc-health-checks/ területen találhatók. Ezeknek a szkripteknek a forrása az AzureHPC Node Health Checks adattárban található, de vegye figyelembe, hogy előfordulhat, hogy a fürt AzureHPC-lemezképének verziójába beépített verzió nem az adattárban elérhető legújabb verzió.

Követelmények

A Node Health Checks aktuális verziója csak a 2023. november 7. után kiadott (az azurehpc-health-checks 2.0.6-os vagy újabb verziót tartalmazó) AzureHPC-lemezképeket és az ezekből származtatott egyéni rendszerképeket támogatja. A Csomópontállapot-ellenőrzések jelenleg nem támogatottak a Windowsban.

Csomópontállapot-ellenőrzések engedélyezése Slurm-fürtökhöz

A Slurm-fürtlétrehozás űrlapja jelölőnégyzetet biztosít a Speciális beállítások lapon található Csomópontállapot-ellenőrzések engedélyezéséhez. A jelölőnégyzet bejelölésével engedélyezve van a csomópontállapot-ellenőrzés a fürt HPC csomóponttömbjén. Ha más csomóponttömbökön (vagy más fürttípusoknál) szeretné engedélyezni a csomópontállapot-ellenőrzéseket, egyéni fürtsablont kell használnia.

A csomópontállapot-ellenőrzések letilthatók egy futó fürtön, ha egyszerűen törli a jelet a jelölőnégyzetből. A módosítások érvénybe léptetéséhez nem szükséges leskálázni a csomóponttömböt.

Csomópontállapot-ellenőrzések grafikus felhasználói felülete

A Csomópontállapot-ellenőrzések eredményeinek ismertetése

Miután egy virtuális gép elvégezte az állapot-ellenőrzéseket, továbblép a szoftverkonfigurációs fázisra.

Ha egy virtuális gép valamelyik állapot-ellenőrzési szkriptje meghiúsul, a rendszer hibaüzenetet küld a CycleCloudnak, és a virtuális gép automatikusan nem csatlakozik a fürthöz.

Csomópont állapotának ellenőrzése hibanaplók

Ha a virtuális gép olyan NodeArray-ban indul el, amelyen engedélyezve van a túlkiépítés (például a Slurm hpc Node Array), akkor a virtuális gépet automatikusan le kell cserélni a túlkiépítés részeként. Ebben az esetben nincs szükség műveletre, és az kifogástalan állapotú virtuális gépek lesznek kiválasztva a fürthöz való csatlakozáshoz (bár megjelenik egy hibaüzenet a fürt oldalán, amely azt jelzi, hogy egy vagy több virtuális gép nem felelt meg az ellenőrzéseknek).

Ha a virtuális gép egyetlen csomóponthoz van elindítva, egy olyan csomóponttömbhöz, amelynél a túlkiépítés le van tiltva (például a Slurm htc Node Array), vagy ha több virtuális gép hiúsul meg az állapot-ellenőrzésen, mint amennyit a túlkiépítés támogat, akkor a csomópont a Sikertelen állapotba kerül, és a kiosztás sikertelen lesz. Előfordulhat, hogy a CycleCloud megpróbálja újraképezni a virtuális gépet a probléma megoldása érdekében, de ha az újrakép nem működik, akkor a csomópontot le kell állítani és le kell cserélni (manuálisan egy rendszergazda vagy automatikusan az automatikus skálázási eszköz).

Megjegyzés

Ha engedélyezte a csomópontállapot-ellenőrzéseket, de a virtuálisgép-rendszerkép nem felel meg a fenti követelményeknek, akkor az összes virtuális gép csatlakozhat a fürthöz, de az állapot egy figyelmeztetést fog tartalmazni, amely jelzi, hogy az ellenőrzések nem támogatottak. Csomópont állapot-ellenőrzései hiba részletei

Attribútumhivatkozás

Attribútum Típus Meghatározás
EnableNodeHealthChecks Logikai (Nem kötelező) A csomópont vagy csomóponttömb rendszerindításkor történő állapot-ellenőrzésének engedélyezése

Állapotellenőrzés

Az Azure CycleCloud egy mechanizmust biztosít a HealthCheck nevű, nem kifogástalan állapotban lévő virtuális gépek (VM-ek) leállítására. A rendszer- és a felhasználó által definiált szkriptek (Python és Bash) rendszeres időközönként futnak (Windows rendszeren 5 perc, Linux rendszeren 10 perc) a virtuális gép általános állapotának meghatározásához. A HealthCheck lehetővé teszi a rendszergazdák számára, hogy olyan feltételeket határozzanak meg, amelyek mellett a virtuális gépeket manuálisan kell monitorozni és szervizelés nélkül leállni.

Beépített HealthCheck-szkriptek

A CycleCloud-kompatibilis virtuális gépekhez két alapértelmezett HealthCheck-szkript érhető el:

  • A converge_timeout szkript az indítást követő négy órán belül leállítja a szoftverkonfigurációt nem befejező példányt. Ez az időtúllépési időszak a cyclecloud.keepalive.timeout beállítással szabályozható (másodpercben megadva).
  • A scheduled_shutdown szkript olyan készítőfájlokat keres a $JETPACK_HOME/run/scheduled_shutdown , amelyek egyetlen sort tartalmaznak, amely unix időbélyeg másodpercben leállítási időt és egy opcionális második sort tartalmaz egy magyarázattal. Ha az aktuális idő későbbi, mint a fájlok legkorábbi időbélyege, a virtuális gép nem megfelelő állapotúnak minősül.

Működés

A HealthCheck szkriptek a $JETPACK_HOME/config/healthcheck.d könyvtárban találhatók. A Linux a Python- és Bash-szkripteket is támogatja, míg a Windows csak a Python-szkripteket támogatja. A szkriptnek meg kell határoznia a virtuális gép állapotát. Ha a virtuális gép állapota nem megfelelő, a szkriptnek a következő állapottal 254kell kilépnie: , ami azt jelzi a CycleCloudnak, hogy a virtuális gép nem megfelelő állapotú, és le kell zárni.

Ha olyan virtuális gépre jelentkezik be, amelyen a HealthCheck fut, a jetpack keepalive parancs futtatásával meg tudja tartani, hogy a virtuális gép le legyen állítva. Linux-példányokon megadhat egy időkeretet órákban, vagy forever windowsos forever környezetben ez az egyetlen lehetőség.

Megjegyzés

Ha egy virtuális gép állapota nem megfelelő, a HealthCheck ügynök kérést küld a CycleCloudnak a virtuális gép leállítására, a virtuális gép soha nem fog helyileg shutdown leállni a paranccsal. Abban az esetben, ha a virtuális gép nem tud kommunikálni a CycleClouddal, a virtuális gép akkor is működik, ha nem kifogástalan állapotú, amíg el nem éri a CycleCloudot.

Példa

Egyszerű példaként megírunk egy HealthCheck szkriptet, amely biztosítja, hogy egy Linux rendszerű virtuális gép 24 óránál tovább ne legyen aktív. Ez a szkript alacsony prioritású kiürítések szimulálására használható annak tesztelésére, hogy a munkafolyamat hogyan reagál egy kiürített virtuális gépre. Ez a szkript az /opt/cycle/jetpack/config/healthcheck.d/healthcheck_example.sh fájlba kerül.

#!/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

Megjegyzés

Ez a szkript elhelyezhető egy virtuális gépen a CycleCloud Projecten keresztül, vagy közvetlenül az egyéni rendszerkép létrehozásakor.