Cluster IT mini ITX Turing Pi 2 cu 32 GB RAM

Cluster IT mini ITX Turing Pi 2 cu 32 GB RAM

Salut comunitatea Habr! Recent am scris despre placa noastră de bază de prima versiune [V1]. Și astăzi vreau să povestesc cum am lucrat la versiunea Turing V2 cu 32 GB de memorie RAM.

Suntem pasionați de mini servere care pot fi folosite atât pentru dezvoltare locală, cât și pentru găzduire locală. Spre deosebire de calculatoarele desktop sau laptopuri, serverele noastre sunt create pentru a funcționa 24/7, iar acestea pot fi conectate rapid într-o federație; de exemplu, au fost 4 procesoare în cluster, iar peste 5 minute au devenit 16 procesoare (fără echipamente de rețea suplimentare) și toate acestea într-un format compact, silențios și eficient din punct de vedere energetic.

La baza arhitecturii serverelor noastre se află principiul de construcție bazat pe cluster, adică realizăm plăci de bază cluster care, prin intermediul unei rețele ethernet, conectează mai multe module de calcul (procesoare). Pentru simplificare, momentan nu producem modulele noastre de calcul, ci folosim Modulele de calcul Raspberry Pi și sperăm foarte mult în noul modul CM4. Însă, totul a mers împotriva planurilor noastre cu noul lor format și cred că mulți sunt dezamăgiți.

Sub cat, cum am avansat de la V1 la V2 și cum a trebuit să ne adaptăm la noul format Raspberry Pi CM4.

Așadar, după crearea unui cluster de 7 noduri, întrebarea este: ce urmează? Cum putem crește valoarea produsului? 8, 10 sau 16 noduri? Ce producători de module? Gândindu-ne la produs în ansamblu, ne-am dat seama că ceea ce contează nu este numărul de noduri sau cine este producătorul, ci esența clusterelor ca blocuri de construcție. Trebuie să căutăm blocul de construcție minim care

Primul, va constitui un cluster și va avea în același timp capacitatea de a conecta discuri și plăci de extensie. Blocul de cluster trebuie să fie un nod de bază autoprovizionabil, cu posibilități largi de extindere.

Al doilea, astfel încât blocurile minimale de cluster să poată fi conectate între ele pentru a construi clustere de dimensiuni mai mari și pentru a fi eficiente din punctul de vedere al bugetului și al vitezei de scalare. Viteza de scalare trebuie să fie mai mare decât conectarea calculatoarelor obișnuite într-o rețea și mult mai ieftină decât echipamentele server.

Al treilea, blocurile minime de cluster trebuie să fie suficient de compacte, mobile, eficiente din punct de vedere energetic, economice și să nu fie exigente în ceea ce privește condițiile de operare. Aceasta este una dintre principalele distincții față de rack-urile pentru server și tot ceea ce este legat de acestea.

Am început prin a defini numărul de noduri.

Numărul de noduri

Prin raționamente logice simple, am realizat că 4 noduri este cea mai bună opțiune pentru un bloc minim de cluster. 1 nod nu este un cluster, 2 noduri sunt prea puține (1 master și 1 worker, fără posibilitatea de scalare în cadrul blocului, mai ales în variantele heterogene), 3 noduri sunt acceptabile, dar nu sunt un multiplu al puterilor de 2 și scalarea în cadrul blocului este limitată, 6 noduri sunt aproape la fel de scumpe ca 7 noduri (din experiența noastră, aceasta este deja o costisitoare), 8 noduri sunt prea multe, nu se încadrează în formatul mini ITX și reprezintă o soluție și mai costisitoare pentru PoC.

Patru noduri pe bloc sunt considerate punctul optim:

  • mai puține materiale pentru placa de cluster, deci producție mai ieftină
  • un multiplu de 4, în total 4 blocuri oferă 16 procesoare fizice
  • schemă stabilă cu 1 master și 3 workers
  • mai multe variante heterogene, module general-compute + accelerated-compute
  • format mini ITX cu SSD-uri și plăci de extensie

Module de calcul

A doua versiune se bazează pe CM4, am crezut că aceasta va fi lansată în format SODIMM. Dar...
Am decis să facem o placă fiică SODIMM și să asamblăm CM4 direct în module, astfel încât utilizatorii să nu se gândească la CM4.

Cluster IT mini ITX Turing Pi 2 cu 32 GB RAM
Turing Pi Compute Module cu suport pentru Raspberry Pi CM4

Căutând module, a fost descoperit un întreg market de module de calcul, de la module mici cu 128 MB RAM până la 8 GB RAM. Se preconizează module cu 16 GB RAM și mai mult. Pentru edge hosting-ul aplicațiilor bazate pe tehnologii cloud native, 1 GB RAM devine deja insuficient, iar apariția recentă a modulelor cu 2, 4 și chiar 8 GB RAM oferă un spațiu bun pentru creștere. Chiar am luat în considerare și variante cu module FPGA pentru aplicații de învățare automată, dar suportul lor a fost amânat deoarece ecosistemul software nu este dezvoltat. În timpul explorării pieței modulelor, am ajuns la idea creării unui interfață universală pentru module și în V2 începe unificarea interfeței modulelor de calcul. Aceasta va permite proprietarilor versiunii V2 să conecteze module de la alți producători și să le combine pentru sarcini specifice.

V2 suportă întreaga gamă Raspberry Pi 4 Compute Module (CM4), inclusiv versiunile Lite și modulele cu 8 GB RAM

Cluster IT mini ITX Turing Pi 2 cu 32 GB RAM

Periferie

După ce am definit furnizorul modulelor și numărul de noduri, am ajuns la magistrala PCI, pe care se află perifericele. Magistrala PCI este un standard pentru dispozitivele periferice și se găsește aproape în toate modulele de calcul. Avem mai multe noduri și, ideal, fiecare nod ar trebui să poată partaja dispozitivele PCI în modul cereri concurente. De exemplu, dacă este un disc conectat la magistrală, acesta este disponibil pentru toate nodurile. Am început să căutăm switch-uri PCI cu posibilitatea de suport multi-host și am descoperit că niciunul dintre ele nu se potrivește cerințelor noastre. Toate aceste soluții erau în principal limitate la 1 host sau multi-host-uri, dar fără modul cereri concurente pentru endpoints. A doua problemă era costul ridicat de la 50 de dolari și mai mult pentru un cip. În V2, am decis să amânăm experimentele cu switch-urile PCI (ne vom întoarce la ele mai târziu pe măsură ce progresează) și am ales să atribuim un rol pentru fiecare nod: primele două noduri au porturi mini PCI express expuse per nod, al treilea nod a expus un controler SATA cu 2 porturi de 6 Gbps. Pentru a obține acces la discuri de pe alte noduri, se poate folosi un sistem de fișiere de rețea în cadrul clusterului. De ce nu?

Sneakpeek

Am decis să împărtășim câteva schițe despre cum a evoluat blocul minim de cluster în timp, în procesul de discuție și reflecție

Cluster IT mini ITX Turing Pi 2 cu 32 GB RAMCluster IT mini ITX Turing Pi 2 cu 32 GB RAMCluster IT mini ITX Turing Pi 2 cu 32 GB RAM

Ca urmare, am ajuns la un bloc de cluster cu 4 noduri de 260 pini, 2 porturi mini PCIe (Gen 2) și 2 porturi SATA (Gen 3). Pe placă este instalat un switch gestionat Layer-2 cu suport VLAN. De la primul nod este scos un port mini PCIe, în care poate fi instalată o placă de rețea pentru a obține un alt port Ethernet sau un modem 5G și a transforma primul nod într-un router pentru rețeaua clusterului și porturile Ethernet.

Cluster IT mini ITX Turing Pi 2 cu 32 GB RAM

Magistrala de cluster are mai multe funcții, inclusiv capacitatea de a programa modulele direct prin toate sloturile și, desigur, conectori pentru ventilatoare pe fiecare nod cu control al vitezei.

Aplicare

Infrastructură Edge pentru aplicații și servicii auto-găzduite

Am proiectat V2 cu scopul de a o folosi ca un bloc de construcție minim pentru infrastructura edge de tip consumer/commercial. Cu V2 este ieftin să începi testarea conceptului și să te scalzi pe măsură ce crești, mutând treptat aplicațiile care sunt mai economice și practice de găzduit în edge. Blocurile de cluster pot fi conectate împreună, construind clustere de dimensiuni mai mari. Acest lucru se poate face treptat fără riscuri considerabile pentru cele consolidate.
proceselor. Chiar astăzi există o mulțime de aplicații pentru afaceri, care pot fi găzduite local.

ARM Workstation

Cu o memorie RAM de până la 32 GB pe cluster, prima nodă poate fi utilizată pentru versiunea desktop a OS-ului (de exemplu, Ubuntu Desktop 20.04 LTS), iar celelalte 3 noduri pentru sarcini de compilare, testare și depanare, dezvoltarea soluțiilor cloud native pentru clustere ARM. Ca nod pentru CI/CD în infrastructura periferică ARM din producție.

Clusterul Turing V2 cu module CM4 este arhitectural aproape identic (diferența constă în versiunile minore ale ARMv8) clusterului bazat pe instanțele AWS Graviton. În procesoarele modulelor CM4 se utilizează arhitectura ARMv8, puteți construi imagini și aplicații pentru instanțele Graviton 1 și 2 de la AWS, care sunt cunoscute ca fiind mult mai ieftine decât instanțele x86.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster