# Linux Failover Cluster realisieren

## aZZe

Hallo zusammen!

Ich habe zur Zeit ein Projekt und habe mir gedacht mich an einem Failover Cluster heranzuwagen. Das schwierigste ist im Moment den Anfang zu finden und vor allem mit welcher Software dies am Besten zu realisieren ist. Vorzugsmäßig wäre natürlich eine Software mit einer guten Doku. Wie siehts da mit VServer oder Beowulf aus? Was für Erfahrungen habt ihr gemacht? Welche Software könntet ihr mir empfehlen?

Vielen Dank im Vorraus 

darktemplaaa

----------

## holla die waldfee

hi, 

darf man fragen was es für ein projekt wird?

firewall, db-server, webserver etc.

für einen failovercluster bietet sich ganz sicher heartbeat und drbd an.

mit beowulf hab ich leider noch keine erfahrung gemacht.

für ein gemeinsammes rechnen an vielen unterschiedlichen prozessen ist auch openmosix ganz gut. nur für perl programme nicht zu empfehlen

gruß holla

----------

## stream

zu DRBD gabs mal einen Artikel im Linux Magazin http://www.linbit.at/160.html

----------

## aZZe

Nun sehr wahrscheinlich wird es ein DB-Cluster auf MYSQL, allerdings ist ein Firewall Cluster auch in der Auswahl (fände ich ziemlich interessant). Das entscheiden ich aber erst nächste oder übernächste Woche. Wichtig ist erstmal eine gute Software mit einer guten Doku zu finden.

----------

## kressevadder

Ich bin zwar kein Experte und weiss noch nicht mal was ein "Failover Cluster" ist, aber hab mir gerade nen openMosix Cluster gebaut.

Die Nodes können einfach über PXE als Diskless Clients gebootet werden und hängen sich in den Cluster ein, hier läuft nur ein Minimalsystem. Ein Rechner fungiert als "Vorzimmerdame" mit Platteninstallation und ist auch in den Cluster eingebunden - hier läuft dann die eigentliche Anwendung.

Getestet hab ich das Ding bisher mit zwei Clients bei mir zuhause. Als Testprozesse dienen httpd Forks die unsinnige php Scripte abarbeiten. 

Das funktioniert problemlos. Ich denke mit mySQL dürfte die Sache ähnlich gut laufen.

Was z.B. nicht mehr geht ist portage, das bricht immer mit einer Fehlermeldung ab, nehme an hier kommt was mit der Abarbeitungs-Reihenfolge durcheinander.

Aber Anwendungen, die von Haus aus forken sind glaub ich mit openMosix gut bedient.

Bis auf ein paar wackler kam ich mit der gentoo Doku gut durch - Dokumentationen was geht und was nicht (und warum) such ich vergebens. Auch über Feintunig etc. hab ich noch nix gefunden.

Na ja, try and error

Greez

----------

## Deever

 *kressevadder wrote:*   

> Als Testprozesse dienen httpd Forks die unsinnige php Scripte abarbeiten.

 

Bist du sicher, daß die Prozesse überhaupt migriert werden? Apache arbeitet mit Shared Memory und ich glaube kaum, daß openmosix sowas migriert...

 *Quote:*   

> Aber Anwendungen, die von Haus aus forken sind glaub ich mit openMosix gut bedient.

 

Naja, die einzelnen Kinder müssen dann aber auch noch geeignet zusammen spielen!

MySQL würd ich IMHO eher auf Applikationsebene clustern.

Gruß,

/dev

----------

## Rad

Openmosix braucht doch immer noch auf jeder Maschine im Cluster die selbe Kernelversion. Und ausserdem ist Openmosix bei der Lastbalance oftmals schlechter als ein simpler Roundrobin - Verteilserver...

Ich persönlich würde somit auch vorschlagen, auf Applikationsebene zu Clustern wo immer dies geht und ansonsten auf relativ simple Verteilerserver (z.B. die von LVS, PEN, EDDIE oder simples BIND) und ein passendes Netzwerkfilesystem (z.B. NFS, Coda, InterMezzo oder OpenAFS) zurückgreifen. FALLS dann wirklich eins von beiden während deinen Tests "problematisch" zu werden drohen würde, dann ist das wahrscheinlich ein Zeichen weniger Rechner einzusetzen und dafür die Leistung des einzelnen Rechners zu erhöhen. (Sun und die anderen Anbieter gestalten die ab gewisser Leistung eh' meist mit allen möglichen Extras für unterbrechungsfreien Betrieb; kein Problem wegen Failover!)

PS: Es ist nicht so, dass ich wahnsinnig viel Ahnung von Clustern oder deinem konkreten Problem hätte. Im Extremfall mag ja auch spezialisierte Software basteln lassen optimal sein, aber dann würd' ich wirklich deinen Job klauen (wollen)!  :Cool: 

----------

## aZZe

Also Failover Cluster sind mit RAID Systemen zu vergleichen, die eine Ausfallsicherheit eines oder auch mehrerer Server garantieren. In den meisten Fällen ist auch ein Raid Array installiert. Das muss nicht unbedingt sein. Man kann es auch mittels rsync realisieren, nur wie das weiß ich noch nicht, soweit bin ich noch nicht. Eine andere Variante wäre ein Loadbalance Cluster. Simpel ausgedrückt sorgt diese Methode dafür, dass alle Server gleich ausgelastet sind. Beispiele wären hier http Server (Apache) oder Fileserver etc.

Openmosix ist vielleicht interessant nur wenn es wirklich nur auf gleichen Kernel Versionen läuft....na ja das wäre nicht so toll. Gibts noch Alternativen?

----------

## Teklord

Hallo,

jatzt mal eine ganz blöde Anregung.

Wie wäre es damit:

http://bofh.be/clusterknoppix/

Hab am anfage etwas damit rumgespielt.

Oder muß es eine Installation sein?

Gruß

Teklord

----------

## aZZe

@Teklord

Es muss eine Installation werden.

----------

## dertobi123

Zunächst wäre mal interessant um welche(n) Dienst(e) es gehen soll. Danach kann dann über Software nachgedacht werden, die am zweckmäßigsten und sinnvollsten eingesetzt werden kann.

----------

## aZZe

Nun für den Anfang habe ich so an NFS gedacht, um sich erstmal mit der Materie vertraut zu machen. Wenn das dann läuft vielleicht eine http Datenbank mit Apache und mysql.

----------

## UTgamer

(Mensch, 30 min bis es möglich ist einen Beitrag zu betreten oder posten, jetzt ist es mir bereits fast wieder entfallen)

Gut, ich hab früher beim Kunden häufiger Failback-Server aufgestellt, das lief so das ein Server ohne spezialisierte Dienste in einer Warteposition (Standby) nur die anderen Server alle 5 Sekunden pollte. Melde sich einer der überwachten nicht innerhalb von 32-120sec, fuhr er herunter und startete sich selbst als anderer Server mit den gleichen Diensten wie der ausgefallenen. Über einen eigenen Gigabit-Backbone versorgte er sich mit den Daten des Verlorenen aus den Datenbäncken. (Das war Netware).

Zwar hatte ich keine Cluster bei Netware, aber die Dienste werden wohl zusammen mit den Daten das wichtigste sein. 

Deine Beschreibung deutet darauf hin das du also einen 2. Cluster Standby laufen lassen möchtest, der bei Ausfall die Dienste des Ersten startet.

Seltsam daran ist, das wenn eine Maschine in einem Cluster ausfällt, der Cluster doch die Aufgaben der Ausgefallenen automatisch übernimmt, warum einen ganzen Cluster Standby setzen?

Ich glaube du willst überhaupt nur EINEN Cluster aufsetzten, und das mit Freeware, also ohne etablierte Distries wie Red Hat, SuSE, etc ... oder Unixen.

Sorry, aber das ist Entwickler Stoff, rüberreich an Tobie.  :Wink: 

Wieviele haben hier einen Linux-Cluster, selbst (Stichwort LFS) aufgesetzt, das würde mich interressieren?

Liebe Moderatoren,

es wäre schön wir hätten einen differenzierteren Bereich im deutschen Forum, die einen hätten gern einen Noob Bereich, ich schlage einen für den Rechenzentrumsbereich vor.

Vorschlag, wie wäre es das man seine Farben für einen Beitrag setzen kann?

Beispiel:

Vorhandenes Blau = Alltag

Gelb = Rechenzentrum

Pastellgrün für Noob-Fragen?

Jeder soll die sich selbst aussuchen dürfen, denn Rechenzentrumadmins sind ja auch mal privat.

----------

## UTgamer

 *darktemplaaa wrote:*   

> Nun für den Anfang habe ich so an NFS gedacht, um sich erstmal mit der Materie vertraut zu machen. Wenn das dann läuft vielleicht eine http Datenbank mit Apache und mysql.

 

NFS, wird nicht in datenkritischen Bereichen eingesetzt, da giebt es andere FS (AFS). Für welchen Zweck, und in welcher Umgebung soll das den sein.

Es klingt als wäre es eine Machbarkeitsstudie einer UNI.

[Edit]

Je nach Sicherheitsbereich wird der Datenschutzbeauftragte des Unternehmens NFS nicht genehmigen. Bei Produktionsinternas kann es aber doch genutzt werden. Bei Kundendaten nicht.

Datenschutz ist wichtig, sonst landet Linux bei stetiger Unterwanderung noch in der WindowsXP Klasse, und es steht in der Presse: Linux unsicher, Kundendaten frei zugänglich.

Ich möchte aber auch nicht sagen Gentoo kann das nicht  :Wink: 

----------

## hopfe

Also wenn du MySql verwenden willst, solltest du mal einen Blick auf die Homepage von MySql werfen. mysql-Cluster

----------

## leuenberger

Wenn auf Deinem Cluster "nur" MySQL laufen soll, solltest Du Dir vielleicht mal den MySQL Cluster ansehen.

Gruss Reto

----------

## hopfe

@leuenberger

LööööL, zwei dumme ein Gedanke oder was?

----------

## aZZe

 *UTgamer wrote:*   

> 
> 
> NFS, wird nicht in datenkritischen Bereichen eingesetzt, da giebt es andere FS (AFS). Für welchen Zweck, und in welcher Umgebung soll das den sein.
> 
> Es klingt als wäre es eine Machbarkeitsstudie einer UNI.
> ...

 

Richtig es soll nur "ein" Cluster aufgesetzt werden und es ist auch kein Firmenauftrag, sondern so wie du es gesagt hast eine Machbarkeitsstudie. Nun hast du sicherlich Recht NFS ist vielleicht jetzt keine gute Lösung. Ich bin davon auch abgegangen, habe auch nochmal mit unserem Dozenten gesprochen und er meinte auch es wäre schöner einen http Cluster mittels Apache aufzusetzen. Also vergessen wir das mit dem NFS mal ganz schnell  :Wink: 

Bleibt halt die Frage wie realisiere ich das am Besten mit OpenSource Software und Linux als Basis.....natürlich liebend gerne Gentoo?!  :Smile: 

----------

## UTgamer

Ich hatte Banken und Versicherungen als Kunden, und fast alle Projekte mussten mit den Datenschutzbeauftragten abgesprochen werden (sogar oft Test-Server).

Ich bin seitdem penibel was Datenschutz angeht, die eigentlichen Linuxinternas bin ich gerade selbst am erlernen, sorry soweit bin ich noch nicht  :Smile: 

Und Gentoo finde ich dabei auch am besten  :Very Happy: 

----------

## aZZe

@UTgamer

Hmmmm......du kannst den ganzen Cluster Kram, Datenschutz Security etc. und ich kann Linux....................wo wohnst du? *lol*  :Very Happy: 

----------

## Silicoid

Du sagtest du willst einen http Cluster mittels Apache aufbauen.

Grundsätzlich gibts bei jedem Cluster das gleiche Problem:

Wenn ein Node ausfällt, wie kommt der zweite Node an die Daten:

1. Externes Plattensystem auf das beide Nodes zugriff haben

2. Sowas wie DRBD

3. Die Anwendung kann es selber

Als nächtes kommt die Frage ob du einen Aktiv-Passiv oder einen Aktiv-Aktiv Cluster aufsetzen willst.

Am Beispiel Apache mit mysql würde ein Aktiv-Aktiv z.B. so aussehen:

1. Node: Mysql auf externen Plattensystem

2. Node: Apache auf externen Plattensystem

Fällt Node 1 aus, mounted Node 2 das Mysql Filesystem von Node 1 und startet Mysql.

Fällt Node 2 aus, mounted Node 1 das Apache Filesystem von Node 2 und startet Apache.

Könnte z.B. über heartbeat realisiert werden.

Eine Sache bei exterenen Plattensystemen ist allerdings wichtig (DRDB fängt sowas glaub ich mehr oder weniger ab, hab es selbst noch nicht ausprobiert). Du mußt dir sicher sein, daß der andere Node weg ist. Wenn du ihn nur nicht erreichen kannst, wäre es tödlich die Platte des "ausgefallenen" Nodes zu mounten. 2 Rechner, die das gleiche FS mounten ist nicht gut. Hierfür gibts z.B. Powerswitche, die man übers Netz steuern kann. Bevor du also irgendwas anderes machst, solltest du den anderen Node ausschalten. Dann bist du sicher, daß er nichts mehr tut (Stichwort: Knoteneleminierung).

Noch ein Wort zu NFS: NFS ist vielleicht nicht das beste, was der "Markt" zu bieten hat, aber am besten verbreitet. Spätestens wenn du in einem Rechnerverbund verschiedene OS hast (Linux, Unix, Win) bleibt dir fast nichts anderes als NFS übrig.

Und noch was abschließendes: Ein Cluster sollte immer nach dem KISS Prinzip aufgebaut werden (Keep It Smiling Simple). Je komplizierter ein Cluster wird, desto größer ist die wahrscheinlichkeit, daß er schaltet, obwohl er nicht müßte, oder das beim schalten etwas nicht klappt.

----------

## py-ro

Bei NFS auf externen FS bitte die Verwalutngsinformationen mit auf das Laufwerk legen, am besten oberhalb des Shares, dann kann der 2. Node reibungslos übernehmen, ansonsten bekommen alle Clients einen Timout oder schlimeres, weil der neue Node sie nichtb dran lässt (weil er weiss ja nichts über die Verbindung)

Als externe Laufwerke eignen sich IEE1394 LW hervorragend.

MfG

Py

----------

## pixelcatcher

moin!

ich habe als Projektarbeit auch mal ein 2Node Hochverfügbarkeitscluster gebastelt.

Das waren 2 übliche Desktop Rechner mit je 2xDualchannel NIC und je 2xsingle channel scsi und 4 geshareten scsi platten. Als dienst liefen lediglich apache und mysql. 

Zur überwachung der Dienste habe ich "mon" eingesetzt. Als Clustersoftware "linux-ha". Das ganze hat prinzipiell sehr gut funtkioniert. Einige Szenarien waren nicht abgedeckt, aber das wäre mit etwas Zeitaufwand noch drin gewesen. 

So viel mal zur Ultra-Kurz-Version  :Smile: 

Mehr infos geb ich auf Anfrage gern raus!

Micha

----------

## UTgamer

Weiterführende Links zu Clusterprojekten:

http://www.links2linux.de/links.php4?id=018

----------

## aZZe

Super vielen Dank euch allen! Da werd ich erst mal was zu tun haben  :Wink: 

----------

## Silicoid

 *py-ro wrote:*   

> Bei NFS auf externen FS bitte die Verwalutngsinformationen mit auf das Laufwerk legen, am besten oberhalb des Shares, dann kann der 2. Node reibungslos übernehmen, ansonsten bekommen alle Clients einen Timout oder schlimeres, weil der neue Node sie nichtb dran lässt (weil er weiss ja nichts über die Verbindung)
> 
> 

 

Von welchen Verwaltungsinformationen sprichst du bitte?

Die einzigen Verwaltungsinforationen die mir jetzt einfallen würden, wären das/die exportfs Kommando(s).

Ich arbeite schon ne ganze Weile mit NFS und wüßte jetzt net, was du sonst noch meinen könntest (Oh Gott, hab ich da ne Lücke in menem wissen?   :Very Happy:  )

----------

## py-ro

Ich muss gestehen, dass ich das mal irgendwann in der Ausbildung gemacht habe. 

Ich finde das was ich meine gerade nicht, aber irgendwas war da, was dazu diente, dass der neue Node die Clients ohne Verbindugsabbruch übernehmen konnte.

Ich seh nachher mal nach ob ichs finde.

MfG

Py

----------

## Wishmaster

Zum Thema drbd:

Wir setzen das zur Zeit bei unserem Cluster Produktiv ein und es funzt problemlos. Afaik arbeiten die Entwickler von drbd an einer neuen Version die auch das mounten von fs auf "zwei" Systemen ermöglicht und weiterhin soll es bald nicht nur eine 1:1 sondern auch eine 1:n Datenreplikation geben.

Bye,

Wishmaster

----------

## Simba

wenn du nur apache cluster braucht, dann versuch mal mit linux virtual server  gepaart mit hearbeat als eine load balancing und high availability produkt.

Ich habe im buero sowas fuer mail relay , squid proxy und apache

installiert . schau mal diese link : 

www.ultramonkey.org

www.linuxvirtualserver.org

www.linux-ha.org

Datenbank zu clustern ist komplizierter, man kann sowas nicht mit der loesung oben machen, deswegen gibt's ja diese ganz teure oracle cluster.

der verwendet shared filesystem zwischen den server. drbd kann filesystem

sharen, aber mysql kann es nicht verstehen. 

aber dafuer gibt's eine richtige loesung als mysql-cluster, die braucht den filesystem nix zu sharen. und von design her ist das bessere

loesung als von oracle finde ich, weil mysql cluster hat dann keine point of failure wie der oracle der fall ist (der gemeinsame filesystem).

ps:ach ja ich hab was vergessen: Ich hab natuerlich alles mit gentoo gemacht  :Smile: 

----------

## aZZe

Vielen Dank für die Links  :Smile: 

----------

## mortus

Hai,

ich würd dir als failover lösung PIRNAHA / bzw. PULSE empfehlen. ist zwar ursprünglich für redhat gemacht worden - habs aber schon erfolgreich unter gentoo im einsatz.

Hier ein paar Links die dir beim einrichten weiterhelfen:

http://www.linuxvirtualserver.org/

http://baitz.com/pbs_howto.txt

http://www.redhat.com/docs/manuals/haserver/RHHAS-1.0-Manual/x2690.html

dauert zwar eine weile bis man alles zum laufen gebracht hat, aber wenns einmal rennt, funktionierts supereasy!

kleiner Tip am Rande: emerge -u iproute

sonst funkts nicht wirklich...

cheers,

----------

## aZZe

Hmmm. PIRANHA .....darauf bin ich noch gar nicht gestoßen. Ich werds mir auf jeden Fall durchlesen. Ich bin euch echt dankbar für die vielen Links und eure Hilfe!  :Wink: 

Gruss darktemplaaa

----------

## BigMichi1

wenn man 2 rechner über ein scsi kabel an 2 externe platten anklemmt und auf denen soll dann z.b. die webseite liegen, damit bei einem failover ja beide zugreifen können, welches dateisystem muss man dann für die platten verwenden? gibt es ein dateisystem, welches den gleichzeitigen zugriff für 2 rechner gestattet?

----------

