Mini ITX klaster Turing Pi 2 s 32 GB RAM

Mini ITX klaster Turing Pi 2 s 32 GB RAM

Pozdravujem komunitu Habr! Nedávno som písal o našej klastrovej doske prvej verzie [V1]. A dnes by som chcel rozprávať o tom, ako sme pracovali na verzii Turing V2 s 32 GB RAM.

Sme nadšení mini servery, ktoré môžu byť použité ako pre lokálny vývoj, tak pre hosting lokálne. Na rozdiel od stolných počítačov alebo laptopov, naše servery sú vytvorené na prevádzku 24/7. Rýchlo ich môžete spojiť do federácie, napríklad bolo 4 procesory v klastri, a o 5 minút neskôr ich je 16 (bez ďalšieho sieťového vybavenia) a to všetko v kompaktnom formáte, bezhlučne a energeticky efektívne.

Našou architektúrou serverov je klastrový princíp, teda vytvárame klastrové dosky, ktoré pomocou ethernetovej siete na doske spájajú niekoľko výpočtových modulov (procesorov). Pre zjednodušenie zatiaľ nevytvárame vlastné výpočtové moduly, ale používame Raspberry Pi Compute Modules a veľmi sme sa spoliehali na nový modul CM4. Ale všetko sa vymklo plánom s ich novým formátom a myslím, že mnohí sú sklamaní.

Pod katom, ako sme prešli od V1 k V2 a ako sme sa museli prispôsobiť novému formátu Raspberry Pi CM4.

Takže, po vytvorení klastra s 7 uzlami, otázky — čo ďalej? Ako zvýšiť hodnotu produktu? 8, 10 alebo 16 uzlov? Akí výrobcovia modulov? Pri zvažovaní produktu ako celku sme si uvedomili, že hlavné tu nie je množstvo uzlov alebo kto je výrobca, ale samotná podstata klastrov ako stavebného bloku. Musíme hľadať minimálny stavebný blok, ktorý

Prvé, bude predstavovať klaster a pritom mať možnosť pripojenia diskov a rozširujúcich dosiek. Klastrový blok musí byť samostatnou základnou jednotkou s širokými rozširujúcimi možnosťami.

Druhé, aby bolo možné minimálne klastrové bloky spájať medzi sebou a vytvárať väčšie klastre, pričom to musí byť efektívne z hľadiska rozpočtu a rýchlosti škálovania. Rýchlosť škálovania by mala byť vyššia než spojenie obyčajných počítačov do siete a oveľa lacnejšia než serverové vybavenie.

Tretie, minimálne klastrové bloky musia byť dostatočne kompaktné, mobilné, energeticky efektívne, cenovo efektívne a nenáročné na prevádzkové podmienky. To je jeden z kľúčových rozdielov v porovnaní so serverovými rackmi a všetkým, čo s nimi súvisí.

Začali sme s určením počtu uzlov.

Počet uzlov

Jednoduchými logickými úvahami sme dospeli k tomu, že 4 uzly sú najlepšou voľbou pre minimálny clusterový blok. 1 uzol nie je cluster, 2 uzly sú málo (1 master, 1 worker, nie je možnosť škálovania v rámci bloku, najmä pre heterogénne varianty), 3 uzly vyzerajú v poriadku, ale nie sú násobkom mocnín 2, a škálovanie v rámci bloku je obmedzené, 6 uzlov vychádza cenovo takmer ako 7 uzlov (z našich skúseností to už znamená vysokú cenu), 8 je veľa, nezmestí sa do formátu mini ITX a je to ešte drahšie riešenie pre PoC.

Štyri uzly na blok považujeme za zlatý stred:

  • menej materiálov na clusterovú dosku, teda lacnejšia výroba
  • násobok 4, celkovo 4 bloky dávajú 16 fyzických procesorov
  • stabilná schéma 1 master a 3 workeri
  • viac heterogénnych variácií, general-compute + accelerated-compute moduly
  • mini ITX formát s SSD diskami a rozširujúcimi doskami

Výpočtové moduly

Druhá verzia je založená na CM4, mysleli sme si, že ju vydajú vo formáte SODIMM. Ale...
Rozhodli sme sa vyrobiť dcérsku dosku SODIMM a zostaviť CM4 priamo do modulov, aby sa užívatelia nemuseli zaoberať CM4.

Mini ITX klaster Turing Pi 2 s 32 GB RAM
Turing Pi Compute Module s podporou Raspberry Pi CM4

Vo všeobecnosti bol pri hľadaní modulov objavený celý trh výpočtových modulov od malých modulov s 128 MB RAM až po 8 GB RAM. Na obzore sú moduly s 16 GB RAM a viac. Pre edge hosting aplikácií založených na cloud native technológiách je už 1 GB RAM málo, a nedávny príchod modulov s 2, 4 a dokonca 8 GB RAM poskytuje dobrý priestor na rast. Zvažovali sme aj možnosti s FPGA modulmi pre aplikácie strojového učenia, ale ich podpora bola odložená, pretože softvérová ekosystém nie je rozvinutý. Pri skúmaní trhu modulov sme sa dostali k myšlienke vytvorenia univerzálneho rozhrania pre moduly a vo V2 začíname s unifikáciou rozhrania výpočtových modulov. To umožní vlastníkom verzie V2 pripojiť moduly od iných výrobcov a kombinovať ich na konkrétne úlohy.

V2 podporuje celú líniu Raspberry Pi 4 Compute Module (CM4), vrátane Lite verzií a modulov s 8 GB RAM

Mini ITX klaster Turing Pi 2 s 32 GB RAM

Periféria

Po určení dodavatele modulů a počtu uzlů jsme se dostali k PCI sběrnici, na které se nachází periferie. PCI sběrnice je standardem pro periferní zařízení a nachází se téměř ve všech výpočetních modulech. Máme několik uzlů a ideálně by každý uzel měl mít možnost sdílet PCI zařízení v režimu konkurenceschopných požadavků. Například pokud je to disk připojený k sběrnici, měl by být dostupný všem uzlům. Začali jsme hledat PCI switche s možností podpory multi-host a zjistili jsme, že žádný z nich nevyhovuje našim požadavkům. Všechna tato řešení byla většinou omezena na 1 host nebo multihosty, ale bez režimu konkurenceschopných požadavků na koncové body. Druhým problémem byla vysoká cena od 50 $ a více za čip. Ve V2 jsme se rozhodli odložit experimenty s PCI switche (k těm se vrátíme později, jakmile se vyvine situace) a zvolili jsme cestu určení role pro každý uzel: první dva uzly vystavily mini PCI express port na uzel, třetí uzel vystavil 2-portový 6 Gbps SATA řadič. Pro přístup k diskům z jiných uzlů lze použít síťový souborový systém v rámci clusteru. Proč ne?

Sneakpeek

Rozhodli jsme se sdílet některé skici, jak se vyvíjel minimální klastrový blok v průběhu času během diskusí a úvah.

Mini ITX klaster Turing Pi 2 s 32 GB RAMMini ITX klaster Turing Pi 2 s 32 GB RAMMini ITX klaster Turing Pi 2 s 32 GB RAM

Výsledkem je, že jsme vytvořili klastrový blok se 4 uzly, 260-pin, dvěma mini PCIe (Gen 2) porty, dvěma SATA (Gen 3) porty. Na desce je nainstalován Layer-2 Managed Switch s podporou VLAN. Z první uzlu je vyveden mini PCIe port, do kterého lze nainstalovat síťovou kartu a získat další Ethernet port nebo 5G modem a udělat z první uzlu router pro síť v clusteru a Ethernet porty.

Mini ITX klaster Turing Pi 2 s 32 GB RAM

Klastrová sběrnice má více funkcí, včetně možnosti flashování modulů přímo přes všechny sloty a samozřejmě FAN konektory na každém uzlu s kontrolou rychlosti.

Použitie

Edge infrastructure for self-hosted applications & services

Navrhli jsme V2 s cílem použít ji jako minimální stavební blok pro edge infrastrukturu na úrovni spotřebitele/komerční. S V2 je levné začít ověřovat koncept a škálovat s rostoucím počtem aplikací, které je ekonomicky a prakticky smysluplnější hostit v edge. Klastrové bloky lze spojovat dohromady a vytvářet tím větší clustry. To lze dělat postupně bez zvláštních rizik pro zavedené systémy.
procesov. Už dnes existuje obrovské množstvo aplikácií pre podniky, ktoré je možné hostiť lokálne.

ARM Workstation

S operačnou pamäťou až do 32 GB RAM na cluster, prvý uzol môžete použiť pre desktopovú verziu OS (napríklad Ubuntu Desktop 20.04 LTS) a zvyšné 3 uzly pre úlohy kompilácie, testovania a ladenia, vývoj cloud native riešení pre ARM klastre. Ako uzol pre CI/CD na ARM periférnu infraštruktúru v produkcii.

Turing V2 cluster s CM4 modulmi je architektonicky takmer identický (rozdiel v minor verziách ARMv8) s clustrom na báze inštancií AWS Graviton. V procesore CM4 modulov sa používa architektúra ARMv8, takže môžete vytvárať obrazy a aplikácie pre inštancie AWS Graviton 1 a 2, ktoré sú známe ako výrazne lacnejšie ako inštancie x86.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster