
Përshëndetje komuniteti Habr! Së fundmi kam shkruar për kartelën tonë klaster të versionit të parë []. Dhe sot do të flas si kemi punuar mbi versionin memorie operative.
Na pëlqejnë mini serverët që mund të përdoren si për zhvillim lokal ashtu edhe për hostim lokal. Në krahasim me kompjuterët desktop ose laptopët, serverët tanë janë krijuar për të punuar 24/7, dhe ato mund të lidheshin shpejt në një federatë, për shembull, nga 4 procesorë në klaster, në 5 minuta u bënë 16 procesorë (pa pajisje të tjera rrjeti) dhe gjithçka në një format kompakt, pa zhurmë dhe energji efikase.
Bazuar në arkitekturën e serverëve tanë është principi i ndërtimit në klaster, në kuptimin që ne bëjmë karta klasteri që lidhin disa modula llogaritës (procesorë) përmes rrjetit ethernet në bord. Për të thjeshtuar, për momentin ne nuk po bëjmë modulët tanë llogaritës, por përdorim Raspberry Pi Compute Modules dhe ne kishim shumë shpresë për modulin e ri CM4. Por, gjithçka shkoi për të kundërtën me formatin e tyre të ri dhe mendoj se shumë janë zhgënjyer.
Pod katin si si shkua nga V1 në V2 dhe si na duhej të krijonim me formatin e ri Raspberry Pi CM4.
KĂ«shtu, pas krijimit tĂ« njĂ« klasteri me 7 nodo, pyetja Ă«shtĂ« â çfarĂ« mĂ« pas? Si ta rrisim vlerĂ«n e produktit? 8, 10 apo 16 nodo? Cilat janĂ« prodhuesit e modulit? NdĂ«rsa mendonim pĂ«r produktin nĂ« tĂ«rĂ«si, kuptuam se ajo qĂ« ishte alokuar kĂ«tu nuk Ă«shtĂ« numri i nodove ose kush Ă«shtĂ« prodhuesi, por vetĂ« kuptimi i klastereve si njĂ« bllok ndĂ«rtimi. Duhet tĂ« kĂ«rkojmĂ« bllokun e ndĂ«rtimit minimal, i cili
E para, do të përbëjë një klaster dhe për më tepër të ketë mundësinë e lidhjes së disqeve dhe kartave të zgjerimit. Blloku i klasterit duhet të jetë një nyje bazike e vetë-mjaftueshme me mundësi të gjera për zgjerim.
E dyta, në mënyrë që blloqet e klastereve minimale të mund të lidheshin midis tyre për të ndërtuar klastere më të mëdha dhe që kjo të ishte efektive nga pikëpamja e buxhetit dhe shpejtësisë së shkallëzimit. Shpejtësia e shkallëzimit duhet të jetë më e lartë se lidhja e kompjuterëve të zakonshëm në një rrjet dhe shumë më e lirë se pajisjet e serverave.
E treta, blloket e minim të klasterit duhet të jenë mjaft kompakt, të lëvizshëm, energjikisht efikas, cost-effective dhe të mos kërkojnë kushte të veçanta për operim. Kjo është një nga dallimet kryesore nga raftet e serverit dhe gjithçka që lidhet me to.
Kemi filluar me përcaktimin e numrit të nyjeve.
Numri i nyjeve
Me arsytime të thjeshta logjike e kuptuam që 4 nyje janë opsioni më i mirë për bllokun minimal të klasterit. 1 nyje nuk është klaster, 2 nyje janë pak (1 master 1 punonjës, nuk ka mundësi për zgjerim brenda bllokut, veçanërisht për varianta heterogjene), 3 nyje duken ok, por nuk janë shumëfish të fuqive të 2 dhe kanë limitim në zgjerimin brenda bllokut, 6 nyje del me një çmim pothuajse si 7 nyje (nga eksperience jonë, kjo është një kosto e madhe), 8 është shumë, nuk përfshihet në formatin mini ITX dhe është një zgjidhje edhe më e shtrenjtë për PoC.
Kemi katër nyje për bllok dhe e konsiderojmë si arsyen e artë:
- më pak materiale për kartelën e klasterit, si rezultat është më e lirë prodhimi
- katërshe 4, gjithsej 4 blloqe ofrojnë 16 procesorë fizikë
- skema e stabilizuar 1 master dhe 3 punonjës
- më shumë variacione heterogjene, module general-compute + accelerated-compute
- format mini ITX me disqe SSD dhe karta zgjerimi
Modulet e përpunimit
Versioni i dytĂ« bazohet nĂ« CM4 dhe menduam se do tĂ« lĂ«shohet nĂ« formatin SODIMM. PorâŠ
Ne morëm vendimin për të bërë një nënplakë SODIMM dhe për të montuar CM4 direkt në modulet në mënyrë që përdoruesit të mos mendojnë për CM4.

Moduli Turing Pi Compute me mbështetje për Raspberry Pi CM4
Në kërkim të moduleve, u zbulua një treg i tërë për modulet e përpunimit nga modulet e vogla me 128 MB RAM deri në 8 GB RAM. Në të ardhmen do të ketë module me 16 GB RAM e më shumë. Për hosting edge të aplikacioneve që bazohen në teknologjitë cloud native, 1 GB RAM shpesh është i pamjaftueshëm, ndërsa sjellja e re e moduleve me 2, 4 dhe madje 8 GB RAM ofron hapësirë të mirë për rritje. Edhe kemi shqyrtuar mundësi me module FPGA për aplikacione të mësimit të makinës, por mbështetje e tyre është shtyrë për shkak të mungesës së një ekosistemi softuerik të zhvilluar. Gjatë studimit të tregut të moduleve, arritëm në idenë e krijimit të një ndërfaqe universale për modulet dhe në V2 fillojmë unifikimin e ndërfaqes së moduleve të përpunimit. Kjo do t'u lejojë pronarëve të versionit V2 të lidhen me modulet e prodhuesve të tjerë dhe t'i kombinojnë ato për detyra të caktuara.
V2 mbështet të gjithë gamën e Moduleve të Përpunimit Raspberry Pi 4 (CM4), duke përfshirë versionet Lite dhe modulet me 8 GB RAM

Për periferinë
Pasi përcaktuam ofruesin e moduleve dhe numrin e nodëve, arritëm te PCI bus-i, ku ndodhen pajisjet periferike. PCI bus-i është një standard për pajisjet periferike dhe ndodhet pothuajse në të gjitha modulet kompjuterike. Ne kemi disa nodë dhe në idealin tonë, secila nodë duhet të mund të ndajë pajisjet PCI në modalitetin e kërkesave konkuruese. Për shembull, nëse është një disk që është lidhur me bus-in, atëherë ai është i qasshëm për të gjitha nodët. Filluam të kërkojmë ndërrues PCI me mundësi mbështetje për multi-hoste dhe zbuluam se asnjëri prej tyre nuk plotësonte kërkesat tona. Të gjitha këto zgjidhje ishin kryesisht të kufizuara në 1 host ose multi-host, por pa modalitetin e kërkesave konkuruese për endpoints. Problemi tjetër ishte kostoja e lartë, mbi $50 për çip. Në V2 ne vendosëm të shtyjmë eksperimentet me ndërruesit PCI (do të kthehemi te ata më vonë në përparim) dhe e ndoqëm rrugën e caktimit të rolit për secilën nodë: dy nodët e para ekspozuan portin mini PCI express për nodë, nodën e tretë ekspozoi 2 porta 6 Gbps SATA kontrollues. Për të marrë qasje në disqet nga nodë të tjera, mund të përdoret një sistem skedari rrjet në kuadër të klasterit. Pse jo?
Sneakpeek
Vendosëm të ndajmë disa skica se si ka evoluar blloku minimal i klasterit me kalimin e kohës në procesin e diskutimit dhe reflektimit



Si rezultat, arritëm në bllokun e klasterit me 4 nodet 260-pin, 2 porte mini PCIe (Gen 2) dhe 2 porte SATA (Gen 3). Në pllakë është vendosur një Switch i Menaxhuar Layer-2 me mbështetje VLAN. Nga nodi i parë del një port mini PCIe, në të cilin mund të instaloni një kartë rrjeti dhe të merrni një port tjetër Ethernet ose një modem 5G dhe të shndërroni nodin e parë në një router për rrjetin në klaster dhe portet Ethernet.

Busi i klasterit ka më shumë funksione, duke përfshirë mundësinë e flashimit të moduleve drejtpërdrejt përmes të gjitha slotëve dhe sigurisht konektorët e FAN në çdo nod me kontroll të shpejtësisë.
Aplikimi
Infrastruktura Edge për aplikacione dhe shërbime të vetë-hostuara
Ne e projektuar V2 me qëllim që ta përdorim si një bllok minimal ndërtimi për infrastrukturën edge të klasës konsumator/e tregtar. Me V2 është lehtë të fillosh testimin e koncepteve dhe të shkallosh ndërsa rritesh, duke transferuar gradualisht aplikacionet që është ekonomikisht dhe praktikisht më arsyeshëm t'i hostosh në edge. Blloqet klaster mund të lidhen së bashku, duke ndërtuar klastere më të mëdha. Kjo mund të bëhet gradualisht pa rreziqe të mëdha për proceset e vendosura.
Tani për tani ka një numër të madh aplikacionesh për biznesin, .
ARM Workstation
Me deri në 32 GB RAM për klaster, nodi i parë mund të përdoret për versionin desktop të OS (për shembull, Ubuntu Desktop 20.04 LTS) dhe 3 nodet e tjera për detyra kompilimi, testimi dhe debugimi, zhvillimin e zgjidhjeve cloud native për klasterat ARM. Si një nod për CI/CD në infrastrukturën periferi ARM në prodhim.
Klastri Turing V2 me module CM4 është arkitektonikisht pothuajse i njëjtë (ndryshimi në versionet më të vogla ARMv8) me klastrin që përdor instancat AWS Graviton. Procesori i moduleve CM4 përdor arkitekturën ARMv8, ju mund të krijoni imazhe dhe aplikacione për instancat AWS Graviton 1 dhe 2, të cilat janë shumë më të lira se instancat x86.
Burimi: habr.com
