Mini ITX klaster Turing Pi 2 sa 32 GB RAM-a

Mini ITX klaster Turing Pi 2 sa 32 GB RAM-a

Pozdrav zajednici Habr! Nedavno sam pisao o našoj prvoj verziji klaster ploče [V1]. I danas želim da vam kažem kako smo radili na verziji Turing V2 sa 32 GB memorije.

Mi smo strastveni oko mini servera koji se mogu koristiti i za lokalni razvoj i za lokalni hosting. Za razliku od desktop računara ili laptopa, naši serveri su dizajnirani da rade 24/7, mogu se brzo povezati u federaciju, na primjer, bilo je 4 procesora u klasteru, a nakon 5 minuta bilo je 16 procesora (bez dodatne mrežne opreme) i sve to u kompaktnom obliku, tihom i energetski efikasnom.

Arhitektura naših servera je zasnovana na principu izgradnje klastera, tj. Izrađujemo klaster ploče koje povezuju više računarskih modula (procesora) koristeći ethernet mrežu na ploči. Da pojednostavimo stvari, još uvijek ne pravimo vlastite računske module, već koristimo Raspberry Pi Compute Module i stvarno smo se nadali novom CM4 modulu. Ali sve je išlo protiv planova sa njihovim novim faktorom forme i mislim da su mnogi razočarani.

Ispod je kako smo prešli sa V1 na V2 i kako smo morali da se nosimo sa novim faktorom forme Raspberry Pi CM4.

Dakle, nakon kreiranja klastera sa 7 čvorova, postavljaju se pitanja: šta dalje? Kako povećati vrijednost proizvoda? 8, 10 ili 16 čvorova? Koji proizvođači modula? Razmišljajući o proizvodu u cjelini, shvatili smo da ovdje nije najvažniji broj čvorova ili ko je proizvođač, već sama suština klastera kao gradivnog bloka. Moramo potražiti minimalni gradivni blok koji to čini

Prvi, će biti klaster i istovremeno imati mogućnost povezivanja diskova i kartica za proširenje. Jedinica klastera mora biti samodovoljan osnovni čvor sa širokim mogućnostima proširenja.

Drugi, tako da se minimalni blokovi klastera mogu međusobno povezati izgradnjom većih klastera i tako da je to efikasno u smislu budžeta i brzine skaliranja. Brzina skaliranja bi trebala biti veća od povezivanja običnih računara na mrežu i mnogo jeftinija od serverske opreme.

Treći, minimalne klaster jedinice moraju biti prilično kompaktne, mobilne, energetski efikasne, isplative i ne zahtjevne za uvjete rada. Ovo je jedna od ključnih razlika od serverskih rekova i svega što je povezano s njima.

Počeli smo određivanjem broja čvorova.

Broj čvorova

Koristeći jednostavne logičke prosudbe, shvatili smo da su 4 čvora najbolja opcija za minimalni blok klastera. 1 čvor nije klaster, 2 čvora nisu dovoljna (1 master 1 radnik, ne postoji mogućnost skaliranja unutar bloka, posebno za heterogene opcije), 3 čvora izgleda ok, ali nije višekratnik stepena 2 i skaliranja unutar blok je ograničen, 6 čvorova ima cijenu skoro kao 7 čvorova (iz našeg iskustva to je već visoka cijena), 8 je puno, ne uklapa se u mini ITX form faktor i još skuplje rješenje za PoC.

Četiri čvora po bloku smatramo zlatnom sredinom:

  • manje materijala po klaster dasci, a samim tim i jeftinija proizvodnja
  • djeljivo sa 4, samo 4 bloka daju 16 fizičkih procesora
  • stabilna šema 1 majstor i 3 radnika
  • heterogenije varijacije, moduli opšteg računanja + ubrzano računanje
  • mini ITX faktor oblika sa SSD diskovima i karticama za proširenje

Računarski moduli

Druga verzija je bazirana na CM4, mislili smo da će biti objavljena u SODIMM formatu. Ali…
Odlučili smo napraviti SODIMM kćerinsku ploču i sastaviti CM4 direktno u module kako korisnici ne bi razmišljali o CM4.

Mini ITX klaster Turing Pi 2 sa 32 GB RAM-a
Turing Pi Compute Module koji podržava Raspberry Pi CM4

Generalno, u potrazi za modulima, otvoreno je čitavo tržište računarskih modula, od malih modula sa 128 MB RAM-a do 8 GB RAM-a. Ispred su moduli sa 16 GB RAM-a ili više. Za rubne hosting aplikacije zasnovane na Cloud izvornim tehnologijama, 1 GB RAM-a više nije dovoljno, a nedavna pojava modula sa 2, 4, pa čak i 8 GB RAM-a pruža dobar prostor za rast. Čak smo razmatrali opcije sa FPGA modulima za aplikacije za mašinsko učenje, ali je njihova podrška odložena jer softverski ekosistem nije razvijen. Proučavajući tržište modula, došli smo na ideju da napravimo univerzalni interfejs za module, a u V2 počinjemo da objedinjujemo interfejs računarskih modula. Ovo će omogućiti vlasnicima verzije V2 da povežu module drugih proizvođača i pomiješaju ih za određene zadatke.

V2 podržava cijelu liniju Raspberry Pi 4 Compute Module (CM4), uključujući Lite verzije i module sa 8 GB RAM-a

Mini ITX klaster Turing Pi 2 sa 32 GB RAM-a

Periferija

Nakon što smo odredili proizvođača modula i broj čvorova, pristupili smo PCI magistrali na kojoj se nalaze periferije. PCI magistrala je standard za periferne uređaje i nalazi se u gotovo svim računarskim modulima. Imamo nekoliko čvorova i idealno bi bilo da svaki čvor može dijeliti PCI uređaje u kompetitivnom režimu zahtjeva. Na primjer, ako je ovo disk spojen na sabirnicu, tada je dostupan svim čvorovima. Počeli smo tražiti PCI prekidače s podrškom za više hostova i otkrili da nijedan od njih ne ispunjava naše zahtjeve. Sva ova rješenja su uglavnom bila ograničena na 1 host ili više hostova, ali bez načina istovremenih zahtjeva za krajnje tačke. Drugi problem je visoka cijena od 50 dolara ili više po čipu. U V2 smo odlučili da odložimo eksperimente sa PCI prekidačima (na njih ćemo se vratiti kasnije dok budemo razvijali) i krenuli smo putem dodeljivanja uloge svakom čvoru: prva dva čvora su bila izložena mini PCI express portu po čvoru, treći čvor je bio izložen 2-portni 6 Gbps SATA kontroler. Da biste pristupili diskovima iz drugih čvorova, možete koristiti sistem mrežnih datoteka unutar klastera. Zašto ne?

Sneakpeek

Odlučili smo podijeliti neke skice o tome kako je minimalni blok klastera evoluirao tokom vremena kroz diskusiju i razmišljanje.

Mini ITX klaster Turing Pi 2 sa 32 GB RAM-aMini ITX klaster Turing Pi 2 sa 32 GB RAM-aMini ITX klaster Turing Pi 2 sa 32 GB RAM-a

Kao rezultat toga, došli smo do klaster jedinice sa 4 260-pin čvora, 2 mini PCIe (Gen 2) porta, 2 SATA (Gen 3) porta. Ploča ima Layer-2 Managed Switch sa VLAN podrškom. Prvi čvor ima mini PCIe port u koji možete instalirati mrežnu karticu i dobiti drugi Ethernet port ili 5G modem i pretvoriti prvi čvor u ruter za mrežu na klasteru i Ethernet portovima.

Mini ITX klaster Turing Pi 2 sa 32 GB RAM-a

Cluster bus ima više funkcija, uključujući mogućnost flešovanja modula direktno kroz sve slotove i naravno konektore FAN na svakom čvoru sa kontrolom brzine.

Aplikacija

Edge infrastruktura za samostalno hostirane aplikacije i usluge

Dizajnirali smo V2 sa ciljem da ga koristimo kao minimalni gradivni blok za rubnu infrastrukturu potrošačke/komercijalne klase. Sa V2, jeftino je započeti dokaz koncepta i razmjera kako rastete, postupno migrirajući aplikacije koje imaju ekonomičnije i praktičnije hostovanje na rubu. Blokovi klastera mogu se povezati zajedno kako bi se izgradile veće klastere. Ovo se može učiniti postepeno bez ikakvih posebnih rizika za uspostavljanje
procesi. Danas postoji ogroman broj aplikacija za poslovanje, koji se mogu ugostiti lokalno.

ARM radna stanica

Sa do 32 GB RAM-a po klasteru, prvi čvor se može koristiti za desktop verziju OS-a (na primjer, Ubuntu Desktop 20.04 LTS), a preostala 3 čvora za zadatke kompilacije, testiranja i otklanjanja grešaka, te razvoj izvornog oblaka rješenja za ARM klastere. Kao čvor za CI/CD na ARM perifernoj infrastrukturi u proizvodnji.

Turing V2 klaster sa CM4 modulima je po arhitekturi gotovo identičan (razlika je u manjim verzijama ARMv8) klasteru zasnovanom na AWS Graviton instancama. Procesor CM4 modula koristi ARMv8 arhitekturu; možete prikupljati slike i aplikacije za AWS Graviton 1 i 2 instance, za koje se zna da su mnogo jeftinije od x86 instanci.

izvor: www.habr.com