Server Load Balancing

Server Load Balancing

Der Begriff Serverlastverteilung oder englisch Server Load Balancing (SLB) beschreibt in der Netzwerktechnik Methoden zur Lastverteilung auf mehrere getrennte Server-Rechner im Netzwerk.

Inhaltsverzeichnis

Einsatzgebiete

Server Load Balancing kommt überall dort zum Einsatz, wo sehr viele Clients eine hohe Anfragendichte erzeugen und damit einen einzelnen Server-Rechner überlasten würden. Typische Kriterien zur Ermittlung der Notwendigkeit von SLB sind die Datenrate, die Anzahl der Clients und die Anfragerate.

Ein weiterer Aspekt ist die Erhöhung der Datensicherheit durch SLB. Der Einsatz mehrerer Systeme ermöglicht redundante Datenhaltung. Die Aufgabe des SLB ist hier die Vermittlung der Clients an die einzelnen Server.

Zum Einsatz kommt SLB bei großen Portalen wie etwa Wikipedia, Marktplätzen oder Online-Shops. Prinzipiell bemerkt der Anwender nicht, ob auf der Gegenseite SLB eingesetzt wird. Siehe auch Redirect (Weiterleitung).

SLB kann auf verschiedenen Schichten des ISO-OSI-Referenzmodells eingesetzt werden. Man unterscheidet drei grundsätzlich verschiedene Ansätze:

DNS based SLB

DNS based SLB wird auf der Anwendungsschicht vorgenommen und basiert auf dem Domain Name System-Protokoll. Es ist die einfachste und kostengünstigste Variante, SLB zu implementieren, benötigt werden nur ein Router und ein Switch. Mehrere Szenarien sind möglich. Zum einen können mehrere homogene Server-Rechner mit unterschiedlichen Namen aufgebaut werden, auf die dann z.B. über einen Round-Robin-Algorithmus abwechselnd zugegriffen wird.

Beispiel:

Ein Client verbindet sich mit

 example.com

Daraufhin ist eine Weiterleitung an die Hostnamen

 mirror1.example.com
 mirror2.example.com
 mirror3.example.com

möglich.

Eine andere Methode des DNS based SLB ist in Lastverteilung per DNS beschrieben.

NAT based SLB

Aufwendiger, aber leistungsfähiger ist das so genannte NAT based SLB. Hier müssen zunächst zwei Netze aufgebaut werden: ein privates Netz, dem die Server angehören, und ein öffentliches Netz, das über Router mit dem öffentlichen Internet verbunden ist. Zwischen diese beiden Netze wird ein Load Balancer geschaltet, also ein Router, der Anfragen aus dem öffentlichen Netz entgegennimmt, auswertet und daraufhin entscheidet, an welchen Rechner im privaten Netz er die Verbindung vermittelt. Dies geschieht auf der Vermittlungsschicht des OSI-Referenzmodells. Zum Einsatz kommt hier die NAT-Technik: Der Load Balancer manipuliert eingehende und ausgehende IP-Pakete so, dass der Client den Eindruck hat, er kommuniziere stets mit ein und demselben Rechner, nämlich dem Load Balancer. Die Server im privaten Netz haben sozusagen alle die gleiche virtuelle IP-Adresse.

Problematisch ist bei diesem Verfahren, dass aller Verkehr über den Loadbalancer fließt, dieser also früher oder später zum Engpass wird, sofern dieser zu klein oder nicht redundant ausgelegt wurde.

Als Vorteil ergeben sich aus dem NAT based SLB, dass die einzelnen Server durch den Loadbalancer zusätzlich geschützt werden. Zahlreiche Hersteller von Loadbalancer-Lösungen bieten hierfür zusätzliche Sicherheitsmodule an, die Angriffe oder auch fehlerhafte Anfragen schon vor Erreichen der Servercluster ausfiltern können. Auch die Terminierung von SSL-Sessions und somit die Entlastung der Servercluster bei HTTP-Farmen ist ein nicht zu unterschätzender Vorteil beim Server Based Loadbalancing.

Neben aktiven Healthchecks, wie sie bei den anderen Verfahren notwendig sind, sind seit einiger Zeit bei großen Web-Clustern zunehmend passive Healthchecks im Einsatz. Hier wird der ein- und ausgehende Datenverkehr durch den Loadbalancer überwacht, sobald ein Rechner im Servercluster eine Zeitüberschreitung bei der Beantwortung einer Anfrage auslöst, kann hierdurch dieselbe Anfrage an einen anderen Cluster-Server gestellt werden, ohne dass dies beim Client bemerkt wird.

Flat based SLB

Bei diesem Verfahren bedarf es nur eines Netzes. Die Server und der Load Balancer müssen über einen Switch miteinander verbunden sein. Sendet der Client eine Anfrage (an den Load Balancer), wird der entsprechende Ethernet-Frame so manipuliert, dass es eine direkte Anfrage des Clients an einen der Server darstellt - der Load Balancer tauscht dazu seine eigene MAC-Adresse gegen die des zu vermittelnden Servers aus und sendet den Frame weiter. Die IP-Adresse bleibt unverändert. Man spricht bei diesem Vorgehen auch von MAT (MAC Address Translation). Der Server, der den Frame bekommen hat, sendet die Antwort direkt an die IP-Adresse des Absenders, also des Clients. Der Client hat damit den Eindruck, er kommuniziere nur mit einem einzigen Rechner, nämlich dem Load Balancer, während der Server tatsächlich nur mit einem Rechner, direkt mit dem Client, kommuniziert. Dieses Verfahren wird als DSR (Direct Server Return) bezeichnet.

Vorteil bei Flat based SLB ist die Entlastung des Load Balancers. Der (meist datenreichere) Rückverkehr findet auf direktem Wege statt.

Probleme der Praxis

Anwendungen wie Online-Shops verwalten Client-Anfragen oft über Sessions. Für bestehende Sessions wird z.B. der Inhalt des Warenkorbes gespeichert. Dies setzt aber voraus, dass ein Client, für den bereits eine Session eröffnet wurde, immer wieder mit dem gleichen Server kommuniziert, sofern hier Client basierte Sessions verwendet werden. Der Load Balancer muss also fähig sein, sogar auf der Anwendungsschicht des OSI-Referenzmodells zu agieren, also z.B. Cookies und Session IDs aus Paketen zu extrahieren und auszuwerten, um daraufhin eine Vermittlungsentscheidung zu treffen. Als Load Balancer werden in der Praxis daher Layer 4-7-Switches eingesetzt. Dieses Problem kann aber durch entsprechende Ausrichtung der Software und Programmierung gelöst werden, so dass eine Anfrage auch von einem beliebigen Rechner des Server Pools beantwortet werden kann.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Load balancing (computing) — Load balancing is a computer networking methodology to distribute workload across multiple computers or a computer cluster, network links, central processing units, disk drives, or other resources, to achieve optimal resource utilization,… …   Wikipedia

  • Load-balancing — Mit Lastverteilung (auch Lastverbund, engl. load balancing) werden Verfahren beschrieben, um bei der Speicherung, dem Transport und der Verarbeitung von Objekten vorgegebene Kapazitätsgrenzen einzuhalten. Inhaltsverzeichnis 1 Lastverteilung in… …   Deutsch Wikipedia

  • Load Balancing — Mit Lastverteilung (auch Lastverbund, engl. load balancing) werden Verfahren beschrieben, um bei der Speicherung, dem Transport und der Verarbeitung von Objekten vorgegebene Kapazitätsgrenzen einzuhalten. Inhaltsverzeichnis 1 Lastverteilung in… …   Deutsch Wikipedia

  • Load Balancing —   [dt. »Lastausgleich«], ein Verfahren, um die Kapazität der Komponenten bei der verteilten Datenverarbeitung gleichmäßig auszunutzen, indem die Last auf mehrere Geräte verteilt wird. Dies ist besonders wichtig bei Netzwerken, für die nicht… …   Universal-Lexikon

  • Network Load Balancing — (commonly referred to as dual WAN routing or multihoming) is the ability to balance traffic across two WAN links without using complex routing protocols like BGP. This capability balances network sessions like Web, email, etc. over multiple… …   Wikipedia

  • Network Load Balancing Services — (NLBS) is a Microsoft implementation of clustering and load balancing that is intended to provide high availability and high reliability, as well as high scalability. NLBS is intended for applications with relatively small data sets that rarely… …   Wikipedia

  • Load Balancer — Der Begriff Serverlastverteilung oder englisch Server Load Balancing (SLB) beschreibt in der Netzwerktechnik Methoden zur Lastverteilung auf mehrere getrennte Server Rechner im Netzwerk. Inhaltsverzeichnis 1 Einsatzgebiete 2 DNS based SLB 3 NAT… …   Deutsch Wikipedia

  • Server-side redirect — A server side redirect is a method of URL redirection using an HTTP status code (eg. 301 Moved Permanently, 303 See Other and 307 Temporary Redirect) issued by a web server in response to a request for a particular URL. The result is to redirect… …   Wikipedia

  • Load Average — Load bezeichnet die momentan laufenden oder auf bestimmte Ereignisse wartenden Prozesse auf einem Computersystem. Man spricht dabei davon, dass „der Rechner einen Load von X hat“ (wobei X eine reelle Zahl größer gleich null ist). Sie wird… …   Deutsch Wikipedia

  • Server-Farm — Server Farm,   die Zusammenschaltung von zwei oder mehreren Servern, welche die gleiche Dienstart zur Verfügung stellen und mit gespiegelten Datenbeständen arbeiten. Die Server müssen sich dabei im gleichen Subnetz befinden oder über ein Gateway… …   Universal-Lexikon

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”