Mini-ITX-Cluster Turing Pi 2 mit 32 GB RAM

Mini-ITX-Cluster Turing Pi 2 mit 32 GB RAM

Grüße an die Habr-Community! Ich habe kürzlich über unsere erste Version des Cluster-Boards geschrieben [V1]. Und heute möchte ich Ihnen erzählen, wie wir an der Version gearbeitet haben Turing V2 mit 32 GB Arbeitsspeicher.

Wir lieben Miniserver, die sowohl für die lokale Entwicklung als auch für das lokale Hosting verwendet werden können. Im Gegensatz zu Desktop-Computern oder Laptops sind unsere Server darauf ausgelegt, rund um die Uhr zu arbeiten, sie können schnell verbunden werden, zum Beispiel waren 24 Prozessoren in einem Cluster und nach 7 Minuten waren es 4 Prozessoren (keine zusätzliche Netzwerkausrüstung) und das alles in einem kompakten Formfaktor, leise und energieeffizient.

Die Architektur unserer Server basiert auf dem Cluster-Bauprinzip, d.h. Wir stellen Cluster-Boards her, die über das Ethernet-Netzwerk auf dem Board mehrere Computermodule (Prozessoren) verbinden. Der Einfachheit halber stellen wir noch keine eigenen Computermodule her, sondern verwenden Raspberry Pi Compute Modules und haben wirklich auf das neue CM4-Modul gehofft. Aber mit ihrem neuen Formfaktor lief alles gegen die Pläne und ich denke, viele sind enttäuscht.

Im Folgenden erfahren Sie, wie wir von V1 auf V2 umgestiegen sind und wie wir mit dem neuen Raspberry Pi CM4-Formfaktor wieder raus mussten.

Nach der Erstellung eines Clusters für 7 Knoten stellt sich also die Frage: Was kommt als nächstes? Wie kann der Wert eines Produkts gesteigert werden? 8, 10 oder 16 Knoten? Welche Modulhersteller? Als wir über das Produkt als Ganzes nachdachten, wurde uns klar, dass es hier nicht auf die Anzahl der Knoten oder den Hersteller ankommt, sondern auf die Essenz von Clustern als Baustein. Wir müssen nach dem minimalen Baustein dafür suchen

Die erste, wird ein Cluster sein und gleichzeitig Festplatten und Erweiterungskarten anschließen können. Der Clusterblock sollte ein autarker Basisknoten sein und über vielfältige Erweiterungsmöglichkeiten verfügen.

Zweite, sodass die minimalen Clusterblöcke durch den Aufbau größerer Cluster miteinander verbunden werden können und dies hinsichtlich Budget und Skalierungsgeschwindigkeit effizient ist. Die Skalierungsgeschwindigkeit muss schneller sein als bei der Verbindung gewöhnlicher Computer mit einem Netzwerk und viel günstiger als bei Serverhardware.

Die dritteDie Mindestclustereinheiten sollten ausreichend kompakt, mobil, energieeffizient und kostengünstig sein und keine hohen Anforderungen an die Betriebsbedingungen stellen. Dies ist einer der wesentlichen Unterschiede zu Server-Racks und allem, was damit zusammenhängt.

Wir begannen mit der Bestimmung der Anzahl der Knoten.

Anzahl der Knoten

Mit einfachen logischen Urteilen haben wir erkannt, dass 4 Knoten die beste Option für den minimalen Clusterblock sind. 1 Knoten ist kein Cluster, 2 Knoten reichen nicht aus (1 Master 1 Worker, es gibt keine Möglichkeit zur Skalierung innerhalb eines Blocks, insbesondere bei heterogenen Optionen), 3 Knoten sehen in Ordnung aus, aber kein Vielfaches von Zweierpotenzen und Skalierung innerhalb Ein Block ist begrenzt, 2 Knoten haben einen Preis, der fast dem von 6 Knoten entspricht (aus unserer Erfahrung ist das bereits ein hoher Selbstkostenpreis), 7 sind viel, passen nicht in den Mini-ITX-Formfaktor und sind eine noch teurere PoC-Lösung.

Vier Knoten pro Block gelten als goldene Mitte:

  • weniger Material pro Clusterplatine, daher günstiger in der Herstellung
  • Ein Vielfaches von 4, insgesamt 4 Blöcke ergeben 16 physische Prozessoren
  • Stabiler Stromkreis 1 Master und 3 Worker
  • Heterogenere Variationen, allgemeine Rechenmodule und beschleunigte Rechenmodule
  • Mini-ITX-Formfaktor mit SSD-Laufwerken und Erweiterungskarten

Rechenmodule

Die zweite Version basiert auf CM4, wir gingen davon aus, dass sie im SODIMM-Formfaktor veröffentlicht wird. Aber…
Wir haben uns entschieden, eine SODIMM-Tochterplatine herzustellen und CM4 direkt in Module zusammenzubauen, damit Benutzer nicht über CM4 nachdenken müssen.

Mini-ITX-Cluster Turing Pi 2 mit 32 GB RAM
Turing Pi-Rechenmodul, das Raspberry Pi CM4 unterstützt

Generell wurde auf der Suche nach Modulen ein ganzer Markt für Rechenmodule eröffnet, von kleinen Modulen mit 128 MB RAM bis hin zu 8 GB RAM. Vorn liegen Module mit 16 GB RAM und mehr. Für das Hosting von Edge-Anwendungen auf Basis cloudnativer Technologien reicht 1 GB RAM bereits nicht aus, und das jüngste Erscheinen von Modulen für 2, 4 und sogar 8 GB RAM bietet guten Raum für Wachstum. Sie erwogen sogar Optionen mit FPGA-Modulen für Anwendungen des maschinellen Lernens, ihre Unterstützung verzögerte sich jedoch, da das Software-Ökosystem noch nicht entwickelt ist. Während wir den Modulmarkt untersuchten, kamen wir auf die Idee, eine universelle Schnittstelle für Module zu schaffen, und in V2 beginnen wir, die Schnittstelle von Computermodulen zu vereinheitlichen. Dadurch können Besitzer der V2-Version Module anderer Hersteller anschließen und für bestimmte Aufgaben kombinieren.

V2 unterstützt die gesamte Raspberry Pi 4 Compute Module (CM4)-Reihe, einschließlich Lite-Versionen und 8-GB-RAM-Modulen

Mini-ITX-Cluster Turing Pi 2 mit 32 GB RAM

Peripheriegeräte

Nachdem wir den Hersteller der Module und die Anzahl der Knoten ermittelt hatten, näherten wir uns dem PCI-Bus, auf dem sich die Peripheriegeräte befinden. Der PCI-Bus ist der Standard für Peripheriegeräte und findet sich in fast allen Rechnermodulen. Wir haben mehrere Knoten und im Idealfall sollte jeder Knoten in der Lage sein, PCI-Geräte im gleichzeitigen Anforderungsmodus gemeinsam zu nutzen. Wenn es sich beispielsweise um eine an den Bus angeschlossene Festplatte handelt, steht sie allen Knoten zur Verfügung. Wir machten uns auf die Suche nach PCI-Switches mit Multi-Host-Unterstützung und stellten fest, dass keiner davon unseren Anforderungen entsprach. Alle diese Lösungen waren meist auf einen Host oder mehrere Hosts beschränkt, jedoch ohne den Modus gleichzeitiger Anfragen an Endpunkte. Das zweite Problem sind die hohen Kosten von 1 $ oder mehr pro Chip. In V50 haben wir beschlossen, Experimente mit PCI-Switches zu verschieben (wir werden später im Verlauf der Entwicklung darauf zurückkommen) und sind den Weg gegangen, jedem Knoten eine Rolle zuzuweisen: Die ersten beiden Knoten stellten pro Knoten einen Mini-PCI-Express-Port zur Verfügung, der dritte Knoten Freiliegender SATA-Controller mit 2 Ports und 2 Gbit/s. Um von anderen Knoten aus auf Festplatten zuzugreifen, können Sie das Netzwerkdateisystem innerhalb des Clusters verwenden. Warum nicht?

Vorgeschmack

Wir haben beschlossen, durch Diskussion und Reflexion einige Skizzen darüber zu teilen, wie sich der minimale Clusterblock im Laufe der Zeit entwickelt hat.

Mini-ITX-Cluster Turing Pi 2 mit 32 GB RAMMini-ITX-Cluster Turing Pi 2 mit 32 GB RAMMini-ITX-Cluster Turing Pi 2 mit 32 GB RAM

Als Ergebnis kamen wir zu einer Cluster-Einheit mit 4 260-Pin-Knoten, 2 Mini-PCIe-Ports (Gen 2) und 2 SATA-Ports (Gen 3). Das Board verfügt über einen Layer-2 Managed Switch mit VLAN-Unterstützung. Vom ersten Knoten wurde ein Mini-PCIe-Port entfernt, in den Sie eine Netzwerkkarte installieren und einen weiteren Ethernet-Port oder ein 5G-Modem erhalten und einen Router für das Netzwerk im Cluster und Ethernet-Ports vom ersten Knoten erstellen können.

Mini-ITX-Cluster Turing Pi 2 mit 32 GB RAM

Der Cluster-Bus verfügt über weitere Funktionen, darunter die Möglichkeit, Module direkt über alle Steckplätze zu flashen, und natürlich FAN-Anschlüsse an jedem Knoten mit Geschwindigkeitsregelung.

Anwendung

Edge-Infrastruktur für selbst gehostete Anwendungen und Dienste

Wir haben V2 als minimalen Baustein für eine Edge-Infrastruktur für Verbraucher und Gewerbe konzipiert. Mit V2 ist es kostengünstig, mit dem Proof-of-Concept zu beginnen und mit Ihrem Wachstum zu skalieren und nach und nach Anwendungen zu portieren, die kostengünstiger und praktischer für das Hosting am Edge sind. Clusterblöcke können miteinander verbunden werden, um größere Cluster zu bilden. Dies kann schrittweise erfolgen, ohne dass ein großes Risiko für die Etablierung besteht
Prozesse. Bereits heute gibt es eine Vielzahl von Anwendungen für Unternehmen, die lokal gehostet werden kann.

ARM-Workstation

Mit bis zu 32 GB RAM pro Cluster kann der erste Knoten für die Desktop-Version des Betriebssystems (z. B. Ubuntu Desktop 20.04 LTS) und die restlichen 3 Knoten für Kompilierungs-, Test- und Debugging-Aufgaben verwendet werden, um cloudnative Lösungen für ARM zu entwickeln Cluster. Als Knoten für CI/CD auf ARM-Edge-Infrastruktur im Produkt.

Turing V2-Cluster mit CM4-Modulen sind architektonisch nahezu identisch (Unterschied in Nebenversionen von ARMv8) mit Clustern, die auf AWS Graviton-Instanzen basieren. Der CM4-Modulprozessor nutzt die ARMv8-Architektur, sodass Sie Images und Anwendungen für AWS Graviton 1- und 2-Instanzen erstellen können, die bekanntermaßen viel günstiger sind als x86-Instanzen.

Source: habr.com