Loadbalancing – was ist das?
07. April 2009 von Mario Apitz
Der Begriff Loadbalancing wird im Bezug auf professionelle Webhosting-Infrastrukturen häufig verwendet. Was steckt aber genau dahinter? Letztendlich gibt es eine Menge unterschiedlicher Techniken und Möglichkeiten, die serienmäßig in den Geräten der führenden Hersteller verbaut werden (Big-IP Plattform von f5 – oder ServerIron Plattform von Brocade – ehemals Foundry).
Das normale, klassische Server Loadbalancing (SLB) verteilt Benutzeranfragen an einen bestimmten Service auf mehrere Server – das sogenannte Backend. Die Kriterien, welche die Verteilung steuern, können unterschiedlich geartet sein. Möglich sind Mechanismen wie Round Robin, Least Connections, Server Response Time uvm.
Global Server Loadbalancing (GSLB) ermöglicht eine Verteilung über geographische und netztopologische Grenzen hinweg auf mehrere Sites. Heutzutage erfolgt GSLB nahezu ausschließlich auf Basis von DNS-Modifikationen. Dabei fungiert der Loadbalancer als DNS-Proxy. Er nimmt die Anfrage an und antwortet in Abhängigkeit der Verfügbarkeit der verteilten Sites.
Firewall-Loadbalancing ist zwar noch im Portfolio der renommierten Hersteller enthalten, macht aber nach heutigen Gesichtspunkten betriebswirtschaftlich keinen Sinn mehr. Es gibt schlicht und ergreifend mehr als genug performante Firewall-Plattformen, die hervorragende Cluster-Funktionalitäten besitzen.
Hinsichtlich der Lastverteilung gibt es noch weitere Steuerungsmöglichkeiten. Unter URL-Switching versteht man beispielsweise, dass die URL, die für den Aufruf der Website verwendet wird, maßgebend für die Entscheidung ist, auf welchem Server welche Anfrage landet. So können Bilder, durch den Loadbalancer gesteuert, von einem anderen Server im Backend ausgeliefert werden als beispielsweise der Rest der Webseite.
Ein weiterer Mechanismus ist das Policy Based Server Loadbalancing. Hierbei wird in Abhängigkeit von Regeln der Verkehr an bestimmte Server im Backend weitergeleitet. So ist es z. B. möglich, die Anfragen aus bestimmten Netzbereichen an andere Server zu leiten als aus anderen Netzbereichen.
In Szenarien, bei denen Benutzersitzungen vorhanden sind – Benutzer Paul loggt sich z. B. in seinem Shop ein – ist es meist sinnvoll, die Session immer auf einem Server im Backend zu belassen. Dafür kommen unterschiedliche Formen von Session Persistence zum Einsatz. Diese Persistence kann in Abhängigkeit von IP-Adresse, Cookie oder Header-Variable hergestellt werden.
Welche Technik macht in welcher Situation Sinn? Sicherlich kann man dies nicht pauschal beantworten. Es hängt stark davon ab, welche Anforderungen an die Plattform gestellt sind und wie die gesamte Architektur gestaltet ist. Wir helfen hier gern weiter…
