Load Balancing sichert Web-Auftritt

18.04.2002
Von Michael Kachel

Aus dem Blickwinkel des Anbieters führen diese Erwartungen zu mehreren Forderungen. Das Angebot muss schnell verfügbar sein (kurze Reaktions- und Ladezeit), und es muss über ein Web-System geliefert werden, das verschlüsselte Verbindungen unterstützt.

Die Lösung lautet Server Load Balancing und bezeichnet die Verteilung von Serviceanfragen auf eine Gruppe von Servern. Ein Load Balancer ist ein Netzwerkgerät, das einer Server-Farm vorangestellt ist. Die Server-Farm kann unterschiedliche Dienste anbieten und besteht dann etwa aus Web-, ftp-, LDAP-, DNS- oder Streaming-Video-Servern.

Der Balancer steht als transparenter Proxy vor dieser Farm und nimmt die eintreffenden Anfragen entgegen. Dem Balancer sind je Dienst (zum Beispiel http) zwei oder mehrere reale Server zugeordnet. Der Inhalt eines bestimmten Dienstes, etwa eine spezielle Homepage, liegt dabei auf mindestens zwei Servern in identischer Form vor. Auf dem Balancer werden solche identischen Inhalte zu einer logischen Einheit zusammengeführt. Dabei spricht man von "virtuellen Diensten". Repräsentiert werden solche virtuellen Dienste durch eine IP-Adresse, die man dementsprechend auch als "virtuelle IP" bezeichnet.

Der Balancer kennt die Verteilung der Inhalte ebenso wie die Kapazitäten, die Auslastung und die Verfügbarkeit jedes einzelnen Servers. Durch "Health-Checks" wird sichergestellt, dass der Balancer sowohl Server- als auch Serviceausfälle erkennt. Die entsprechenden Inhalte werden von den übrigen verfügbaren Diensten in das virtuelle Cluster übernommen.

Normalerweise stehen dem Balancer mehrere Mechanismen zur Verfügung, um die Verteilung der Anfragen zu verwalten - man spricht von "Scheduling Methods". Zusätzlich kann es auf den realen Servern Dienste geben, für die eine persistente Verbindung wünschenswert ist. Mit Persistenz wird sichergestellt, dass innerhalb einer definierten Zeit spezielle User Sessions zu einem bestimmten realen Server aufrechterhalten bleiben. Das gilt insbesondere für E-Commerce-Transaktionen, bei denen der Kunde im gleichen Verbindungskontext bleiben muss. Der Administrator kennt die Notwendigkeit dieser Persistenz und wird diese Option beim Load Balancer aktivieren.

Der Prozess sieht dann folgendermaßen aus: Der Balancer erhält eine Anfrage und stellt die zugeordneten realen Server für den gewünschten Dienst sowie die zugehörige Scheduling Method fest. Dann leitet er die Anfrage an das dafür am besten geeignete System etwa mit der geringsten CPU-Last weiter und ergänzt bei Bedarf die für eine persistente Verbindung benötigte Information. Die nächste Anfrage desselben Kunden wird ebenfalls zu diesem Server geleitet.