
Tervitused Habri kogukonnale! Kirjutasin hiljuti meie esimese versiooni klastriplaadist []. Ja tÀna tahan teile rÀÀkida, kuidas me versiooni kallal töötasime RAM.
Meile meeldivad miniserverid, mida saab kasutada nii kohalikuks arendamiseks kui ka kohalikuks hostimiseks. Erinevalt lauaarvutitest vĂ”i sĂŒlearvutitest on meie serverid loodud töötama 24/7, neid saab kiiresti liita, nĂ€iteks klastris oli 4 protsessorit ja 5 minuti pĂ€rast oli protsessorit 16 (ilma lisavĂ”rguseadmeteta) ja kĂ”ik see kompaktses vormis vaikne ja energiasÀÀstlik.
Meie serverite arhitektuur pĂ”hineb klastri ehitamise pĂ”himĂ”ttel, st. valmistame klasterplaadid, mis kasutades plaadil olevat ethernet vĂ”rku ĂŒhendavad mitu arvutusmoodulit (protsessorit). Lihtsustuse mĂ”ttes me ei tee veel oma arvutusmooduleid, vaid kasutame Raspberry Pi arvutusmooduleid ja lootsime vĂ€ga uuele CM4 moodulile. Kuid kĂ”ik lĂ€ks nende uue vormiteguriga plaanidele vastuollu ja arvan, et paljud on pettunud.
LÔike all, kuidas me jÔudsime V1-st V2-sse ja kuidas pidime uue Raspberry Pi CM4 vormiteguriga vÀlja saama.
Niisiis, pĂ€rast 7 sĂ”lme jaoks klastri loomist on kĂŒsimused â mis saab edasi? Kuidas tĂ”sta toote vÀÀrtust? 8, 10 vĂ”i 16 sĂ”lme? Millised moodulite tootjad? MĂ”eldes tootele tervikuna, saime aru, et siin ei ole peamine mitte sĂ”lmede arv ega tootja, vaid klastrite kui ehitusploki olemus. Peame otsima minimaalset ehitusplokki
Esimene, saab olema kobar ja samal ajal saab ĂŒhendada kettaid ja laiendusplaate. Kobarplokk peaks olema isemajandav baassĂ”lm ja paljude laiendamisvĂ”imalustega.
Teine, et minimaalseid klastriplokke saaks omavahel ĂŒhendada suurema suurusega klastreid ehitades ning et see oleks eelarve ja skaleerimiskiiruse seisukohalt tĂ”hus. Skaleerimiskiirus peab olema kiirem kui tavaliste arvutite vĂ”rku ĂŒhendamisel ja palju odavam kui serveri riistvara.
kolmas, peavad minimaalsed klastriĂŒksused olema piisavalt kompaktsed, mobiilsed, energiatĂ”husad, kulutĂ”husad ja mitte nĂ”udma töötingimusi. See on ĂŒks peamisi erinevusi serveririiulitest ja kĂ”igest nendega seonduvast.
Alustasime sÔlmede arvu mÀÀramisest.
SÔlmede arv
Lihtsate loogiliste otsustuste abil saime aru, et 4 sĂ”lme on minimaalse klastriploki jaoks parim valik. 1 sĂ”lm ei ole klaster, 2 sĂ”lmest ei piisa (1 ĂŒlem 1 töötaja, ploki sees skaleerimine pole vĂ”imalik, eriti heterogeensete valikute puhul), 3 sĂ”lme on ok, kuid mitte 2 astme kordne ja skaleerimine plokk on piiratud, 6 sĂ”lme on peaaegu 7 sĂ”lme hinnaga (meie kogemuse pĂ”hjal on see juba suur omahind), 8 on palju, ei mahu mini ITX vormingusse ja veelgi kallim PoC lahendus.
Kuldseks keskmiseks peetakse nelja sÔlme ploki kohta:
- vĂ€hem materjale ĂŒhe kobarplaadi kohta, seega odavam toota
- kordne 4, kokku 4 plokki annab 16 fĂŒĂŒsilist protsessorit
- stabiilne vooluring 1 kapten ja 3 töötajat
- heterogeensemad variatsioonid, ĂŒldarvutus + kiirendatud arvutusmoodulid
- mini-ITX-vormingus koos SSD-draivide ja laienduskaartidega
Moodulite arvutamine
Teine versioon pĂ”hineb CM4-l, arvasime, et see tuleb vĂ€lja SODIMM-vormingus. AgaâŠ
Otsustasime teha SODIMM-i tĂŒtarplaadi ja CM4 otse mooduliteks kokku panna, et kasutajad ei peaks CM4 peale mĂ”tlema.

Raspberry Pi CM4 toetav Turing Pi arvutusmoodul
Ăldiselt avati moodulite otsimisel terve arvutusmoodulite turg vĂ€ikestest 128 MB RAM-iga moodulitest kuni 8 GB muutmĂ€luni. Ees ootavad 16 GB ja enama RAM-iga moodulid. PilvepĂ”histel tehnoloogiatel pĂ”hineva servarakenduste hostimise jaoks ei piisa juba 1 GB muutmĂ€lust ning hiljutised moodulid 2, 4 ja isegi 8 GB muutmĂ€lu jaoks pakuvad head kasvuruumi. Nad kaalusid isegi masinĂ”pperakenduste FPGA-moodulite vĂ”imalusi, kuid nende toetus on viibinud, kuna tarkvara ökosĂŒsteem pole vĂ€lja töötatud. Mooduliturgu uurides tekkis meil idee luua moodulitele universaalne liides ja V2-s hakkame andmemoodulite liidest ĂŒhtlustama. See vĂ”imaldab V2 versiooni omanikel ĂŒhendada teiste tootjate mooduleid ja segada neid konkreetsete ĂŒlesannete jaoks.
V2 toetab kogu Raspberry Pi 4 arvutusmooduli (CM4) rida, sealhulgas Lite versioone ja 8 GB RAM-i mooduleid

Perifeeria
PĂ€rast moodulite mĂŒĂŒja ja sĂ”lmede arvu kindlaksmÀÀramist lĂ€henesime PCI siinile, millel vĂ€lisseadmed asuvad. PCI-siin on vĂ€lisseadmete standard ja seda leidub peaaegu kĂ”igis andmetöötlusmoodulites. Meil on mitu sĂ”lme ja ideaaljuhul peaks iga sĂ”lm saama PCI-seadmeid jagada samaaegse pĂ€ringu reĆŸiimis. NĂ€iteks kui see on siiniga ĂŒhendatud ketas, siis on see saadaval kĂ”ikidele sĂ”lmedele. Hakkasime otsima mitme hosti toega PCI-lĂŒliteid ja leidsime, et ĂŒkski neist ei vasta meie nĂ”uetele. KĂ”ik need lahendused olid enamasti piiratud ĂŒhe vĂ”i mitme hostiga, kuid ilma lĂ”pp-punktide samaaegsete pĂ€ringute reĆŸiimita. Teine probleem on ĂŒhe kiibi kĂ”rge hind 1 dollarit vĂ”i rohkem. V50-s otsustasime PCI-lĂŒlititega katsed edasi lĂŒkata (naaseme nende juurde hiljem, kui arendame) ja lĂ€ksime igale sĂ”lmele rolli mÀÀramise teed: kaks esimest sĂ”lme paljastasid mini-PCI ekspresspordi sĂ”lme kohta, kolmas sĂ”lm. avatud 2-pordiline 2 Gbps SATA-kontroller . Teiste sĂ”lmede ketastele juurde pÀÀsemiseks saate kasutada klastri vĂ”rgu failisĂŒsteemi. Miks mitte?
Eelvaade
Otsustasime jagada mÔningaid visandeid selle kohta, kuidas minimaalne klastriplokk on aja jooksul arutelude ja mÔtiskluste kaudu arenenud.



Selle tulemusena jĂ”udsime klastriĂŒksuseni, millel on 4 260-pin sĂ”lme, 2 mini PCIe (Gen 2) porti ja 2 SATA (Gen 3) porti. Tahvlil on Layer-2 Managed Switch koos VLAN-i toega. Esimesest sĂ”lmest on eemaldatud mini-PCIe port, millesse saab installida vĂ”rgukaardi ja hankida teise Etherneti pordi vĂ”i 5G modemi ning teha klastrile vĂ”rgule ruuteri ja esimesest sĂ”lmest Etherneti pordid.

Klastri siinil on rohkem funktsioone, sealhulgas vÔimalus mooduleid otse lÀbi kÔigi pesade vilgutada ja loomulikult iga sÔlme FAN-pistikud koos kiiruse reguleerimisega.
Taotlus
Edge-infrastruktuur isehostitavate rakenduste ja teenuste jaoks
Kujundasime V2 tarbe-/kaubandusliku taseme infrastruktuuri minimaalseks ehitusplokiks. V2-ga on odav alustada kontseptsiooni tĂ”estamist ja mastaapi kasvades, teisaldades jĂ€rk-jĂ€rgult rakendusi, mille hostimine on kuluefektiivsem ja praktilisem. Klastrite plokke saab omavahel ĂŒhendada, et ehitada suuremaid klastreid. Seda saab teha jĂ€rk-jĂ€rgult ilma suurema riskita
protsessid. Juba praegu on ettevÔtete jaoks tohutult palju rakendusi, .
ARM tööjaam
Kuni 32 GB muutmĂ€luga klastri kohta saab esimest sĂ”lme kasutada operatsioonisĂŒsteemi töölauaversiooni jaoks (nĂ€iteks Ubuntu Desktop 20.04 LTS) ja ĂŒlejÀÀnud 3 sĂ”lme kompileerimiseks, testimiseks ja silumiseks, samuti pilvepĂ”histe lahenduste arendamiseks ARM-klastrite jaoks. CI/CD-sĂ”lmena ARM-i vĂ€lisseadmete infrastruktuuri jaoks tootmiskeskkonnas.
CM2 moodulitega Turing V4 klaster on arhitektuuriliselt peaaegu identne (erinevus ARMv8 vÀiksemates versioonides) AWS Gravitoni eksemplaridel pÔhineva klastriga. CM4 moodulprotsessor kasutab ARMv8 arhitektuuri, et saaksite luua pilte ja rakendusi AWS Graviton 1 ja 2 eksemplaride jaoks, mis on teadaolevalt palju odavamad kui x86 eksemplarid.
Allikas: www.habr.com
