Clustery CycleCloud
V CycleCloudu se termín cluster používá k popisu skupiny připojených počítačů (uzlů), které spolupracují jako jeden systém. Clustery mohou být vnořené; Například výpočetní cluster skládající se z hlavního uzlu plánovače gridového stroje a výpočetních uzlů může připojit cluster BeeGFS, který se skládá z několika metadat a serverů úložiště, přičemž výpočetní a úložné clustery se sloučí pod jeden nadřazený cluster nebo systém HPC.
Uzly a pole uzlů
Clustery se v podstatě skládají z uzlů, z nichž každý má v systému HPC určitou roli. Termíny node a VM se občas používají zaměnitelně, ale v CycleCloudu jsou sémanticky oddělené. Uzly , které tvoří cluster, jsou v podstatě virtuální počítače v Azure, které dokončily proces přípravy a konfigurace. Jinými slovy, virtuální počítače se zřizují z vrstev služby infrastruktury Azure a jejich koncové stavy jsou uzly clusteru HPC po provedení kroků instalace a konfigurace softwaru.
V CycleCloudu existují dvě samostatné inkarnace uzlů. První jako samostatný uzel a druhý jako nodearray, což je kolekce identicky nakonfigurovaných uzlů (rozlišení uzlu a nodearray se řídí analogií DevOps Pets a Dobytek v duchu). Obecně, ale ne striktně řečeno, samostatné uzly se konstruují z jednotlivých virtuálních počítačů v Azure, zatímco nodearrays se mapují na škálovací sady virtuálních počítačů (VMSS).
Mezi škálovacími sadami nodearray a škálovacími sadami virtuálních počítačů jsou však zásadní rozdíly. Primárním rozdílem je to, že jedna nodearray se může skládat z několika škálovacích sad virtuálních počítačů. To umožňuje sestavit jeden uzelarray z virtuálních počítačů s různými velikostmi nebo dokonce z různých rodin virtuálních počítačů, přičemž jediným omezením je, že všechny uzly v nodearray mají v clusteru stejnou roli, například poskytují prostředky jedné frontě plánovače.
Šablony clusterů
Topologie nebo způsob uspořádání uzlů v clusteru CycleCloud jsou definovány v textových šablonách, které rozkládají vztahy mezi uzly clusteru a v případě vnořených clusterů vztah nadřazenosti a podřízenosti clusterů. Šablony také poskytují prostředky pro definování role, které jednotlivé uzly hrají.
Šablony clusteru jsou definované ve formátu INI. Oddíly definované hranatými závorkami [
se]
používají k definování clusterů, uzlů a uzlů. Základním prvkem souborů INI jsou kontrolní výrazy páru klíč-hodnota, které poskytují podrobnosti konfigurace jednotlivých částí. Tyto podrobnosti o konfiguraci poskytují kontextové informace použité k vytvoření jednotlivých uzlů clusteru z image virtuálního počítače použité ke spuštění virtuálního počítače do podsítě, ve které má být virtuální počítač zřízen.
Další informace o šablonách clusteru CycleCloud
Příprava a konfigurace uzlu
CycleCloud zřizuje virtuální počítače ze základních imagí virtuálních počítačů definovaných v šabloně clusteru a prostřednictvím řady kroků spravovaných agentem CycleCloud (Jetpack) během procesu spouštění inicializuje a nakonfiguruje operační systém na virtuálním počítači, aby ho převeděl na funkční uzel PROSTŘEDÍ HPC. Tyto kroky sahají od skriptů k instalaci a konfiguraci plánovacího softwaru až po konfiguraci poslední míle pro připojení systému souborů.
V části konfigurace každého uzlu jsou definovány specifikace cluster-init – specifikace poskytované jednotlivým spouštěcím virtuálním počítačům, které slouží k přípravě na určitou roli v clusteru. CycleCloud využívá Chef jako platformu pro automatizaci infrastruktury pro přípravu a konfiguraci jednotlivých uzlů. V podstatě se každá specifikace cluster-init mapuje na jednu z dalších rolí Chefu a/nebo receptů kuchařky , které je potřeba spustit na spouštěcím virtuálním počítači.
CycleCloud využívá Chef v samostatném režimu, který nespoléhá na centralizovaný server Chef. Místo toho se celá sada kuchařek Chef potřebných k přípravě jednotlivých virtuálních počítačů stáhne z účtu služby Azure Storage, který patří uživateli během fáze spouštění virtuálního počítače. Tato sada cookbooků se během fáze vytváření clusteru ukládá do mezipaměti z aplikačního serveru CycleCloud do účtu úložiště.
Po stažení těchto kuchařek Chef zpracuje seznam receptů definovaných ve specifikacích cluster-init uzlu a aktivuje fázi přípravy a konfigurace, která převede virtuální počítač na funkční uzel PROSTŘEDÍ HPC.
Specifikace jsou vytvořené jako logické kolekce s názvem Projekty. Například projekt pro dávkový plánovač, jako je Slurm, se skládá z minimálně dvou specifikací: jedné pro hlavní uzly plánovače a druhé pro výpočetní uzly. Další informace o projektech CycleCloud
Orchestrace uzlů
V závislosti na plánovači a službách používaných v clusteru musí CycleCloud občas orchestrovat přípravnou fázi uzlů v clusteru prostřednictvím koordinace různých uzlů. Některé plánovače například vyžadují, aby se každý výpočetní uzel zaregistroval proti démonu plánovače, což vyžaduje nejen, aby výpočetní uzly věděly o adrese hlavního uzlu, ale také můžou rozpoznat, že hlavní uzel je plně připravený, a počkat, pokud ne.
Tento prvek zjišťování služeb se také používá pro vztahy mezi serverem a klientem systému souborů a je funkcí v CycleCloudu.