Load Balancing (Lastenverteilung)
Lastausgleich oder Load Balancing ist eine Technik zum Verteilen des Netzwerkverkehrs auf einen Pool von Servern, der als Serverfarm bezeichnet wird. Sie optimiert die Leistung, Zuverlässigkeit und Kapazität des Netzwerks und verringert Latenzzeiten, da die Nachfrage gleichmäßig auf mehrere Server und Rechenressourcen verteilt wird.
Beim Lastausgleich ermittelt eine Appliance – physisch oder virtuell – in Echtzeit, welcher Server in einem Pool eine bestimmte Client-Anfrage am besten erfüllen kann und gewährt zeitgleich, dass kein Server durch den Netzwerkverkehr überlastet wird.
Neben dem Erhalt der Leistungsfähigkeit und einer optimalen Netzwerkauslastung hat Load Balancing zusätzlich Ausfallsicherheitsfunktionen zu bieten. Wenn ein Server ausfällt, leitet ein Load Balancer die Workloads sofort auf einen Backup-Server um und mildert so die Auswirkungen auf die Endbenutzer.
Der Lastausgleich sitzt in der Regel als Unterstützung von Layer 4 oder Layer 7 im OSI-Kommunikationsmodells (Open Systems Interconnection). Layer-4-Lastausgleichsgeräte verteilen den Datenverkehr auf der Grundlage von Transportdaten wie IP-Adressen und TCP-Portnummern. Layer-7-Load-Balancing-Geräte treffen Routing-Entscheidungen auf der Grundlage von Merkmalen auf Anwendungsebene, zu denen HTTP-Header-Informationen und der eigentliche Inhalt der Nachricht, wie URLs und Cookies, gehören. Layer-7-Load-Balancer sind häufiger anzutreffen; Layer-4-Load-Balancer sind jedoch immer noch beliebt, insbesondere bei Edge-Bereitstellungen.
Wie Load Balancing funktioniert
Load Balancer bearbeiten eingehende Anfragen von Benutzern und anderen Diensten. Sie befinden sich zwischen den Servern, die diese Anfragen bearbeiten, und dem Internet. Sobald eine Anfrage eingeht, ermittelt der Load Balancer zunächst, welcher Server in einem Pool verfügbar und online ist, und leitet die Anfrage dann an diesen Server weiter. In Zeiten hoher Last reagiert ein Load Balancer prompt und kann als Reaktion auf Spitzen im Datenverkehr dynamisch Server hinzufügen. Umgekehrt schalten Load Balancer Server ab, wenn die Nachfrage gering ist.
Arten von Load Balancern
Load Balancing ist eine Schlüsselkomponente für hochverfügbare Infrastrukturen. Je nach den Anforderungen eines Netzwerks können verschiedene Arten von Load Balancern mit unterschiedlichen Speicherkapazitäten, Funktionalitäten und Komplexitäten zusammenarbeiten.
Ein Load Balancer kann eine physische Appliance, eine Softwareinstanz oder eine Kombination aus beidem sein. Im Folgenden werden zwei Arten von Load Balancern vorgestellt:
Hardware-Load-Balancer. Ein Hardware-Load-Balancer ist ein Hardwaregerät mit spezieller und proprietärer integrierter Software, das zum Bewältigen großer Mengen von Anwendungsverkehr ausgelegt ist. Diese Load Balancer verfügen über eine integrierte Virtualisierungsfunktion und ermöglichen da Verwenden mehrerer Instanzen eines virtuellen Load Balancers auf einem einzigen Gerät.
Traditionell luden die Anbieter proprietäre Software auf dedizierte Hardware und verkauften sie als eigenständige Appliances an die Benutzer – in der Regel paarweise, um Ausfallsicherung zu gewährleisten. Wachsende Netzwerke erfordern den Kauf zusätzlicher oder größerer Appliances.
Software-Load-Balancer. Der Software-Load-Balancer läuft auf virtuellen Maschinen (VMs) oder White-Box-Servern, meist als Application-Delivery-Controller-Funktion (ADC). ADCs bieten in der Regel zusätzliche Funktionen, darunter Caching, Komprimierung und Traffic Shaping. Der in Cloud-Umgebungen beliebte virtuelle Lastenausgleich bietet ein hohes Maß an Flexibilität. Er ermöglicht es den Benutzern beispielsweise, den Datenverkehr automatisch nach oben oder unten zu skalieren, um Verkehrsspitzen oder einen Rückgang der Netzwerkaktivität zu spiegeln.
Cloud-basierter Lastausgleich
Der Cloud-Lastausgleich nutzt die Cloud als zugrunde liegende Infrastruktur, um Cloud-Computing-Umgebungen auszugleichen.
Im Folgenden finden Sie Beispiele für Cloud-basierte Lastausgleichsmodelle:
- Netzwerk-Load-Balancing. Dies ist die schnellste verfügbare Lastausgleichsoption. Sie arbeitet auf Schicht 4 des OSI-Modells und verwendet Informationen der Netzwerkschicht für den Transport des Netzwerkverkehrs.
- Sicherer HTTP-Lastausgleich. Damit können Netzwerkadministratoren den Verkehr auf der Grundlage der von der HTTP-Adresse stammenden Informationen verteilen. Sie basiert auf Schicht 7 und ist eine der flexibelsten Lastausgleichsoptionen.
- Interner Lastausgleich. Diese Option ähnelt dem Netzwerk-Lastausgleich, kann aber auch die Verteilung des Datenverkehrs über die interne Infrastruktur ausgleichen.
Lastausgleichsalgorithmen
Lastausgleichsalgorithmen bestimmen, welche Server bestimmte eingehende Kundenanfragen erhalten. Es gibt zwei Haupttypen von Lastausgleichsalgorithmen: statisch und dynamisch.
- Statische Lastausgleichsalgorithmen
- Der IP-Hash-basierte Ansatz berechnet den bevorzugten Server eines bestimmten Clients auf der Grundlage bestimmter Schlüssel, wie HTTP-Header oder IP-Adressinformationen. Diese Methode unterstützt die Dauerhaftigkeit von Sitzungen, was Anwendungen zugutekommt, die auf benutzerspezifisch gespeicherte Zustandsinformationen angewiesen sind, wie zum Beispiel Warenkörbe im elektronischen Handel.
- Die Round-Robin-Methode durchläuft alle verfügbaren Server in sequentieller Reihenfolge und verteilt den Datenverkehr über das Domain Name System (DNS) an eine Liste von Servern.
- Ein autoritativer Nameserver führt eine Liste verschiedener A-Einträge und stellt einen davon als Antwort auf jede DNS-Anfrage bereit.
- Der gewichtete Round-Robin-Ansatz ermöglicht es den Administratoren, jedem Server unterschiedliche Gewichtungen zuzuweisen. Auf diese Weise erhalten die Server, die mehr Verkehr bewältigen können, entsprechend ihrer Gewichtung etwas mehr Verkehr. Die Gewichtung wird in den DNS-Einträgen konfiguriert.
- Dynamische Lastausgleichsalgorithmen
- Die Methode der geringsten Verbindungen bevorzugt die Server mit den wenigsten laufenden Transaktionen und Prüfungen und leitet den Datenverkehr an die Server mit den wenigsten offenen Verbindungen. Bei diesem Algorithmus wird davon ausgegangen, dass alle Verbindungen nahezu die gleiche Verarbeitungsleistung erfordern.
- Bei der Methode der gewichteten geringsten Verbindungen wird davon ausgegangen, dass manche Server im Netzwerk mehr Kapazität haben als andere. Daher können Administratoren den einzelnen Servern unterschiedliche Gewichte zuweisen.
- Der Ansatz der gewichteten Antwortzeit verwendet die durchschnittlichen Antwortzeiten der einzelnen Server und kombiniert sie mit der Anzahl der Verbindungen, die jeder Server geöffnet hat, um das beste Ziel für den Datenverkehr zu finden. Dieser Algorithmus gewährleistet einen schnelleren Service, da er den Datenverkehr an die Server mit der schnellsten Antwortzeit sendet.
- Der ressourcenbasierte Algorithmus verteilt die Last auf der Grundlage der Verfügbarkeit von Ressourcen auf jedem Server zum jeweiligen Zeitpunkt. Vor dem Verteilen des Datenverkehrs wird eine spezielle Software, ein so genannter Agent, abgefragt, der auf jedem Server läuft, um die Verfügbarkeit der zentralen Verarbeitungseinheit und des Speichers zu messen.
Vorteile von Load Balancing
Unternehmen, die mehrere Server verwalten, können von der Lastverteilung ihres Netzwerkverkehrs stark profitieren. Nachfolgend sind die wichtigsten Vorteile der Verwendung von Lastverteilern aufgeführt:
- Verbesserte Skalierbarkeit. Lastverteiler skalieren die Serverinfrastruktur je nach Bedarf und Netzwerkanforderungen, ohne die Dienste zu beeinträchtigen. Wenn zum Beispiel eine Website eine große Anzahl von Besuchern anzieht, kann dies zu einem plötzlichen Anstieg des Datenverkehrs führen. Wenn der Webserver nicht in der Lage ist, diesen plötzlichen Zustrom von Daten zu bewältigen, kann die Website zusammenbrechen. Durch den Lastausgleich kann der zusätzliche Datenverkehr auf mehrere Server verteilt werden, so dass dies nicht passiert.
- Verbesserte Effizienz. Durch die geringere Belastung der einzelnen Server fließt der Netzwerkverkehr besser und die Antwortzeiten verkürzen sich. Das führt letztlich zu einem besseren Erlebnis für die Besucher der Website.
- Geringere Ausfallzeiten. Unternehmen mit globaler Präsenz und mehreren Standorten in verschiedenen Zeitzonen können vom Load Balancing profitieren, vor allem wenn es um die Wartung der Server geht. So kann ein Unternehmen beispielsweise den Server, der gewartet werden muss, herunterfahren und den Datenverkehr an die anderen verfügbaren Load Balancer weiterleiten, ohne dass es zu Serviceunterbrechungen oder Ausfallzeiten kommt.
- Vorausschauende Analyse. Der Lastausgleich kann Ausfälle frühzeitig erkennen und helfen, sie zu bewältigen, ohne andere Ressourcen zu beeinträchtigen. So können softwarebasierte Load Balancer beispielsweise Verkehrsengpässe vorhersagen, bevor sie auftreten.
- Effizientes Ausfallmanagement. Im Falle eines Ausfalls können Load Balancer den Datenverkehr automatisch auf funktionierende Ressourcen und Backup-Optionen umleiten. Wird beispielsweise ein Ausfall einer Netzwerkressource wie eines Mail-Servers festgestellt, können Load Balancer Ressourcen auf andere, nicht betroffene Bereiche umverteilen, um eine Unterbrechung des Dienstes zu verhindern.
- Verbesserte Sicherheit. Load Balancer bieten eine zusätzliche Sicherheitsebene, ohne dass zusätzliche Änderungen oder Ressourcen erforderlich sind. Da immer mehr Datenverarbeitung in die Cloud verlagert wird, werden Load Balancer mit Sicherheitsfunktionen ausgestattet, zum Beispiel mit der Offloading-Funktion. Diese schützt ein Unternehmen vor verteilten Denial-of-Service-Angriffen, indem sie den Angriffsverkehr vom Unternehmensserver an einen Public-Cloud-Anbieter weiterleitet.
Hardware versus Software-Lastverteiler
Sowohl Hardware- als auch Software-Load-Balancer haben spezifische Anwendungsfälle. Hardware-Load-Balancer erfordern Rack-and-Stack-Appliances, während Software-Load-Balancer auf Standard-x86-Servern, VMs oder Cloud-Instanzen installiert werden. Hardware-Load-Balancer sind so dimensioniert, dass sie Spitzenverkehrslasten bewältigen können. Softwareprodukte werden in der Regel auf der Grundlage der benötigten Bandbreite lizenziert.
Im Folgenden finden Sie einige Vor- und Nachteile von hardware- und softwarebasierten Load Balancern.
Hardware-Lastverteiler
Vorteile
- Sie bieten einen hohen Durchsatz, da die Software auf speziellen Prozessoren ausgeführt wird.
- Diese Load Balancer bieten eine bessere Sicherheit, da sie nur von der Organisation und nicht von einer dritten Partei verwaltet werden.
- Sie haben einen festen Preis zum Zeitpunkt des Kaufs.
Nachteile
- Hardware-Load-Balancer erfordern zusätzliches Personal und Fachwissen, um sie zu konfigurieren und zu programmieren.
- Sie können nicht weiter skaliert werden, wenn eine bestimmte Anzahl von Verbindungen erreicht wurde. In diesem Fall werden Verbindungen entweder abgelehnt, unterbrochen oder verschlechtert, und die einzige Möglichkeit besteht darin, zusätzliche Maschinen zu kaufen und zu installieren.
- Diese sind teurer, da die Kosten für ihre Anschaffung und Wartung höher sind. Der Besitz eines Hardware-Load-Balancers kann die Einstellung von Beratern für dessen Verwaltung erforderlich machen.
Software-Load-Balancer
Vorteile
- Sie bieten die Flexibilität, sich an die wechselnden Bedürfnisse und Anforderungen eines Netzes anzupassen.
- Durch Hinzufügen weiterer Software-Instanzen können sie über die ursprüngliche Kapazität hinaus skaliert werden.
- Sie bieten einen Cloud-basierten Lastausgleich, der Optionen außerhalb des Standorts bietet, die in einem elastischen Servernetz betrieben werden können. Cloud Computing bietet auch Optionen mit verschiedenen Kombinationen, wie zum Beispiel hybride mit internen Standorten. So könnte ein Unternehmen beispielsweise den Haupt-Load-Balancer vor Ort haben und den Backup-Load-Balancer in der Cloud.
Nachteile
- Bei der Skalierung über die Kapazität hinaus kann es bei Software-Loadbalancern zu einer anfänglichen Verzögerung kommen. Dies geschieht in der Regel, wenn die Load-Balancer-Software konfiguriert wird.
- Da sie keine festen Anschaffungskosten haben, können bei Software-Load-Balancern laufende Kosten für Upgrades anfallen