Re: HA-Lösung mit Debian.
Hi,
Timo Eckert schrieb am Donnerstag, 11. März 2004 um 14:19:10 +0100:
> ein Kunde von mir möchte eine HA-Lösung auf Debian-Basis haben.
> Da ich in dem Bezug 0 Erfahrung habe, wende ich mich vertrauensvoll an diese Liste. ;)
Ich hoffe, Du mußt nicht unter Zeitdruck arbeiten, denn ohne Erfahrung
musst Du viel testen.
> Also der Aufbau soll folgender sein:
>
> 2 Webserver
> 2 Datenbankserver
> 1 Loadbalancer sowohl für Webserver als auch für den Datenbank-Server.
>
> Mein Problem ist nun, ich habe keinen blassen schimmer, wie ich die Daten auf den
> jeweiligen Maschinen syncron halte. Vor allem im Worst-Case, wenn eine Maschine fehlt.
>
> Soweit ich den Kunden richtig verstanden habe, soll als Datenbank-Server mySQL laufen.
> Ich meine da was gehört zu haben, dass mySQL4 ein sogn. HotReplicant unterstützt.
> Also die Datenbanken auf 2 Servern syncron zu halten. Is da was dran?
>
> Ein Bekannter wiederrum meinte, ich sollte den Krempel in Clustern verwalten.
> Macht das Sinn? Ich mein bei jeweils 2 Servern? Wäre der Arbeitsaufwand dafür nicht zu hoch?
Erstens stellt sich mir hier die Frage, ob die Datenbanken nur für die
Webserver da sind, also die typische Anwendung für dynamische Webseiten,
oder ob da noch anderes dranhängt. Ich gehe jetzt mal von ersterm aus.
1. Loadbalancer und Webserver: kein problem für statische Anfragen,
Software: schau Dir mal "pen" an.
Problem: Datenabgleich, also Änderung auf einem Server muß auf
anderem Nachgezogen werden.
Mögliche Lösung: Änderungen nur auf einem Server zulassen und
syncronisieren, z.B. rsync
Problem: Uploads über Webseiten von Usern. Muß vom Loadbalancer
sichergestellt sein, daß das immer auf dem gleichen Rechner landet,
dazu kenn ich pen zu wenig.
2. Loadbalancer und SPOF (Single Point of Failure): Es ist zwar schön,
wenn Du die Webserver redundant hast, aber was machst Du wenn der
Balancer ausfällt.
mögl. Lösung: den Loadbalancer überwachen und bei Ausfall die IP des
Balancers auf einen Webserver übernehmen. Kann man gut mit heartbeat
realisieren, sogar bei Ausfall von Balancer und erstem Webserver, die
dritte Maschine die Daten ausliefert.
3. Loadbalancer und Datenbank, hier MySQL.
vergiss es.
MySQL hat ein Replicationsmechanismus, der auch sehr gut
funktioniert, aber nicht bei gleichzeitigem Zugriff in beide
Richtungen.
Ich habe eine Art Cold-Standby mit MySQL realisiert, da bei meiner
Anwendung sichergestelt ist, daß immer nur einer der beiden
MySQL-Server aktiv ist, zumindest pro DB. D.h. der eine Server ist
Master für den anderen und umgekehrt.
Hier kommt jetzt meine obige Annahme ins Spiel, daß die DB-Server nur
von den Webservern benutzt werden:
Ich kann mir _keine_ Anwendung vorstellen, bei der 2 Webserver einen
Datenbankserver dermaßen auslasten, das ein Loadbalancing auf mehrere
nötig ist. Dann wären entweder die Hardware der Webserver über- oder
die des DB-Server unterdimensioniert.
Wenn also wirklich die DB-SErver nur von den Webserver benutzt
werden, könntest Du eine solche Zwei-Wege-Replikation realiseren.
Wenn Du die Webserver-Applikationen auch noch dazu bringst nur über
TCP/IP mit dem DB-Server zu kommunizieren, dann kannst Du wiederum
mit heartbeat eine Redundanz aufbauen.
> Ich freu mich über jeden konstruktiven Beitrag. :))
Viel Spaß, das ist eine sehr große Menge Arbeit.
--
Jörg Friedrich
Reply to: