Bessere Serverzugriffszeiten durch Load Balancer

Zahlreiche Menschen nutzen das Internet für Recherchen und virtuelle Shoppingtouren. Dies sorgt für eine konstant steigende Auslastung der Webserver, die für die Bereitstellung von Onlineshops, Informationsportalen und Unternehmensseiten verantwortlich sind. Und parallel zum Webtraffic wächst auch der Anspruch der Nutzer. Vor allem im Dienstleistungsbereich wird eine schnelle und sichere Transaktion bei Webanwendungen vorausgesetzt. Die Verfügbarkeit einer Webseite ist somit maßgeblich mitverantwortlich dafür, ob ein Seitenbesucher vom Interessenten zum Kunden wird.

Geschäftsschädigend sind überlastete Server für Unternehmen vor allem dann, wenn sie zentrale Geschäftsbereiche ausbremsen oder gar komplett lahmlegen. Eine kostenintensive Möglichkeit, dem entgegenzuwirken, ist die Anschaffung leistungsstärkerer Servertechnik. Alternativ bietet sich allerdings auch eine effiziente Verteilung des Datenverkehrs auf mehrere Webserver an. So lässt sich nicht nur der ansteigende Traffic zu Spitzenzeiten abfangen, sondern ebenso die Ausfallsicherheit des Internetauftritts erhöhen. Dieses Vorgehen nennt sich Load Balancing. Dabei werden Serverzugriffe durch eine vorgeschaltete technische Instanz, dem sogenannten Load Balancer, gleichmäßig auf verschiedene Hardware-Ressourcen verteilt, um eine stabile Zugriffsgeschwindigkeit zu gewährleisten.

Was ist Load Balancing?

Normalerweise ist jede Domain nur einem Webserver zugeordnet. Ruft ein Internetnutzer eine Webseite durch die Eingabe der URL in die Adresszeile des Browsers auf, werden die Daten vom entsprechenden Server abgerufen. Fällt dieser wegen Überlastung aus, erhält der Nutzer eine Fehlermeldung in Form eines HTTP-Status-Codes: Die Webseite kann dann nicht angezeigt werden. Damit so etwas nicht passiert, schafft Load Balancing Abhilfe. Durch einen vorgeschalteten Load Balancer ist es möglich, einer Domain mehrere Server zuzuweisen, ohne dass es zu Adresskonflikten kommt. Dabei wird der Load Balancer unter der öffentlichen Domain angesprochen.

Die untergeordneten Webserver hingegen werden mit den Domain-Zusätzen www1, www2, www3 usw. benannt. So ermöglicht Lastverteilung, eine Internetseite unter ein und derselben URL verfügbar zu machen, obwohl sich dahinter mehrere Server verbergen. Dies wirkt einer Serverüberlastung entgegen, da Anfragen von außen auf verschiedene physische Rechner innerhalb des Clusters aufgeteilt werden. Ein Seitenbesucher bekommt davon in der Regel nichts mit, denn die Verteilung der Anfragen erfolgt auf Grundlage komplexer Algorithmen im Hintergrund.

Lastverteilung kann auch abseits von Webservern eine Rolle spielen: Auch bei Computern, die mit mehreren Prozessoren arbeiten. In einem solchen Fall sorgt der Load Balancer dafür, dass die Anforderungen gleichmäßig auf die verschiedenen Prozessoren verteilt werden, um auf diese Weise mehr Rechenleistung zu generieren.

Definition Load Balancing

Load Balancing ist vor allem in der Server-Technik populär und beschreibt ein Verfahren, bei dem Anfragen im Hintergrund – ohne dass Nutzer dies bemerken – auf verschiedene Server verteilt werden. Der dafür eingesetzte Load Balancer lässt als Hardware oder Software umsetzen.

Wie funktioniert Load Balancing?

Anfragen an einen Webserver – zum Beispiel in Form von Seitenaufrufen – laufen zunächst auf dem Load Balancer. Dieser übernimmt dann die Lastverteilung, indem er die Zugriffe auf verschiedene Server leitet. Der Load Balancer selbst kann als Hardware oder als Software realisiert werden – das Prinzip bleibt aber das gleiche: Den Load Balancer erreicht eine Anfrage und abhängig von dem verwendeten Verfahren leitet das Gerät oder die Software die Daten an den passenden Server weiter.

Technische Grundlage ist dabei das DNS-Verfahren: Der Nutzer ruft eine Website nur über eine URL auf. Diese wird mithilfe von DNS (Domain Name System) in eine IP-Adresse umgewandelt, die wiederum auf den Load Balancer verweist. Dass dieser dann die Anfrage an einen Server weiterleitet, bemerkt der Nutzer im Idealfall nicht.

Load Balancing Verfahren

Wie eingehende Anfragen verteilt werden, ist von der Wahl des Algorithmus abhängig. Beliebte Standardalgorithmen für das Load Balancing sind: Round Robin, Weighted Round Robin, Least Connections und Weighted Least Connections.

Round Robin

Round Robin bezeichnet ein Rundlaufverfahren, bei dem eingehende Serveranfragen vom Load Balancer in einer Warteschlange verwaltet und auf die in Reihe geschalteten Server verteilt werden. Dabei wird jede neue Anfrage dem nächsten Server in der Reihe zugewiesen. So lassen sich Zugriffe gleichmäßig auf das Load Balancing Cluster streuen. Beim Round-Robin-Verfahren werden alle Prozesse gleich behandelt – unabhängig von der Dringlichkeit der Anfrage oder der Serverauslastung, die diese hervorruft. Ein Load Balancer, der nach dem Round-Robin-Prinzip arbeitet, eignet sich daher vor allem für Umgebungen, in denen allen Servern des Clusters in etwa die gleichen Ressourcen zur Verfügung stehen. Ist dies gegeben, fungiert Round Robin als einfache und effektive Verteilungsmethode. Herrscht innerhalb des Serversystems jedoch ein starkes Kapazitätsgefälle, kann ein Round-Robin-Algorithmus dazu führen, dass ein weniger leistungsstarker Server bereits den nächsten Prozess zugeteilt bekommt, noch bevor er den ersten abgeschlossen hat. Die Folge wäre eine Überlastung des entsprechenden Servers.

Weighted Round Robin

Die Schwächen des klassischen Round-Robin-Algorithmus bei heterogenen Server Clustern lassen sich durch eine gewichtete Round-Robin-Verteilung ausgleichen. Dabei werden eingehende Anfragen unter Berücksichtigung der statischen Gewichtung der einzelnen Server verteilt. Diese Gewichtung definiert im Vorfeld der Administrator. Dem leistungsstärksten Server kann man so beispielsweise den Wert 100 zuweisen, weniger effizienten Servern hingegen den Wert 50. In einem solchen Aufbau würde der mit 100 gewichtete Server vom Load Balancer in einer Runde jeweils zwei Anfragen zugeteilt bekommen, während der mit 50 gewichtete Server nur eine Anfrage erhält. Weighted Round Robin sollte vornehmlich dann beim Load Balancing eingesetzt werden, wenn den im Cluster verbundenen Servern unterschiedliche Ressourcen zur Verfügung stehen.

Least Connections

Beide Round-Robin-Algorithmen berücksichtigen bei der seriellen Verteilung der Serveranfragen durch den Load Balancer nicht, wie viele Verbindungen die untergeordneten Server über einen bestimmten Zeitraum hinweg aufrechterhalten müssen. So können sich bei einem Server des Clusters mehrere Verbindungen anhäufen. Das führt dazu, dass der Server überlastet wird, selbst wenn dieser weniger Verbindungen unterhält als die anderen. Davor schützt der der Least-Connections-Algorithmus. Dieser verteilt Anfragen auf Grundlage der bereits bestehenden Verbindungen des jeweiligen Servers – derjenige mit der geringsten Anzahl an aktiven Verbindungen bekommt vom Load Balancer die nächste Anfrage zugeteilt. Diese Load-Balancing-Methode empfiehlt sich für homogene Server Cluster, bei denen allen Rechnern vergleichbare Ressourcen zur Verfügung stehen. Andernfalls kann es zu Verzögerungen bei der Beantwortung der Anfragen kommen.

Weighted Least Connections

Wenn ein Server Cluster unterschiedliche Kapazitäten aufweist, sollte statt des Least-Connections-Algorithmus ein Load Balancing zur Anwendung kommen, das auf Grundlage der gewichteten Verteilung nach bestehenden Verbindungen agiert. Dadurch wird sowohl der Anzahl der aktiven Verbindungen eines Servers Rechnung getragen als auch der durch den Administrator definierten Gewichtung. So lässt sich eine ausgewogene Lastenverteilung innerhalb des Server Clusters sicherstellen. Neue Anfragen werden vom Load Balancer automatisch denjenigen Servern zugewiesen, deren Verhältnis von aktiven Verbindungen zur jeweiligen Servergewichtung die geringste momentane Auslastung vermuten lässt.

Die Vorteile eines ausgewogenen Load Balancings

Durch die Verteilung des Traffics auf mehrere Server können kürzere Zugriffszeiten realisiert werden – und dies auch bei vielen Anfragen zur gleichen Zeit. Außerdem bietet ein Load Balancer eine höhere Sicherheit vor Ausfällen, da der Traffic eines zu langsamen Servers automatisch an andere Server im Cluster weitergeleitet wird. Sollte ein Server nicht erreichbar sein, bleibt die gehostete Website dennoch verfügbar. Darüber hinaus vereinfacht Load Balancing die Wartung des Serversystems.

Konfigurationen und Updates können im laufenden Betrieb der Server durchgeführt werden, ohne dass es zu einem spürbaren Performance-Verlust kommt. Der Load Balancer erkennt den Wartungszustand und leitet Anfragen entsprechend um. Dies macht das Load Balancing zu einer sehr flexiblen Hosting-Lösung.

Praxisprobleme beim Einsatz von Load Balancing

Besonders der Bereich E-Commerce hat beim Load Balancing oft mit Problemen zu kämpfen. Ein Beispiel: Der Website-Besucher füllt seinen Warenkorb mit Artikeln, die er gern kaufen möchte. Für die Dauer einer Session bleiben diese Artikel gespeichert, unabhängig davon, welche Seite der Nutzer innerhalb des Online-Marktplatzes aufruft. Ein normaler Load Balancer würde die Anfragen aber auf verschiedene Server verteilen. Das hieße: Der Inhalt des Warenkorbs ginge dem Nutzer verloren.

Um dieses Problem zu lösen, sind zwei Ansätze denkbar. Zum einen kann der Load Balancer auf die IP-Adresse des Nutzers reagieren. Dann schiebt der Verteiler beispielsweise Anfragen der gleichen IP-Adresse immer auch auf denselben Server. Eine andere Methode wäre es, eine Session ID aus der Anfrage selbst herauszulesen, um so zu bestimmen, an welchen Server die Anfrage geschickt werden muss.

Warum sind Load Balancer so wichtig?

Wenn Sie Ihr Geld über das Internet verdienen, kann sich Ihr Unternehmen keinen Serverausfall leisten. Und wenn Sie nur einen Server verwenden und dieser wegen Überlastung ausfällt, ist Ihre Website für potenzielle Kunden nicht mehr erreichbar. Das führt gleich zu mehreren Problemen: Zum einen können Sie während der Überlastung keinen Umsatz generieren. Denn Dienstleistungen können nicht gebucht und Käufe nicht getätigt werden. Zum anderen sinkt auch das Vertrauen der (potenziellen) Kunden in Ihr Unternehmen. Eine nicht-funktionstüchtige Website entspricht einem maroden Ladenlokal. Sie macht keinen verlässlichen Eindruck. Doppelt schlimm trifft es Nutzer, bei denen eine Serverüberlastung während des Bestellvorgangs auftritt. Oft herrscht dann große Unsicherheit und die Betroffenen wissen nicht, ob die Bestellung tatsächlich im System angekommen und vermerkt ist.

Aber auch, wenn Sie keinen Dienst direkt über das Internet anbieten, sollte Ihre Website jederzeit erreichbar sein. Das Internet ist inzwischen einer der wichtigsten Hauptkanäle, um an Informationen zu gelangen. Sollte ein potenzieller Kunde Details zu Ihrem Unternehmen online suchen und keine Website von Ihnen erreichen können, wird er eher einen Ihrer Konkurrenten ins Auge fassen. Solche Risiken minimieren Sie mit einem Load Balancer.

So realisieren Sie Load Balancing in Ihrem eigenen Unternehmen

Load Balancing lässt sich sowohl über Hardware- als auch über Software-Lösungen auf einem virtuellen Server realisieren. Professionelle All-in-one-Pakete stellen zahlreiche Anbietern entweder in gehosteter Form als Infrastructure-as-a-Service (IaaS) oder als Netzwerk-Komponente für die eigene IT-Infrastruktur zur Verfügung. Da die Anschaffung proprietärer Load Balancer meist mit hohen Kosten verbunden ist, greifen kleinere Unternehmen oft auf Open-Source-Lösungen wie den Linux Virtual Server zurück. Dieser bietet eine kostengünstige Möglichkeit, durch effiziente Lastverteilung innerhalb des Servernetzwerks die Hochverfügbarkeit Ihrer Unternehmenswebsite oder anderer Webprojekte sicherzustellen. Im Webhosting-Bereich wird Load Balancing zudem oft als Zusatz-Feature für Cloud-Server angeboten.