Was ist ein Load Balancer?
Ein Load Balancer ermöglicht die dynamische Verteilung des Netzwerkverkehrs auf Ressourcen (lokal oder in der Cloud), um eine Anwendung zu unterstützen.
Ein Load Balancer ist eine Lösung, die als Traffic-Proxy fungiert und den Netzwerk- oder Anwendungsdatenverkehr auf Endpunkte mehrerer Server verteilt. Load Balancer dienen dazu, die Auslastung bei hohem Datenverkehr zu verteilen und die Zuverlässigkeit von Anwendungen zu erhöhen. Sie verbessern die Gesamtleistung von Anwendungen, indem sie einzelne Dienste oder Clouds entlasten und die Nachfrage auf verschiedene Computing-Ressourcen verteilen, um Anwendungs- und Netzwerksitzungen aufrechtzuerhalten.
Moderne Anwendungen müssen Millionen von Sitzungen gleichzeitig verarbeiten und jedem Benutzer schnell und zuverlässig die richtigen Texte, Videos, Bilder und sonstigen Daten bereitstellen. Um ein derart hohes Datenverkehrsaufkommen zu bewältigen, verfügen die meisten Anwendungen über zahlreiche Ressourcenserver, auf denen dieselben Daten redundant vorgehalten werden.
Load Balancing verteilt den Netzwerkverkehr dynamisch auf ein Netzwerk von Ressourcen, die eine Anwendung unterstützen. Ein Load Balancer ist ein Gerät oder Dienst, das bzw. der zwischen dem Benutzer und der Servergruppe angesiedelt ist und als unsichtbarer Vermittler dafür sorgt, dass alle Ressourcenserver gleichmäßig ausgelastet werden. Ein Load Balancer trägt dazu bei, die Zuverlässigkeit und Verfügbarkeit selbst bei hoher Auslastung und Nachfrage zu erhöhen, und gewährleistet eine längere Betriebszeit sowie eine bessere Benutzererfahrung.
In manchen Fällen ist es unerlässlich, dass alle Anfragen eines Clients für die Dauer einer Sitzung an denselben Server gesendet werden, beispielsweise wenn ein Client Artikel in einen Warenkorb legt und anschließend den Kauf abschließt. Die Aufrechterhaltung der Verbindung zwischen Client und Server wird als Sitzungspersistenz bezeichnet. Ohne Sitzungspersistenz müssen Informationen zwischen Servern synchronisiert und möglicherweise mehrfach abgerufen werden, was zu Leistungseinbußen führt.
Vorteile des Lastenausgleichs
Benutzer und Kunden sind darauf angewiesen, Informationen nahezu in Echtzeit finden und Transaktionen durchführen zu können. Verzögerungen oder unzuverlässige und inkonsistente Reaktionen können Kunden für immer vergraulen – selbst zu Spitzenzeiten mit hoher Nachfrage und Auslastung. Und ein sprunghaft ansteigender Rechenbedarf kann einen internen Server oder ein Serversystem erheblich beeinträchtigen, wenn die eingehende Nachfrage – oder „Last“ – zu hoch ist, um problemlos bewältigt zu werden.
Zu den Vorteilen des Einsatzes eines Load Balancers gehören:
- Anwendungsverfügbarkeit: Sowohl interne als auch externe Benutzer müssen sich auf die Verfügbarkeit von Anwendungen verlassen können. Wenn eine Anwendung oder Funktion ausfällt, verzögert reagiert oder nicht mehr reagiert, geht wertvolle Zeit verloren – und es entsteht möglicherweise ein Reibungspunkt, der Kunden zur Konkurrenz treiben könnte.
- Skalierbarkeit von Anwendungen: Stellen Sie sich vor, Sie betreiben ein Ticketunternehmen und der Verkauf von Eintrittskarten für eine beliebte Veranstaltung wird für einen bestimmten Termin angekündigt. Tausende oder sogar noch mehr Menschen könnten versuchen, auf Ihre Website zuzugreifen, um Tickets zu kaufen. Ohne einen Load Balancer wäre Ihre Website auf die Kapazität Ihres einzigen beziehungsweise ersten Servers beschränkt – und diese dürfte bei einer derart hohen Nachfrage kaum ausreichen. Mit einem Load Balancer können Sie sich hingegen auf diesen starken Anstieg des Datenverkehrs vorbereiten, indem Anfragen und Datenverkehr an andere verfügbare Rechenressourcen weitergeleitet werden. So können mehr Kunden ihre gewünschten Tickets erhalten.
- Anwendungssicherheit: Durch Lastverteilung können Unternehmen auch ihre Sicherheitslösungen skalieren. Eine der wichtigsten Methoden besteht darin, den Datenverkehr auf mehrere Backend-Systeme zu verteilen. Dadurch wird die Angriffsfläche minimiert und es wird schwieriger, Ressourcen zu erschöpfen und Verbindungen zu überlasten. Load Balancer können den Datenverkehr außerdem auf andere Systeme umleiten, wenn ein System anfällig oder kompromittiert ist. Darüber hinaus können Load Balancer eine zusätzliche Schutzebene gegen DDoS-Angriffe bieten, indem sie den Datenverkehr zwischen Servern umleiten, wenn ein bestimmter Server anfällig wird.
- Anwendungsleistung: Durch all diese Maßnahmen steigert ein Load Balancer die Anwendungsleistung. Indem Load Balancer die Sicherheit erhöhen, die Verfügbarkeit optimieren und die Skalierbarkeit bei Nachfragespitzen ermöglichen, sorgen sie dafür, dass Ihre Anwendungen wie vorgesehen funktionieren – so, wie Sie und Ihre Kunden es erwarten.
Algorithmen für den Lastenausgleich
Hinsichtlich ihrer Funktionsweise gibt es zwei Arten von Lastverteilungsalgorithmen: statische und dynamische. Bei der statischen Lastverteilung wird die eingehende Last auf einem Server mithilfe von Algorithmen gemessen, denen Informationen über die Leistungskapazität der vorhandenen Server im verteilten Netzwerk vorliegen. Die dynamische Lastverteilung kann zur Laufzeit ermitteln, wie viel Last verlagert werden muss und welches System diese übernehmen soll. Sie ist für Systeme konzipiert, bei denen die eingehende Last starken Schwankungen unterliegt.
Im Folgenden werden einige der gängigen Arten von Lastverteilungsalgorithmen aufgeführt.
- Round-Robin: Dieser Algorithm leitet den Datenverkehr reihum an eine Liste von Servern weiter und verwendet dazu das Domain Name System (DNS). (Hinweis: DNS-Lastverteilung kann auch als dynamische Lösung eingesetzt werden.)
- Schwellenwert: Dieser Algorithmus verteilt Aufgaben anhand eines vom Administrator festgelegten Schwellenwerts.
- Zufallsauswahl mit zwei Optionen: Der „Power of Two“-Algorithmus wählt nach dem Zufallsprinzip zwei Server aus und sendet die Anfrage an den Server, der anschließend durch Anwendung des Algorithmus „Least Connections“ oder, sofern entsprechend konfiguriert, des Algorithmus „Least Time“ ausgewählt wird.
- Wenigste Verbindungen: Eine neue Anfrage wird an den Server gesendet, der aktuell die wenigsten Verbindungen zu Clients aufweist. Bei der Ermittlung, welcher Server die wenigsten Verbindungen hat oder die geringste Bandbreite bzw. die wenigsten Ressourcen nutzt, wird die relative Rechenkapazität der einzelnen Server berücksichtigt.
- Kürzeste Antwortzeit: Bei diesem Algorithmus wird eine Anfrage an den Server gesendet, der anhand einer Formel ausgewählt wird, die die schnellste Antwortzeit mit der geringsten Anzahl aktiver Verbindungen kombiniert.
- URL-Hash: Dieser Algorithm generiert einen Hashwert auf Grundlage der in den Clientanfragen enthaltenen URL. Die Anfragen werden anhand des Hashwerts an Server weitergeleitet. Der Load Balancer speichert den Hashwert der URL im Cache, sodass nachfolgende Anfragen mit derselben URL zu einem Cache-Treffer führen und an denselben Server weitergeleitet werden.
- Quell-IP-Hash: Dieser Algorithmus verwendet die Quell- und Ziel-IP-Adressen des Clients, um einen eindeutigen Hash-Schlüssel zu erzeugen, der den Client einem bestimmten Server zuordnet. Da der Schlüssel bei einer Unterbrechung der Sitzung erneut erzeugt werden kann, lassen sich Wiederverbindungsanfragen an denselben Server weiterleiten, der zuvor verwendet wurde.
- Konsistentes Hashing: Dieser Algorithmus ordnet sowohl Clients als auch Server einer Ringstruktur zu, wobei jedem Server entsprechend seiner Kapazität mehrere Punkte auf dem Ring zugewiesen werden. Geht eine Clientanfrage ein, wird sie mittels Hashing einem Punkt auf dem Ring zugeordnet und anschließend im Uhrzeigersinn dynamisch an den nächsten verfügbaren Server weitergeleitet.
Wie funktioniert Lastverteilung?
Beim Load Balancing wird statisch oder dynamisch auf eine Benutzeranfrage reagiert und diese an einen der Backend-Server verteilt, der sie bearbeiten kann. Fällt einer der Server aus, leitet der Load Balancer den Datenverkehr an die verbleibenden verfügbaren Server weiter.
Beispiele für Lastverteilung
Ein Beispiel für statischen Lastenausgleich: Ein Unternehmen betreibt eine Website mit weitgehend statischen Inhalten. Dieses Szenario eignet sich ideal für einen statischen Load Balancer, da der Datenverkehr vorhersehbar und gleichmäßig ist. Das Unternehmen kann zwei (oder mehr) identische Webserver einsetzen, auf die der statische Load Balancer den Datenverkehr verteilen kann.
Ein Beispiel für dynamische Lastverteilung: Ein Unternehmen verzeichnet starke Anstiege, Spitzen und Rückgänge beim Datenverkehr. Einige davon sind vorhersehbar, andere nicht. Solche Organisationen würden von dynamischer Lastverteilung profitieren. Dazu könnten etwa ein Onlinehändler gehören, der seine Öffnungszeiten und Termine für den Black Friday bekannt gibt, ein Gesundheitsunternehmen, das gerade angekündigt hat, Online-Termine für eine saisonale Impfung anzubieten, eine staatliche Arbeitslosenbehörde, die von Empfängern von Arbeitslosenunterstützung verlangt, ihren wöchentlichen Antrag an einem bestimmten Wochentag einzureichen, oder eine Hilfsorganisation, die möglicherweise schnell online auf eine Naturkatastrophe reagieren muss. Einige dieser starken Anstiege und Spitzen bei Datenverkehr und Nachfrage lassen sich einplanen, andere jedoch nicht. In solchen Szenarien trägt ein Algorithmus zur dynamischen Lastverteilung dazu bei, den Zugriff auf Anwendungen und Ressourcen sicherzustellen, wenn Kunden und Benutzer sie am dringendsten benötigen.
Verschiedene Arten von Load Balancern
Verschiedene Arten von Load Balancern mit unterschiedlichen Funktionen sind in der als Open Systems Interconnection (OSI) bezeichneten Architektur angesiedelt. Dieses Modell umfasst sieben Schichten. Netzwerk-Firewalls befinden sich auf den Schichten eins bis drei (L1 – Bitübertragung, L2 – Sicherung und L3 – Vermittlung). Das Load Balancing erfolgt hingegen auf den Schichten vier bis sieben (L4 – Transport, L5 – Sitzung, L6 – Darstellung und L7 – Anwendung). Load Balancer werden im Allgemeinen auf Schicht 4 und Schicht 7 eingesetzt.
- Layer-4-Load-Balancer leiten den Datenverkehr anhand von Informationen aus Protokollen der Netzwerk- und Transportschicht (IP, TCP, FTP, UDP) weiter. Beim Load-Balancing auf der IP-Schicht wird die IP-Adresse des Load-Balancers den Clients als Adresse einer Website bekannt gegeben und daher als Zieladresse erfasst. Wenn der Load-Balancer eine Anfrage erhält, ersetzt er die erfasste Ziel-IP-Adresse durch die Adresse des von ihm ausgewählten Content-Servers.
- Layer-7-Load-Balancer verteilen Anfragen anhand von Daten aus Protokollen der Anwendungsschicht wie HTTP-Headern, Cookies, Uniform Resource Identifiers, SSL-Sitzungs-IDs und HTML-Formulardaten. Sie ermöglichen außerdem Routing-Entscheidungen auf Grundlage von Daten innerhalb der Anwendungsnachricht selbst, beispielsweise anhand des Werts eines bestimmten Parameters. Layer 7 ergänzt den Lastenausgleich um inhaltsbasiertes Switching.
Cloudbasierte Load Balancer
Cloudbasierte Load Balancer dienen nicht nur dazu, Lastspitzen zu bewältigen und die Serverauslastung zu optimieren. Cloudnative Load Balancer können zudem prädiktive Analysen bereitstellen, mit denen Sie potenzielle Engpässe im Datenverkehr frühzeitig erkennen können. Daraus ergeben sich konkrete Erkenntnisse, die Unternehmen dabei helfen, ihre IT-Lösungen zu optimieren.
Anwendungslastverteilung: Da Unternehmen zunehmend auf die Leistung und Verfügbarkeit von Anwendungen angewiesen sind, kann die Anwendungslastverteilung ihnen helfen, zu skalieren, Abläufe zu optimieren und Kosten zu sparen.
Global Server Load Balancing: Unternehmen mit Nutzern und Kunden auf der ganzen Welt können die Verfügbarkeit ihrer Systeme durch Global Server Load Balancing verbessern, das Nutzer an den nächstgelegenen Endpunkt weiterleitet.
DNS-Lastverteilung: Die Konfiguration einer Domain im Domain Name System (DNS), bei der Benutzeranfragen an die Domain auf eine Gruppe von Servern verteilt werden, wird als DNS-Lastverteilung bezeichnet.
Netzwerk-Lastverteilung: Application Delivery Controller (ADCs), physische oder virtuelle Appliances, die als Proxys für physische Server fungieren, verwalten Anwendungs- oder Netzwerkfunktionen und stützen sich dabei auf eine Netzwerk-Lastverteilungslösung. ADCs nutzen außerdem weitere Techniken wie Caching, Komprimierung und Auslagerung der SSL-Verarbeitung, um die Leistung von Webanwendungen zu verbessern. In der üblichen Konfiguration befindet sich der ADC vor einer Gruppe von Web- und Anwendungsservern und vermittelt Anfragen und Antworten zwischen diesen und ihren Clients. Dadurch erscheint die Gruppe dem Endbenutzer praktisch wie ein einzelner virtueller Server.
HTTP(S)-Lastverteilung: Die Technik zur Verteilung des Datenverkehrs auf mehrere Gruppen von Web- oder Anwendungsservern zur Optimierung der Ressourcennutzung wird als HTTP(S)-Lastverteilung bezeichnet.
Interner Lastenausgleich: Ein interner Load Balancer wird einem privaten Subnetz zugewiesen und verfügt über keine öffentliche IP-Adresse. Er wird üblicherweise innerhalb einer Serverfarm eingesetzt.
Diameter: Ein Diameter-Load-Balancer verteilt den Signalisierungsverkehr auf mehrere Server in einem Netzwerk. Eine der kosteneffizientesten Möglichkeiten hierfür besteht darin, die Diameter-Steuerungsebene statt der Datentransportschicht zu skalieren. (Der Diameter-Lastenausgleich kann auch statisch oder dynamisch erfolgen.)
Load-Balancer-Technologie
Es gibt weitere Arten von Load-Balancer-Lösungen, die entweder eigenständig oder in einem Netzwerk mit Cloud-nativen Load Balancern eingesetzt werden können. Im Folgenden werden einige wichtige Arten vorgestellt.
Hardware-Load-Balancer: Ein Hardware-Load-Balancer ist ein physisches Gerät mit einem spezialisierten Betriebssystem, das so programmiert werden kann, dass es den Webdatenverkehr auf mehrere Anwendungsserver verteilt, die sich in der Regel im eigenen Rechenzentrum befinden.
Software-Load-Balancer: Ein Software-Load-Balancer funktioniert wie ein physischer Load-Balancer, wird jedoch als Softwareprogramm ausgeführt. Die Software sorgt dafür, dass Anwendungen bei unterschiedlichsten Datenverkehrsanforderungen verfügbar bleiben, und nutzt sowohl statisches als auch dynamisches Load-Balancing, um einzelne Ausfallpunkte zu vermeiden.
Virtueller Load Balancer: Ein virtueller Load Balancer ist eine Art von Load Balancer, der Hardware- und Software-Load-Balancer kombiniert. Er verwendet Application-Delivery-Controller-Software, die dabei hilft, die Netzwerklast auf die Hardware-Backend-Server zu verteilen.
Wie F5 helfen kann
- Den richtigen Load Balancer für die Anforderungen Ihres Unternehmens zu finden, ist entscheidend, damit Ihre Systeme verfügbar und optimiert, Ihre Daten zugänglich und Ihre Benutzer und Kunden zufrieden bleiben.
- F5 kann die spezifischen Anforderungen Ihrer Organisation an den Lastausgleich erfüllen – von einer statischen Lösung bis hin zu einer integrierten globalen Lösung, die die Stärken hardware-, software- und cloudbasierter Load Balancer vereint. F5 bietet einen Lastausgleichsalgorithmus oder eine Lösung für Ihre individuellen Geschäftsanforderungen.
- F5 NGINX Plus und NGINX sind erstklassige Load-Balancing-Lösungen, die von stark frequentierten Websites wie Dropbox, Netflix und Zynga eingesetzt werden. Mehr als 350 Millionen Websites weltweit verlassen sich auf NGINX Plus und NGINX Open Source, um ihre Inhalte schnell, zuverlässig und sicher bereitzustellen. Als softwarebasierter Application Delivery Controller und Load Balancer ist NGINX Plus deutlich kostengünstiger als Hardwarelösungen mit vergleichbaren Funktionen. Die Lösung vereint Webbereitstellung, Load Balancing, Caching, Medienbereitstellung und vieles mehr und ist damit die ideale Wahl, um die Bereitstellung Ihrer Anwendungen zu steuern.
- BIG-IP Anwendungsservices bieten eine integrierte Lösung zur Verwaltung, Skalierung und Optimierung Ihrer digitalen Anwendungsservices. Und BIG-IP Local Traffic Manager (LTM) umfasst statischen und dynamischen Lastenausgleich, um einzelne Ausfallpunkte zu beseitigen. F5 BIG-IP DNS weitet den Lastenausgleich anwendungsübergreifend auf die globale Ebene aus und stellt sicher, dass Ihre Anwendungen verfügbar sind und auf die Anforderungen Ihrer Kunden reagieren.
- F5 Distributed Cloud DNS Load Balancer bietet eine einfache Load-Balancing-Lösung mit zuverlässiger Notfallwiederherstellung, sodass sich Ihre Entwicklungsteams darauf konzentrieren können, Innovationen in Ihrem Unternehmen voranzutreiben.
- F5 Distributed Cloud App Connect ermöglicht den Lastenausgleich, indem Ihre Anwendungen und Dienste in jeder Art von Umgebung, einschließlich Edge-Umgebungen, sicher miteinander verbunden werden.
- F5 bietet ein umfassendes Portfolio an Load-Balancing-Lösungen, mit denen Sie Ihre Anwendungen, Ihren Datenverkehr, Ihre Daten und Ihre Computing-Infrastruktur optimieren können.

