Bernd Leitenbergers Blog

Hochverfügbarkeit am Beispiel einer Webpräsentation oder eines Webshops 2

So heute der zweite Teil des Gastbeitrages von Andreas Buschmann, der erste Teil erschien gestern.

Teil 2

Einführung von Redundanten Elementen

Wenn die Verfügbarkeit einer Hot Standby Lösung nicht ausreichend ist, oder eine Hot Standby Lösung nicht möglich ist, gibt es die Möglichkeit Redundante Elemente einzusetzen.

Redundante Server

zwei oder mehr baugleiche Server sind gleichzeitig aktiv, und arbeiten parallel.

Bei einem Ausfall eines der Server übernimmt der/die verbleibenden Server die volle Last.

Für die Verteilung der http Requests auf die Server ist ein Loadbalancer erforderlich, der die eingehenden Requests auf die vorhandenen verfügbaren Server verteilt.

Weiterhin ist ein Mechanismus erforderlich, der die Daten zwischen den Servern konsistent hält.

Das wieder aktivieren eines ausgefallenen Servers muß in der Regel manuell geschehen, da vorher die Konsistenz der Daten gesichert werden muß.

Single point of failure ist jetzt nicht mehr der Webserver, sondern der Loadbalancer und die Datenhaltung.

Loadbalancer

Wenn aus Last- oder aus Verfügbarkeitsgründen eine Webseite von mehreren Servern parallel präsentiert werden soll, ist ein Loadbalancer zwischen Webbrowser und Webserver erforderlich.

Die Einführung eines Loadbalancers erzeugt mehrere Probleme:

 

 

Datenhaltung

Ab Hot Standby Servern ist die Synchronisation der Datenhaltung ein Problem, welches vom Design der Webpräsentation bzw. des Webshops berücksichtigt werden muß.

Bei einer reinen Webpräsentation, die keine Daten welche sie vom Webbrowser entgegen nimmt persistent speichern muß, besteht noch die Möglichkeit alle Dateien über ein spezielles FTP Programm hochzuladen, welche jede Datei auf alle verfügbaren Webserver verteilt, bevor die Datei als hochgeladen markiert wird.

Wenn ein in Wartung befindlicher Server wieder aktiv geschaltet werden soll, muß die folgende Reihenfolge eingehalten werden, um die Konsistenz der Daten zu gewährleisten:

Wenn das nicht möglich ist, oder die Webserver auf ihren Datenbestand selbst schreiben sollen ist eine andere Lösung erforderlich.

Verwendet werden können:

Virtualisierung

Eine Virtualisierung löst hier keine Probleme, sondern erzeugt zusätzliche Wartungszeiten.
Ansonsten wie Virtualisierung ohne redundante Elemente.

Verteilung auf mehrere Standorte

Die Voraussetzung hier ist, daß man die redundanten Elemente schon im Griff hat.

Zwei Standorte

Die Loadbalancer werden auf beide Standorte verteilt.

Die Server werden auf beide Standorte verteilt.

Datenkonsistenz

Es sind zwei NFS Server oder zwei NFS Appliances erforderlich, die im Master Slave Betrieb jeweils die Daten vom primären Gerät auf das standby Gerät spiegeln.

Zur Optimierung können ggf. die Daten in zwei Partitionen unterteilt werden, so daß jedes Gerät für eine Partition Master ist.

Wenn die Standorte mehr als N km von einander entfernt sind, ist eine synchrone Spiegelung nicht mehr möglich, da dadurch die Schreibgeschwindigkeit zu sehr beeinträchtigt wird.

Eine asynchrone Spiegelung erzeugt aber einen Datenverlust beim Umschalten vom primären auf das standby Gerät.

Das Umschalten muß beim asynchronen Spiegeln manuell gemacht werden.

Drei Standorte

Loadbalancer

Datenhaltung

Datenkonsistenz

zum Thema verteilte bzw. replizierte Datenhaltung schreibe ich noch einen eigenen Artikel.

geplante Downtimes

geplante Downtimes sind:

ungeplante Downtimes

weitere Artikel

Für nähere Details werde ich eigene Artikel schreiben.
Insbesondere will ich auf die Datenhaltung für Hochverfügbare Systeme eingehen.

Die mobile Version verlassen