Mini ITX klaster Turing Pi 2 koos 32 GB RAM-iga

Mini ITX klaster Turing Pi 2 koos 32 GB RAM-iga

Tere, Habra kogukond! Hiljuti kirjutasin meie esimese versiooni klastriplaadist [V1]. Ja täna tahan rääkida, kuidas töötasime versiooni kallal Turing V2 32 GB operatiivmälu.

Meid huvitavad mini-serverid, mida saab kasutada nii kohaliku arenduse kui ka kohaliku hostimise jaoks. Erinevalt lauaarvutitest või sülearvutitest on meie serverid loodud tööks 24/7, neid on kiire ja lihtne omavahel ühendama, näiteks oli klastris 4 protsessorit, ja 5 minuti pärast oli neid juba 16 (ilma lisavõrgu seadmeteta) ning kõik see kompaktses vormitegijas, vaikselt ja energiatõhusalt.

Meie serverite arhitektuuri aluseks on klastripõhine lähenemine, st me loome klastriplaate, mis ühendavad mitmeid arvutusmooduleid (protsessoreid) etherneti võrgu kaudu. Lihtsuse huvides ei tee me veel oma arvutusmooduleid, vaid kasutame Raspberry Pi Compute Module'e ja lootsime väga uut CM4 moodulit. Kuid kõik läks Pinna uue vormitegijaga vastupidiseks ja arvan, et paljud on pettunud.

Allpool räägime, kuidas läksime V1-lt V2-le ja kuidas pidime uue Raspberry Pi CM4 vormitegijaga toime tulema.

Nii, pärast 7 sõlme klastri loomist, järgnevad küsimused — mis edasi? Kuidas toote väärtust tõsta? 8, 10 või 16 sõlme? Millised on moodulite tootjad? Toote tervikuna mõeldes saime aru, et peamine pole mitte sõlmede arv ega tootja, vaid klastrite olemus kui ehitusplokk. Tuleb otsida minimaalset ehitusplokki, mis

Esimene, oleks klaster ning samas võimaldaks ketaste ja laienduskaartide ühendamist. Klastri plokk peab olema iseseisev põhielement ja laia arendusvõimalustega.

Teine, et minimaalsetel klastriplokkidel oleks võimalik omavahel ühendada, ehitades suuremaid klasse, ning et see oleks eelarve ja skaleerimise kiirusest tõhus. Skaleerimise kiirus peab olema kiirem kui tavaliste arvutite võrgus ühendamine ja palju odavam serveritehnika kaasamine.

Kolmas, minimaalsetel klastriplokkidel peavad olema piisavalt kompaktsed, mobiilsed, energiatõhusad, kulutõhusad ja mitte nõudlikud töötingimuste suhtes. See on üks peamisi erinevusi serverirakkudest ja kõigest, mis nendega seotud.

Alustasime node arvu määramisest.

Node arvu

Lihtsate loogiliste järeldustega mõistsime, et 4 node on parim variant minimaalsete klastriplokkide jaoks. 1 node ei ole klaster, 2 node on vähe (1 master ja 1 töötaja, ei ole võimalik skaleerida ploki piires, eriti heterogeensete variantide puhul), 3 node tundub okei, kuid ei ole kahesüsteemset ning skaleerimine ploki piires on piiratud, 6 node maksab peaaegu sama palju kui 7 node (meie kogemuse järgi on see juba kõrge tootmiskulu), 8 on liiga palju, ei mahu mini ITX formaati ning on veel kallim lahendus PoC jaoks.

Neli node ploki kohta peame kuldseks keskteeks:

  • vähem materjale klastriplaadi jaoks, seega odavam tootmine
  • 4-ga, kokku 4 plokki annavad 16 füüsilist protsessorit
  • stabiilne skeem 1 master ja 3 töötajat
  • rohkem heterogeenseid variatsioone, general-compute + accelerated-compute moodulid
  • mini ITX formaadi SSD-diskide ja laiendusplaatidega

Arvutusmoodulid

Teine versioon põhineb CM4, arvasime, et see antakse välja SODIMM formaadis. Kuid...
Otsustasime, et teeme tütarplaadi SODIMM ja kogume CM4 kohe mooduliteks, et kasutajad ei peaks CM4 üle muretsema.

Mini ITX klaster Turing Pi 2 koos 32 GB RAM-iga
Turing Pi Compute Module Raspberry Pi CM4 toe toetab

Otsides mooduleid avastati terve turg arvutusmooduleid, alates väikestest moodulitest 128 MB RAM kuni 8 GB RAM. Tulevikus on oodata mooduleid 16 GB RAM ja rohkem. Cloud native tehnoloogiatele tuginevate rakenduste edge hostimise jaoks on 1 GB RAM juba vähe, kuid hiljutine 2, 4 ja isegi 8 GB RAM moodulite turule toomine annab hea kasvu võimaluse. Samuti kaaluti FPGA moodulite variante masinõppe rakendustele, kuid nende toetus on edasi lükatud, kuna tarkvaraline ökosüsteem ei ole piisavalt arenenud. Moodulite turu uurimise käigus tuli idee luua universaalne liides moodulitele ning V2-s alustame arvutusmoodulite liidese ühtlustamist. See võimaldab V2 omanikel ühendada teiste tootjate mooduleid ja kombineerida neid konkreetsete ülesannete jaoks.

V2 toetab kogu Raspberry Pi 4 Compute Module (CM4) rida, sealhulgas Lite versioonid ja 8 GB RAM moodulid.

Mini ITX klaster Turing Pi 2 koos 32 GB RAM-iga

Perifeeria

Pärast müügipartnerite ja nodide arvu määramist jõudsime PCI bussini, kus asuvad perifeersed seadmed. PCI buss on standard perifeersete seadmete jaoks ja see on peaaegu igas arvutusmoodulis. Meil on mitu nodi ja ideaaljuhul peaks iga nod saama jagada PCI seadmeid konkurentsivõimeliste päringute režiimis. Näiteks kui see on bussi ühendatud ketas, on see kergesti kergesti saadaval kõigile nodidele. Alustasime PCI lülitite otsimist, mis toetaks multihosti, ja avastasime, et kumbki neist ei vasta meie nõudmistele. Kõik need lahendused olid peamiselt piiratud ühe hostiga või mitme hostiga, aga ilma konkurentsivõimeliste päringute režiimi toetamiseta lõpp-punktide puhul. Teiseks probleemiks oli kõrge hind, alates $50 ja enam ühe kiibi kohta. V2-s otsustasime PCI lülititega eksperimenteerimise edasilükkamise kasuks (me naaseme nende juurde hiljem, kui olukord areneb) ja läksime igale nodile rolli määramise teed: esimesed kaks nodi avasid mini PCIe pordi, kolmas nod avas 2-portilise 6 Gbps SATA kontrolleri. Muudest nodidest ketastele pääsemiseks saab kasutada võrgufailisüsteemi klasteris. Miks mitte?

Sneakpeek

Otsustasime jagada mõned skeemid, kuidas minimaalne klastriplokk on aja jooksul arenenud arutelu ja mõtlemise käigus.

Mini ITX klaster Turing Pi 2 koos 32 GB RAM-igaMini ITX klaster Turing Pi 2 koos 32 GB RAM-igaMini ITX klaster Turing Pi 2 koos 32 GB RAM-iga

Kuna jõudsime klastriplokini, millel on 4 260-pin noodi, 2 mini PCIe (Gen 2) porti ja 2 SATA (Gen 3) porti. Ribal on Layer-2 hallatav lüliti VLAN-i toega. Esimese noodi juures on mini PCIe port, kuhu saab paigaldada võrkaart ja saada veel ühe Etherneti pordi või 5G modemiga luua esimese noodiga ruuteri klastrivõrgus ja Etherneti pordiga.

Mini ITX klaster Turing Pi 2 koos 32 GB RAM-iga

Klastribusal on rohkem funktsioone, sealhulgas otse kõikidest pesadest moduli vilkuvuse võimalus ja loomulikult iga noodi ventilaatori ühendused kiiruskontrolliga.

Kasutamine

Edge infrastruktuur iseteenindavate rakenduste ja teenuste jaoks

Me projekteerisime V2 eesmärgiga kasutada seda kui minimaalset ehitusplokki consumer/commercial-grade edge infrastruktuuri jaoks. V2-ga on odav alustada kontseptsiooni testimist ja skaleerida vastavalt vajadusele, liikudes järk-järgult rakenduste poole, mida on majanduslikult ja praktiliselt mõttekas hostida edge'is. Klasterplokke saab omavahel ühendada, luues suuremaid klastreid. Seda saab teha järk-järgult, ilma suuremate riskideta juba kehtestatud
protsesside jaoks. Tänapäeval on saadaval tohutult palju rakendusi, mida saab kohapeal hostida.

ARM Workstation

Kuni 32 GB RAM-iga klastrisse saab esimese sõlme kasutada desktop operatsioonisüsteemi (nt Ubuntu Desktop 20.04 LTS) jaoks ja ülejäänud 3 sõlme kompilatsiooni, testimise ja silumise ning ARM klastrite cloud native lahenduste arendamise ülesannete jaoks. CI/CD sõlmena ARM-i servainfrastruktuuris tootmises.

Turing V2 klaster CM4 moodulitega on arhitektuuriliselt peaaegu identne (vahe on väikestes ARMv8 versioonides) AWS Graviton instantsidega. CM4 moodulite protsessoris kasutatakse ARMv8 arhitektuuri, mis tähendab, et saate kokku panna pilte ja rakendusi AWS Graviton 1 ja 2 instantside jaoks, mis on tuntud oma madalamate hindade poolest võrreldes x86 instantsidega.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster