PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mosix



Nebukadneza
25.07.03, 22:44
hi ...

ich hab mir soeben mosix(nich openmosix) auf 2 rechnern wie folgend aufgesetzt:
die 2 datein:
http://www.mosix.org/moskrn/MOSKRN-1.10.0.tgz
http://www.mosix.org/ftps/MOSIX-1.10.0.tgz
runtergeladen, dazu noch den aktuellen linux-2.4.21 von kernel.org ... kernel entpackt mit "patch -p0 < patches.2.4.21" gepatcht, dann mit "make menuconfig" die normale hardware(so wie ichs eben normalerweise hab) gewählt, und aus der kategorie mosix folgendes selektiert:
MOSIX process migration support
[ ] Support clusters with a complex network topology
[ ] MOSIX Kernel Debugger
MOSIX Kernel Diagnostics
Stricter security on MOSIX ports
(1) Level of process-identity disclosure (0-3)
Create the kernel with a "-mosix" extension
Direct File-System Acces
[ ] MOSIX File-System
[ ] Poll/Select exceptions on pipes

danach ein beherztes "make dep bzImage modules modules_install", das ohne probleme durchlief ... neuen kernel in den lilo und gebootet. dann symlinks von /usr/include/mos nach /usr/src/linux/include/mos gesetzt und die userutils aus dem zweiten paket (user.tar) mit "make install" installiert ... die /etc/mosix.map anlegegt, welche wie folgt aussieht:
1 192.168.0.5 1
2 192.168.0.3 1
welche heisen soll, dass ich 2 nodes habe. 192.168.0.3 und 192.168.0.5 ... dann ein "setpe -W -f /etc/mosix.map" zum aktivieren des clusters. danach habe ich in /proc/mosix/nodes/(1||2) die daten angesehen um zu sehen, ob sie auch vom jeweils anderen node verfügbar sind, und sie waren es. um den cluster dann endgültig zu testen habe ich auf beiden ein "top" aufgemacht, und auf einer node seti@home gestartet. wie ich in top leicht sehen konnte wurde seti allerdings nur auf einer node gesartet. die andere blieb unberührt ... was hab ich falsch gemacht?

danke schonmal im vorraus ....

Nebukadneza
26.07.03, 01:02
bzw. ... kennt jemand von euch ein anständiges howto speziell für mosix ... alles was ich bisher gefunden hab war nur für openmosix ....

Nebukadneza
27.07.03, 21:50
hm .... schade das sich hier keiner mit mosix auskennt ....

nun hat sich für mich gerade ein neues problem aufgetan: ich kann zwar die prozesse mit "migrate" von der einen auf die andere node schieben, aber auf beiden laufen lass (das sie sich die last teilen ...) geht leider nicht. also entweder hab ich da mit clusters n bisschle was falsch verstanden oder falsch konfiguriert :)

danke im vorraus!

geronet
29.07.03, 17:07
Huhu, einen Mosix Cluster mit Seti@home zu testen ist wirklich dumm da Seti schon selber geclustert ist (auf der ganzen Welt), dazu brauchst du nur ein simples Programm mehrfach starten und schon wandern die Prozesse von selber rüber, wie es in der Faq steht:

http://www.mosix.org/faq/output/faq_q0018.html

Ausserdem können nur immer _ganze_ Prozesse migrieren die nicht auf Hardware in einem Rechner angewiesen sind, also nur einen Browser oder dein XMMS zu migrieren bringts wirklich nicht.

Beim Programme oder Kernelkompilieren sieht die Sache dann schon wieder ganz anders aus ;)

Grüsse, Stefan

Nebukadneza
30.07.03, 21:17
also danke erstmal für deine antwort ... dachte schon es passiert garnichtmehr *G*

aber n kleines frägelchen hätt ich da noch ... wenn du sagst "ein simples Programm mehrfach starten" ... also muss ich dann z.b. diesen awk auf jedem rechner einmal starten?

danke nommal *G*

MaDmAsTeR
31.07.03, 09:23
Hi!

ich habe mal vor ca. 1,5 Jahren nen Mosix-Cluster bei mir zu Hause laufen lassen, mit insg. 3 Rechnern.
Das hat auch ordentlich funktioniert, du musst dir eben nur darüber bewusst sein, das Mosix nicht die gesamte Power aller geclusterten Rechner für ein Programm verwenden kann. D.h. es ist nicht möglich z.B. SETI zu starten und dann läuft das 2mal so schnell wie ohne Cluster, denn Mosix kann nur ein Programm auf einen anderen Node schieben, wenn es merkt, das die Last dort weniger ist und das Programm dort schneller laufen würde.
Sonst müsste man ja ganze Speicher-Bereiche mit clustern können um so etwas zu nutzen und das kann IMHO momentan nur SUN oder Oracle versucht sich schon ewig dran...

Also wenn du mehrere Programme kompilierst oder andere versch. Rechenintensive Programme nutzt, dann ist Mosix sinnvoll, denn du arbeitest einfach an einem Rechner und wenn der Last=1.0 hat oder so, dann verschiebt Mosix einfach ein Programm auf den anderen Node und du hast wieder Ressourcen frei, das Programm läuft dann halt auf dem anderen Node weiter, usw...

Nebukadneza
31.07.03, 14:59
okay ... dann hab ich wohl ne leicht falsche vorstellung von dem gehabt was mosix kann .... allerdings was hat man dann für alternativen? kann beowulf sowas? bzw. wie könnte man so ein "ram sharing" und "cpu sharing" realisieren?

(danke für deine erklärung ...)

MaDmAsTeR
01.08.03, 08:38
Hi!

habe mich jetzt zwar schon knapp nen Jahr mit Clustern nicht mehr auseinander gesetzt, aber ich schreibe dir mal meine Erfahrungen ;) Ich habe so etwas nämlich auch gesucht und zwar auch für SETI :-)

Wie ich ja schon geschrieben habe, versucht sich SUN auf dem Gebiet des Speicher-Clustering, denn das ist garnicht so einfach, wie man auch bei denen sieht. So wie ich das verstanden habe, ich hoffe ich liege richtig, vielleicht kann mich ja jemand korrigieren falls das nicht so sein sollte.
Ein Programm wie SETI nutzt CPU-Ressourcen und Speicher-Ressourcen und zwar extrem. Wenn es nun möglich wäre SETI so auf deinem Cluster zu verteilen, das genau ein Prozess SETI laeuft und dieser auf allen Rechnern deines Clusters, müsste die Cluster-Software in der Lage sein, deinen Hauptspeicher zu verwalten, da ja ständig Aktualisierungen durch SETI passieren. Somit müsste praktisch in REAL-Time der Speicher über dein LAN auf die anderen Nodes repliziert werden, das wird mit einer 100Mbit LAN Lösung erstens nicht möglich sein und zweitens hättest du dann nicht mehr viel Rechenzeit übrig, könnte ich mir zumindest vorstellen.
Wie gesagt darüber weiß ich leider auch nicht so viel bescheid.
Oracle versucht einen anderen Weg und geht nicht über das BS sondern die Datenbank selber wird geclustert, allerdings weiß ich da auch nicht, wie weit oder besser stabil und performant das ganze laeuft.
Selbst wenn in der Praxis das RAM "geclustert" werden könnte, gibt es noch ein anderes Problem. Was passiert, wenn ein Node abstürzt, kein Netz mehr hat oder ähnliches? Das würde den ganzen Speicher mit runter ziehen, da gehört also einiges an KowHow dazu um sowas zu lösen.
SUN bastelt da schon einige Jahre dran das richtig gut zu lösen und selbst das klappt IMHO noch nicht so richtig...

Was du aber machen kannst, so habe ich es auch gemacht mit SETI. Du startest einfach z.B. 3 SETI Prozesse auf deinem Master und lässt diese sharen über Mosix. Ich hatte 3 Rechner und habe 4 SETI Prozesse laufen gehabt, das lief eigentlich ganz gut und wenn man die CPU Zeit hochgerechnet hat, war es performanter als 3 SETI Prozesse auf den 3 versch. Rechnern ohne Mosix. Ich weiß zwar nicht woran das liegt, aber ich vermute das SETI unter Linux so besser performt.
Ich konnte auch ähnliches feststellen mit 2 SETI Prozessen auf einem standalone Linux Host...

Nebukadneza
01.08.03, 16:29
okay .... danke erstmal für deine tipps und erklärungen! echt super! wegen dem seti werd ich wohl nochmal kucken müssen, wie ich ne mosix master(super)node bau ... hab bisher ja nur 2 nodes in dem cluster gehabt ... werde villeicht auf 5 erweitern *G*. wenn du meinst seti läuft performater ... in welchem masstab is das dann so in etwa? also wie gesagt danke nochmal!