PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux Cluster



Seiten : [1] 2

Harleyd
24.07.03, 18:25
Moin

ich habe folgendes Problem

Wir haben ein NT Cluster , auf dem die Homelaufwerke,Anmeldescripte und die Druckerspooler laufen. In dem Netz hängen ca 150 Pc´s .

Auf den Anderen Servern läuft zum Teil Linux oder NT .

Die NT Server sollen auf Win 2003 bekommen ,bzw wenn es geht Linux .

Ich möchte natürlich auch den Cluster auf Linux Umstellen.Wie kann ich das am besten machen ?? Samba 3 ist leider nur als beta zu bekommen (Wegen Activ Dir).

Hat jemand schon erfahrung mit Samba 3 und Win XP bzw Cluster im oben genanten Fall ??


danke und Gruß
Harleyd




wer Rechtschreibfehler findet kann diese behalten

psy
24.07.03, 18:39
wenn du den nt-cluster wirklich auf linux umstellen willst und die server dann
in die ads hängen willst, würde ich auf die samba 3 final warten.

Doh!
24.07.03, 19:06
Was willst Du denn mit Active Directory? Wenn Du's bisher net hattest brauchst Du's auch jetzt nicht

Harleyd
24.07.03, 19:07
hi psy

mit dem samba 3 hast du wohl recht , werde mir samba 3 mal downloaden und testen, aber wie sieht es mit dem Cluster aus ??Hats Du da erfahrung ??

Gruß
Harleyd



wer Rechtschreibfehler findet kann diese behalten

Harleyd
27.07.03, 07:24
jo doh!

hmm , wenn man es bis jetzt nicht hatte braucht man es auch nicht ....

vielleicht weil WIN NT es nicht unterstützt hat

Bauchi
27.07.03, 13:06
deine frage zum thema clustering ist etwas zu wenig präzise ...

unter linux gibt es grundsätzlich die möglichkeit 2 node cluster recht einfach mittels heartbeat aufzusetzen. (active-passive)

damit hast du dann 2 maschienen die gegenseitig auf sich aufpassen und eine davon arbeitet, während die andere darauf wartet das die aktive maschine ausfällt um einzuspringen.

die frage wo deine homelaufwerke etc liegen ist auch recht interessant ... stichwort: shared storage ?

wie hältst du die datenbestände zwischen den beiden servern konsistent ??
permanentes abgleichen der beiden server ist so ziemlich für'n ar*** ... da sollte man halt was ordentliches implementieren (z.b. beide maschinen nen scsi adapter und über nen externes gehäuse mit 2 scsi anschlüssen und hdd's drin nen shared scsi storage bilden)
150 verärgerte user denen daten fehlen sind schon mal nen grund für nen admin suizid :p

unter http://www.linux-ha.org oder http://www.ultramonkey.org/ gibt es sehr viel nachzulesen, und du solltest auf deine fragen dort auch genügend antworten finden

ach ja .. AD braucht kein mensch, es gibt genügend ordentliche directorys (e-Directory, OpenLDAP etc)

wb1
27.07.03, 19:48
Vor Jahren hab ich mal nen win-cluster gemacht.
Grundlage war ein geshartes SCSI-Laufwerk.
Ich nehme an, das dein nt-cluster so arbeitet.

Wie bauchi beschrieben hat, ist heartbeat ein guter Lösungsansatz.

Das Problem ist das abgleichen der Datenbestände.
Hier gibt es als sehr passable Lösung drbd.
Ich habe eine derartige Lösung am laufen.
Zum Test wurde ein 100seitiges word-dokument erstellt, der user hatte das dokument offen und scrollte durch die seiten, der stromstecker des aktiven knotens wurde gezogen, der scrollvorgang stockte für eine halbe sekunde und wurde dann problemlos weitergeführt.

Bauchi
27.07.03, 19:55
hi,

wir haben bei uns auch drbd im einsatz für unsere DNS server (/var/named hat so ca 200 mb)

bei grösseren datenmengen ist drbd aufgrund der architektur nicht so wirklich toll ... wir syncen die beiden 'devices' mit 5 MB/s - was sich bei dem dedizierten 100 mbit/s link für heartbeat als optimaler wert herausgestellt hat bei uns.

wenn man jetzt allerdings mehrere GB im sync halten will wird drbd unter umständen zu langsam beim syncen .. man kann natürlich mit gigabit ethernet und höhreren sync raten dagegensteuern :rolleyes:

wb1
27.07.03, 20:11
Die Lösung bei uns verwendet als drbd-link gigabit-link Cu.
Der transfer liegt bei ca 15 Mbyte/sec, bei einer Pattentransfergeschwindigkeit ungecacht vo 65 MByte/sec. (uw160 platten an uw320 controller).
Wenn du mit syncen den Synchronisationsvorgang der kompletten partition meinst, ist das natürlich langwierig.
Wenn du damit das gleichhalten der Daten meinst, sehe ich eigentlich nur das problem, das die Kiste die daten im cache hält und nicht sofort wegschreibt.
Erzwingen kannst du es mit sync, z.B alle 5 sec.
Eine hundertprozentige Lösung gibt es nicht. Kanns eigentlich auch nicht geben.
Stell dir vor, eine einzelne kiste empfängt nen Datenstrom und die Versorgungsspannung fällt aus. Dann hast du garantiert Datenmüll. Du kannst nicht mehr bestimmen, welche pakete angekommen sind, welche sich im cache befunden haben und welche auf dem weg zur platte waren. Da hilft auch kein cluster. Das ist das restrisiko.

Harleyd
30.07.03, 18:17
Hallo zusammen
Ihr habt recht ich hätte etwas päzieser sein sollen

das ist richtig , der NT cluster hat ein SCSI share.Also je Server ein SCSI controler mit externem SCSI case.


Das sind doch super infos von euch , ich werde mir das mit "drbd" mal anschauen."

Danke dafür , ich komme bestimmt nochmal auf Euch zurück

Gruß

Harleyd

anquijix
06.01.04, 12:42
hallo

ich frische das thema mal auf:

drbd erzeugt ja raid übers netzwerk, also beide pcs haben die exakt gleichen daten auf ihren disks, dadurch auch die gleiche config. jetz mache ich mir gedanken, ob es dadurch nicht zB einen ip-konflikt gäbe, da beide die gleiche ip haben und sich somit nicht ansprechen könnten. wenn das so wäre, würden beide server annehmen, der andere sei ausgefallen, und sie übernehmen den dienst.

also so stell ich mir das horror-szenario vor ;)

folgende fragen traten auf:
ist das ein problem? oder wird das durch drbd geregelt? oder versteh ich irgendwas falsch?


ich bedanke mich zum voraus für mögliche hilfen :)

Bauchi
06.01.04, 13:11
damit das mit den ip's dir nicht das genick bricht, benutzt man VIP's ... virtuelle IP's ..

ein service wird zum beispiel unter seiner VIRTUELLEN IP angesprochen ... und nie mit der realen ip des servers ...

heartbeat sorgt dafür das die virtuelle IP zwischen den servern wandert ..

die configs an sich sollten beide server für sich behalten, wenn dort hardcoded info's drinstehen müssen ...
ich mach mal ne zeichnung ... mompl

anquijix
06.01.04, 15:26
Original geschrieben von Bauchi
die configs an sich sollten beide server für sich behalten, wenn dort hardcoded info's drinstehen müssen ...
[/B]

ich versteh den satz nicht ganz :rolleyes:

filou
06.01.04, 15:40
Original geschrieben von anquijix
ich versteh den satz nicht ganz :rolleyes:

Hi,

ich arbeite mich auch gerade in DRBD ein um einen MySQL Server redundant zu halten.
Ich denke was Bauchi meint ist, das jeder der beidden Server schon seine eigenen Configdateien für SEINE Hardware beibehält. Muss er ja auch !

Mit BRDB wir nichtder komplette "Rechner" synchronisiert, sondern nur eine Partition, bzw. der der Inhalt.

Wühl mich grad bisschen durch die Doku fon drbd...:eek: naja, mal sehen - mit dem Filesystem is dat alles nicht so einfach - denke aber das Prinzip ist klar.

mfg

anquijix
06.01.04, 15:50
hi

muss ich für die zu spiegelnden daten also eine extra partition erstellen?

filou
06.01.04, 15:59
Original geschrieben von anquijix
hi

muss ich für die zu spiegelnden daten also eine extra partition erstellen?

Für mich sieht es z. Zt. so aus. Ich habe hier 2 Rechner mit Debian installiert und natürlich nur eine root und eine boot Partition.
In den Beispiekonfigurationen steht ja auch: 'dbrdsetup /dev/nb0 /dev/hdc6'

Also wird ja ein device nb0 erzeugt, welches auf Partition /dev/hdc6 zeigt. ( Bitte nehmt mich nicht wegen der Formulierungen auseinander)

mfg

Bauchi
06.01.04, 21:38
stimmt schon so filou ;)

du nimmst eine partition und spiegelst die übers netzwerk ... also hda6 z.b. und da legst du das nbd (network block device) drüber ...

wenn du probs mit der config hast kann ich dir morgen mal die config von einem unserer server schicken ... sollte aber nicht allzu schwierig sein..
erfahrungswert für die sync geschwindigkeit: max 5 mbit/s sonst bekommst du probleme mit heartbeat wenn der die gleiche leitung nimmt

@anquijix
wie wärs mit ein bissl mehr rtfm ??!

filou
06.01.04, 21:52
Original geschrieben von Bauchi
stimmt schon so filou ;)

du nimmst eine partition und spiegelst die übers netzwerk ... also hda6 z.b. und da legst du das nbd (network block device) drüber ...

wenn du probs mit der config hast kann ich dir morgen mal die config von einem unserer server schicken ... sollte aber nicht allzu schwierig sein..
erfahrungswert für die sync geschwindigkeit: max 5 mbit/s sonst bekommst du probleme mit heartbeat wenn der die gleiche leitung nimmt

@anquijix
wie wärs mit ein bissl mehr rtfm ??!

Hm, config Files ansich brauch ich nicht. Muss(te) nur genau wissen, wo ich anfangen soll. Das ich eine Partition anlegen muss, habe ich auch erst beim dritten mal lesen kapiert.
Was ich aber noch brauche: Wie ist das mit dem ro mounten ? Wird dann /dev/hda6 beim Slave in der /etc/fstab ro gemountet, oder /dev/nbd, oder ...?

Da hapert's noch mit dem Verständnis. Naja - rtfm, again, again...... ;)

Zu heatbeat - da habe ich die Verbindung über ttyS0 vorgenommen. Ich hoffe, das kann man so lassen.

Die Synchronisation ist auch so, dass gleichzeitig auf beide Nodes geschrieben wird ? Wenn nicht, ist das für meine MySQL evtl. nicht so doll.

mfg

Bauchi
06.01.04, 22:49
hi,

also in der fstab sollte gar nix von der partition stehen, das verwaltet alles heartbeat für dich ...
also auch erst heartbeat starten, dann mysql - sonst fehlen mysql die daten ;)

mit dem schreiben der daten ist das so:
die maschine die das ding rw gemounted hat, schreibt wie auf eine lokale platte (ist ja auch die platte die in dem ding drin hängt) die daten werden dabei auf den secondary (der der ro gemounted hat) übers lan gemirrored ...

anquijix
07.01.04, 07:55
hi bauchi

ich habe ziemlich viele dokus und manuals durchgeackert, also komm nicht mit dem rtfm. wie filou verstehe ich ein paar sachen noch net ganz. meine erfahrungen halten sich verglichen mit deinen eher in grenzen (denke ich), bin ja auch noch in ausbildung.

ansonsten danke ich für eure hilfe :)

wb1
07.01.04, 12:25
Deine Datenbank wird beim Hochlauf des Systems nicht gestartet.
Sie muß, ebenso wie datadisk, von heartbeat gestartet werden.
Innnerhalb des heartbeat muß dann auch ein ip-take-over durchgeführt werden, sowie durch einen arp-fake den Switchen mitgeteilt werden, daß die gemeinsam genutze IP jetzt von einer anderen arp bedient wird.
Der drbd-link sollte sinnigerweise über einen direkten eth-link, also crossover, hergestellt werden.
Das nbo sollte in der fstab als noauto,user eingetragen sein.
Dort hast du die Möglichkeit, durch den eintrag sync eine Zwangssynchronisation im laufenden Betrieb durchzuführen, was sich aber auf die Geschwindigkeit auswirkt.

anquijix
07.01.04, 13:54
Original geschrieben von wb1

Dort hast du die Möglichkeit, durch den eintrag sync eine Zwangssynchronisation im laufenden Betrieb durchzuführen, was sich aber auf die Geschwindigkeit auswirkt.

muss das sync einfach hinten angegeben sein?


ich installierte jetzt die dienste und startete sie. folgende meldungen erschienen:

start auf dem primary server

master:~# rcdrdb start
Setting up 'drbd0'...[OK]
Do you want to abort waiting for other server and make this one primary? yes
drbd: Operator forced primary status on drbd0 (/dev/nb0)
drbd: user dialog has unexpected exit code -1
drbd: 'drbd0' still not in Connected state, but WFConnection

beim fett gedruckten nehme ich an, diese meldung erscheint einfach, weil drbd auf dem slave noch nicht gestartet wurde

start auf dem secondary server


slave:~# rcdrbd start
Setting up 'drbd0': SyncingAll, waiting for this to finish
Wed Jan 7 14:14:20 CET 2004
0: cs:SyncingAll st:Secondary/Primary ns:0 nr:88020 dw:88020 dr:0 pe:0 ua:0
[>......................] sync'ed: 3.3% (2604/2690)M
finish: 2:29h speed: 236 (8,801) K/sec
Waiting for Sync to finish ...

hier scheint alles ok zu sein. den aktuellen status kann man immer per cat /proc/drbd abchecken. solange der transfer läuft, wird beim slave Secondary/Primary (fett gedruckt) und beim master Primary/Secondary angezeigt.
ist der transfer fertig, wird folgendes (auf beiden server) angezeigt:


0: cs:Connected st:Secondary/Secondary ns:2755116 nr:0 dw:0 dr:2755116 pe:0 ua:0

dazu kommt, dass die daten nicht gespiegelt wurden. die platte auf dem slave war am anfang leer und ist es jetzt immer noch.

ist euch dieses problem schonmal aufgekommen?

wb1
07.01.04, 15:46
muss das sync einfach hinten angegeben sein? > ja

0: cs:Connected st:Secondary/Secondary ns:2755116 nr:0 dw:0 dr:2755116 pe:0 ua:0 >

Deine sync-geschwindigkeit ist eine Katastrophe.
Setze Sync-max und sync-min hoch.

Der Status ist unbestimmt.
Er wird später durch heartbeat bestimmt.
Setze den Status per Hand
drbdsetup /dev/nb0 primary

Jetzt kannst du auf dieser maschine, die jetzt primary ist, das netzraid mounten
mount /dev/nb0 /mountpoint

Kopiere ein paar daten rauf.
Wenn du kein sync in der fstab hast, warte 2 Minuten oder gebe am prompt sync ein.

Dismounte das netzraid.

Fahre den primary in den secondary-mode
drbdsetup /dev/nb0 secondary

Fahre den alten secondary in den primary mode
Mounte das netzraid auf dem nun neuen primary
Die daten in der partition sollte identisch sein.

Stoppe auf beiden systemen drbd
Mache auf die vorherigen netzraidpartitionen ein fsck, wobei du jetzt die tasächlichen partitionen angibst (z.B /dev/hda2)

mounte die partitionen direckt,
mount /dev/hda2 /mountpoint

Sie sollten immer noch die daten haben.

anquijix
14.01.04, 07:46
ich denke, ich habe es hingekriegt, jedoch bin ich mir noch nicht ganz sicher:

auf dem cluster läuft samba. die samba-shares liegen auf der zu spiegelnden partition. damit ich aber über nen client auf diese daten zugreifen kann, muss ich die partition immer manuell mounten, das wird irgendwie nicht durch drbd geregelt (was es doch sollte?:rolleyes: ).

habe ich etwas übersehen oder falsch gemacht?


was noch dazu kommt, die spiegelung dauert etwa 5mal länger, als sie auch schon dauerte, das datenvolumen ist sehr gering gestiegen (1-2mb). sync-max und sync-min habe ich erhöht.

wb1
15.01.04, 08:52
Heartbeat muß die Übernahme der nb0 partition regeln.
Dazu ist datadisk::drbd0 einzutragen.

Die Geschwindigkeit der Spiegelung ist abhängig vom Synchronisationsmodus und natürlich auch von der Transfergeschwindigkeit der Platte sowie von der Geschwindigkeit des Netzwerkes zwischen den Nodes.
Versuch als erstes, sync herauszunehmen.
Dann teste die anderen Parameter.

anquijix
15.01.04, 10:27
Original geschrieben von wb1
Heartbeat muß die Übernahme der nb0 partition regeln.
Dazu ist datadisk::drbd0 einzutragen.

ist eingetragen, aber geht trotzdem nicht. mittlerweile muss ich bei jedem boot die partition, die gespiegelt wird, löschen und neu erstellen, weil sie angeblich korrupt ist. das system bootet erst wieder, wenn ich dies gemacht habe.

wb1
15.01.04, 17:23
Hast du die erstellten Partitionen formatiert?

anquijix
16.01.04, 07:55
wenn mkfs.ext3 /dev/hda8 formatiert, dann ja

anquijix
16.01.04, 14:04
mittlerweile funktioniert die spiegelung. doch, wenn ich jetzt testhalber den master "deaktiviere", wird vom slave zwar alles übernommen, aber /dev/nb0 wird nicht gemountet, trotz dem eintrag datadisk::drbd0. ich muss, wie in einem früheren post erwähnt, das laufwerk noch selbst mounten. das ist zu umständlich.

wb1
16.01.04, 21:39
formatiere nb0 im ungemounteten zustand, nicht hda8
hast du einen link von datadisk auf drbd
es muß so aussehen
node-ip cluster-ip datadisk::drbd0 weitere::dienste smb::z.B.-smbconf1 mysql