[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: