OS für Rechencluster

Mega-Bryte

Lt. Commander
Registriert
Aug. 2016
Beiträge
1.430
keine Ausfallsicherheit
kein Load Balancing

hallo,

ich vermute mein Anliegen zwar übergeordnet im Bereich Betriebssysteme, aber leider kann man dort keine Threads anlegen, wieso auch, wenn's um ein übergreifendes Thema geht ... dann werde ich wohl in jedem OS-Forum denselben Thread aufmachen müssen. /sarkasm

also folgendes: da niemand meine Server auch nur geschenkt wollte, habe ich mir in den Kopf gesetzt, darauf mal testenhalber ein Rechencluster aufzusetzen. Wir müssen/wollen einen Berg an Geodatensätzen bearbeiten und haben uns eigentlich in Richtung Linux aus dem Fenster gelehnt gehabt.

Jetzt wollte ich mal nachfragen, was es denn alternativ zu Linux (welche Distris können sowas) auf dem Profimarkt an Wissen gibt! Was kann der geneigte Semi-/Profi beisteuern? Meinen aktuell verfügbaren Fuhrpark seht ihr hier:

Hardware:
1x IBM X3250, mit Q6600, 8GB RAM, 2x160GB RAID1
3x IBM X3650, Dual QC Xeon 2,5GHz, 48GB RAM, bisher diskless, jeweils sogar mit 4GBit/s FC leider ohne FC-Switch
1x HP DL380 G5, Dual DC Xeon 3GHz, 26GB Ram, mehrfach 72GB SAS
2 weitere Dual So771 Maschinen 4GB und 8GB Ram, HDD variabel
2 weitere Dual So 2011 Maschinen 64GB und 128GB Ram
1x HP Z420 Xeon E5-1620, 32GB RAM
1x HP Z400 Xeon W3550, 48GB RAM
1x HP ProCurve Switch, durchweg 1GBit/s
HDD-Speicher: aktuell liegen neben den für OS notwendigen HDDs nominal rund 40TB HDD brach und es sind auch RAID5 möglich (per einem der Server oder einem NAS, wobei das NAS zu langsam sein dürfte).

Schon mal vielen Dank für die grauen haare, die ihr euch möglicherweise einhandelt. Bei Fragen gebt mir ein Weilchen.

MB präsentiert!
 
Wenn ich dich richtig verstehe, ist das OS egal (bzw. es muss mit dual Sockel Systemen umgehen können), solange euer Programm darauf läuft. Die Lastverteilung auf die Verschiedenen Knoten im Cluster ist normal Aufgabe des Programms und nicht des OS.
 
Zuletzt bearbeitet:
Normalerweise sollte das wirklich die Software machen, aber Windows ist ja bspw nicht wirklich zu gebrauchen. Ich hab da bisher nur Load Balancing im Cluster gesehen.

Wenn ich außerdem die Basis des projektes richtig verstehe, wird einiges an Rechenpower verlangt/parallelisert oder ein sehr guter PC oder eine Workstation mit zwei fetten Xeon a la So2011 rechnet sich mehrere Tage die Hacken wund. Daher wollte ich mich in Richtung Rechencluster erkundigen. Ich hab außerdem eh gerade kein anderes Hobby zur Verfügung.

Zuerst also die Klärung um die Einrichtung von Linux (Distri?) als Rechencluster und anschließend Start der ganzen Höllenmaschine, ohne dass ich allzu tief von Problemen verschüttet werde.

Gruß MB
 
Sagen Dir Mosix-Cluster was?
 
Wishbringer schrieb:
Sagen Dir Mosix-Cluster was?

MOSIX2 hört sich am Ende so an, wie es durchaus funktionieren könnte, um anfänglich damit zu experimentieren. jeweils als VM starten und dafür etwas an Leistung einbüßen, soweit schon ein dankenswerter Anfang.

d2boxSteve schrieb:

danke, liest sich auf jeden Fall auch sehr vielversprechend, zumal es mit meinem Zoopark ähnlich wie bei MOSIX wohl recht gut zurecht kommen könnte.

ModellbahnerTT schrieb:
Welches Framework nutzt dein Programm?

accessing und processing ... also eher Plural: https://wiki.openstreetmap.org/wiki/Frameworks#Accessing_raw_OpenStreetMap_data
 
na jede VM muss ja noch über den Virtualisierungslayer arbeiten. solange da nicht alles 100%ig klappt oder ich mir von 8Kernen des Hosts einen oder zwei für den Host reserviere und auch nur meinetwegen 40GB RAM von 48 für die VM hergebe, macht schon etwas aus.

Der Host will ja auch ein wenig Luft haben, war zumindest ein früherer Gedanke beim Virtualisieren.
 
Hey, endlich mal eine Frage die was mit meinem Job zu tun hat. ;)

Du moechtest dir definitiv Hadoop anschauen.

Idealerweise nutzt du eine der existierenden managed Distros von Cloudera oder Hortonworks. Darauf hast du diverse. Storage und Processing Komponenten. Basieren meist auf CentOS, ich habe die ganze Suppe fuer Experimente aber auch schon auf Debian, Fedora, und RHEL hochgezogen.

Als ueberliegende Begriffe hast du...
  • HDFS - File-System layer der ueber ext3/4 liegt und alle HDDs im Cluster als ein FS abbildet
  • YARN - Resource Manager der die meisten verteilten Komponenten mit Rechenleistung versorgt
  • Spark - Processing Engine auf der du deine Jobs schreibst
  • Hive - SQL-Abstraktion um strukturierte Daten abzubilden
Leider sind deine Maschinen etwas schwach auf der Brust. Du wirst vermutlich mehr Leistung mit einem kleinen Cluster erreichen als mit den Mini-Maschinen. Als Faustregel sollten die Nodes nicht unter 64GB RAM haben und idealerweise nicht weniger als 12 Cores. Fuer Speicherplatz solltest du bedenken, dass HDFS bei default eine 3x Replication der (standardmaessig 128MB grossen) Blocks anlegt, das heisst, dass eine 1GB Datei in 3x8x128MB (1024%128=0) Bloecken ueber den HDDs verteilt liegt, du also 3GB Platz brauchst.

Persoenlich wuerde ich das ganze auf GCP/Azure/AWS werfen und dort verarbeiten, bietet bessere Performance und unterm Strich niedrigere TCO, aber das ist mehr eine Enterprise-Antwort.
 
ich werde mir auf jeden erstmal alles durchlesen zu den vorliegenden Vorschlägen und mit Sicherheit auch mal den einen oder anderen Probelauf starten.

Letztlich haben wir eine grobe Vorlage im Netz gefunden, wo das schon mal einer mit den Geodaten gemacht hat, was wir vorhaben, leider nur auf einer Maschine und mit einer speziellen Distri (damit Compiler etc zusammenpassen). Ich habe aber so einen Haufen auch ältere Server zur Verfügung, dass ich damit auch mal was halbwegs sinnvolles machen möchte, als die nur als Briefbeschwerer zu nutzen.

Ich werde mich aber definitiv noch mal hier bzw. per PN melden müssen, wenn ich in einer Sackgasse stecken sollte. Für sowas gibt es schließlich nicht so viele Stadtpläne.

Vielen Dank für euer aller Interesse und Vorschläge, aber jetzt muß ich die Dinger alle erst mal hochwuchten und auf meinem Kaffetischchen abstellen (ein Stoßgebet an die Tischstatik!)
 
Nilson schrieb:
Wenn ich dich richtig verstehe, ist das OS egal (bzw. es muss mit dual Sockel Systemen umgehen können), solange euer Programm darauf läuft. Die Lastverteilung auf die Verschiedenen Knoten im Cluster ist normal Aufgabe des Programms und nicht des OS.
Wenn man von der reinen OS Ebene abstrahiert, also die Komponenten nicht als Prozesse/threads, Speicher, ... sieht, sondern als Einheiten in einem verteilten System, kann das "OS" das durchaus bieten. Stichwort an der Stelle ist orchestration, Beispiele kubernetes oder mesos

Je nach Zeit, Abhängigkeiten des codes etc ist auch messaging eine gute Möglichkeit Last zu verteilen:
http://learning-0mq-with-pyzmq.readthedocs.io/en/latest/pyzmq/patterns/pushpull.html
 
Zuletzt bearbeitet:
Zurück
Oben