Allgemeine Fragen zu PC Clustern

einballimwasser

New Member
Heute war ich im Rechenzentrum der Uni Karlsruhe bei einer Führung dabei und muss sagen: Sehr interessant!

Bereits auf dem Heimweg habe ich mir dann die ersten Gedanken gemacht wie das wohl funktionieren könnte.

Aus dem RZFührer habe ich dann rausgepresst bekommen, dass das RZ Scientific Linux einsetzt, eine Linuxdistribution, die zu Red Hat Enterprise Linux (das extra für die Anwendung in Rechenzentren ausgelegt ist) binärkompatibel ist. Ich werde mir über kurz oder lang ein paar Maschinen kaufen, die ich dann testweise in einem Cluster laufen lassen werde um die Technik, die dahinter steckt zu verstehen.

Cluster können ja verschieden angeordnet sein. Es gibt plattenlose cluster, Cluster die über Netzwerk verbunden sind, cluster auf denen ein OS läuft, das die physikalischen Rechner zu einem großen zusammenfasst, cluster die nur per Software geclustert sind (die OSse untereinander also gar niht kommunizieren, sondern die software die Nodes in einer riesigen "Wolke" zusammenfasst ) und dann gibt es noch Cluster die gar keine sind: Ein Server/Client System. Siehe VMWare: die ESX Server laufen alle einzeln mit ihren virtuellen Maschinen, werden allerdings von einem vCenter Server kontrolliert und ferngesteuert.
Ich hoffe, das ist so ungefähr richtig was ich da von mir gebe, wenn nicht - korrigiert mich bitte unbedingt!

Die Rechner selber haben eine Remote Management Karte. Wie funktioniert die? Ist die im Mainboard eingebaut und kann soft/Hardresets auslösen, CD Laufwerk simulieren und hat einen extra Netzwerkanschluss? Habt ihr dazu Beispiele?

Dann die Betriebssysteme selber:
Ich kann mir nicht vorstellen, das in einem riesigen Rechenzentrum in jedem PC eine Festplatte steckt, das wären ja Kilowatt an unnötigem Verbrauch. Nehmen wir mal pro HDD 5W an, dann sind das bei 512 Blades (Kann man 1HE Rackserver als Blades bezeichnen, wenn nicht - was sind blades GENAU?) dann 2560W und 5W/HDD sind ja noch wenig! Wie wird das zentral gemanaged? Welche Betriebssysteme laufen auf den Fileservern (SICHER kein Openfiler oder FreeNAS :D ) normalerweise? iSCSI Storage für die gebooteten Systeme kann ich mir vorstellen, doch was tut der noch nicht hochgefahrene Rechner? Er könnte per PXE von einem bereits hochgefahrenen Router oder Rechner booten, allerdings muss das auch irgendwie geregelt werden, wie funktioniert das? Ist der Bootserver dann der SPOF? Kann man den bootenden Rechnern ein anderes VLAN zuweisen als den laufenden / kontrollierenden?

Nach dem Boot müssen die Betriebssysteme oder Kernelteile erst einmal zueinander finden. Kann das in Selbstorganisation (Mesh Network) passieren? Welche Programme gibt es dafür (Ich rede hier vorrangig vom Linux bereich, andere OSse sind aber auch Willkommen ;) )? Gibt es hier auch wieder einen SPOF? Wie bekommt man den Bootserver + Router redundant?

Die ganzen Daten müssen ja auch irgendwo gespeichert werden, machen das die Fileserver selber oder tut das irgendein Kontrollrechner?
Wie sind die Fileserver / backuplibrarys an den rest der anlage angeschlossen? Per LAN?

Bei so vielen Rechnern / Cores kann man sich fragen, welche Tasks auf solchen Maschinen laufen. Ich kenne nur eine Anwendung: Grid Computing. Bei den mir bekannten Projekten nutzen aber die Prozessoren (rosetta@home, WCG, F@h) auf dem PC lokal (also 1Programm/ PC) zu 100% aus. Man hat mir aber erzählt, das bei Strömungssimulationen die Rechenzeiten individell vergeben werden, dh Prozessor x bis y bekommt den teil vom Auto, dann d bis r den anderen Teil und hinterher wird der komplette Crastest zusammengefügt aus den einzelnen Elementen. Wie skaliert so ein Cluster seine verfügbare Power? Tut er das selber oder ist das wieder nur ein Programm das auf einem Rechner läuft und die anderen "feeded" mit den Daten?

Dann zum Stichwort Interprozessorkommunikation. Es gibt in dem Cluster ja verschiedene PCs, die aber alle unterainander Kommunizieren müssen. Es gibt auch verschiedene Busse dafür, zb den Infiband. der kann 2,5Gbit in beide Richtungen (Duplex) übertragen. Ist das für die CPUs nicht zu langsam? Wo sitzen die Module? Direkt an der CPU bzw am CPU Controller oder an der Netzwerkharware? wie funktioniert das Protokoll?

So weit erstmal, danke fürs lesen und vor allem danke für die qualifizierten Antworten die ich bekommen werde. Das Thema interessierte mich schon immer brennend aber es gibt leider sehr wenig dazu im Netz. Informatik will ich deswegen nicht studieren müssen ;)


Crossposted in Kaltmacher (da bekomm ich wohl nur spährliche Antworten, da sich das Forum als Allgemeines PC Forum und OCer Forum versteht.)
 
Last edited by a moderator:
erwartest Du ernsthaft, daß man Dir hier in einem Forum die kompletten Technologien, Strategien und Methoden von Cluster-Systemen, RZ-Architektur und Prozesskommunikation erläutert?

Also das, was man so nebenbei in ein paar Semestern an der Uni unterbringt?

-> Ich würde empfehlen, wenn Du schon nicht Informatik studieren willst, Dich aber für die Materie interessierst, Dir ein paar passende Grundlagenbücher, Vorlesungsscripte und ähnliches zu besorgen...


Nur eines: Warum sollte ein einzelner Server keine Platte haben? Und ja, Rechenzentren brauchen Strom. Viel Strom. Rechne für "normale" Server mal so ca. 250-500W pro Stück...
 
erwartest Du ernsthaft
...Nein...

Ich bin durch Wissensdurst getrieben, ich möchte wissen, wie das Clustering funktioniert, wie Rechenzentren aufgebaut sind, wie die PC Systeme miteinander agieren, wie die Rechenpower aufgeteilt wird, einfach alles! Ich will kein Rechenzentrum administrieren können, ich möchte einfach die Grundzüge kennen lernen und wissen wie die Sache funktioniert.

Ich habe meinem Gefühl nach das komplette Web nach PC Clustern und Methoden abgegrast, allerdings nichts richtiges gefunden. Die brauchbarste Seite bzw die größte Hilfe beim Verständniß (das ich leider immernoch nicht habe) war die Rolls Seite.
Normalerweise kommt man in Foren mit Links, die das zusammenfassen, was man wissen möchte. Darauf hatte ich gehofft, Links oder Buchtipps zu ergattern, die mir etwas bringen. Ich kann natürlich Geld zum Fenster rauswerfen und Fachliteratur kaufen, die ich dann wieder nicht verstehe. Doch wo liegt da der Sinn?

Da macht es doch wohl eher Sinn, in einem Forum zu fragen ;)
 
Ich bin durch Wissensdurst getrieben, ich möchte wissen, wie das Clustering funktioniert, wie Rechenzentren aufgebaut sind, wie die PC Systeme miteinander agieren, wie die Rechenpower aufgeteilt wird, einfach alles!
Du hast sicherlich schon selbst gemerkt, dass dieses Thema beliebig komplex werden kann, zumal das ein durchaus interdisziplinäres Problem ist. Das betrifft nicht nur Software, sondern auch ganz massiv Hardware und wenn es rechenzentren-übergreifend funktionieren soll auch einige weitere Fachgebiete.

Auch wenn es sich platt anhört: Schau in die (englische) Wikipedia. Mit http://en.wikipedia.org/wiki/Datacenter und http://en.wikipedia.org/wiki/Cluster_(computing) als Startpunkte bist du gut dabei. Lies die Artikel und hangel dich dann Schritt für Schritt weiter, bis dir das Wissen zu einem Teilbereich ausreicht bzw. du keine Lust mehr hast.
 
Ich werde mir über kurz oder lang ein paar Maschinen kaufen, die ich dann testweise in einem Cluster laufen lassen werde
Löblich!
Wollte ich auch schon immer mal. Ist aber noch nicht dazu gekommen. Der Grund war ganz einfach. Ich hatte keinen Job für das Ding. Denn der Job bestimmt das Design.

Also:
Welchen Job soll dein Cluster erledigen?
 
Das ganze wird ein Beowulf Cluster, das einfach nur ideln soll. Ich will schaun ob es möglich ist, wenn ja, dann rennt da rosetta@home eine Weile und dann werd ichs wieder verkaufen. Es wird ein klassisches Node -> Switch -> Head System, also viele nodes an einen switch dhcpiert und gemanaged vom head, auf allen läuft scientific linux oder debian.
Installiert wird per FAI, ein System, das bestimmt viele hier kennen.

so wie ich das jetzt öfter gelesen habe, besteht ein Cluster aus Maschinen, von denen jede ein eigenständiges OS hat und die nur per protokoll bzw per remote login ihre Jobs annehmen und ausführen. Das einzig besondere ist wohl die Connection untereinander per InfiniBand oder schnelleren Verbindungen.
 
so wie ich das jetzt öfter gelesen habe, besteht ein Cluster aus Maschinen, von denen jede ein eigenständiges OS hat und die nur per protokoll bzw per remote login ihre Jobs annehmen und ausführen. Das einzig besondere ist wohl die Connection untereinander per InfiniBand oder schnelleren Verbindungen.
Jein.

Cluster ist aktuell so ziemlich das größte Marketing-Bloat im IT-Bereich :-)
Alternativ die allgemeingültigste und unschärfste Definition für einen Ansammlung von PCs "die irgendwas gemeinsam haben" :-)

Cluster sind gerade in - gerade erst auch als Cloud. Und wenn's dann noch mit Blades ist, ist es noch inner. Und Green muss er sein.

Anders gesagt: ein PC, auf dem 2 parallele Prozesse laufen kann genau so zum Cluster erklärt werden wie eine "Männerlösung" like EarthSimulator und Konsorten...
 
Eine Kompletterklärung kann ich Dir nicht geben, allerdings einige Stichworte zu den Themen nennen, die Dich interessieren. Mit Selbststudium kann man sich dann ins Thema einarbeiten.

Cluster können ja verschieden angeordnet sein. Es gibt plattenlose cluster,
Stichworte: SAN, NAS, iSCSI, Fibre Channel

Die Rechner selber haben eine Remote Management Karte. Wie funktioniert die? Ist die im Mainboard eingebaut und kann soft/Hardresets auslösen, CD Laufwerk simulieren und hat einen extra Netzwerkanschluss? Habt ihr dazu Beispiele?

Nicht alle Rechner werden solch eine Karte haben. Recht bekannt und verbreitet dürfte z.B. die eRIC Karte sein. Wenn man Rechner in RZs stehen hat, werden durchaus aus "größere Lösungen" verwendet, bzw. Lösungen, die nur eine Teilmenge der eRIC Funktionen (grafische Anzeige bis aufs Bios) bieten.

Ich kann mir nicht vorstellen, das in einem riesigen Rechenzentrum in jedem PC eine Festplatte steckt, das wären ja Kilowatt an unnötigem Verbrauch.

Das hängt vom Einsatzzweck ab. Es gibt ServerhostingRZs, da ist jeder Server vom anderen unabhängig. Natürlich hat dann jeder Server eine (oder mehrere) Festplatten. Eine gute Übersicht was Hoster so rumstehen haben gibts z.B. unter http://www.thomas-krenn.com/de/wiki/Hauptseite . Da findest Du auch weitere Informationen zu Teilmengen Deiner Fragen.

Im Bezug auf die Stromversorgung sind folgende Parameter wichtig:
- genug Strom bekommen (und RZs können so viel Strom brauchen wie eine mittlere Kleinstadt)
- Redundanz in der Stromversorgung zu haben (eine Leitung kann mal ausfallen)
- eine USV vorzuhalten (für den kurzzeitigen Stromausfall und die Überbrückung bis zum nächsten Punkt)
- einen ordentlichen Dieselgenerator für die Überbrückung längerfristiger Stromausfälle zu haben (das sind gerne mal riesige Schiffsdiesel)

Es gibt andere RZs, die in Clustern arbeiten, z.B. Supercomputer RZs. Dort ist eine lokale Festplattenspeicherhaltung nicht unbedingt nötig. Hier wird z.B. iSCSI oder SAN als zentraler Speicher verwendet, auch manche Shared Webspace Hoster haben zentralisierten (redundanten) Speicherplatz. Das gute an derartigen Systemen ist, dass man einzelne Headunits leicht austauschen kann, das Problem kann die Anbindung und die Latenz zum Speicher sein. OVH bietet z.B. im Hostingumfeld "RPS" an, das sind festplattenlose "Rechner", die übers Netzwerk booten.

Nehmen wir mal pro HDD 5W an, dann sind das bei 512 Blades (Kann man 1HE Rackserver als Blades bezeichnen, wenn nicht - was sind blades GENAU?)

Aaaalso: ein Rack hat normalerweise 42 HEs. D.h. da passen 42x1HE Server rein oder entsprechend weniger 2/3/4 HE Server. Ein 1HE Rackserver ist KEIN Blade! Hier wird beschrieben was ein Blade, bzw ein übergeordnetes System ist. Warum man das macht? Um die Packungsdichte zu erhöhen und Platz zu sparen. :p Es passen dann nämlich 84 Bladeserver (statt 42) in ein Rack hinein.

Deine Zahlen sind also gänzliche Luftnummern.

dann 2560W und 5W/HDD sind ja noch wenig!

Die PLATTEN sind bei o.g. Konfiguration das geringste Stromproblem. Es müssen nämlich auch bis zu 672 Prozessoren versorgt werden und das macht EINIGES mehr aus als lächerliche 2560W (das schafft ja noch jede Hausstromsteckdose), nämlich mindestens das ZEHNFACHE.

Wie wird das zentral gemanaged? Welche Betriebssysteme laufen auf den Fileservern (SICHER kein Openfiler oder FreeNAS :D ) normalerweise? iSCSI Storage für die gebooteten Systeme kann ich mir vorstellen, doch was tut der noch nicht hochgefahrene Rechner? Er könnte per PXE von einem bereits hochgefahrenen Router oder Rechner booten, allerdings muss das auch irgendwie geregelt werden, wie funktioniert das? Ist der Bootserver dann der SPOF? Kann man den bootenden Rechnern ein anderes VLAN zuweisen als den laufenden / kontrollierenden?

Server mit Festplatten booten logischerweise lokal, Server ohne übers Netzwerk von einem SAN/NAS. Es gibt nicht "EINEN Bootserver", sondern die Daten liegen redundant abgesichert auf mehreren Servern.
Netzwerkboot ist nichts dramatisches, das können die meisten MBs von der Stange ja schon. Serverplatinen haben entsprechende Unterstützung für derartige Dinge.

Die ganzen Daten müssen ja auch irgendwo gespeichert werden, machen das die Fileserver selber oder tut das irgendein Kontrollrechner?
Wie sind die Fileserver / backuplibrarys an den rest der anlage angeschlossen? Per LAN?

Siehe oben SAN/NAS. Die Netzwerktopologien werden da sicher jeweils unterschiedlich sein. Je nachdem was man braucht. Kupferethernet gibts bis 10Gbit, bei richtig breitbandigen Leitungen kommen aber eher Lichtleiter zum Einsatz.

Bei so vielen Rechnern / Cores kann man sich fragen, welche Tasks auf solchen Maschinen laufen. Ich kenne nur eine Anwendung: Grid Computing.

Je nach RZ: Shared Hosting, Virtual Servers, Rootserver, riesige (verteilte) Datenbanken, High-Performance Computing (Supercomputer), SaaS etc. Die Anwendungen sind mannigfaltig.

Bei den mir bekannten Projekten nutzen aber die Prozessoren (rosetta@home, WCG, F@h) auf dem PC lokal (also 1Programm/ PC) zu 100% aus.

Diese Anwendungen wirst Du in "ernsthaften" RZs NICHT finden. :rolleyes: Schließlich betreibt man derartige RZs nicht zum Spaß!

Man hat mir aber erzählt, das bei Strömungssimulationen die Rechenzeiten individell vergeben werden, dh Prozessor x bis y bekommt den teil vom Auto, dann d bis r den anderen Teil und hinterher wird der komplette Crastest zusammengefügt aus den einzelnen Elementen. Wie skaliert so ein Cluster seine verfügbare Power? Tut er das selber oder ist das wieder nur ein Programm das auf einem Rechner läuft und die anderen "feeded" mit den Daten?

Es gibt bei Supercomputern Queues und eine entsprechende Ressourcenzuteilung (meist wohl Spezialsoftware), davon abgesehen muss die Software / die Modelle natürlich speziell für massives paralleles Computing ausgelegt sein. Um bei Deinem Beispiel zu bleiben: bei komplexen Problemen (Wettervorhersage) sind DEUTLICH mehr CPUs an einem Problem dran.

Dann zum Stichwort Interprozessorkommunikation. Es gibt in dem Cluster ja verschiedene PCs, die aber alle unterainander Kommunizieren müssen. Es gibt auch verschiedene Busse dafür, zb den Infiband. der kann 2,5Gbit in beide Richtungen (Duplex) übertragen. Ist das für die CPUs nicht zu langsam? Wo sitzen die Module? Direkt an der CPU bzw am CPU Controller oder an der Netzwerkharware? wie funktioniert das Protokoll?

Zum einen sollte man natürlich SW so programmieren, dass Interprozessorkommunikation praktisch nicht nötig ist (sonst lässt sich das Problem nicht vernünftig parallelisieren). Zum anderen gibt es in der Tat Busse, die vermutlich per PCI-X oder PCIe miteinander kommunizieren. Zum Dritten gibt es bei Supercomputern auch immer "dazwischen" Computer, die sich NUR um die Verteilung von Daten und Einsammlung von Ergebnissen kümmern.

So weit erstmal, danke fürs lesen und vor allem danke für die qualifizierten Antworten die ich bekommen werde. Das Thema interessierte mich schon immer brennend aber es gibt leider sehr wenig dazu im Netz. Informatik will ich deswegen nicht studieren müssen ;)

Das stimmt nicht. Du findest TONNENWEISE Daten dazu im Netz. Man muss nur suchen.
Nebenbei: mit JUGENE, der in Jülich steht, hat Deutschland aktuell den schnellsten europäischen Supercomputer und den VIERTschnellsten WELTWEIT. :D Mit lächerlichen 294.912 Kernen ist da auch ein bisschen Substanz verbaut...

HIER findest Du noch VIEEEELE mehr.


EDIT:
Abgesehen von High Performance nutzt man beim Hosting "Cluster" meist für High Availability, d.h. Hochverfügbarkeit. Dabei laufen quasi mehrere Rechner parallel, im normalen Zustand wird Lastverteilung betrieben, durche eine Load Balancermethode. Sollte ein Rechner ausfallen, übernehmen die anderen Rechner ohne Unterbrechung die Aufgabe.
 
Last edited by a moderator:
Back
Top