Hochverfügbarkeit von IT-Anwendungen durch Load-Balancing


Bachelorarbeit, 2009

57 Seiten, Note: 1,7


Leseprobe

Inhaltsverzeichnis

II. Abkürzungsverzeichnis

III. T abellenverzeichnis

IV. Abbildungsverzeichnis

V. Verzeichnis der Anlagen

1 Einleitung
1.1 Motivation
1.2 Ziel und Aufbau dieser Arbeit
1.3 Themenabgrenzung

2 Grundlagen
2.1 Begriffsdefinitionen
2.1.1 Hochverfügbarkeit
2.1.2 OSI-Referenzmodell
2.1.3 Load-Balancing
2.1.3.1 Server Load-Balancing
2.1.3.1.1 DNS ServerLoad-Balancing
2.1.3.1.2 NAT Server Load-Balancing
2.1.3.1.3 Flat Server Load-Balancing
2.1.3.2 Global Server Load-Balancing
2.2 Verfügbarkeit und Leistungsmessung der Server
2.2.1 Testen der Verfügbarkeit der Server
2.2.2 Leistungsmessung der Server

3 Hochverfügbarkeit in einer Beispielanwendung
3.1 Betriebswirtschaftliche Einordnung
3.2 Technische Anforderungen an die Beispielanwendung
3.3 Architektur einer Anwendung ohne Loadbalancer
3.3.1 Softwarearchitektur
3.3.1.1 Präsentationsschicht
3.3.1.2 Logikschicht
3.3.1.3 Datenhaltungsschicht
3.3.2 Hardwarearchitektur
3.4 Architektur einer Anwendung mit Loadbalancer

4 Fazit
4.1 Offene Punkte
4.2 Ausblick

5 Literaturangaben

II. Abkürzungsverzeichnis

Abbildung in dieser Leseprobe nicht enthalten

III. Tabellenverzeichnis

Tabelle 1: Single Points ofFailure

Tabelle 2: Die sieben Schichten des OSI-Referenzmodells

Tabelle 3: Die Dienste nach VDV-Schrift 453

IV. Abbildungsverzeichnis

Abbildung 1: DNS ServerLoadbalancer

Abbildung 2: NAT Server Loadbalancer mit zwei Netzen

Abbildung 3: NAT Server Loadbalancer mit einem Netz

Abbildung 4: Flat Server Loadbalancer

Abbildung 5: DNS - globaler Server Loadbalancer(GSLB)

Abbildung 6: DNS - GSLB mit zwei Serverfarmen

Abbildung 7: Datenaustausch von Verkehrsinformationen ohne ein zentralisiertes System

Abbildung 8: Datenaustausch von Verkehrsinformationen mit einer ZDD.

Abbildung 9: Die Präsentationsschicht

Abbildung 10: Die Logikschicht

Abbildung 11: Die Datenbankschicht

Abbildung 12: Hardwarearchitektur ohne LB

Abbildung 13: Redundanter DNS-SLB

Abbildung 14: Die Gesamtarchitektur der ZDD

Abbildung 15: Die Architektur der geteilten ZDD

Abbildung 16: Ein hochverfügbares System

V. Verzeichnis der Anlagen

Die folgenden Unterlagen liegen der Bachelorthesis auf CD bei.

Anhang 1: Ajax Tags.

Anhang 2:Apache Commons.

Anhang 3: Apache Logging Services Project.

Anhang 4:Apache Struts.

Anhang 5: Apache Tomcat.

Anhang 6: Common Controls.

Anhang 7: dom4j-Introducion.

Anhang 8: Entities- The JavaEE 5 Tutorial.

Anhang 9:Hibernate.

Anhang 10: JavaServer Pages API.

Anhang 11: Making applications scalable with LB.

Anhang 12: MySQL Introducion.

Anhang 13: Netscaler Application Delivery Lösungen.

Anhang 14: Next-gen load balancing: Delivering advanced Web apps.

Anhang 15: OSCache.

Anhang 16: PostgreSQL Introducion.

Anhang 17: Server load balancing: NAT-Based SLB network architecture.

Anhang 18: Servlet API.

Anhang 19: The Java Persistence Query Language.

Anhang 20: VDV-Schrift 453. Integrationsschnittstelle Rechnergestützter Betriebsleitsysteme.

Anhang 21 : Xerces2 Java Parser Readme.

1 Einleitung

1.1 Motivation

Ursprünglich bestand das Web meist aus statischen Inhalten: Ein paar Benutzer, die den Großteil ihrer Zeit mit dem Lesen verbrachten und nur selten den Server mit ein paar Klicks belastet hatten. Nun sehen wir reale Anwendungen, die im Besitz von mehreren Benutzern für zehn Minuten oder Stunden sind, die wenige statische Inhalte haben und eine Menge Arbeit zwischen mehreren Klicks auf den Servern erledigen. Die Benutzer besuchen oft die gleichen Webseiten, die sie gut kennen und benötigen nur wenig Zeit, um den Inhalt zu lesen. Sie erwarten sofortige Bearbeitung der Anfragen. Dadurch wird der Server jedoch mit jedem Klick stärker belastet. Diese Dynamik hat einen neuen Bedarf an hoher Leistung und ständiger Verfügbarkeit von Servern entwickelt, welche von vielen Unternehmen zu spüren ist.1

Die Unternehmen haben ihre Abhängigkeit von entfernten und mobilen Zugriff auf Business-Anwendungen über das Internet verstärkt. Anwendungen, die den Arbeitnehmern in den Niederlassungen und Home-Offices zur Verfügung stehen müssen, werden zunehmend über ein Intranet2 zugänglich gemacht. Webseiten wurden ein integraler Bestandteil der täglichen Interaktionen mit Kunden, Lieferanten und Partnern. Aus diesen Gründen müssen robuste Lösungen für einen ununterbrochenen, sicheren und leistungsfähigen Zugang zu netzbasierten Business-Anwendungen und Webseiten im Unternehmen sichergestellt werden.3

Hierzu trägt die Hochverfügbarkeit von IT-Anwendungen durch Load -Balancing bei.

1.2 Ziel und Aufbau dieser Arbeit

Ziel dieser Arbeit ist die Wichtigkeit und Problematik der Hochverfügbarkeit von IT-Anwendungen zu verdeutlichen und die theoretische Einbindung von einem Loadbalancer (Abk. LB) in einer Beispielanwendung darzustellen. Das beinhaltet auch eine kritische Analyse des Load-Balancing.

Gegliedert ist diese Ausarbeitung in drei Hauptbestandteile.

Im ersten Teil werden die theoretischen Grundlagen aufgeführt. Hier werden vor allem Begriffe erklärt, die in dieser Arbeit vorkommen. Weiterhin sind hier die generellen Probleme bei der Nutzung eines Server Loadbalancer (Abk. SLB) zu diskutieren.

Im zweiten Teil folgt der Hauptteil, in dem die Struktur von einer hochverfügbaren Beispielanwendung darzustellen ist. Nach einer Beschreibung der Anforderungen an die Anwendung erfolgt im nächsten Schritt eine Architektur der Anwendung ohne LB, welcher dann eine Anwendung mit LB gegenübergestellt wird. In diesem Abschnitt der Arbeit werden auch einzelne Programmbibliotheken4 für die Implementierung benannt, so dass ein Muster für die Integration von einem Loadbalancer und für die Sicherstellung von Verfügbarkeit in einer zukünftigen oder vorhandenen Anwendungen entsteht.

Das Fazit bildet den Abschluss dieser Arbeit. Sein Inhalt ist eine kurze kritische Betrachtung, die zeigt, ob das Ziel der Ausarbeitung erreicht wurde. Hier werden offene Punkte und ein Ausblick auf die nächsten Jahre diskutiert.

1.3 Themenabgrenzung

Der zentrale Punkt dieser Arbeit ist die Sicherstellung der Verfügbarkeit von IT-Anwendungen durch Load-Balancing. Es wird nicht unterschieden, ob die Rechner bzw. Server, die zum Einsatz kommen, virtuell oder physikalisch sind. Es geht um die Frage: „Wie macht man eine Anwendung, die unter enormer Last steht, hochverfügbar?“, und zwar nur durch Load-Balancing. Auf andere Verfahren für Hochverfügbarkeit wird nur indirekt und eingeschränkt eingegangen.

Im letzten Teil soll man die Beispielanwendung nicht implementieren, sondern nur modellieren. Die Betonung liegt auf den Änderungen der Softwarearchitektur, die durch die Integration eines LB verursacht werden.

Auf eine Modellierung in UML5 wird verzichtet. Darzustellen sind nur die Grundrisse der Softwarearchitektur der Beispielanwendung. Auf die Struktur der einzelnen Programmbibliotheken wird nicht eingegangen.

Die Kostenstruktur der benötigten Ressourcen für das Load-Balancing und für den Umbau von einer schon vorhandenen Anwendung ist nicht Gegenstand dieser Arbeit.

2 Grundlagen

2.1 Begriffsdefinitionen

2.1.1 Hochverfügbarkeit

Bevor man sich mit dem Begriff „Hochverfügbarkeit“ (Abk. HA) beschäftigt, muss erstmal klar sein, was „Verfügbarkeit“ ist. Verfügbarkeit wird immer von der Endbenutzersicht gemessen, d.h. dass ein System verfügbar ist, wenn es über die gesamte Kette von der Datenbank über die Anwendung bis zum Endbenutzer funktioniert.6

Unter Hochverfügbarkeit (engl. High Availability) ist die Forderung gemeint, „dass ein System auch im Fehlerfall für alle (oder zumindest den überwiegenden Teil) der Anwender benutzbar bleibt und diese keine oder nur eine kurze Unterbrechung wahrnehmen“7. Um diese Forderung zu erfüllen, werden die Systeme redundant8 ausgelegt.

Typische hochverfügbare Systeme sind das Telefonsystem und das Stromnetz. Die Benutzer dieser Systeme erwarten, dass sie immer zur Verfügung stehen. Ohne Telefonsignal ist man nicht in der Lage, Notfallanrufe durchzuführen. Ohne Strom werden nicht nur Haushaltsgeräte nicht funktionieren, sondern auch lebensnotwendige Geräte für die Krankenhäuser.9

Diese Arbeit beschränkt sich auf die Hochverfügbarkeit von IT-Anwendungen. Sie sind heutzutage für die meisten Unternehmen genau so wichtig wie die zwei o.g. Systeme.10 Dabei ist HA nicht absolut sondern von Unternehmen zu

Unternehmen unterschiedlich bewertet. Finanzuntemehmen brauchen beispielsweise ständig verfügbare Anwendungen, andere nur während der Werktage.

Die Verfügbarkeit von einem System wird meist prozentual bezogen auf ein Jahr angegeben.11 „Eine Verfügbarkeit von 99% entspricht einer Ausfallzeit von insgesamt 3,6 Tagen pro Jahr.“12

Zu weiteren Kenngrößen für HA zählen:13

- Zuverlässigkeit,
- die Zeitspanne zwischen dem Auslösen einer Aktion und der Ausführung dieser Aktion,
- die mittlere ausfallfreie Zeit,
- die mittlere Dauer für die Wiederherstellung nach einem Ausfall,
- die mittlere ausfallfreie Zeit eines Betriebssystems.

Die Gründe für einen Systemausfall können sehr unterschiedlich sein. Tabelle 1 beschreibt die so genannten „Single Point of Failure“14, die zu einen Ausfall des Gesamtsystems führen können.

Quelle: Großmann und Koschek (2005: 136).

Neben der o.g. Fehlerquelle, ist der Mensch selbst ein wesentlicher Unsicherheitsfaktor und häufig Ursache für einen Systemausfall. Typisches Beispiel dafür sind die Fehler, die infolge falscher Benutzereingaben auftreten.

Nachdem die Ursachen für einen Systemausfall beschrieben sind, lassen sich die Anforderungen an hochverfügbare Systeme wie folgt zusammenfassen:15

- „Sicherstellung eines unterbrechungsfreien Datenzugriffes im Störungsfall,
- redundante Datenspeicherung,
- horizontal skalierbare Sicherungssysteme,
- zentrale Konfiguration Administration und Überwachung der IT- Infrastruktur,
- Identifikation der Single Points ofFailure und das Ergreifen präventiver Maßnahmen.“

2.1.2 OSI-Referenzmodell

Um Load-Balancing definieren zu können, soll zuerst das OSI-Referenzmodell erklärt werden. Das Modell teilt Netzwerkverbindungen in sieben logische Schichten auf, die jeweils eigene Aufgaben übernehmen. Jede höhere Ebene baut auf den Funktionen der tiefer liegenden auf.16

Die folgenden sieben Schichten sind zu unterscheiden:

Tabelle 2: Die sieben Schichten des OSI-Referenzmodells.

Abbildung in dieser Leseprobe nicht enthalten

Quelle: Vgl. Bünning und Krause (2001: 61f) und Kenyon (2002: 17ff).

Die einzelnen Funktionen etwas genauer:17

- Schicht 1: Bitübertragungsschicht. Hier wird die physikalische Übertragung definiert: das Medium wie Kabel, Funk, Infrarot, gesendete Signale usw.
- Schicht 2: Sicherungsschicht (auch Verbindungsschicht oder MAC18 - Layer genannt). Die Daten werden in einzelne Rahmen aufgeteilt und gesichert übertragen.
- Schicht 3: Netzwerkschicht (auch Vermittlungsschicht). Zentrale Aufgabe ist die Bestimmung eines optimalen Weges durch ein Netzwerk.
- Schicht 4: Transportschicht. Diese Schicht stellt einen gesicherten Kanal zwischen zwei Stationen her, so dass die Daten einfach seriell geschrieben und gelesen werden können.
- Schicht 5: Sitzungsschicht (auch Kommunikationssteuerungsschicht).

Das Zusammenspiel mehrerer Stationen wird synchronisiert. Hier wird beispielsweise der zeitliche Ablauf einer Sitzung festgelegt. Die Aufforderung zum Senden eines Kennwortes, das Senden des Kennworts und die Bestätigung des Kennwortes finden auch hier statt.
- Schicht 6: Darstellungsschicht. Auf dieser Ebene werden die Daten in ein einheitliches Format transformiert, zum Beispiel durch eine Datenkompression.
- Schicht 7: Anwendungsschicht: Diese Schicht beschreibt die Schnittstelle, über die Anwendungen und Dienste eines anderen Systems zugreifen können.

Jede Schicht kommuniziert mit der entsprechenden Schicht auf dem anderen System, indem sie Daten entweder an die darüber oder darunter liegende Schicht weiterleitet.19

2.1.3 Load-Balancing

Unter dem Begriff „Load-Balancing“ versteht die Informatik die Verteilung von Berechnungen oder große Mengen von Anfragen auf mehrere parallel arbeitende Systeme.20 Ein System können hier mehrere Rechner, Rechnernetze, Prozessoren, Festplatten oder andere Ressourcen sein.

Der Begriff „Load-Balancing“ ist weiter gefasst. Hierunter wird im weitesten Sinne auch ein Mechanismus zur Ausfallsicherheit verstanden, denn durch die Verteilung der Anfragen bzw. der Berechnungen auf einzelne Systeme wird eine Erhöhung der Ausfallsicherheit erreicht.21

2.1.3.1 Server Load-Balancing

Sogenannte Server Loadbalancer werden in Computercluster22 oder auch Serverfarmen23 eingesetzt. Es ist ein System von mehreren Rechnern, die zu einem Funktionseinheit zusammengeschlossen werden.24 Die Begriffe Cluster und Serverfarm werden nicht unterschieden, da ein Cluster oft als Serverfarm bezeichnet wird, falls er die Erhöhung der Verfügbarkeit als primäres Ziel hat.

Um eine Überbelastung eines einzelnen Rechners/Servers zu verhindern wird SLB vor allem dort eingesetzt, wo viele Clients eine hohe Anfragendichte und somit eine hohe Datenrate25 erzeugen.26 Es besteht keine Notwendigkeit von einem SLB, wenn die Anzahl der Clients oder die Anfragenrate niedrige Werte aufweisen.

Das Server Load-Balancing kann in verschiedenen Schichten des OSI- Referenzmodells eingesetzt werden. Drei verschiedene Ansätze werden grundsätzlich unterschieden: DNS Server Load-Balancing, NAT Server Load­Balancing und Flat Server Load-Balancing.

2.1.3.1.1 DNS Server Load-Balancing

DNS27 Server Load-Balancing wird auf der Anwendungsschicht eingesetzt. Sie ist simpel und günstig zu implementieren.28 Durch DNS wird einer Domain29 eine Vielzahl an IP30 -Adressen zugewiesen. Dadurch sind DNS-Server in der Lage alle möglichen IP-Adressen zurückzugeben, wobei die Reihenfolge variieren kann, z.B. durch einen „Round-Robin“31 -Algorithmus.

Der Nachteil von einem DNS-SLB ist, dass er über die Verfügbarkeit und tatsächliche Belastung der Zielserver nichts weiß, denn sein primärer Zweck ist, den Domainnamen zu einer IP-Adresse zu übersetzen.32 Abbildung 1 illustriert einen DNS-SLB, bei dem einer der Server ausgefallen ist und der somit einen Verlust, in Höhe von einem Drittel der Anfragen, verursacht.

[...]


1 Vgl. Tarneau (2006: 3).

2 Intranet ist ein nicht öffentliches, meist firmeninternes Computernetzwerk. (Vgl. Hallberg (2005: 28)).

3 Vgl. Citrix White Paper (2008: 3).

4 Programmbibliothek ist eine Sammlung von Programmfunktionen zusammengehörender Aufgaben. (Vgl. Keithund Schincariol (2006: 28f)).

5 Engl. Unified Modeling Language.

6 Vgl. Weygant (2001:2).

7 Großmann und Koschek (2005: 134).

8 Hier steht Redundanz für das Vorhandensein mehrerer vergleichbarer Ressourcen, die nur im Störungsfall benötigt werden. (Vgl. Keithund Schincariol (2006: 320)).

9 Vgl. Weygant (2001: 3f).

10 Vgl. Weygant (2001:5).

11 Vgl. Großmann undKoschek (2005: 135).

12 Großmann und Koschek (2005: 135).

13 Vgl. Großmann undKoschek (2005: 135).

14 Einzelne Fehlerstelle.

15 Großmann und Koschek (2005: 137).

16 Vgl. Bünning und Krause (2001: 61).

17 Vgl. Bünning und Krause (2001: 61f) und Kenyon (2002: 17ff).

18 Engl. Media Access Control.

19 Vgl. Bünning und Krause (2001: 62).

20 Vgl. Bourke (2001:3).

21 Vgl. Adelstein und Lubanovic (2007: 182).

22 Auch „Cluster“, bezeichnet einen Verbund von vernetzten Rechnern, die sich nach außen als ein Rechner präsentieren. (Vgl. Hallberg (2005: 191)).

23 Serverfarmen bestehen aus mehreren Rechnern, die Anfragen über ein Rechnernetz erhalten und bearbeiten und einem oder mehreren LB, die die Anfragen auf die zur Verfügung stehenden Rechner aufteilen. (Vgl. Kopparapu (2002: 15f)).

24 Vgl. Kopper (2005:2).

25 Die Datenrate bezeichnet die Menge an Daten, die zu einer Zeit im Verhältnis steht. (Vgl. Hallberg (2005: 50)).

26 Vgl. Held (2000: 8f).

27 DNS - Domain Name System-Protokoll

28 Vgl. Kopparapu (2002: 15).

29 Eine Domain ist ein hierarchischer Raum im globalen Netz, welcher dazu dient Computer im Internet durch einen eindeutigen Namen zu identifizieren. (Vgl. Hallberg (2005: 101)).

30 Internet Protocol (Abk. IP) ist ein grundlegendes Protokoll im globalen Netz.(Vgl. Hallberg (2005: 98)).

31 Round-Robin ist ein Verfahren, das mehreren konkurrierenden Prozessen begrenzte Ressourcen zuordnet. (Vgl. Franklin (2003: 424)).

32 Vgl. Kopparapu(2002: 16).

Ende der Leseprobe aus 57 Seiten

Details

Titel
Hochverfügbarkeit von IT-Anwendungen durch Load-Balancing
Hochschule
Fachhochschule Kiel
Note
1,7
Autor
Jahr
2009
Seiten
57
Katalognummer
V144925
ISBN (eBook)
9783640549047
ISBN (Buch)
9783640553327
Dateigröße
930 KB
Sprache
Deutsch
Schlagworte
Loadbalancing, Load-Balancing, VDV, Hochvefügbarkeit, HA, High Availability, Serverfarm, Lastteilung, Lastverteilung, Verfügbarkeit
Arbeit zitieren
B.A. Georgi Trendafilov (Autor), 2009, Hochverfügbarkeit von IT-Anwendungen durch Load-Balancing, München, GRIN Verlag, https://www.grin.com/document/144925

Kommentare

  • Noch keine Kommentare.
Im eBook lesen
Titel: Hochverfügbarkeit von IT-Anwendungen durch Load-Balancing



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden