
Pozdrav zajednici Habra! Nedavno sam pisao o našem klaster ploči prve verzije []. I danas želim govoriti o tome kako smo radili na verziji operativnoj memoriji.
Zaljubljeni smo u mini servere koje možemo koristiti kako za lokalni razvoj, tako i za lokalno hosting. Za razliku od stolnih računala ili laptopa, naši serveri su dizajnirani za rad 24/7, brzo se mogu povezivati u federacije, na primjer, bilo je 4 procesora u klasteru, a za 5 minuta 16 procesora (bez dodatne mrežne opreme) i sve to u kompaktnom formatu, tiho i energetski učinkovito.
Osnova arhitekture naših servera je klasterni princip gradnje, tj. stvaramo klasterne ploče koje putem ethernet mreže na ploči povezuju više računalnih modula (procesora). Radi pojednostavljenja, trenutno ne radimo vlastite računalne module, već koristimo Raspberry Pi Compute Modules i vrlo smo se nadali novom CM4 modulu. No, sve je pošlo naopako s njihovim novim formatom i mislim da su mnogi razočarani.
Pod katom je kako smo išli od V1 do V2 i kako smo se morali snalaziti s novim formatom Raspberry Pi CM4.
Dakle, nakon stvaranja klastera od 7 nodova, pitanje je — što dalje? Kako povećati vrijednost proizvoda? 8, 10 ili 16 nodova? Koji su proizvođači modula? Razmišljajući o proizvodu u cjelini, shvatili smo da ovdje nije bitno koliko nodova ili tko je proizvođač, već suština klastera kao gradivnog bloka. Potrebno je pronaći minimalni gradivni blok koji
Prvo, bit će klaster i pritom imati mogućnost povezivanja diskova i proširenih ploča. Klasterni blok mora biti samodostatan osnovni čvor s širokim mogućnostima proširenja.
Drugo, tako da se minimalni klasterni blokovi mogu međusobno povezivati stvarajući klastere većih dimenzija i da to bude učinkovito s obzirom na proračun i brzinu skaliranja. Brzina skaliranja trebala bi biti veća od povezivanja običnih računala u mrežu i daleko jeftinija od serverne opreme.
Treće, minimalni klasterni blokovi trebaju biti dovoljno kompaktni, mobilni, energetski učinkoviti, isplativi i ne zahtijevati posebne uvjete za rad. To je jedna od ključnih razlika od server rackova i svega što je s njima povezano.
Započeli smo s određivanjem broja nodova.
Broj nodova
Jednostavnim logičkim rasuđivanjem shvatili smo da su 4 nodova najbolja opcija za minimalni klastrirani blok. 1 nod nije klaster, 2 nodova je malo (1 master i 1 worker, nema mogućnosti skaliranja unutar bloka, posebno za heterogene varijante), 3 nodova izgleda ok, ali nije višekratno stanja 2 i limitirano je skaliranje unutar bloka, 6 nodova košta gotovo kao 7 nodova (s našeg iskustva to je već visoka cijena), 8 je previše, ne staje u mini ITX form faktor i još je skuplje rješenje za PoC.
Četiri nodova po bloku smatramo zlatnom sredinom:
- manje materijala za klastru, stoga je jeftinija proizvodnja
- višekratno 4, ukupno 4 bloka daju 16 fizičkih procesora
- stabilna shema 1 master i 3 workera
- više heterogenih varijacija, general-compute + accelerated-compute moduli
- mini ITX form-factor s SSD diskovima i proširenim pločama
Računalni moduli
Druga verzija se temelji na CM4, mislili smo da će je izdati u SODIMM form-faktoru. No…
Donijeli smo odluku da napravimo podnožje SODIMM i sastavimo CM4 odmah u module kako korisnici ne bi razmišljali o CM4.

Turing Pi Compute Module koji podržava Raspberry Pi CM4
U potrazi za modulima otvoreno je cijelo tržište računalnih modula od malih modula s 128 MB RAM-a do 8 GB RAM-a. Predstoje moduli s 16 GB RAM-a i više. Za edge hosting aplikacija temeljenih na cloud native tehnologijama 1 GB RAM-a je već premalo, a nedavno se pojavljivanje modula s 2, 4 pa čak i 8 GB RAM-a pruža dobar prostor za rast. Čak smo razmatrali i opcije s FPGA modulima za aplikacije strojskog učenja, ali njihova podrška je odgođena zbog nedovoljno razvijene softverske ekosustava. Tijekom proučavanja tržišta modula došli smo na ideju o stvaranju univerzalnog sučelja za module i u V2 započinjemo unifikaciju sučelja računalnih modula. To će omogućiti vlasnicima verzije V2 da povezuju module drugih proizvođača i miješaju ih prema specifičnim zadacima.
V2 podržava cijelu liniju Raspberry Pi 4 Compute Module (CM4), uključujući Lite verzije i module s 8 GB RAM-a.

Periferija
Nakon definiranja dobavljača modula i broja čvorišta, došli smo do PCI sabirnice, na kojoj se nalazi periferija. PCI sabirnica je standard za periferne uređaje i prisutna je gotovo u svim računalnim modulima. Imamo više čvorišta i idealno bi bilo da svako čvorište može dijeliti PCI uređaje u načinu konkurentnih zahtjeva. Na primjer, ako je to disk priključen na sabirnicu, tada je dostupan svim čvorištima. Počeli smo istraživati PCI preklopnike s mogućnošću podrške za više hostova i otkrili da nijedan od njih ne zadovoljava naše zahtjeve. Sva ta rješenja uglavnom su bila ograničena na 1 stroj ili više hostova, ali bez načina konkurentnih zahtjeva prema krajnjim točkama. Drugi problem je visoka cijena od 50 USD i više po čipu. U V2 smo odlučili odgoditi eksperimente s PCI preklopnicima (vraćamo im se kasnije kako budemo napredovali) i krenuli smo putem dodjeljivanja uloga svakom čvorištu: prva dva čvorišta izložila su mini PCI express port po čvorištu, treće čvorište izložilo je 2 porta 6 Gbps SATA kontrolera. Za pristup diskovima s drugih čvorišta može se koristiti mrežni datotečni sustav unutar klastera. Zašto ne?
Sneakpeek
Odlučili smo podijeliti neke skice kako je evolucija minimalnog klasterskog bloka napredovala kroz vrijeme tijekom rasprave i razmišljanja.



Kao rezultat, došli smo do klasterskog bloka s 4 čvorišta, 260-pin, 2 mini PCIe (Gen 2) porta, 2 SATA (Gen 3) porta. Na ploči je postavljen Layer-2 Managed Switch s podrškom za VLAN. Iz prve čvorišta izveden je mini PCIe port, u koji se može instalirati mrežna kartica i dobiti još jedan Ethernet port ili 5G modem, te od prve čvorišta stvoriti usmjerivač za mrežu unutar klastera i Ethernet portova.

Klasterska sabirnica ima više funkcija, uključujući mogućnost programiranja modula izravno kroz sve utičnice i naravno FAN konektore na svakom čvorištu s kontrolom brzine.
Primjena
Edge infrastruktura za samostalno hostane aplikacije i usluge
Projektirali smo V2 s ciljem upotrebe kao minimalne građevne blokove za potrošačke/trgovinske razrede edge infrastrukture. S V2 je jeftino započeti provjeru koncepta i skalirati kako rastemo, postupno premještajući aplikacije koje su ekonomski i praktično isplativije hostati u edgeu. Klasterske blokove moguće je povezivati zajedno, stvarajući veće klastere. To se može raditi postupno bez značajnih rizika za ustaljene.
procesa. Već danas postoji ogroman broj aplikacija za poslovanje, .
ARM Workstation
S RAM-om do 32 GB po klasteru, prva noda može se koristiti za desktop verziju OS-a (na primjer, Ubuntu Desktop 20.04 LTS), a preostale 3 node za zadatke kompilacije, testiranja i debagiranja, razvoja cloud native rješenja za ARM klastere. Kao čvor za CI/CD u ARM perifernu infrastrukturu u produkciji.
Turing V2 klaster s CM4 modulima arhitektonski je gotovo identičan (razlika je u manjim verzijama ARMv8) klasteru koji se temelji na AWS Graviton instancama. U procesoru CM4 modula koristi se ARMv8 arhitektura, možete graditi slike i aplikacije za AWS Graviton 1 i 2 instance, koje su, kako se zna, puno jeftinije od x86 instanci.
Izvor: habr.com
