[buug-l] Webserver/Datenbank ausfallsicher

Alexander Stielau aleks at oerks.de
Die Mar 30 10:50:32 CEST 2004


Am Mon, Mar 29, 2004 at 07:39:03PM +0200 schrieb Carsten Wartmann:

> Man stelle sich eine sehr wichtige Datenbank vor, mit
> Webfrontend. Übertragende Datenmengen und Zugriffe sind nur sehr
> gering, ABER wenn jemand die Datenbank abfragen will sollte das auch
> funktionieren.

Neben den geschilderten Lösungen gibt es noch eine weitere, die
allerdings nicht den Ausfall der Außenanbindung berücksichtigt, und
davon ausgeht, daß die Systeme eher nah beieinander stehen.

Dies ist also keine Lösung gegen Katastrophen wie Flugzeugabstürze aufs
RZ, ebenso muß das (eventuell benötigte) Backup der Außenanbindung
eigenständig betrachtet werden.

Dafür ist die Lösung sehr kostengünstig.

> Meine Grundidee war es zwei Server zu nehmen bei möglichst
> infrastrukturmäßig getrennten Providern und wenn einer Ausfällt
> übernimmt der Andere....

Siehe oben, ansonsten ja.
Als Softwarelösung unter $unixoides OS gibts z.B. failover.
http://failover.othello.ch/

Wir benutzen dies bei Kunden in verschiedenen Konstellationen, z.B. um
Serverausfallsicherheit zu erzeugen (bei Firewalls, Datenbankservern,
Mailservern).

Failover hat allerdings eine gewisse Latenz, bis es auf das andere
System umschaltet (max. 30 Sekunden).
Dabei wird einfach die IP mit auf das andere System genommen.

Um die Übernahme/Abgleich der Daten kümmert sich failover nicht, dazu
setzen wir drdb unter Oracle und ansonsten ein ziemliches wüstes
rsync-Gebilde ein. :-)

Das Problem dabei: Was passiert, wenn der Master wiedererwarten wieder
hochkommt und eigentlich die aktuelleren Daten hat, diese aber vom Slave
übergesynct bekommt?
 
> Hört sich für mich nicht schlecht an (bitte um Korrektur), Fragen die
> mir einfallen (für die ich aber anscheinend nicht die richtigen
> Keywords habe um sie mit Google&Co zu beantworten):
> 
> - geht sowas mit zwei Servern (als so ab "Root"-Server)? Was ich
> bisher gesehen habe baut irgendwie eher auf Lastverteilung und es sind
> immer noch Proxy Server vorhanden die Verteilen und was wenn die nicht
> laufen?)

Das Problem bei zwei getrennt stehenden r00t-Servern ist das Routing -
diese werden ja nicht im gleichen Netzblock sein, wenn Du bei
unterschiedlichen Anbieten Systeme benutzt.
D.h., dort benötigst Du eine Lösung, die an einem dritten Ort steht, und
sich intern um die Umsetzung der Anfragen kümmert (Marios Ansatz).

Wenn Du beide r00t-Server beim gleichen Anbieter stehen hast, ist das
latürnich kein Problem, und die sind in der Regel auch gut gegen
Ausfälle der Außenanbindung gewappnet.
Ich weiß allerdings nicht, ob deren NOC es besonders witzig findet, wenn
eine IP wandert, bzw. ob deren Switche dies überhaupt erlauben (MAC auf
bestimmte Ports gelockt usw). 
Wenn die MA dort auf Zack sind, geht das zumindest nicht ohne vorherige
Absprache.
Ebenso ist bei Einsatz von drdb zu klären, ob interner Traffic (es wird
immer auf beide Systeme geschrieben) anders oder gar nicht abgerechnet
wird.

> - An sich müsste man ja den DNS Eintrag ändern wenn ein Server
> wegfällt, aber das dauert ja wahrscheinlich etwas (Minuten? Stunden?)
> und diese Minuten hätte man bei der Anwendung nicht.

DNS ist dafür viel zu langsam, und Du hast nicht wirklich unter Kontrolle, 
wer wo wie DNS-Informationen cached, selbst, wenn dein DNS-Server nur
sehr kurze ttls setzt.
-- 
Wenn Sie mich suchen, ich halte mich in der Nähe des Wahnsinns auf, genauer 
gesagt auf der schmalen Linie zwischen Wahnsinn und Panik, gleich um die 
Ecke von Todesangst, nicht weit weg von Irrwitz und Idiotie!  					
       				Bernd -- Brot und Endzeitphilosoph im KiKa