Mini ITX-klustret Turing Pi 2 med 32 GB RAM.

Mini ITX-klustret Turing Pi 2 med 32 GB RAM.

Hej Habr-gemenskap! Nyligen skrev jag om vÄrt klusterkort av första versionen [V1]. Idag vill jag berÀtta hur vi arbetade med versionen Turing V2 med 32 GB arbetsminnet.

Vi Àr entusiastiska över mini-servrar som kan anvÀndas bÄde för lokal utveckling och för att hosta lokalt. Till skillnad frÄn stationÀra datorer eller bÀrbara datorer Àr vÄra servrar designade för att arbeta 24/7, och de kan snabbt kopplas samman i en federation; till exempel hade vi 4 processorer i klustret, och efter 5 minuter hade vi 16 processorer (utan extra nÀtverksutrustning), allt i en kompakt formfaktor, ljudlöst och energieffektivt.

Grunden för arkitekturen av vÄra servrar Àr klusterprincipen; vi gör klusterkort som med hjÀlp av Ethernet-nÀtverket pÄ kortet ansluter flera berÀkningsmoduler (processorer). För att förenkla gör vi för tillfÀllet inte vÄra egna berÀkningsmoduler utan anvÀnder Raspberry Pi Compute Modules, och vi hade stora förhoppningar pÄ den nya modul CM4. Men allt gick emot planerna med deras nya formfaktor, och jag tror att mÄnga blivit besvikna.

Under detta inlÀgg kommer vi att visa hur vi gick frÄn V1 till V2 och hur vi fick hantera den nya formfaktorn av Raspberry Pi CM4.

SÄ, efter att ha skapat en kluster med 7 noder, frÄgor - vad nu? Hur ökar vi produktens vÀrde? 8, 10 eller 16 noder? Vilka tillverkare av moduler? NÀr vi tÀnkte pÄ produkten som helhet insÄg vi att det centrala inte handlar om antalet noder eller vem tillverkaren Àr, utan sjÀlva essensen av kluster som byggblock. Vi behöver hitta den minimi byggstenen, som

Första, ska utgöra klustret och samtidigt ha möjlighet att ansluta diskar och expansionskort. Klusterblocket mÄste vara en sjÀlvförsörjande grundnod med omfattande expansionsmöjligheter.

Den andra, sÄ att de minimi klusterblock kan kopplas samman för att bygga större kluster, och att detta ska vara kostnadseffektivt och snabbt att skala. Hastigheten för skalning bör vara högre Àn att koppla vanliga datorer till ett nÀtverk och mycket billigare Àn serverutrustning.

Det tredje, minimala klusterblock mÄste vara tillrÀckligt kompakta, mobila, energieffektiva, kostnadseffektiva och inte krÀva mycket av driftsförhÄllandena. Detta Àr en av de huvudsakliga skillnaderna frÄn serverrack och allt som Àr relaterat till dem.

Vi började med att bestÀmma antalet noder.

Antalet noder

Genom enkla logiska resonemang kom vi fram till att 4 noder Àr det bÀsta alternativet för en minimal klusterblock. 1 nod Àr inte ett kluster, 2 noder Àr för fÄ (1 master, 1 arbetare, ingen möjlighet till skalning inom blocket, sÀrskilt för heterogena alternativ), 3 noder ser okej ut, men Àr inte multiplar av 2 och har begrÀnsad skalning inom blocket, 6 noder kostar nÀstan lika mycket som 7 noder (frÄn vÄr erfarenhet Àr det redan en hög kostnad), 8 noder Àr för mycket, fÄr inte plats i mini ITX-formfaktorn och Àr en Ànnu dyrare lösning för PoC.

Fyra noder per block anser vi vara en gyllene medelvÀg:

  • mindre material för klusterkortet, vilket gör produktionen billigare
  • multiplar av 4, totalt 4 block ger 16 fysiska processorer
  • stabil konfiguration med 1 master och 3 arbetare
  • fler heterogena variationer, allmĂ€n databehandling + accelererad databehandling moduler
  • mini ITX formfaktor med SSD-diskar och expansionskort

BerÀkningsmoduler

Den andra versionen baseras pÄ CM4. Vi trodde att den skulle slÀppas i SODIMM-formfaktor. Men

Vi beslutade att göra en dotterkort SODIMM och montera CM4 direkt i moduler sÄ att anvÀndarna inte behöver tÀnka pÄ CM4.

Mini ITX-klustret Turing Pi 2 med 32 GB RAM.
Turing Pi Compute Module med stöd för Raspberry Pi CM4

Under sökandet efter moduler upptÀcktes en hel marknad för berÀkningsmoduler frÄn smÄ moduler pÄ 128 MB RAM till 8 GB RAM. Framöver finns det moduler med 16 GB RAM och mer. För edge-hosting av applikationer baserade pÄ cloud native-teknologier Àr 1 GB RAM redan för lite, och den senaste tillkomsten av moduler pÄ 2, 4 och till och med 8 GB RAM ger bra utrymme för tillvÀxt. Vi övervÀgde Àven alternativ med FPGA-moduler för applikationer för maskininlÀrning, men deras stöd har skjutits upp eftersom den mjukvaru-ekosystemet inte Àr utvecklat. Under studiet av marknaden för moduler kom vi pÄ idén att skapa ett universellt grÀnssnitt för moduler och i V2 börjar vi en enhetliggöring av grÀnssnittet för berÀkningsmoduler. Detta kommer att möjliggöra för Àgare av V2-versionen att koppla moduler frÄn andra tillverkare och blanda dem för specifika uppgifter.

V2 stödjer hela serien av Raspberry Pi 4 Compute Module (CM4), inklusive Lite-versionerna och moduler pÄ 8 GB RAM

Mini ITX-klustret Turing Pi 2 med 32 GB RAM.

Periferiutrustning

Efter att ha bestÀmt leverantör för moduler och antal noder kom vi till PCI-bussen, dÀr periferin finns. PCI-bussen Àr en standard för perifera enheter och finns i nÀstan alla berÀkningsmoduler. Vi har flera noder, och idealiskt sett skulle varje nod kunna dela PCI-enheter i ett lÀge med konkurrerande förfrÄgningar. Till exempel, om det Àr en disk som Àr ansluten till bussen, Àr den tillgÀnglig för alla noder. Vi började leta efter PCI-switchar med stöd för multihost och upptÀckte att ingen av dem passade vÄra krav. Alla dessa lösningar var frÀmst begrÀnsade till 1 vÀrd eller flera vÀrdar, men utan lÀge för konkurrerande förfrÄgningar till endpoints. Det andra problemet var den höga kostnaden frÄn $50 och mer per chip. I V2 beslutade vi att skjuta upp experimenten med PCI-switchar (vi kommer att Äterkomma till dem senare i takt med utvecklingen) och valde istÀllet att tilldela en roll till varje nod: de första tvÄ noderna hade en exponerad mini PCI express-port per nod, den tredje noden hade en exponerad 2-portars 6 Gbps SATA-kontroller. För att fÄ tillgÄng till diskar frÄn andra noder kan man anvÀnda ett nÀtverksfilsystem inom ramen för klustret. Varför inte?

Sneakpeek

Vi har beslutat att dela vissa skisser som visar hur den minimi klusterblocken har utvecklats över tiden under diskussioner och övervÀganden.

Mini ITX-klustret Turing Pi 2 med 32 GB RAM.Mini ITX-klustret Turing Pi 2 med 32 GB RAM.Mini ITX-klustret Turing Pi 2 med 32 GB RAM.

Som resultat kom vi fram till ett klusterblock med 4 noder, 260-pin, 2 mini PCIe (Gen 2) portar, 2 SATA (Gen 3) portar. PÄ kortet finns en Layer-2 Managed Switch med VLAN-stöd. FrÄn den första noden har en mini PCIe-port dragits ut, dÀr man kan installera ett nÀtverkskort och fÄ ytterligare en Ethernet-port eller en 5G-modem och göra den första noden till en router för nÀtverket i klustret och Ethernet-portarna.

Mini ITX-klustret Turing Pi 2 med 32 GB RAM.

Klusterbussen har fler funktioner, inklusive möjlighet att göra enhetsuppdateringar direkt genom alla platser och sjÀlvklart flÀktkontakter pÄ varje nod med hastighetskontroll.

TillÀmpning

Edge-infrastruktur för sjÀlvhostade applikationer och tjÀnster

Vi designade V2 med mÄlet att anvÀnda den som en minimal byggsten för infrastructure i consumer/commercial-grade edge infrastrukturen. Med V2 Àr det billigt att börja bekrÀfta konceptet och skala upp i takt med tillvÀxten, gradvis flytta applikationer som Àr ekonomiskt och praktiskt rimligare att hosta i edge. Klusterblock kan kopplas samman för att bygga större kluster. Detta kan göras gradvis utan betydande risker för etablerade system.
processer. Redan idag finns det ett stort antal applikationer för företag, som kan hostas lokalt.

ARM Workstation

Med upp till 32 GB RAM pÄ klustret kan den första noden anvÀndas för desktopversion av OS (som Ubuntu Desktop 20.04 LTS) och de ÄterstÄende 3 noderna för kompilering, testning och felsökning, utveckling av molnbaserade lösningar för ARM-kluster. Som en nod för CI/CD pÄ ARM-perifierinfrastrukturen i produktion.

Turing V2-klustret med CM4-moduler Àr arkitektoniskt nÀstan identiskt (skillnad i mindre versioner av ARMv8) med klustret baserat pÄ AWS Graviton-instanser. I processorn av CM4-moduler anvÀnds ARMv8-arkitektur, vilket gör att du kan bygga bilder och applikationer för AWS-instanser Graviton 1 och 2, som Àr betydligt billigare Àn x86-instanser.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster