Bei Performance- und Verfügbarkeitsproblemen

Load Balancing sichert Web-Auftritt

12.04.2002
Ob E-Commerce-Unternehmen, Behörden oder Organisationen: Sie alle haben gelernt, dass Performance und Verfügbarkeit entscheidende Kriterien für Internet-Auftritte sind. Load Balancer sind dafür ein wichtiges Instrument. Von Michael Kachel*

Es gilt die Acht-Sekunden-Regel: Braucht eine Seite länger zum Laden, dann wird der Kunde wahrscheinlich abwandern. Die Verfügbarkeit der Website hat direkten Einfluss auf die Kundenzufriedenheit, das Image der Firma und die Marktanteile des Unternehmens. Angesichts des Risikos, an Ansehen zu verlieren oder gar Geschäftseinbußen hinnehmen zu müssen, versuchen Anbieter jeder Branche, ihre Netze zu verbessern.

Dabei macht es keinen Unterschied, ob ein Anbieter über zwei oder zwanzig Web-Server verfügt - der Nutzer erwartet in allen Fällen dasselbe: Er will einen performanten Dienst erreichen und nutzen können. Wenn der Zugang im Zusammenhang mit finanziellen oder diskreten Transaktionen steht, setzt er darüber hinaus voraus, dass eine gesicherte Verbindung besteht.

Schnelle Dienste sind gefragtAus 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.

Das Verfahren des Load Balancing über virtuelle Cluster bietet eine hohe Performance (kurze Antwortzeiten auch während Spitzenlasten) und Verfügbarkeit. Vorteile gibt es ebenso hinsichtlich der Skalierbarkeit: Viele Anwendungen sind im Laufe der Zeit so ausgelastet, dass ein einzelner Server die erforderliche Leistung nicht mehr bringen kann. Es lässt sich zwar neue Hardware integrieren, das Risiko einer Unter- oder Überdimensionierung bleibt jedoch bestehen. Außerdem kann die alte Hardware in diesem Kontext nicht mehr verwendet werden. Mit einem Balancer lässt sich neue Hardware in beliebiger Abstufung integrieren und dabei die bisherige weiterverwenden.

Die drei Balancing-KategorienGrundsätzlich gibt es drei verschiedene Kategorien des Load Balancing: DNS round robin, integriertes Load Balancing und dediziertes Load Balancing. DNS round robin verwendet als einfachste und noch weit verbreitete Methode ein Feature von "Bind", die Berkeley Implementation des Domain Name Service (DNS). Dafür muss lediglich die Liste der realen Server als A-Einträge im Name Server zusammen mit den zugehörigen "C-Name"-Einträgen kombiniert werden. Immer wenn eine Anfrage für eine Domain eintrifft, gibt DNS die entsprechend zugeordneten IP-Adressen in rotierender Folge aus. Auf diesem Weg werden die Anfragen über die verschiedenen Server verteilt.

Dabei tauchen jedoch mehrere Probleme auf. Das erste ist, dass DNS-Namensauflösungen im Netz gecacht werden können und demnach nachfolgende Anfragen zur Namensauflösung nicht mehr im round robin aufgelöst, sondern aus dem Cache bedient werden. Solche Anfragen werden damit immer auf ein und denselben Server geleitet: das Gegenteil von Balancing.

Das größte Problem besteht allerdings darin, dass DNS round robin nicht erkennt, ob ein Server ausgefallen ist. Wenn die Anfrage für einen Namen in eine IP-Adresse aufgelöst wurde und dieser bestimmte Server beziehungsweise der darauf befindliche Dienst ausgefallen ist - geplant oder ungeplant -, werden die Anfragen weiter dorthin geleitet.

Integriertes Load Balancing bietet zum Beispiel Windows 2000, Module für den auf Unix oder Linux betriebenen Apache Web-Server oder IBMs Websphere. Jede dieser Lösungen verfügt über Vor- und Nachteile und erbringt eine unterschiedliche Performance. Der wichtigste Punkt ist, dass der Nutzer an die spezifischen Möglichkeiten des jeweiligen Systems gebunden ist. Microsofts Load-Balancing-Feature wird von dem weltweit am meisten genutzten Apache nicht unterstützt, umgekehrt können die Apache-Module nicht auf Microsofts "Internet Information Server" (IIS) arbeiten.

Performance-Probleme möglichBei integrierter Load-Balancing-Intelligenz handelt es sich meist um Softwarelösungen, die im "Usermode/Applicationlevel" arbeiten. Damit kann es rasch zu einem Performance-Problem kommen. Mag jedes dieser Features in einem eingeschränkten Bereich nützlich sein, keines von ihnen stellt eine unabhängige, performante TCP/UDP-basierende Load-Balancing-Lösung dar.

Beim dedizierten Load Balancing unterscheidet man drei Varianten: Hardware- oder Switch-Balancer, Softwareprodukte sowie Network Appliances (hybride Systeme). Im Bereich Hardware ist die Intelligenz zur Lastverteilung überwiegend direkt in die Geräte "gegossen". Oft werden dafür Asics mit zugeordneten Risc-Prozessoren verwendet. Die Leistungsfähigkeit für das Traffic-Management ist demzufolge sehr gut. Die Balancing-Funktion stellt hierbei eine Erweiterung der Switch-Funktion dar. Mitunter können aber nicht alle Teile des Balancings von Asics bearbeitet werden. Manche Funktionen muss separate Software erledigen, wobei dann der Hauptprozessor des Geräts in die Pflicht genommen wird. Erfahrungsberichte zeigen, dass die Geräte oft wenig benutzerfreundlich und flexibel sind.

Effizienz schlecht einzuschätzenDas ist bei Softwarelösungen anders. Ihr größter Vorteil besteht in der Benutzerfreundlichkeit sowie in der Möglichkeit, relativ einfach weitere Features zu integrieren oder Upgrades aufzuspielen. Ein Nachteil ist hier die Installation und die Schaffung der dafür benötigten Systemvoraussetzungen. Performance und Zuverlässigkeit hängen von der Qualität des Gesamtsystems ab, so dass sich nur schwer bestimmen lässt, wie effizient eine Softwarelösung letztlich arbeiten wird.

Network Appliances oder hybride Systeme können die Vorteile der hard- und softwarebasierenden Varianten verbinden. Eine performante, zuverlässige Hardware soll mit einer benutzerfreundlichen und flexiblen Software verbunden werden. Network Appliances, auch als Black Box bezeichnet, basieren meist auf bewährten Vielzweck-Betriebssystemen wie Linux oder BSD, setzen auf standardisierter Industriehardware auf und bieten die Möglichkeit für Updates oder Treiberverbesserungen. Im Durchschnitt sind diese Systeme günstiger als Lösungen aus dem Hard- oder Softwarebereich.

Welches Load Balancing das passende ist, hängt von mehreren Faktoren ab, so etwa von den Charakteristika des Datenverkehrs. Treten Spitzenlasten auf, sind Softwareapplikationen wahrscheinlich nicht die richtige Wahl, da sie normalerweise im ressourcenverbrauchenden Usermode arbeiten.

Fragen stellen sich unter anderem auch hinsichtlich des Budgets: Rechtfertigt das Datenaufkommen einen hoch performanten Switching Balancer für 50000 Dollar? Technisch ist zu klären, ob die Notwendigkeit besteht, eine Lastverteilung auf der Basis von Cookies, Session-IDs oder Teilen der URL vorzunehmen. Dann könnte es sein, dass man einen Load Balancer benötigt, der Layer-7-Features unterstützt. Wenn es diese Anforderungen nicht oder noch nicht gibt, reicht eventuell eine preiswertere Lösung, die auf den Schichten 3 und 4 arbeitet.

Load Balancing hat sich zu einem Muss entwickelt, um den wachsenden Internet-Datenverkehr zu verwalten. Der Markt bietet inzwischen für die gestiegenen Kundenanforderungen ein erfreulich großes Spektrum an Produkten. Wer seine Anforderungen sorgfältig analysiert, wird hier die passende Lösung finden. (ue)

*Michael Kachel ist Product Manager der Brain Force Software GmbH in Unterschleißheim.

Abb.: Appliance-Beispiel

Ein zwischen Firewall und Upload-Server positionierter Load-Balancing-Appliance regelt bei Foto Quelle die Datenströme, wenn Kunden ihre Digitalbilder zur Umsetzung auf Papier via Internet an den Bilderservice schicken. (Quelle: Brain Force)