PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HA Cluster mit Shared Storage



troubadix
04.02.05, 07:10
Hi,

wir wollen uns 2 Maschinen und ein externes SATA to SCSI Raid anschaffen. In den Maschinen selbst sind auch noch 4x250GB vorgesehen für das worst worst worst case szenario ;)

Vorgesehen ist dieser Cluster für cvs, bugzilla,mysql.

Meine Idee ist nun folgende:

- das externe Storage wird auf die internen platten an jedem Knoten repliziert

Folgende Szenarien habe ich hier berücksichtigt:

- Fällt ein Rechner aus, soll der andere die filesysteme im Raid übernehmen und die dienste

- fällt das Raid aus, soll man weiterarbeiten mit den internen Platten (einfach die Mountpoints umhängen)

Soweit zur theorie ... nun zur Praxis (bin gerade dabei mich einzuarbeiten .. also net hauen ;) )

- den heartbeat aufzusetzen denke ich mal sollte ich schaffen , bloß wie sag ich dem das cvs auf knoten a läuft und nicht auf b , weil hierfür gibts ja keine start/stop scripte

- ich würde gerne mit dbrd arbeiten um das shared storage jeweils intern aktuell zu halten, funktioniert das?

- user Homes würde ich auch auf shared storage legen, Aufteilung z.b. eine partition cvs, eine bugzilla und eine für Homes.

Die Datenmenge ist derzeit ca 50gb, wenn man aber mit dbrd intern syncen könnte würde das über SCSI 320 gehen und sollte relativ performant sein.

Wir hatten gerade erst einen Crash mit cvs/bugzilla (lief alles auf einer Kiste) und bisher wurde das Thema Ausfallsicherheit noch nicht so hoch priorisiert .. aber durch den Crash sind einige doch etwas sensibler geworden .. das restaurieren hat genügend Geld verbraten (Arbeitszeit von mehreren Mitarbeitern) ;) und ich will das System so ausfallsicher wie möglich machen ..

Ich wäre über jeden Tipp dankbar (hoffe mal das nicht nur rtfm kommt).

Die Maschine wird heute bestellt und soll in 2 Wochen geliefert werden, in diesen 2 Wochen würde ich mir ein Testszenario aufbauen um alles durchzutesten.

Gruß

Troubadix

marce
04.02.05, 07:39
Hi,
- Fällt ein Rechner aus, soll der andere die filesysteme im Raid übernehmen und die dienste

- fällt das Raid aus, soll man weiterarbeiten mit den internen Platten (einfach die Mountpoints umhängen)
Vermutlich musst Du dafür dann aber die Applikationen durchstarten, da sonsst evtl. gerade die DBs recht "ungnädig" drauf reagieren...


- den heartbeat aufzusetzen denke ich mal sollte ich schaffen , bloß wie sag ich dem das cvs auf knoten a läuft und nicht auf b , weil hierfür gibts ja keine start/stop scripte
Du brauchst dann vermutlich einen monitor, der den CVS überwacht und dann im Fehlerfall den Heartbeat abschiesst, damit die andere Kiste übernimmt. Problem ist dann wohl, dass in dem Fall auch sämmtliche anderen Dienste von der anderen Maschine übernommen werden...


- ich würde gerne mit dbrd arbeiten um das shared storage jeweils intern aktuell zu halten, funktioniert das?
mit dbrd habe ich selbst noch nicht gearbeitet... Wie willst Du es denn machen: das externe und das interne jeweils als Raid1 konfigurieren? Oder willst Du regelmässig mit rsync abgleichen?

troubadix
04.02.05, 07:48
Wow .. super schnelle Antwort ;)

Das abgleichen mit den internen platten könnte man auch per rsync machen, dachte das dbrd evtl. zeitnaher ist .. und der evtl. Datenverlust so minimiert würde.

Mit den Applikationen durchstarten ist soweit klar .. auf Rechne 1 soll laufen cvs und auf Rechner 2 Bugzilla(dieser nutzt auch mysql).

Ich hab noch ne Frage zum Shared Storage:

- kann ich ohne größeres Risiko die Partitionen in beiden Rechnern mounten ??
- wie kann ich sicherstellen das z.b. cvs nur von knoten 1 beschrieben werden darf .. erst wenn knoten 1 ausfällt, darf dann knoten 2 schreiben


Derzeit bin ich nicht mehr ein so großer Freund von Raid 1 .. dies ist wirklich nur für den Aufall einer Platte .. wir hatten aber letztens den Fall das eine Partition Raid 1 war und hier das Filesystem zerschossen war .. tja sieht wohl so aus als ob auf der Spiegelplatte der gleiche müll war :(

Gruß

Troubadix

marce
04.02.05, 08:20
bei dem Raid 1 dachte ich daran, dass Du evtl. die internen und den Shared-Storrage als Raid 1 haben willst - dann wären sie immer synchron. Die 4 internen würde ich als Raid5 laufen lassen - ob mit oder ohne Hotstandby, das ist eine "Paranoia-Frage"...

mit dem Verteilen der Applikationen auf 2 Rechner wirst Du vermutlich Probleme bekommen - dafür ist Heartbeat nicht gedacht, das übernimmt nämlich komplett den Server, es funzt also nur, wenn die Applikationen auf einem Server laufen und der ausfällt, dann springt der andere ein - ausser das gibt's in der Zwischenzeit eine Erweiterung, von der ich nix mitbekommen habe...

Mit dem gleichzeitig mounten des Shared-Storage: Wir haben so ein System, da sagt der Hersteller, dass es geht. Und auch vom System aus soll es wohl problemlos laufen (bei uns eine Solaris-Kiste an einem NexSan Infinisan) - nur macht uns die Anwendung hier einen Strich durch die Rechnung, da die es nicht mag, wenn sie 2x auf die gleichen Daten zugreift - bei rein lesenden Geschichten sollte das kein Problem sein, aber sobald geschrieben wird, wird's halt kritisch...

Habe im Moment das Gefühl, dass Heartbeat nicht unbedingt die richtige Lösung für Dich ist - jedenfalls, wenn Du drauf beharrst, dass beide Maschinen parallel produktiv sind...

troubadix
04.02.05, 08:35
Mmmh ist schon etwas komplex was ich haben will ..

Hab noch Kermit , failsafe von sgi und auch globalfs scheint interessant zu sein,
Prio A ist definitv die Datensicherheit, B die verfügbarkeit.

Muß wohl noch einige Sachen recherchieren ;)

marce
04.02.05, 08:41
in dem Fall würde ich einfach 2 id. Systeme aufsetzen und auf einem CVS und auf dem anderen Bugzilla laufen lassen - wenn's ein Lastproblem ist. Anderfalls einfach beides auf einer, die andere im Hotstandby-Betrieb und z.B. stündlich mit rsync oder ähnlichem abgleichen - wenn dann die Kisten intern ein Raid5 oder Raid10 haben, ist zumindest die Platten-Geschichte mal aussen vor.

Alternativ auch keine internen Platten für Daten sondern nur System und die Daten extern auf Raid - das könnte man dann einfach umstöpseln und hätte dann, wenn die Kiste physikalisch erreichbar ist, als Ausfallzeit nur das "hinlaufen, umstecken, hochfahren" - bei Shared-Storrage (NAS / SAN / HW-Raid mit entsprechenden Kontrollern / Backplane) müsste man nicht mal umstöpseln...

troubadix
04.02.05, 08:48
Jup, das war der ursprüngliche Plan .. nun wollen wir evtl. halt noch die Last verteilen .. die Daten selbst sollen im Storage liegen .. bloß wenn das Storage ausfällt soll man weiterarbeiten können. Idealerweise wäre hier ein Cluster da dann keine Änderungen der IP etc. notwendig sind (wichtig halt auch für CVS).
Der Ursprungsgedanke war "manuelles Cluster" .. das heisst Rechner 1 hat komplett alles .. wenn Rechner 1 ausfällt .. mounten Filesysteme im Rechner 2 und weiter gehts ;)

mmh ich werds evtl. so machen das ich einen Cluster mache und partition 1 auf Knoten eins gemounted wird und partition 2 auf knoten 2.. sichtbar werden beide partitionen sein. Wenn nun Knoten 1 ausfällt, würde ich partition 1 im knoten 2 mounten und dort dann die applikationen übernehmen..

whistle
04.02.05, 09:05
Hi,
für das "Last verteilen" schau dir mal Linux Virtual Server (http://www.linuxvirtualserver.org) an. Damit hatte ich zusammen mit heartbeat eine Installation testet, bei im normalfall die Last auf zwei Server verteilt wurde, falls einer ausfiel, übernahm der andere alles. Damals allerdings ging es um Webserver.
Gruß
Whistle

troubadix
04.02.05, 09:12
Hi,
für das "Last verteilen" schau dir mal Linux Virtual Server (http://www.linuxvirtualserver.org) an. Damit hatte ich zusammen mit heartbeat eine Installation testet, bei im normalfall die Last auf zwei Server verteilt wurde, falls einer ausfiel, übernahm der andere alles. Damals allerdings ging es um Webserver.
Gruß
Whistle

Last verteilen will ich von Hand, ich will sagen CVS nur auf Knoten1, Bugzilla+mysql auf Knoten 2. Nur im Fehlerfall soll dann jeweils gewechselt werden.

whistle
04.02.05, 09:18
Na gut, dann bist du mit Hearbeat schon auf der richtigen Seite.
Für Mysql kannst du dir im Manual mal die Replikation ansehen.
Gruß
Whistle

troubadix
04.02.05, 09:29
Ok .. ich werde mir nun mal ein Testszenario (allerdings ohne shared Storage) aufbauen. In der Theorie hört sich das ja "leicht" an .. das blöde ist viele Reden von einem Bericht in Linux User 7/2004 .. bloß die hab ich net .. und bis ich was nachbestellt hab bzw. das Heft da wäre .. ist die Hardware bereits hier ;)

Na ja .. ich glaub ich werd mir das shared storage mal mit firewire emulieren.. mit Stonith könnte ich ja die konkurrierenden Zugriffe verhindern ... ?

bla!zilla
04.02.05, 11:50
Also mal ein paar Anregungen aus der Praxis:

Die Platten in den beiden Nodes sollten auf jeden Fall als RAID 1+0 konfiguriert werden, nicht als 5. RAID 5 ist erst ab einer Read/Write Ratio von 70:30 interessant. Alternativ in die Nodes nur drei Platten und dann RAID 1 + Spare. Die Volumes (ich kenne das System nicht was ihr einsetzt. Werden da dem Host fertige LUNs präsentiert, oder direkt die "harten" RAIDs die du auf dem Storage konfiguriert hast??) in dem externen Storage sollten nach Möglichkeit auch RAID 1 bzw. 0+1. Ich würde an eurer Stelle eine richtige Clustersoftware einsetzen. Dann spart ihr euch das gebastel und habe eine Lösung die funktioniert. Einfachste Möglichkeit: DRBD. Da könntet ihr euch sogar das externe Storage sparen. Teure Alternative: HP ProLiant Packaged Cluster mit zwei ProLiant DL380 + MSA500 mit entsprechend vielen Platten. Als Clustersoftware MC/Serviceguard von HP.

troubadix
04.02.05, 13:40
Also mal ein paar Anregungen aus der Praxis:

Die Platten in den beiden Nodes sollten auf jeden Fall als RAID 1+0 konfiguriert werden, nicht als 5. RAID 5 ist erst ab einer Read/Write Ratio von 70:30 interessant. Alternativ in die Nodes nur drei Platten und dann RAID 1 + Spare. Die Volumes (ich kenne das System nicht was ihr einsetzt. Werden da dem Host fertige LUNs präsentiert, oder direkt die "harten" RAIDs die du auf dem Storage konfiguriert hast??) in dem externen Storage sollten nach Möglichkeit auch RAID 1 bzw. 0+1. Ich würde an eurer Stelle eine richtige Clustersoftware einsetzen. Dann spart ihr euch das gebastel und habe eine Lösung die funktioniert. Einfachste Möglichkeit: DRBD. Da könntet ihr euch sogar das externe Storage sparen. Teure Alternative: HP ProLiant Packaged Cluster mit zwei ProLiant DL380 + MSA500 mit entsprechend vielen Platten. Als Clustersoftware MC/Serviceguard von HP.

Hi,

zuerst schon mal danke für die Tips.

Also die Hardware sieht so aus:

2 x Server (jeder Server Xeon option auf 2ten haben wir aber offen, 2GB Ram, 2x 74 GB - für Betriebssystem, 3x250GB für die Interne Spiegelung des Raids, SCSI 320 Anbindung)

1 x Storecase SATA Raid mit 4 x 250GB (Ausbaufähig auf 12 Platten), 2x SCSI 320 Kanal (d.h. pro Server)

Die Lösung mit dem Raid und den internen Platten wollen wir machen weil wir a) möglichst geringe Ausfallzeit haben wollen und b) Datenverlust minimieren !!

Die Planung war eigentlich folgende:

Knoten: die 74GB Platten spiegeln, die 250GB als Raid 5

Storage: ein großes Raid 5 über alle Platten und Pro SCSI Kanal die Hälfte ungefähr jeweils zur Verfügung stellen. Es werden 2 LUNS angelegt und pro SCSI zur Verfügung gestellt.

Mit DBRD bin ich mittlerweile auch draufgekommen, jedoch wollen wir das "doppelt" absichern.

Hoffe mal wir haben keinen Denkfehler.

bla!zilla
04.02.05, 15:01
Willst du dann das im Server befindliche RAID 5 auf eine LUN im Storage spiegeln, RAID 5+1 also? Das wäre für DRBD auf jeden Fall eine solide Basis. Wenn du schon auf geringe Ausfallzeiten hinaus willst, wie sieht das mit Support für die Server / das Storage aus? 13x5 4 Stunden oder 24x7 4 Stunden Reaktionszeit? ;) Empfehlung von mir: Eine weitere Platte in den Server und dann wie folgt (pro Server) konfigurieren:

RAID 1 / 2x 73 GB = Betriebssystem
RAID 1+0 / 4x 250GB = Daten
LUN entsprechender Größe auf dem Storage anlegen und aus der LUN und dem RAID 1+0 mittels Linux Softraid ein RAID 1 machen. Darauf LVM und sich freuen.

troubadix
04.02.05, 15:40
Willst du dann das im Server befindliche RAID 5 auf eine LUN im Storage spiegeln, RAID 5+1 also? Das wäre für DRBD auf jeden Fall eine solide Basis. Wenn du schon auf geringe Ausfallzeiten hinaus willst, wie sieht das mit Support für die Server / das Storage aus? 13x5 4 Stunden oder 24x7 4 Stunden Reaktionszeit? ;) Empfehlung von mir: Eine weitere Platte in den Server und dann wie folgt (pro Server) konfigurieren:

RAID 1 / 2x 73 GB = Betriebssystem
RAID 1+0 / 4x 250GB = Daten
LUN entsprechender Größe auf dem Storage anlegen und aus der LUN und dem RAID 1+0 mittels Linux Softraid ein RAID 1 machen. Darauf LVM und sich freuen.

Hi,

hab soeben die Hardware bestellt ;) Hast Du evtl. ICQ oder Skype so dass etwas intensiver über das Thema reden könnten?

Ausfallzeiten von Seitens Support habe ich jetzt nicht auf 24x7 bestanden
(wie immer eine Frage der kosten ;) ) und gehe davon aus das wir wenn wir 2 Rechner und alles doppelt haben schon relativ gut ausgestattet sind ;)

Gruß

troubadix

bla!zilla
05.02.05, 00:53
Habe ICQ, aber für sowas solltest du einen entsprechenden Dienstleister an der Hand haben. ;)

Du kannst nicht Unsummen in Hardware investieren und dann am Support sparen. Das ist der falsche Weg. Sowas sollte ausgeglichen sein. Eine saubere Konfiguration, die richtige Hardware und der passende Supportlevel. Das schönste Cluster bringt mir nix, wenn ich nur 13x5 zu normalen Geschäftszeiten habe. 4h Reaktionszeit sollten drin sein, bei business-critical auch gerne 6h-to-repair.



Ausfallzeiten von Seitens Support habe ich jetzt nicht auf 24x7 bestanden
(wie immer eine Frage der kosten ;) ) und gehe davon aus das wir wenn wir 2 Rechner und alles doppelt haben schon relativ gut ausgestattet sind ;)


...sprach der RZ-Leiter bevor sein HP/CPQ Non-Stop Cluster einen unnatürlichen Tod starb.... Sag niemals nie. Wenn du aus dem 20 Stock springst kannst du dir bis zum Aufschlag auch sagen "Bisher is ja alles noch gut gegangen."

troubadix
05.02.05, 09:38
Hi,

tja das ganze ist halt immer so eine Sache mit den Kosten , die trotz dem Thema Ausfallsicherheit immer noch zählen .. bin froh das ich Storage Array mit 2 Rechnern
genehmigt bekam (das ganze hat rund 10000Euro gekostet .. ist auch keine Hersteller
wie z.b. HP sondern BTO Server). Ich schätze mal in der von mir geschilderten
Konstellation (mit den großen internen Platten) ist man bei einem Markenhersteller
locker bei 15000-20000 Euro .. aber das ist nun auch nicht Teil der Diskussion ;)

Ich würde den Server gerne auch selbst einrichten , wg. Lerneffekt etc.

Also als Filesystem würde ich ext3 nehmen wollen (wenn ich sicherstelle das auf
jedem Knoten jeweils nur 1 LUN gemountet wird).. wenn ich auf beiden das gleiche
Mounten will würde ich wahrscheinlich ein clusterfähiges filesystem mounten, da
würde ich wohl in Richtung openGFS gehen?

troubadix

bla!zilla
05.02.05, 11:06
10.000 € für BTO Server, Storage und abgespeckten Support? Dann habt ihr euch über´s Ohr hauen lassen.

Ein HP Packaged Cluster, mit zwei DL380 G4 (2x 3,4GHz XEON, 2GB RAM, 2x 73 GB lokal), eine MSA1000 (FC-attatched), 7x 146GB im Storage, redundante NICs, FC-Controller, MSA1000 Controller, embedded FC-Switches, 13x5 4h vor-Ort Service hätte dich, je nach Dienstleister und ausgehandelten Approvals ca. 15k gekostet.

Als Dateisystem für ich XFS oder ReiserFS4 nehmen. Kommt aber auch auf dem Usecase ab. Mit ReiserFS kannst du nicht viel falsch machen. LVM lege ich dir aber in jedem Fall ans Herz.

troubadix
05.02.05, 11:45
Also die genauen Preise hab ich jetzt net hier (bin aber trotzdem noch der Meinung das der Preis ok ist) .. sind aber immer noch rund 5000 Euro .. aber egal .. und bisher haben wir sehr gute Erfahrungen mit BTO Servern gemacht. Ich denke wenn ich nicht in jedem server Intern die großen Platten (3x250GB ) genommen hätte, wäreen wir Preislich bei 9000 gelanded. Man kann natürlich darüber diskutieren Marken/BTO aber meine Meinung ist das nicht gleichzeitig beide Maschinen kaputt gehen (halte ich für seeehr unwahrscheinlich) .. wenn das Storage ausfällt, können wir (sofern ich das dann hinbekomme mit dem Spiegeln auf die internen Platten) auch weiterarbeiten .. könnte man mit dem von Dir genannten Szenario nicht da alle Daten im Storage liegen .. ok wenn mans richtig macht dann macht man sowieso noch ein redundantes Array dazu ...

Aber laß uns dann doch zum thema zurückkommen (ich bin Dir für deine bisherigen Tipps auch sehr dankbar). mmh mit Reiserfs4 bin ich noch skeptisch, meinst Du das kann man bereits Live für Cluster nutzen?

Ich denke ich muß ja auch nicht 100% ein clusterfilesystem verwenden, sondern wenn ich sicherstelle das ich jede LUN nur einmal mounte , sollte das gehen.

Was auch interessant wäre ist opengfs, dies soll auch als clusterfs funktionieren.

Ich hab aber auch schon folgendes Szenario überlegt :

Knoten 1 bugzilla/Mysql , eine LUN im Storage

Knoten 2 CVS, ebenfalls eine LUN im Storage

Einsatzu von DBRD:

Knoten 1: hierin wird dann cvs vom STorage von Knoten 2 auf die interne Platte
Knoten 1 refreshed

Knoten 2: hier wird dann Bugzilla, mysql vom Storaage an Knoten 1 auf die interne
Platten Knoten 2 refreshed

Oder ich machs doch mit Raid 1 (obwohl ich da noch ein bischen Bauchweh hab wg. letztens), wäre ja wieder softraid.

LVM .. welchen würdest du empfehlen, ich denke ELVM(2)?

bla!zilla
05.02.05, 12:01
könnte man mit dem von Dir genannten Szenario nicht da alle Daten im Storage liegen .. ok wenn mans richtig macht dann macht man sowieso noch ein redundantes Array dazu ...


Die Daten würden komplett auf dem Storage liegen. Das Storage ist in sich redundant, mit zwei Controllern, gespiegeltem Cache, FC I/O Modulen, Pfaden zum Switch usw. Ein zweites Storage macht nur Sinn, wenn ich Cluster-Nodes und Storagesysteme trenne. Also Node_1 + Storage_1 + Interconnect_1 in Brandabschnitt_1 und Node_2 + Storage_2 + Interconnect_2 in Brandabschnitt_2.



Aber laß uns dann doch zum thema zurückkommen (ich bin Dir für deine bisherigen Tipps auch sehr dankbar). mmh mit Reiserfs4 bin ich noch skeptisch, meinst Du das kann man bereits Live für Cluster nutzen?


Dann nimm die Vorgängerversion. Mit der habe ich gute Erfahrungen gemacht. Ansonsten ext3. Ideal wäre natürlich XFS.



Ich denke ich muß ja auch nicht 100% ein clusterfilesystem verwenden, sondern wenn ich sicherstelle das ich jede LUN nur einmal mounte , sollte das gehen.


Vorsicht: Du scheinst den Begriff Clusterfilesystem (z.B. IBM GPFS) nicht richtig zu deuten. Du brauchst für ein HA-Cluster nicht zwingend ein Clusterfilesystem. Bei einem Shared-Everything-Cluster sorgt die Clustersoftware dafür das eine Plattenressource nur von einem Server beansprucht wird. DRBD ist ein Shared-Nothing Cluster. Da brauchst du eh kein Shared-Storage (anders ist es z.B. bei MSCS, Veritas Cluster, SUN Cluster, MC/ServiceGuard usw.)



Was auch interessant wäre ist opengfs, dies soll auch als clusterfs funktionieren.


Was willst du mit OpenGFS? In deinem Szenario brauchst du es nicht und kannst es auch nicht sinnvoll einsetzen.



Ich hab aber auch schon folgendes Szenario überlegt :

Knoten 1 bugzilla/Mysql , eine LUN im Storage

Knoten 2 CVS, ebenfalls eine LUN im Storage

Einsatzu von DBRD:

Knoten 1: hierin wird dann cvs vom STorage von Knoten 2 auf die interne Platte
Knoten 1 refreshed

Knoten 2: hier wird dann Bugzilla, mysql vom Storaage an Knoten 1 auf die interne
Platten Knoten 2 refreshed

Oder ich machs doch mit Raid 1 (obwohl ich da noch ein bischen Bauchweh hab wg. letztens), wäre ja wieder softraid.


Und? Kostet dich vielleicht 5% Performance... Je nach Last.

Ich möchte dich an dieser Stelle darauf hinweisen das ich für das hier keine Garantie übernehme! Du solltest solche Sachen lieber mit einem kompetenten IT-Dienstleister, evtl. dem Lieferanten, des Systems absprechen. Nicht mit mir. Ich habe dein System weder gesized, noch gecheckt oder dir verkauft. :)

troubadix
05.02.05, 12:15
Hi,

ist schon klar das ich Dich nicht regresspflichtig mache ;) Ich versteh das forum auch als Infoplattform wo man sich austauschen kann.

Ich werde es dann mal mit dem ersten Szenario Raid 1 storage auf interne Platten spiegeln,
also knoten 1s= bugzilla/mysql ==> spiegel auf interne platten und knoten 2 cvs.

Somit hätte ich ja folgende Ausfallszenarien:

- Fällt knoten 1 aus, einhängen bugzilla/mysql auf knoten 2 und weiter gehts

- Fällt knoten 2 aus, umgekehrt ;)

- Fällt externes Storage aus, jeweils die internen Platten einhängen.

Wie funktioniert das eigentlich im realen Betrieb mit der RAID 1, muß ich da das von Hand neu reinhängen oder macht das System das automatisch?

- Wenn nun ein Rechner ausfällt, kann ich dann ohne Probleme das Filesystem im Storage ohne Probleme einhängen (weil die LUN=Partition=Teil von einem Raid 1 auf der anderen Maschine)?

- wie verhält sich das dann wenn mit Volume Manager arbeite?

bla!zilla
05.02.05, 13:11
Also wenn der Spiegel zwischen internen Platten und Storage bricht (Plattenausfall, Ausfall des Interconnects zwischen Server und Storage oder Ausfall des ganzen Storage), brauchst du nichts zu machen. Der Spiegel läuft einfach weiter.

Wenn dir ein Server ausfällt, musst du die LUN des weggebrochenen Servers auf dem noch laufenden Knoten einhängen. Bitte beachten: Die Shared Libs der Anwendungen müssen auf beiden Servern vorhanden sein, sonst läuft da nix. Auch den Schwenk von MySQL stelle ich mir problematisch vor. Läuft nicht auf beiden Servern eine MySQL?

troubadix
05.02.05, 13:41
Hi,

mysql läuft aktiv immer nur auf einem Knoten. Ich stell mir das dahingehend nicht so problematisch vor weil mysql ja auch nach einen crash von einem Rechner noch laufen sollte.

Ich glaub ich hab auch eine Lösung für das cvs Problem gefunden (hoffentlich kein Denkfehler), cvs wird ja über xinetd gesteuert und den lass ich einfach über heartbeat starten/stoppen (bugzilla+mysql sowieso).

Ich hatte nur bedenken wg. LVM , wie verhält sich das dann wenn ich eine LUN umhänge, kann ich dann problemlos das Filesystem / LUN auf der anderen Maschine mounten..

Momentan ist das leider noch Theorie weil der Rechner wohl erst Ende nächster Woche / Anfang übernächster Woche kommt .. aber will mich auf jeden Fall vorher schlau machen.

Nächste Woche setze ich wie gesagt einen Test Cluster ohne shared Storage auf um heartbeat zu testen

Ach so was meinst du mit shared libs? Zuerst wollte ich Knoten den Knoten eins softwareseitig fertig machen und anschliessend auf den zweiten (identischen) klonen.

ps: hab den Eindruck das dieser Bereich für viele Interessant ist denn imemrhin haben wir schon über 180 hits ;)

bla!zilla
05.02.05, 18:26
Du musst ja in der Lage sein MySQL auf dem zweiten Knoten zu starten. Dafür brauchst du halt die eigentliche DB (sollte auf dem Shared Storage liegen) und halt die Binaries und Shared-Libs. LVM sollte kein Thema sein. Einfach importieren und gut is.

troubadix
05.02.05, 19:57
Du musst ja in der Lage sein MySQL auf dem zweiten Knoten zu starten. Dafür brauchst du halt die eigentliche DB (sollte auf dem Shared Storage liegen) und halt die Binaries und Shared-Libs. LVM sollte kein Thema sein. Einfach importieren und gut is.

Also Betriebssystem wird auf beiden Knoten identisch sein (Suse 9.2). Mysql soll auf Storage Array.

Ich werde mir mal glaub ich diese Woche eine kleine firewire Platte mit 2 PCI Firewire besorgen, so kann man glaub ich Shared Storage Array light testen ;)

Kuhl wenn das nachher noch so einfach (wie sich das momentan anhört ;) ) verwirklichen lässt mit den LVM partitionen dann ist eigentlich momentan halbwegs alles klar .. wenn ich dann am Testen bin melde ich mich wieder.

Ach so eines noch fast vergessen, wg. Useranlage und so, hier sollte es ja langen die wichtigsten Dateien wie passwd, groups, shadow etc abzugleichen?. Die Homedirectorys werde ich in eine eigene Partition legen und diese mit dbrd syncen.

@bla!zilla: Vielen Dank schon mal für die Tips und anregungen (hoffentlich wars nicht zu nervig ;) )

troubadix
08.02.05, 17:36
Hi,

so hab heute erste Tests mit Heartbeat gemacht und es sieht prima aus ;)
Morgen ist noch drbd dran und dann können wir schon mal intern die ersten Tests durchführen .. Bis jetzt wars zumindest net so schwer ..

Ich glaub richtig interessant wirds dann mit dem shared storage.

Ach ja .. ich würde mir gerne ne Mail schicken lassen wenn ein Knoten die arbeit von dem anderen übernimmt, hier könnte ich ja die Startskripte in /etc/hd.conf/resources.d dahingehend anpassen das ich ein mailx -s "Apache von wurde von Knoten 1 übernommen- bitte prüfen" meinemail@adresse.com an den Anfang setze?

Falls es euch interessiert, halte ich euch auf dem laufenden was die Tests und nächste Woche die richtige Maschine macht ..

Auf jeden Fall macht so die Arbeit mal wieder Spaß :cool:
Gruß

Troubadix

troubadix
08.02.05, 22:24
@bla!zilla: Ich hab noch eine Frage. Wir haben bei uns arcserve im Einsatz und dies sollte auch über heartbeat gesteuert werden können. Allerdings ist die Konstellation ja wie folgt:

Knoten1: Mountpoint /cvs

Knoten2: Mountpoint /bugzilla

Wenn ich nun den Client Agent über hearbeat steuere, ist der jeweils nur auf einem Knoten aktiv und würde somit nur das lokal eingehängte Filesystem sehen ==> ich werde wohl ein Filesystem nutzen müssen womit ich an beiden Knoten gleichzeitig einhängen kann, oder sehe ich das falsch? Das Problem ist unter Umständen schreibe ich was auf Knoten 1 auf einen gemeinsamen Share drauf, bloß Knoten 2 erkennt die Änderung nicht ..

Hast Du ne Idee wie ich das lösen könnte? Evtl. könnte auch Stonith was sein?

Gruß

troubadix

troubadix
09.02.05, 07:50
Ich glaub ich hab die Lösung : NFS.

Knoten 1: cvs und mountet bugzilla über nfs

Knoten 2: bugzilla und mounte cvs über nfs

Die Mounts werde ich per read-only machen.

Jetzt muß ich nur noch schauen wie ich das mit heartbeat automatisiere, sollte aber net so schwierig sein.

Der Heartbeat ist über gigabit Lan und die Maschine nach außen hin auch, ich erwarte hier keine zu großen Performanceeinbußen bzgl. Backup.

Gruß

Troubadix