Kapitel 9. Linux Virtual Server Überblick

Wie in der Einleitung erwähnt, Red Hat Enterprise Linux LVS-Clustering benutzt einen Linux-Server, aktiver Router genannt, um Anforderungen aus dem Internet zu einer Gruppe von Servern weiterzuleiten. Um dies zu erzielen, bestehen LVS Cluster aus zwei grundlegenden Klassifikationen von Servern — den LVS Routern (ein aktiver und einer als Backup) und einer Gruppe von realen Servern, welche die kritischen Services bereitstellen.

Der aktive Router hat zwei Aufgaben im Cluster:

Die Aufgabe des Backup Router ist es, den aktiven Router zu überwachen, und dessen Rolle im Falle eines Ausfalls zu übernehmen.

9.1. Eine LVS Grundkonfiguration

Abbildung 9-1 zeigt einen einfachen aus zwei Schichten bestehenden LVS Cluster. Die erste Schicht besteht aus zwei LVS Routern — einem aktiven und einem als Backup. Jeder dieser LVS Router hat zwei Netzwerk-Schnittstellen, eine Schnittstelle zum Internet und die andere zum privaten Netzwerk. Dies ermöglicht es den Routern den Verkehr zwischen den zwei Netzwerken zu regulieren. In diesem Beispiel benutzt der aktive Router Network Address Translation oder NAT um den Verkehr vom Internet über eine variable Anzahl von realen Servern der zweiten Schicht zu verteilen, welche dann die notwendigen Services bereitstellen. Die realen Server in diesem Beispiel sind deswegen zu einem speziell abgestellten privaten Netzwerk verbunden und erhalten und beantworten alle öffentliche Anfragen durch den aktiven LVS Router. Von Außen, erscheint diese Server-Farm als eine Einheit.

Abbildung 9-1. Eine LVS Grundkonfiguration

Am LVS Cluster eingehende Service-Anforderungen sind an eine virtuelle IP-Adresse oder VIP gestellt. Dies ist eine öffentlich angegebene Adresse, welcher der Administrator der Seite mit einem vollständig qualifizierten Domain-Name, wie www.example.com, assoziiert und welche einem oder mehreren virtuellen Servern [1] zugewiesen ist. Abbildung 9-1 zeigt lediglich eine virtuelle IP Adresse, aber es können mehr als eine existieren. Wichtig zu Behalten ist, dass eine VIP Adresse von einem auf den anderen LVS Router während einem Failover übergeben wird, um eine Präsenz an dieser IP Adresse beizubehalten. Als solche, können diese IP Adressen als schwebende IP Adressen verstanden werden.

VIP Adressen können einen Alias zu dem Gerät erhalten, welches den LVS Router zum Internet verbindet. Ist, zum Beispiel, eth0 mit dem Internet verbunden, dann können mehrere virtuelle Server einen Alias zu eth0:1 erhalten. Als Alternative, kann jeder virtuelle Server mit einem eigenen Gerät pro Service assoziiert werden. HTTP-Anfragen, zum Beispiel, können auf eth0:1 und FTP-Anfragen können auf eth0:2 gehandhabt werden.

Lediglich ein LVS Router ist zu jeder Zeit aktiv. Die Aufgabe des aktiven Router ist es, Service-Anfragen von der virtuellen IP Adresse zu den realen Servern weiterzuleiten. Diese Weiterleitung ist auf einem von acht unterstützten lastausgleichenden Algorithmen basiert, welche in Abschnitt 9.3 näher beschrieben sind.

Der aktive Router überwacht zudem die Funktionsbereitschaft der entsprechenden Services auf den realen Servern dynamisch, was durch einfache Skripte (send/expect scripts) geschieht. Um die Funktionsbereitschaft der Services festzustellen, welche dynamische Daten benötigen, wie HTTPS oder SSL, kann der Administrator auch externe ausführbare Dateien aufrufen. Sollte sich ein Service auf einem realen Server fehlverhalten, wird der aktive Router keine weiteren Aufgaben zu diesem Server mehr senden, bis dieser Service wieder zur normalen Operation zurückkehrt.

Der Backup Router übernimmt die Aufgabe eines Hot-Standby Systems. In periodischen Abständen tauschen die LVS Router "I'm alive" Heartbeat-Signale über die primäre externe öffentliche Schnittstelle aus, und im Falle eines Failover über die private Schnittstelle. Sollte der Backup Server keine Heartbeat-Signale im erwarteten Intervall erhalten, wird dieser einen Failover einleiten und die Rolle des aktiven Routers übernehmen. Während einem Failover übernimmt der Backup Router die VIP Adressen des ausgefallenen Routers unter Verwendung einer Methode, welche als ARP Spoofing bekannt ist — wobei der Backup LVS Router sich als Ziel von IP Paketen bekannt gibt, welche an den ausgefallenen Server adressiert waren. Wenn der ausgefallene Server wieder in den aktiven Service eintritt, übernimmt der Backup Server wieder seine Hot-Standby Rolle.

Die einfache, zweistufige Konfiguration aus Abbildung 9-1 ist am besten geeignet für Cluster, welche sich selten ändernde Daten bereitstellen — wie statischen Web-Seiten — da die individuellen realen Server Daten nicht automatisch zwischen den einzelnen Servern synchronisieren.

9.1.1. Replikation und gemeinsame Verwendung von Daten zwischen Realen Servern

Da es im LVS Clustering keine eingebaute Methode gibt gemeinsame Daten zwischen realen Servern zu teilen, hat der Administrator grundsätzlich zwei Optionen:

  • Synchronisieren der Daten über die Gruppe von realen Servern

  • Hinzufügen einer dritten Schicht zur Topologie für den Zugriff auf gemeinsame Daten

Die erste Option ist besser für Server, welche es keiner großen Anzahl von Benutzern erlaubt Daten auf die realen Server zu laden oder auf diesen zu ändern. Wenn der Cluster es einer großen Anzahl von Benutzern erlaubt Daten zu modifizieren, wie bei einer E-Commerce Web-Seite, ist das Hinzufügen einer dritten Schicht bevorzugt.

9.1.1.1. Konfigurieren von Realen Servern zum Synchronisieren von Daten

Es gibt viele Wege in denen ein Administrator Daten über die realen Server synchronisieren kann. Zum Beispiel, können Shell-Skripte eingesetzt werden, sodass wenn ein Web-Designer eine Seite aktualisiert, diese zu allen Servern gleichzeitig übertragen wird. Auch kann der Cluster Administrator Programme wie rsync verwenden, um Daten in bestimmten Intervallen über alle Server zu synchronisieren.

Diese Art der Synchronisation von Daten arbeitet jedoch nicht richtig, wenn der Cluster eine extrem hohe Belastung von Benutzern hat, welche Dateien hochladen oder Datenbankanfragen stellen. Für Cluster mit hoher Arbeitsbelastung empfiehlt sich eine Drei-Tier Topologie.

Fußnoten

[1]

Ein virtueller Server ist ein Service, welcher zur Überwachung einer virtuellen IP konfiguriert wurde. Siehe Abschnitt 12.6 für mehr Information zum Konfigurieren eines virtuellen Servers unter Verwendung von Piranha Configuration Tool.