SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

TELEKOM

Lastverteilung

Wenn auch die Tuning-Tipps nicht mehr helfen, bleibt nur die Verteilung derLast auf mehrere Systeme. Eine einfache Methode wurde schon erwähnt:Setzt man für die Grafiken auf den Webseiten einen zweiten Serverein, liefert der eine Server nur die Texte und der andere die Grafiken. DieGesamtperformance steigt ohne weiteren administrativen Aufwand.

Einen Schritt weiter geht das Verteilen der Last auf mehrere System nach logischenGesichtspunkten. Am einfachsten läßt sich das an einem Beispielzeigen:

  • Verteilung nach Inhalten
    Aus shop.netzmafia.de wird
    • cd.shop.netzmafia.de
    • video.shop.netzmafia.de
    • software.shop.netzmafia.de
    • buecher.shop.netzmafia.de
  • Verteilung nach Standort
    Aus www.netzmafia.org wird
    • www.netzmafia.org
    • www.us.netzmafia.org
    • www.eu.netzmafia.org
    • www.asia.netzmafia.org
Bei der Verteilung nach Standort muß für die Replokation der Inhalte gesorgt werden. Wenn auch diese Tricks nicht mehr helfen, bleibt nur der Weg zu Serverfarmen und Clustern.

Bei Webfarmen oder Clustern können die einzelnen "real existierenden" Server untereinander entweder über LAN oder geographisch getrennt über WAN miteinander verbunden sein. Ihnen vorgeschaltet ist ein Load Balancer, der die Last möglichst gleichmäßig über die ihm untergeordneten realen Server verteilt. Der Parallelbertieb der Server erscheint nach außerhalb als die Leistung eines einzelnen virtuellen Servers unter einer einzigen IP-Adresse. Bei dem Ausfall einzelner Knoten wird das System entsprechend rekonfiguriert.

Begriffe

Ein Cluster ist allgemein eine Gruppe miteinander vernetzter Rechner, die gemeinsam an einem Problem arbeiten. Von Clustern im engeren Sinn spricht man, wenn die Knotenexklusiv für den Cluster genutzt werden und auf einem gemeinsamen Datenbestand arbeiten.
Die einzelnen Rechner eines Clusters bezeichnet man als Knoten. Häufig verteilt dabei ein besonderer Knoten, der Master, die Teilaufgaben auf die einzelnen Knoten und steuert so die Aktivität des ganzen Clusters. Auch die Interaktion mit dem Cluster findet in der Regel nur über den Master statt.

Als Skalierung bezeichnet man den realen Leistungszuwachs eines Systems durch Hinzufügen von Systemkomponenten. Ein Cluster, der bei doppelter Knotenzahl nur noch halb so lange rechnet, skaliert perfekt; wenn das Hinzufügen weiterer Rechner gar keinen Leistungsgewinn bringt, skaliert das System überhaupt nicht.

Load-Balancing verteilt einzelne Aufgaben wie Rechenjobs oder Client-Anfragen auf die Knoten in Abhängigkeit von ihrer Auslastung und Verfügbarkeit.

Als Network of Workstations bezeichnet man vernetzte Rechner, die - anders als die Knoten in einem typischen Cluster - auch als unabhängige Workstations genutzt werden. Das kann beispielsweise ein Firmen-LAN sein, dessen PCs "nach Feierabend" gemeinsam an einer Aufgabe rechnen.

Server-Farmen bestehen aus mehreren Rechnern, die sich eine gemeinsame Aufgabe teilen; anders als bei einem typischen Cluster arbeitet dabei jeder Rechner mit seinem eigenen, lokalen Datenbestand, der nur bei Bedarf gespiegelt wird.

Cluster und Load-Balancing

Das Konzept des Clusterings greift in der Regel auf die Cluster-Funktionen des Betriebssystems zurück. Das heißt allerdings auch, daß der Administrator die Restriktionen der jeweiligen Plattform bei dieser Funktion akzeptieren muß. Unabhängig vom Betriebssystem arbeitet ein Cluster im Prinzip immer gleich. Jedes Mitglied im Cluster kommuniziert mit seinen Partnern, um deren aktuellen Status zu erfahren. Die Server erfahren so, wie stark das Gegenüber ausgelastet ist. Die meisten Cluster greifen auf spezielle Load-Balancing-Algorithmen zurück, um den anfallenden Datenverkehr möglichst effektiv auf alle Pendants im Cluster zu verteilen. Dadurch steigert sich der Durchsatz der gesamten Installation erheblich und der Administrator erhält höhere Transferraten. Der potenzielle Flaschenhals ist somit beseitigt. Registriert eines der Systeme, daß ein anderes ausgefallen oder aus anderen Gründen nicht mehr verfügbar ist, übernimmt es dessen Aufgaben.

Bei Serverfarmen unterstützen mehrere Server eine Site. Die Servergruppe besitzt identische Ressourcen und spiegeln normalerweise die Daten untereinander. Dadurch ergibt sich auch eine Erhöhung der Ausfallsicherheit. Ein Load-Balancer verteilt die Anfragen auf die einzelnen Server. Bei einer Partionierung einer Site haben die Server untrschiedliche Datenbestände. Die Verteilung der Anfragen erfolgt aufgrund der eingehenden URLs.

Das Load-Balancing-Konzept wurde ursprünglich für eine ganz andere Problemstellung entwickelt. Es sollte Datenlasten effektiv in einer Serverfarm verteilen und untersucht mittels Statuspaketen die Auslastung jedes Servers im Cluster. Load-Balancing-Switches können beispielsweise Rechner herstellerunabhängig zu einem Cluster zusammenschließen. Die Server belegen entweder einen (oder aus Redundanzaspekten zwei oder mehrere Ports) auf dem Load-Balancing-Switch. Der nimmt den externen und internen Datenstrom an und entscheidet anhand seiner Algorithmen, an welchen Server er das Datenpaket senden soll. Die Effizienz der Algorithmen hängt davon ab, wie tief der Load-Balancing-Switch in die IP-Pakete hineinschaut. Sogenannte Layer-4-Load-Balancing-Switches untersuchen - wie der Name schon sagt - IP-Pakete bis hinauf in die Schicht 4, wo sie die UDP- und TCP-Portnummern erkennen. Der Administrator kann über diese Portkennung bestimmte Anwendungen aus dem Datenstrom herausgreifen und ihnen eine höhere Priorität zuordnen. Der Load-Balancing-Switch erfährt per Policy, daß dieses Paket Bestandteil einer besonders kritischen Transaktion ist, setzt diese Diensteanforderungen in seiner Load-Balancing-Entscheidung um und leitet es an den am wenigsten ausgelasteten Server weiter.

Eine einfaches Load-Balancing kann mit Hilfe des DNS (RFC 1794) erreicht werden. Trägt man mehrere Rechner unter einem Namen ein, liefert der DNS-Server be jeder Anfrage eine andere Adresse. Der Nachteil dieser einfachen Methode sei nicht verschwiegen: Steht die Zuordnung Name zu IP-Nummer erst einmal im Cache eines anderen DNS-Servers ist es aus mit der Last-Verteilung für Rechner dieser Domain. Damit hätten wir aber schon mal eine Strategie für das Load-Balancing, das "Round-Robin". Nachteil ist, daß beim Ausfall eines Servers der DNS die Anforderung "ins Leere" schickt und damit das zweite Ziel, nämlich die höhere Verfügbarkeit, verfehlt.Eine ähnliche Möglichkeit bietet auch NAT (Network Address Translation). Hier kann auch Fehlertoleranz berücksichtigt werden.
Die häufigsten Strategien sind:

  • Round Robin verteilt die Server nach einer vorgegebenen Reihenfolge
  • Least Connection wählt den Server mit der geringsten Anzahl von Netzwerkverbindungen
  • Observed: Auf jedem Server läuft ein Agent, der über die Last auskunft gibt. Der am wenigsten belastete Server wird vergeben.
  • Eine Verteilung nach Priority wählt den Server nach Vorrang der Anfragen.
  • Bei Ratio werden die Anfragen gewichtet und nach der Bewertung erfolgt die Auswahl des Servers.
  • Fastest wählt den Server, der am schnellsten reagiert.
  • Am kompliziertesten ist Predictiv. Hier erfolgt die Auswahl nach einer Belastungsvoraussage auf Grund statistischer Berechnungen.
Sind die Server geographisch verteilt, kann beispielsweise der nächstliegende Server oder jener mit der kostengünstigsten Verbindung gewählt werden.

Ein Problem ergibt sich, wenn der Zustand einer Web-Verbindung gehalten werden soll. Wenn die Verteilung beispielsweise per Round-Robin erfolgt, gelangt der Client jedesmal an einen anderen Server, der mit der Zustandsinfo nichts anfangen kann. Abhilfe schaffen kann man mit einer der folgenden Möglichkeiten:

  • Anfragen eines Clients immer an den gleichen Server bei einer Session
  • Replikation der Zustandsinfo innerhalb des Serververbundes
  • Load-Balancer unterstützt Cookies
  • Auf Zustandsinfo verzichten

Load-Balancer Pen

Wie oben erlätert, hat man bei stärker werdender Serverlast zwei Möglichkeiten, um einem Ausfall vorzubeugen: Ersetzen des Servers durch einen leistungsfähigeren oder Hinzunehmen weiterer Maschinen. Für den zweiten Fall benutzt man einen Loadbalancer, um die Last gleichmäßig auf alle Rechner zu verteilen. Ein Loadbalancer hat einige weitere Nebeneffekte. Er registriert, wenn einer der Rechner ausfällt, und verteilt die Last dynamisch auf die verbleibenden. Das stellt sicher, daß die angebotenen Services verfügbar bleiben, selbst wenn ein Server wegen eines Defekts offline ist (Ziel2: Fehlertoleranz). Auch Hardware- und Software-Upgrades, die mit einer Downtime verbunden sind, müssen nun nicht mehr nachts oder am Wochenende ausgeführt werden. Deshalb werden Loadbalancer auch bei Servern eingesetzt, bei denen die Last gar kein Problem darstellt. Nachteil: Der Loadbalancer selbst benötigt auch einen Rechner.

Einen einfach zu konfigurierenden und trotzdem leistungsfähigen Loadbalancer stellt Pen (http://siag.nu/pen) dar. Das GPL-Programm liegt in der Version 0.95 für Linux, FreeBSD, Solaris, HP-UX und MacOS X als Tarball vor. Das Binary wird mit dem üblichen "configure; make; make install;" erzeugt. Als Beispiel dienen ein Loadbalancer und zwei Webserver:

  • Der Hostname des Loadbalancers ist "Happy",
  • der eine Webserver heißt "Bashful" und
  • der andere Webserver heißt "Grumpy".
Auf "Happy" führt man das Kommando
                                       pen -1 /var/log/pen.log Happy:80 Bashful:80 Grumpy:80
                                       
aus. Schon das reicht für eine funktionierende Konfiguration! Der Rechner "Happy" lauscht ab sofort auf Port 80 und verteilt die dort eingehenden Pakete auf die Server "Bashful" und "Grumpy". Dabei folgt er nicht stur einem Round-Robin-Verfahren: Er merkt sich vielmehr, welchen Client er zu welchem Server vermittelt hat, und behält diese Zuteilung bei. Das ist für Web-Angebote wichtig, die mit Sessions arbeiten. Mit dem Parameter "-C Port" kann man eine Kontrollverbindung zu Pen erzeugen. Per Telnet auf den angegebenen Port kann man Statusinformationen lesen und einfache Kommandos absetzen. Was aber, wenn der Rechner ausfällt, auf dem Pen selbst läuft? Auch daran ist gedacht, denn zwei separate Pens auf zwei Maschinen mit identischer Konfiguration sind lauffähig. Beide überwachen sich gegenseitig per VRRP (Virtual Router Redundancy Protocol (RFC 2338)) und vertreten sich gegenseitig.

Zum Weiterlesen

Jürgen Schmidt: Doppelt hält besser, c't 6/1999
Stephan Nechwatal: Doppelt hält besser, c't 22/2000
Dr. Oliver Diedrich: Einigkeit macht stark, c't 22/2000
Bruno Nyffeler: Tux hoch n, c't 22/2000
Matthias Rechenburg: Geteilte Last, Linux Magazin 01/2002
Andre von Raison: Allzeit bereit, iX 6/2002
Kai Dupke: Zauberhaftes Doppel, iX 6/2002

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere