Load Balancer

Damit E-Commerce-Sites nicht unter der Last der Anfragen zusammenbrechen, verteilen Load Balancer die Aufgaben auf die einzelnen Systeme.

Artikel erschienen in Swiss IT Magazine 2000/35

     

E-Business-Strategien können an vielen Fehlern scheitern. Die häufigsten sind aber sicherlich fehlende Kundenorientierung und Fehler in der Implementierung. Anwender, die über das Internet Transaktionen abwickeln möchten oder Informationen suchen, erwarten 7x24 Stunden Verfügbarkeit - und dies mit hoher Geschwindigkeit. Das erfordert skalierbare Systeme, die auch einem schnellen Anstieg der Last gewachsen sind. Load-Balancing-Lösungen für die Verteilung der Anforderungen aus dem Internet sind dabei ein wichtiger Baustein.




Load Balancer sind aber immer nur Teil einer Gesamtstrategie für hochskalierbare und hochverfügbare E-Business-Anwendungen. Ihre Aufgabe ist es, die eingehenden Anforderungen in Abhängigkeit von Auslastung und Antwortverhalten über eine Gruppe von Servern zu verteilen. Die Webserver wiederum beantworten Teile der Abfragen. Die eigentlichen Anwendungskomponenten, also die Business-Logik, liegt aber auf einer zweiten Serverebene. Skalierbarkeit wird für Anwendungskomponenten ebenso wie für die verwendeten Datenbankserver durch Cluster-Lösungen erreicht.


Load Balancing vs. Clustering

Der grundlegende Unterschied zwischen Load Balancing und Clustering liegt im Umfang der Kommunikation zwischen den verschiedenen Servern. Beim Load Balancing geht es nur darum, dass eine zentrale Komponente eingehende Requests verteilt. Die beteiligten Webserver kommunizieren untereinander aber nicht oder nur sehr eingeschränkt. Der Load Balancer erkennt, wenn ein Server ausgefallen ist, und leitet dann keine Anforderungen mehr an dieses System. Das Wiederaufsetzen einer ausgefallenen Verbindung oder ähnliche Massnahmen werden aber nicht unterstützt. In einem Cluster werden die Inhalte und Prozesse der Server dagegen ständig synchronisiert. Das setzt Anwendungen und Betriebssysteme voraus, die solche Aufgaben unterstützen. Cluster-Lösungen finden sich gleichermassen für Unix und Linux wie auch für Windows NT und Windows 2000 mittlerweile in relativ grosser Zahl und unterschiedlichsten Ausprägungen am Markt, wobei grundsätzlich zwischen Failover- und Load-Balancing-Lösungen unterschieden werden muss. Die meisten angebotenen Systeme unterstützen heute aber beide Funktionen.



Damit ist es aber noch keineswegs getan. Bei Websites, bei denen sehr viel Content bereitgestellt werden muss und die transaktionsorientierten Funktionen von eher untergeordneter Bedeutung sind, spielen auch Caching Appliances eine wichtige Rolle, über die eine optimierte Content-Auslieferung erfolgen kann. Datenbank-, Web- und Anwendungsserver müssen zudem auch auf optimierte Speichersysteme, zunehmend in Form von Storage Area Networks, zugreifen können. Alle diese Bereiche müssen in optimaler Weise realisiert sein, um Engpässe zu vermeiden. Schon ein Flaschenhals kann und wird die Leistungsfähigkeit des Gesamtsystems zunichte machen. Wenn man zudem den Aspekt der Verfügbarkeit betrachtet, werden noch redundante Leitungen und Ausfallrechenzentren benötigt.




Unter dem Aspekt der Komplexität sollte man daher vor dem Aufbau einer eigenen Infrastruktur generell überlegen, ob es nicht mehr Sinn macht, die komplette Lösung oder wesentliche Teile davon auszulagern und in einem Hosting-Center betreiben zu lassen. Die dabei entstehende geringere Kontrolle ist durchaus erwünscht, da zentrale Funktionen weiterhin aus der Ferne gesteuert werden können. Die grösste Schwierigkeit bei dem Hosting von E-Business-Anwendungen bei externen Partnern liegt in der Integration mit internen Systemen. Denn diese muss auch wieder hochverfügbar und skalierbar erfolgen, damit das gewünschte Gesamtergebnis erzielt werden kann.




Load-Balancing-Varianten

Für viele Kunden werden aber eigene Lösungen unverzichtbar bleiben. Man denke hier nur an Banken, die aufgrund der sensiblen Daten eben nur in sehr eingeschränktem Umfang auslagern können. Load-Balancing-Systeme, die in den meisten Fällen über Hardware-Komponenten realisiert werden, stellen dabei ein wichtiges Element dar. Grundsätzlich lässt sich zwischen drei Konzepten unterscheiden.




Softwarelösungen: Load-Balancing-Lösungen, die rein Software-basiert sind, werden oft in bestehende Systemsoftware integriert, wie dies etwa bei Microsofts Windows 2000 der Fall ist. Weitere Hersteller sind IBM, Novell oder Resonate.





Switches: Hierbei handelt es sich um herkömmliche Ethernet-Switches, die mit integrierter Load-Balancing-Funktionalität ausgestattet wurden.




Appliances: Diese Load-Balancing-Lösungen kommen als eigentliche Server, die als Load Balancer zum Einsatz kommen.


Die Funktionsweise

Die Load-Balancing-Systeme können nach einer Reihe unterschiedlicher Algorithmen arbeiten. Dazu gehören Regeln auf Basis der Prozessorauslastung von Servern, ihren Antwortzeiten oder der aktuellen Anzahl von Verbindungen. Ganz trivial ist das Round-Robin-Verfahren, bei dem die Anfragen der Reihe nach auf verschiedene Server verteilt werden. Dieser Ansatz ist aber wenig effizient, da es vorkommen kann, dass so einzelne Server wesentlich stärker als andere Systeme belastet werden. Ausserdem wird davon ausgegangen, dass alle Server gleich leistungsstark sind.



Im Idealfall sollten Load-Balancing-Systeme in der Lage sein, mehrere Algorithmen zu kombinieren und insbesondere auch eine Content-Analyse durchzuführen. Durch Analyse von URL und Cookies können beispielsweise Anforderungen gezielt bestimmten Servern zugestellt werden. Damit lässt sich auch eine optimierte Performance für ausgewählte Kundengruppen oder Dienstleistungen erreichen.




Wichtig ist auch, dass die Load Balancer selbst redundant ausgelegt werden können, um zu verhindern, dass beim Ausfall eines solchen Verteilsystems die komplette Website nicht mehr verfügbar ist. Diese Funktion wird aber mittlerweile auch von Einstiegssystemen wie Phobos' ipXpress unterstützt. Eine weitere wichtige Anforderung stellt die Unterstützung von SSL-Verbindungen dar. Solche Verbindungen sind wesentlich aufwendiger in der Handhabung und erfordern bei fehlertoleranten Lösungen auch, dass sich die Load Balancer untereinander synchronisieren, um beim Ausfall eines der beiden Systeme die SSL-Verbindungen nicht lastintensiv neu aushandeln zu müssen. Phobos bietet speziell für diese Funktionalität beispielsweise das Produkt sslXpress an.




Lösungen für Einsteiger

Der Einstiegspreis für Hardware-basierende Load-Balancing-Systeme liegt bei etwa 7500 Franken. Eine günstigere Alternative stellt der Phobos IN-Switch dar, ein PCI-Adapter, der in einen der Server im Cluster eingefügt wird. Diese Lösung bietet eine exzellente Performance. Der Phobos IN-Switch arbeitet mit eigenem Prozessor und Speicher unabhängig von dem System, in das er integriert ist, und verteilt die Anforderungen im Cluster. Da auch ein Failover zu einem zweiten mit dem Phobos IN-Switch ausgestatteten System im Cluster angeboten wird, ist dies mit 4350 Franken eine der interessantesten Einstiegslösungen. Eine gewichtige Einschränkung gibt es allerdings: Die Verteilung kann nicht auf Layer 7 unter Analyse von URL- und Cookie-Informationen erfolgen.



Eine weitere Lösung in diesem Einstiegsbereich ist der Coyote Equalizer, der mit rund 10'000 Franken ebenfalls noch einen vergleichsweise niedrigen Einstiegspreis hat. Auch hier gibt es eine Erweiterung für SSL-Load-Balancing.





High-end-Lösungen

Wenn dagegen eine Analyse von Informationen auf Layer 9 benötigt wird, schlägt die Stunde für komplexere Load Balancer. Diese Produkte, seien es Appliances oder Switches, bewegen sich aber in einem Preisbereich von deutlich über 50'000 Franken für die aus Verfügbarkeitsgründen minimal benötigten zwei Geräte. Nach oben können die Kosten je nach Anbieter auch die 100'000er Marke überschreiten. Hier muss dann gut überlegt werden, ob solche Lösungen wirklich erforderlich sind. Denn die einfacheren Load-Balancing-Systeme können ebenso wie Software-basierende Lösungen die meisten Anforderungen für einen Bruchteil dieses Preises abdecken oder werden, wie bei Windows 2000, sogar kostenlos mit dem Betriebssystem ausgeliefert.





Kriterien für die Evaluation

Auswahlkriterien für solche Switches sind die implementierten Algorithmen für das Load Balancing, die Unterstützung eines geografisch verteilten Betriebs, die maximale Zahl an Servern und natürlich der Durchsatz, der erreichbar ist. Hier gilt aber, dass alle Lösungen in einem Bereich von mindestens 200 Mbps liegen und damit die aktuellen Anforderungen ohne weiteres abdecken können. Mit Werten von mindestens 10'000 Verbindungen pro Sekunde sind die Systeme ebenfalls auf eine sehr hohe Last ausgerichtet.



Hydraweb bietet mit seiner Produktfamilie eine Reihe von Lösungen für das anwendungsorientierte Load Balancing. Die Produkte bieten umfassende Management-Funktionen, wobei auch persistente Sitzungen unterstützt werden. Die Hydraweb-Lösung wird nur paarweise verkauft.




Von den reinen Leistungsdaten am beeindruckendsten ist der Alteon 180e. Dieser Load Balancer arbeitet als Switch und unterstützt bis zu acht Kanäle, die auf 10, 100 oder 1000 Mbps umschaltbar sind. Dabei werden bis zu 344'000 Verbindungen pro Sekunde unterstützt - ein Bereich, bei dem die Anbindung an das Internet schon längst selbst den Engpass darstellen wird.



Ein Klassiker unter den Load-Balancing-Lösungen ist der Cisco Local Director 430. Gerade in Cisco-basierenden Umgebungen ist diese Load Balancing Appliance erste Wahl. Auch hier werden mittlerweile persistente Sitzungen unterstützt.



Von F5 Networks stammt die Load Balancing Appliance BIG/ip HA+. Diese Lösung weist eine umfassende Funktionalität auf - im Gegensatz beispielsweise zum Foundry Server Iron XL, der beispielsweise kein SSL für das Remote-Management bietet. Dafür unterstützt dieser Switch aber eine Reihe unterschiedlicher Ansätze für persistente Verbindungen. Spezielle Funktionen für den Microsoft Internet Information Server bietet schliesslich der Radware Web Server Director Pro+, der auch die Auslastung des IIS analysieren und bei der Lastverteilung berücksichtigen kann.




Die richtige Wahl

Der Markt ist zur Zeit auch noch stark in Bewegung. Zunächst gilt es, eine grundsätzliche Entscheidung darüber zu treffen, ob und in welchem Umfang Webserver-Farmen und E-Business-Anwendungen überhaupt im eigenen Unternehmen betrieben werden können. Falls dies unumgänglich ist, spielen die zu erwartende Last und die eingesetzten Betriebssysteme eine wichtige Rolle. Im Windows-2000-Umfeld sind etwa viele der benötigten Funktionen in das Betriebssystem integriert.



Bei sehr hohen Anforderungen sind Hardware-basierende Lösungen allerdings unausweichlich. Wenn dann allerdings eine Entscheidung für eine Hardware-Lösung fällt, dann sollte diese auch Load Balancing auf Applikationsebene unterstützen. Denn nur dann ist eine optimale Lastverteilung erreichbar. Hier kann eine Entscheidung im Kontext der jeweiligen IT-Infrastruktur getroffen werden.





Load Balancing per Software

Wie eingangs erwähnt, muss Load Balancing nicht zwingend über Hardware-Lösungen erfolgen. Mit Windows 2000 und als Add-On zum Windows NT 4.0 Server,
Enterprise Edition, wird etwa eine Software-basierende Load Balancing-Lösung von Microsoft geliefert. Diese wird unter Windows NT 4.0 noch als Windows NT Load Balancing (WLB) bezeichnet und bei Windows 2000 Network Load Balancing genannt. Die Funktionalität ist im Vergleich zu den Hardware-basierenden Systemen vergleichsweise gering. Mit einer Beschränkung auf maximal 32 Server und eingeschränkten Analysefunktionen für die eingehenden IP-Pakete handelt es sich sicherlich nicht um die Lösung, die von ISPs in ihren Serverfarmen eingesetzt werden wird. NLB ist dafür aber ein kostenloser Bestandteil des Windows 2000 Advanced Server und von Windows 2000 Datacenter Server. In sehr vielen Situationen wird die Leistung dieser Lösung vollkommen ausreichen. NLB erfordert zudem durch seine Realisierung als Teil des Netzwerk-Stacks von Windows 2000 nur einen geringen Konfigurationsaufwand. Wer mit Windows 2000 als Basis für Webservices arbeitet, sollte sich auf jeden Fall NLB für seinen Einsatzbereich zunächst genau betrachten, bevor die Investition in eine Hardware-basierende Load-Balancing-Lösung getätigt wird. Daneben gibt es beispielsweise von Resonate mit dem Central Dispatch auch noch wesentlich leistungsfähigere Load-Balancing-Software.
Übrigens hat auch Novell mittlerweile mit den NetWare Cluster Services for NetWare 5 eine vergleichbare Lösung im Portfolio. Auch hier kann eine Verteilung von eingehenden Anforderungen über bis zu 32 Servern erfolgen, wobei zusätzlich auch noch Failover-Clustering unterstützt wird - eine Funktion, die bei Windows 2000 von den integrierten Cluster-Diensten übernommen wird.




Zu diesem Produktesegment zählt auch IBMs WebSphere Edge Server, in den der IBM SecureWay Network Dispatcher integriert wurde. Im Gegensatz zu den Lösungen von Microsoft und Novell ist das IBM-Produkt für verschiedene Server-Plattformen verfügbar.



Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Was für Schuhe trug der gestiefelte Kater?
GOLD SPONSOREN
SPONSOREN & PARTNER