Mini ITX Cluster Turing Pi 2 met 32 ​​GB RAM

Mini ITX Cluster Turing Pi 2 met 32 ​​GB RAM

Groeten aan de Habr-gemeenschap! Ik schreef onlangs over onze eerste versie clusterbord [V1]. En vandaag wil ik je vertellen hoe we aan de versie hebben gewerkt Turing V2 met 32 ​​GB werkgeheugen.

We zijn dol op miniservers die zowel voor lokale ontwikkeling als voor lokale hosting kunnen worden gebruikt. In tegenstelling tot desktopcomputers of laptops zijn onze servers ontworpen om 24/7 te werken, ze kunnen snel worden gefedereerd, er waren bijvoorbeeld 4 processors in een cluster en na 5 minuten waren er 16 processors (geen extra netwerkapparatuur) en dit alles in een compacte vormfactor stil en energiezuinig.

De architectuur van onze servers is gebaseerd op het clusterprincipe van constructie, d.w.z. we maken clusterborden die met behulp van het ethernet-netwerk op het bord verschillende rekenmodules (processors) met elkaar verbinden. Ter vereenvoudiging: we maken nog geen eigen rekenmodules, maar gebruiken Raspberry Pi Compute Modules en we hadden echt gehoopt op de nieuwe CM4-module. Maar alles ging tegen de plannen in met hun nieuwe vormfactor en ik denk dat velen teleurgesteld zijn.

Onder de snede hoe we van V1 naar V2 gingen en hoe we eruit moesten komen met de nieuwe Raspberry Pi CM4-vormfactor.

Dus na het maken van een cluster voor 7 knooppunten, zijn de vragen: wat nu? Hoe de waarde van een product verhogen? 8, 10 of 16 knopen? Welke modulefabrikanten? Toen we nadachten over het product als geheel, realiseerden we ons dat het belangrijkste hier niet het aantal knooppunten is of wie de fabrikant is, maar de essentie van clusters als bouwsteen. We moeten op zoek naar de minimale bouwsteen die dat is

Het eerste, zal een cluster zijn en tegelijkertijd schijven en uitbreidingskaarten kunnen aansluiten. Het clusterblok moet een zelfvoorzienend basisknooppunt zijn met een breed scala aan uitbreidingsmogelijkheden.

Tweede, zodat de minimale clusterblokken met elkaar kunnen worden verbonden door clusters van grotere omvang te bouwen en zodat het budgetvriendelijk en schaalbaar snel is. De schaalsnelheid moet sneller zijn dan het aansluiten van gewone computers op een netwerk en veel goedkoper dan serverhardware.

De derde, moeten de minimale clustereenheden voldoende compact, mobiel, energiezuinig, kosteneffectief en niet veeleisend zijn voor de bedrijfsomstandigheden. Dit is een van de belangrijkste verschillen met serverracks en alles wat daarmee samenhangt.

We zijn begonnen met het bepalen van het aantal nodes.

Aantal knooppunten

Met eenvoudige logische beoordelingen realiseerden we ons dat 4 knooppunten de beste optie is voor het minimale clusterblok. 1 node is geen cluster, 2 nodes zijn niet genoeg (1 master 1 worker, er is geen mogelijkheid om binnen een blok te schalen, vooral niet voor heterogene opties), 3 nodes lijkt ok, maar geen veelvoud van machten van 2 en schaling binnen een blok is beperkt, 6 nodes hebben een prijs bijna gelijk aan 7 nodes (uit onze ervaring is dit al een flinke kostprijs), 8 is veel, past niet in de mini ITX form factor en een nog duurdere PoC oplossing.

Vier knooppunten per blok worden beschouwd als de gulden middenweg:

  • minder materialen per clusterbord, dus goedkoper te vervaardigen
  • veelvoud van 4, totaal 4 blokken geven 16 fysieke processors
  • stabiel circuit 1 meester en 3 arbeiders
  • meer heterogene variaties, algemene reken- + versnelde rekenmodules
  • mini-ITX-vormfactor met SSD-schijven en uitbreidingskaarten

Bereken modules

De tweede versie is gebaseerd op CM4, we dachten dat deze in SODIMM-vormfactor zou worden uitgebracht. Maar…
We hebben besloten om een ​​SODIMM-dochterbord te maken en CM4 rechtstreeks in modules samen te stellen, zodat gebruikers niet aan CM4 hoeven te denken.

Mini ITX Cluster Turing Pi 2 met 32 ​​GB RAM
Turing Pi Compute-module ondersteunt Raspberry Pi CM4

Over het algemeen werd op zoek naar modules een hele markt van computermodules geopend van kleine modules met 128 MB RAM tot 8 GB RAM. Modules met 16 GB RAM en meer staan ​​voor de deur. Voor edge-applicatiehosting op basis van cloud-native technologieën is 1 GB RAM al niet genoeg, en de recente verschijning van modules voor 2, 4 en zelfs 8 GB RAM biedt goede ruimte voor groei. Ze hebben zelfs opties overwogen met FPGA-modules voor machine learning-toepassingen, maar hun ondersteuning is vertraagd omdat het software-ecosysteem niet is ontwikkeld. Tijdens het bestuderen van de modulemarkt kwamen we op het idee om een ​​universele interface voor modules te creëren, en in V2 beginnen we de interface van computermodules te verenigen. Hierdoor kunnen bezitters van de V2-versie modules van andere fabrikanten aansluiten en mixen voor specifieke taken.

V2 ondersteunt de volledige lijn Raspberry Pi 4 Compute Module (CM4), inclusief Lite-versies en 8 GB RAM-modules

Mini ITX Cluster Turing Pi 2 met 32 ​​GB RAM

Omtrek

Na het bepalen van de leverancier van de modules en het aantal nodes, benaderden we de PCI-bus waarop de randapparatuur zich bevindt. De PCI-bus is de standaard voor randapparatuur en is te vinden in bijna alle computermodules. We hebben verschillende knooppunten en idealiter zou elk knooppunt PCI-apparaten moeten kunnen delen in gelijktijdige verzoekmodus. Als het bijvoorbeeld een schijf is die op de bus is aangesloten, is deze beschikbaar voor alle knooppunten. We gingen op zoek naar PCI-switches met ondersteuning voor meerdere hosts en ontdekten dat geen van hen aan onze eisen voldeed. Al deze oplossingen waren meestal beperkt tot 1 host of meerdere hosts, maar zonder de modus van gelijktijdige verzoeken aan eindpunten. Het tweede probleem zijn de hoge kosten van $ 50 of meer per chip. In V2 hebben we besloten om experimenten met PCI-switches uit te stellen (we komen er later op terug naarmate we verder ontwikkelen) en volgden we het pad van het toewijzen van een rol aan elk knooppunt: de eerste twee knooppunten stelden een mini-PCI-expresspoort per knooppunt bloot, het derde knooppunt blootgestelde 2-poorts 6 Gbps SATA-controller. Om schijven vanaf andere knooppunten te benaderen, kunt u het netwerkbestandssysteem binnen de cluster gebruiken. Waarom niet?

Voorproefje

We hebben besloten om enkele schetsen te delen van hoe het minimale clusterblok in de loop van de tijd is geëvolueerd door discussie en reflectie.

Mini ITX Cluster Turing Pi 2 met 32 ​​GB RAMMini ITX Cluster Turing Pi 2 met 32 ​​GB RAMMini ITX Cluster Turing Pi 2 met 32 ​​GB RAM

Als resultaat kwamen we tot een clustereenheid met 4 260-pins nodes, 2 mini PCIe (Gen 2) poorten, 2 SATA (Gen 3) poorten. Het bord heeft een Layer-2 Managed Switch met VLAN-ondersteuning. Van de eerste node is een mini-PCIe-poort verwijderd, waarin je een netwerkkaart kunt installeren en een andere Ethernet-poort of 5G-modem kunt krijgen en een router kunt maken voor het netwerk op de cluster en Ethernet-poorten van de eerste node.

Mini ITX Cluster Turing Pi 2 met 32 ​​GB RAM

De clusterbus heeft meer functies, waaronder de mogelijkheid om modules direct door alle slots te flashen en natuurlijk FAN-connectoren op elk knooppunt met snelheidsregeling.

Toepassing

Edge-infrastructuur voor zelfgehoste applicaties en services

We hebben V2 ontworpen als de minimale bouwsteen voor een randinfrastructuur voor consumenten/commerciële kwaliteit. Met V2 is het goedkoop om te beginnen met een proof-of-concept en te schalen terwijl u groeit, waarbij u geleidelijk applicaties overdraagt ​​die kosteneffectiever en praktischer zijn om on-edge te hosten. Clusterblokken kunnen met elkaar worden verbonden om grotere clusters te bouwen. Dit kan geleidelijk worden gedaan zonder veel risico's om vast te stellen
processen. Nu al zijn er een groot aantal toepassingen voor het bedrijfsleven, die lokaal kan worden gehost.

ARM-werkstation

Met maximaal 32 GB RAM per cluster kan het eerste knooppunt worden gebruikt voor de desktopversie van het besturingssysteem (bijvoorbeeld Ubuntu Desktop 20.04 LTS) en de resterende 3 knooppunten voor compilatie-, test- en foutopsporingstaken, het ontwikkelen van cloud-native oplossingen voor ARM clusters. Als node voor CI/CD op ARM edge-infrastructuur in de prod.

Turing V2-cluster met CM4-modules is architectonisch vrijwel identiek (verschil in kleinere versies van ARMv8) aan cluster op basis van AWS Graviton-instanties. De CM4-moduleprocessor maakt gebruik van de ARMv8-architectuur, zodat u afbeeldingen en applicaties kunt bouwen voor AWS Graviton 1- en 2-instanties, waarvan bekend is dat ze veel goedkoper zijn dan x86-instanties.

Bron: www.habr.com