Mini ITX-cluster Turing Pi 2 met 32 GB RAM

Mini ITX-cluster Turing Pi 2 met 32 GB RAM

Hallo Habr-gemeenschap! Onlangs schreef ik over onze clusterplaat van de eerste versie [V1]. En vandaag wil ik vertellen hoe we hebben gewerkt aan de versie Turing V2 met 32 GB werkgeheugen.

Wij zijn enthousiast over mini-servers die zowel voor lokale ontwikkeling als voor lokaal hosten kunnen worden gebruikt. In tegenstelling tot desktops of laptops zijn onze servers ontworpen om 24/7 te werken, ze kunnen snel worden verbonden in een federatie - bijvoorbeeld was er 4 processors in de cluster, en na 5 minuten waren er 16 processors (zonder extra netwerkequipment) en dat alles in een compact formaat, stil en energiezuinig.

De basisarchitectuur van onze servers is het clusterprincipe, dat wil zeggen, we maken clusterplaten die via een ethernetnetwerk op de plaat verschillende rekeneenheden (processors) verbinden. Ter vereenvoudiging maken we momenteel geen eigen rekeneenheden, maar gebruiken we Raspberry Pi Compute Modules en we hoopten echt op de nieuwe module CM4. Maar, alles ging tegen onze plannen met hun nieuwe formfactor en ik denk dat velen teleurgesteld zijn.

Onder de kat hoe we van V1 naar V2 zijn gegaan en hoe we moesten improviseren met de nieuwe formfactor van Raspberry Pi CM4.

Dus, na het creƫren van een cluster met 7 nodes, de vragen - wat nu? Hoe de waarde van het product te verhogen? 8, 10 of 16 nodes? Welke fabrikanten van modules? Terwijl we over het product in zijn geheel nadachten, realiseerden we ons dat het hier niet gaat om het aantal nodes of wie de fabrikant is, maar om de essentie van clusters als bouwsteen. We moeten de minimale bouwsteen zoeken die

Ten eerste, een cluster zal zijn en tegelijkertijd de mogelijkheid biedt om schijven en uitbreidingsplaten aan te sluiten. De clusterblok moet een zelfvoorzienende basisnode zijn met brede uitbreidingsmogelijkheden.

Ten tweede, zodat minimale clusterblokken met elkaar kunnen worden verbonden om grotere clusters te bouwen en zodat dit efficiƫnt is qua budget en snelheid van schaling. De snelheid van schaling moet hoger zijn dan die van het verbinden van gewone computers in een netwerk en veel goedkoper dan servers.

Derde, de minimale clusterblokken moeten compact, mobiel, energiezuinig, kosteneffectief en niet veeleisend zijn wat betreft bedrijfsomstandigheden. Dit is een van de belangrijkste verschillen met serverkasten en alles wat daarmee verband houdt.

We begonnen met het bepalen van het aantal knooppunten.

Aantal knooppunten

Met simpele logische redeneringen hebben we vastgesteld dat 4 knooppunten de beste optie zijn voor een minimaal clusterblok. 1 knoop is geen cluster, 2 knopen zijn te weinig (1 master, 1 worker, geen schaalbaarheid binnen het blok mogelijk, vooral voor heterogene opties), 3 knopen lijkt goed, maar is niet een veelvoud van 2 en heeft beperkte schaalbaarheid binnen het blok, 6 knopen zijn bijna net zo duur als 7 knopen (uit onze ervaring is dit al een hoge kostprijs), 8 is te veel, past niet in het mini ITX-formaat en is een nog duurdere oplossing voor PoC.

Vier knooppunten per blok beschouwen we als het gulden middenweg:

  • minder materialen voor het clusterbord, dus goedkopere productie
  • viermaal 4, in totaal 4 blokken leveren 16 fysieke processoren
  • een stabiele configuratie van 1 master en 3 workers
  • meer heterogene variaties, general-compute + accelerated-compute modules
  • mini ITX-formaat met SSD-schijven en uitbreidingskaarten

Rekenmodules

De tweede versie is gebaseerd op CM4. We dachten dat deze in SODIMM-formaat zou worden uitgebracht. Maar...
We hebben besloten om een SODIMM-schild te maken en de CM4 direct in modules te assembleren, zodat gebruikers zich geen zorgen hoeven te maken over de CM4.

Mini ITX-cluster Turing Pi 2 met 32 GB RAM
Turing Pi Compute Module met ondersteuning voor Raspberry Pi CM4

Eigenlijk werd er tijdens de zoektocht naar modules een hele markt van rekenmodules ontdekt, van kleine modules met 128 MB RAM tot 8 GB RAM. Vooruitgang met modules van 16 GB RAM en meer. Voor edge-hosting van cloud-native applicaties is 1 GB RAM al te weinig, en de recente introductie van modules met 2, 4 en zelfs 8 GB RAM biedt goede groeimogelijkheden. We hebben zelfs opties met FPGA-modules voor machine learning-applicaties overwogen, maar de ondersteuning is uitgesteld omdat het software-ecosysteem nog niet ontwikkeld is. Tijdens het verkennen van de modulemarkt kwamen we op het idee om een universele interface voor modules te creƫren, en in V2 beginnen we met de uniformering van de interface van rekenmodules. Dit zal eigenaren van versie V2 in staat stellen om modules van andere fabrikanten aan te sluiten en te combineren voor specifieke taken.

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

Mini ITX-cluster Turing Pi 2 met 32 GB RAM

Randapparatuur

Na het bepalen van de leverancier van modules en het aantal nodes, kwamen we bij de PCI-bus, waarop de randapparatuur zich bevindt. De PCI-bus is de standaard voor randapparaten en komt in bijna alle rekenmodules voor. We hebben meerdere nodes en idealiter zou elke node PCI-apparaten in een modus met concurrerende verzoeken moeten kunnen delen. Bijvoorbeeld, als dit een schijf is die op de bus is aangesloten, is deze beschikbaar voor alle nodes. We begonnen PCI-switches te zoeken met ondersteuning voor multi-host en ontdekten dat geen van hen aan onze eisen voldeed. Al deze oplossingen waren voornamelijk beperkt tot 1 host of multi-hosts, maar zonder de modus van gelijktijdige verzoeken aan endpoints. Een tweede probleem was de hoge prijs van $50 en meer per chip. In V2 besloten we de experimenten met PCI-switches uit te stellen (we komen er later op terug naarmate de ontwikkeling vordert) en gingen we de weg van het toekennen van rollen aan elke node: de eerste twee nodes hadden een exposed mini PCI-express port per node, de derde node had een exposed 2-poorts 6 Gbps SATA-controller. Voor toegang tot schijven van andere nodes kan een netwerkbestandssysteem binnen het cluster worden gebruikt. Waarom niet?

Sneakpeek

We hebben besloten enkele schetsen te delen van hoe de minimale clusterblok in de loop van de tijd is geƫvolueerd tijdens besprekingen en overpeinzingen.

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

Uiteindelijk kwamen we uit op een clusterblok met 4 nodes met 260-pins, 2 mini PCIe (Gen 2) poorten, 2 SATA (Gen 3) poorten. Op de plaat is een Layer-2 Managed Switch geĆÆnstalleerd met VLAN-ondersteuning. Van de eerste node is een mini PCIe-poort naar buiten gebracht, waarin een netwerkkaart kan worden geĆÆnstalleerd en nog een Ethernet-poort of 5G-modem kan worden toegevoegd en de eerste node kan worden omgevormd tot een router voor het netwerk binnen het cluster en de Ethernet-poorten.

Mini ITX-cluster Turing Pi 2 met 32 GB RAM

De clusterbus heeft meer functies, waaronder de mogelijkheid om modules rechtstreeks via alle slots te flitsen en natuurlijk FAN-connectoren op elke node met snelheidscontrole.

Toepassing

Edge-infrastructuur voor zelf-gehoste applicaties & diensten

We hebben V2 ontworpen met het doel het te gebruiken als een minimaal bouwblok voor consumenten- / commerciƫle-grade edge-infrastructuur. Met V2 is het goedkoop om concepten te testen en op te schalen naarmate de groei vordert, geleidelijk applicaties te verplaatsen die economisch en praktisch gezien zinvol zijn om in de edge te hosten. Clusterblokken kunnen samen worden verbonden om grotere clusters te bouwen. Dit kan geleidelijk worden gedaan zonder aanzienlijke risico's voor gevestigde systemen.
processen. Al vandaag zijn er talloze applicaties voor bedrijven beschikbaar, die lokaal kunnen worden gehost.

ARM Workstation

Met tot 32 GB RAM per cluster kan de eerste node worden gebruikt voor de desktopversie van het besturingssysteem (bijvoorbeeld Ubuntu Desktop 20.04 LTS) en kunnen de overige 3 nodes worden aangewend voor compilatie-, test- en debugtaken, en de ontwikkeling van cloud-native oplossingen voor ARM-clusters. Als een node voor CI/CD op ARM-perifere infrastructuur in productie.

De Turing V2-cluster met CM4-modules is architectonisch bijna identiek (verschil in minor versies van ARMv8) aan de cluster die is gebaseerd op AWS Graviton-instanties. In de processor van de CM4-modules wordt de ARMv8-architectuur gebruikt, waarmee je afbeeldingen en applicaties kunt bouwen voor AWS Graviton 1 en 2-instanties, die zoals bekend veel goedkoper zijn dan x86-instanties.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster