Hochverfügbarkeit durch Virtualisierung im Servereinsatz

Aus Winfwiki

Wechseln zu: Navigation, Suche
Name des Autors / der Autoren: Dennis Hoffstaedte
Titel der Arbeit: "Hochverfügbarkeit durch Virtualisierung im Servereinsatz"
Hochschule und Studienort: FOM Düsseldorf


Inhaltsverzeichnis


1 Einleitung

1.1 Thema

Die Virtualisierung und Hochverfügbarkeit ist zur Zeit eines der zentralen Themen in der IT Branche. Man begegnet ihr in Fachzeitschriften, Büchern und auf Online-Portalen. Überall lassen sich dort Beträge und Neuigkeiten rund um die Virtualisierung finden. Doch die Virtualisierung ist kein neues Thema. Schon 1974 beschäftigten sich Popek und Gutenberg in Ihrer Arbeit „Formal requirements for virtualizable third generation architectures“ mit der Virtualisierung.[1]

Ganze Geschäftszweige, wie beispielsweise Hoster, stützen ihre Angebote auf den Einsatz von Virtualisierungstechnologie und unlängst haben selbst große Firmen wie Amazon mit ihrem EC2 ”Amazon Elastic Compute Cloud“ Service begonnen, Dienstleistungen auf Basis dieser Technik anzubieten.[2]

Eine Studie von Stratus, die im Juni 2010 erhoben wurde zeigt, dass viele Unternehmen mehr und mehr unternehmenskritische Applikationen auf virtualisierten Systemen betreiben, sich dabei aber nicht ausreichend gegen Systemausfälle absichern. Die Kosten eventueller Ausfallzeiten haben nur wenige Unternehmen kalkuliert. In dieser Studie zeigt sich auch, dass es vielen Unternehmen nicht klar ist, dass durch die Virtualisierung von Servern eine Verfügbarkeitslücke entsteht. Weiter zeigt die Untersuchung, dass viele Unternehmen beim Thema Hochverfügbarkeit ausgesprochen risikofreudig sind.

1.2 Motivation

Gründe für die Wahl des Thema "Hochverfügbarkeit durch Virtualisierung im Servereinsatz" waren unter anderem das Bewusstsein über die zunehmende starke Bedeutung in der Informationstechnologie und die Überlegung, welche Themen bzw. Bereiche in der IT Branche zukünftig richtungsweisend sein werden. Gerade in Zeiten wo alle Unternehmen von GreenIT, Kostenreduktion und Serverkonsolidierung sprechen bekommt der Virtualisierung und besonders deren Verfügbarkeit eine immer größer werdende Bedeutung zu[3]. Ein weiterer Beweggrund ist das persönliche Interesse für dieses Gebiet sowie die Spezialisierung auf die Produkte der Firma VMware und Microsoft, den führenden Herstellern im Bereich von Virtualisierungslösungen.

1.3 Zielsetzung

Ziel dieser Seminararbeit ist, dem Leser eine umfassende Übersicht über das Thema der Hochverfügbarkeit durch Virtualisierung zu geben. Diese Arbeit richtet sich an dem Business-Sektor und nicht an den Sektor der Privatanwender. Es wird zunächst ein Überblick über die Grundlagen geschaffen. Vor diesem Hintergrund werden die Begriffe erklärt, die man zum weiteren Verständnis dieser Technologie benötigt. Fortgeführt wird die Arbeit durch eine Auseinandersetzung mit den verschiedenen Arten der Virtualisierungsarchitekturen und Techniken. Weiter werden Alternativen aufgezeigt die teilweise stark mit der Virtualisierungstechnik verzahnt sind beziehungweise Weiterentwicklungen darstellen. Abschließend erfolgt eine Schlussbetrachtung, in der nochmals auf alle relevanten und dazugehörigen Aspekte eingegangen wird. Die Seminararbeit wird aufzeigen, wie weit und aktuell das Konzept der Virtualisierung fortgeschritten ist und dem Leser verdeutlichen, dass das Thema Virtualisierung nicht nur eine Modeerscheinung, sondern ein ernstzunehmendes Konzept darstellt.

1.4 Abgrenzung

In dieser Seminararbeit reden wir, wenn von Virtualisierung gesprochen wird, grundsätzlich von der Virtualisierung des Gesamtsystems. Es gibt zusätzlich auch Virtualisierungsverfahren für Massenspeicher oder Netzwerke, jedoch wird darauf in dieser Arbeit nicht näher eingegangen.
Zusätzlich ist es notwendig, eine klare Abgrenzung zur Systememulation vorzunehmen. Die Systememulation kann als Bestreben definiert werden, ein komplettes Hardwaresystem mittels Software nachzubilden, so dass für diese Hardwareumgebung erstellte Software darin lauffähig ist. Während bei der Virtualisierung mehrere Ausführungsumgebungen auf der Hardware geschaffen werden sollen, ist man bei der Systememulation bestrebt, eine Auführungsumgebung von meist anderer Hardware zu simulieren.
Die Tatsache, dass die Emulation und die Virtualisierung fortwährend nicht klar unterschieden werden, lässt sich insbesondere damit begründen, dass viele Probleme sowohl durch Emulation als auch durch Virtualisierung gelöst werden kann, beispielsweise das gleichzeitige Ausführen mehrerer Betriebssyteme ohne Neustart. Auch ist der Umstand darauf begründet, dass viele Virtualisierungslösungen die Emulation verwenden um Schnittstellen zum Gastsystem zu schaffen. Dies passiert oft bei der Virtualisierung gängiger Peripherie für die virtuelle Maschine wie beispielsweise Netzwerkkarten.

2 Grundlagen

2.1 Geschichte der Virtualisierung

Die Geschichte der Virtualisierung führt zurück bis in die Ende der fünfziger Jahre, als der britische Informatiker Christopher Strachey sich mit der Rechenzeit beschäftigte und geforscht hat, wie man die Rechenzeit optimal nutzen kann. Zudem überlegte er sich die Lösung, dass man Programme auf einer logischen CPU starten kann, wie sie auch auf einer physikalischen CPU gestartet werden. Dies waren auch die ersten Anfänge und Ideen des Multitaskings. In den darauffolgenden Jahren wurde das Prinzip der Hardware-Virtualisierung verwendet, um bestehende Probleme zu lösen.

Anfang der sechziger Jahre wurde beim ATLAS Computer der Speicher virtualisiert, um Kosten für Hauptspeicher zu sparen. Die erste virtuelle Maschine entstand durch die Zusammenarbeit von IBM und dem MIT mitte der sechziger Jahre. Das Potenzial von Virtualisierung erkannte man jedoch erst viele Jahre später. So entstanden in den achtziger Jahren eine Reihe von VM Produkten unter der Regie von IBM.

Spricht man heute vor allem im Sektor der privaten Anwender beim Thema Virtualisierung eher von zusätzlich installierbaren Anwendungsprogrammen, so war dieses Konzept bei seiner Entstehung sehr hardwarenah zu sehen[4]Die Virtualisierung diente hierbei als Methode, um beispielsweise die Ressourcen von Mainframerechnern auf mehrere Konsolen aufzuteilen. In den überwiegenden Fällen war die virtuelle Maschine ein genaues Abbild der echten Hardware, beispielsweise beim Forschungssystem CP-40 von IBM und sorgte so für die Möglichkeit, die Ressourcen des Systems aufzuteilen[5]. Das aktuelle virtualisierungsfähige Betriebsystem Z/VM von IBM stammt noch aus dieser Zeit und wird bis heute auf Großrechnern verwendet.[6]

Im PC-Bereich wurde im Jahr 1999 der erste virtual Machine Monitor für den Massenmarkt von VMware veröffentlicht.[7]Das Produkt wird bis heute weiterentwickelt, VMware selbst ist momentan Marktführer im Bereich der Virtualisierung.[8]

2.2 Ringarchitektur x86

x86 Prozessoren verfügen über sogenannte Schutzringe. Dabei handelt es sich um eine hardware-basierte Sicherheitsarchitektur. Diese Sicherheitsarchitektur verfolgt unter anderem folgende Ziele: -Schutz vor Daten -Vermeidung von Funktionsfehlern -Verhinderun von falschen Verhaltensweisen

Um diese Ziele zu bewahren werden Schutzzonen, die sogenannten Ringe, eingerichtet. Die Ringe sind durchnummeriert von 0-3, wobei jeder Ring einen dedizierten Systemspeicherbereich hat. Die einzelnen Ringe steuern die isolierte Ausführbarkeit von Prozessen, je nach Zugehörigkeit. Die höchste Privilegstufe hat der Ring 0. Dieser Ring 0 verfügt über einen uneingeschränkten Hardwarezugriff. Der Kern des jeweiligen Betriebsystem befindet sich im Ring0. Die Ringe 1 und 2 sind eigentlich für Gerätetreiber, bleiben jedoch meist in der Praxis ohne Verwendung. Zugriffe von Anwendungen gehen über den äußersten Ring3, der nur sehr stark eingeschränkte Möglichkeiten des Hardwarezugriffs verfügt. Somit wird die Datensicherheit und die Systemstabilität gewährleistet.[9]

2.3 Was ist Virtualisierung

Das Wort Virtualisierung lässt sich von dem Lateinischen Wort: 'virtus' (Tüchtigkeit,Vermögen,Kraft) ableiten und kann am besten in den Kontext übersetzt werden: „der Kraft nach vorhanden“ und „simulierte Abbildung“. Ein physikalisches System besteht grob aus vier Kernkomponenten, die auch als Core Four bezeichnet werden. Die Komponenten sind: Der Prozessor, der Hauptspeicher, der Speicherplatz und das Netzwerk. Hier macht ein virtuelles System keinen Unterschied, wodurch der Systemverwalter trotz Konsolidierung immer noch die Betreuung der vier Kernkomponenten aller genutzten Maschinen übernimmt, also des Wirtssystems plus aller Gastsysteme. Allerdings verhält sich das Wirtssystem im Vergleich zu den Gastsystemen deutlich komplexer, weil der Wirt und die darauf laufende Virtualisierungssoftware die Leistung, die Flexibilität und die Verwaltung des Gesamtkonstrukts vorgeben. Außerdem genießen virtuelle Maschinen den Vorteil immer gleicher Hardware, während beim Wirt unterschiedliche Techniken zum Einsatz kommen können.

2.3.1 Paravirtualisierung

Die Paravirtualisierung verfolgt das Ziel, angepasste Gastsysteme sehr performant virtualisieren zu können. Hierbei ist entscheidend, dass ein Gastsystem für dieses Verfahren ”Virtualization Aware“ sein muss. Mit anderen Worten muss ein solches Gastsystem wissen, dass ein vorgeschalteter Hypervisor existiert und vor allem, wie es mit diesem kommunizieren kann. Modifikationen sind beim Gastsystem also genau dort notwendig, wo ohne Virtualisierung direkt auf die Hardware, beispielsweise auf privilegierte CPU Befehle zugegriffen würde. Außerdem werden wichtige Systemschnittstellen wie Netzwerkadapter nicht durch Emulation von Hardware durch den Virtual Machine Monitor realisiert, sondern dadurch, dass ein modifizierter Treiber im Systemkern, der dem Gastsystem eine Netzwerkkarte vortäuscht, die eigentlich direkt Aufrufe an den Hypervisor sendet.

Die Gastsysteme, typischerweise (bis heute sogar ausschließlich) quellenoffene Systeme, werden komplett auf einer eigenen Partition oder in einem Diskimage installiert und mit einem für Paravirtualisierung ausgelegten Kernel gestartet. Anders als bei der Betriebssystem-Virtualisierung wird für jede virtuelle Maschine das komplette Betriebssystem mit Systemkern gestartet.

2.3.2 Native Virtualisierung

Das Ziel der nativen Virtualisierung ist es, unmodifizierte Gastsysteme in einer virtuellen Maschine laufen lassen zu können, als würden sie sich auf der eigentlichen Hardware des Hostsystems befinden. Hierbei wird versucht, einen möglichst großen Teil der CPU Instruktionen direkt an den Prozessor weiterzugeben und nur privilegierte Befehle abzufangen und entsprechend zu verändern. Zu diesem Zweck wird den Gastsystemen, die normal direkt auf der Hardware laufen, eine zusätzliche Schicht, der sogenannte Virtualization Layer, im Wesentlichen also der Hypervisor, untergeschoben. Dieser sorgt nicht nur für das Abfangen bestimmter CPU Instruktionen, sondern emuliert auch zusätzliche Hardware wie Netzwerkkarten und Grafikadapter, um dem Gastsystem Schnittstellen anbieten zu können. Da die reale Hardware vom Gastsystem zumindest teilweise mit genutzt wird, ist es nicht möglich, Betriebssysteme als Gast zu nutzen, die für eine andere Prozessorarchitektur als die des Hostsystems entwickelt wurden. Mit diesem Thema beschäftigt sich die Emulation.

2.4 Was ist Hochverfügbarkeit

Bevor man sich mit dem Begriff Hochverfügbarkeit(HA) beschäftigt, muss man wissen was "Verfügbarkeit" bedeutet. Verfügbarkeit wird immer von der Endbenutzersicht gemessen, das heisst dass ein System verfügbar ist, wenn es über die gesamte Kette von der Datenbank über die Anwendung bis zum Endbenutzer funktioniert.[10] Unter Hochverfügbarkeit (englisch Hifh 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".[11] Um diese Forderung zu erfüllen, werden die System redundant ausgelegt.[12] Typische hochverfügbare Systeme sind das Stromnetz und das Telefonnetz. Die Benutzer dieser Systeme erwrten, dass sie immer zur Verfügung stehen. Diese Seminararbeit beschränkt sich auf die Hochverfügbarkeit durch Virtualisierung. Sie sind heutzutage für die meisten Unternehmen genau so wichtig wie die zwei oben genannten Systeme. Dabei ist Hochverfügbarkeit nicht absolut sondern von Unternehmen zu Unternehmen unterschiedlich bewertet. Finanzunternehmen brauchen beispielweise ständig verfügbare Systeme/Server, andere nur währed der Werktage. Die Verfügbarkeit von einem System/Server wird meist prozentual bezogen auf ein Jahr angegeben.[13] "Eine Verfügbarkeit von 99% entspricht einer Ausfallzeit von insgesamt 3,6 Tagen pro Jahr."[14] Die Verfügbarkeit V errechnet sich folgendermaßen:[15]

Verfügbarkeit= (Gesamtzeit-Ausfallzeit)/Gesamtzeit

Zu den weiteren Kenngrößen für Hochverfügbarkeit zählen:[16]

- 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 Harvard Research Group hat die Verfügbarkeit in AEC-Klassen(Availability Environment Classification) unterteilt. Die folgende Tabelle zeigt die einzelnen Klassen mit ihren Beschreibungen.

HRG-KlasseBezeichnungErklärung
AEC-0 Conventional Funktion kann unterbrochen werden, Datenintegrität ist nicht essentiell.
AEC-1 Highly Reliable Funktion kann unterbrochen werden, Datenintegrität muss jedoch gewährleistet sein.
AEC-2 High Availability Funktion darf nur innerhalb festgelegter Zeiten oder zur Hauptbetriebszeit minimal unterbrochen werden.
AEC-3 Fault Resilient Funktion muss innerhalb festgelegter Zeiten oder während der Hauptbetriebszeit ununterbrochen aufrechterhalten werden.
AEC-4 Fault Tolerant Funktion muss ununterbrochen aufrechterhalten werden, 24*7-Betrieb (24 Stunden, 7 Tage die Woche) muss gewährleistet sein.
AEC-5 Disaster Tolerant Funktion muss unter allen Umständen verfügbar sein.
Tabelle 1: AEC Klassen


Eine weitere bekannte Einstufung der Verfügbarkeit ist folgende:

Verfügbarkeitsklassen Bezeichnung Verfügbarkeit in Prozent tolerierte Downtime pro Jahr
2 stabil 99 03,7 Tage
3 verfügbar 99,9 08,8 Stunden
4 hoch verfügbar 99,99 52,2 Minuten
5 Fehler unempfindlich 99,999 05,3 Minuten
6 Fehler tolerant 99,9999 32,0 Sekunden
7 Fehler resistent 99,99999 03,0 Sekunden
Tabelle 2: Verfügbarkeitsstufen:Quelle unbekannt.

Die Tabelle zeigt die Stufen der Verfügbarkei und die Ausfallzeiten, gemessen in Zeiteinheiten pro Jahr.



Die Gründe für einen Serverausfall können sehr unterschiedlich sein. Abschnitt 2.5 beschreibt die sogenannten "Single Point of Failure", die zu einen Ausfall des Gesamtsystems führen können.

2.5 Was ist der Hypervisor

Der Hypervisor wurde in den Ursprüngen des Großrechnerzeitalters auch Supervisor genannt. Der Supervisor war der Teil des Betriebssystems. welcher die kritischen Zugriffe des Rechners verwaltete. Hierzu zählten beispielweise die CPU-Zeit oder die Speicherverwaltung.[18] Der Hypervisor bedeutet wörtlich ein System, welches andere Systeme überwacht oder überblickt.[19]. Heutzutage stellen die Hypervisoren, die auch als Virtual Machine Manager(VMM) bezeichnet werden, eine dünne Schicht an Quellcode dar, welche die Aufteilung und gleichzeitige Nutzung der Systemressourcen durch verschiedene auf dem Hypervisor aufsetzende Betriebssysteme ermöglicht. Der Hypervisor hat hierbei priviligierte Kontrolle über die genutzten Ressourcen. Man unterscheidet zwei Arten von Hypervisor.

2.5.1 Hypervisor Typ1

Bei einem Typ 1 Hypervisor handelt es sich um einen Hypervisor, der direkt auf der Hardware ausgeführt wird. Er wird ebenso als ein „Bare-Metal Hypervisor“ bezeichnet. Ein Typ 1 Hypervisor muss also selbstständig mit der Hardware kommunizieren können, was voraussetzt, dass er selbst über die benötigten Treiber verfügt. Der Hypervisor ist in diesem Fall ein stark limitiertes Betriebssystem, welches nur über die notwendigsten Funktionen verfügt. Dazu zählt unter anderem die Ansteuerung der Hardware, ggf. das Überwachen und modifizieren der Prozessorbefehle des Gastbetriebssystems und das Scheduling der Gastbetriebssysteme. Sein Vorteil ist seine Größe. Durch das Weglassen von unnötigen Komponenten ist er sehr schnell, stabil und bietet zudem weniger Potential für Sicherheitslücken. Im Gegensatz hierzu wird nur spezielle Hardware uneingeschränkt unterstützt und die Bedienbarkeit ist unkomfortabel.[20]

2.5.2 Hypervisor Typ2

Der Typ 2 Hypervisor unterscheidet sich insofern vom Typ 1 Hypervisor, als dass er innerhalb eines konventionellen Betriebssystems läuft. Vereinfacht dargestellt wird er also auf zum Beispiel einem Windows XP System als Applikation installiert und führt die virtuellen Maschinen aus. Diese Art des Hypervisors wird auch als „Hosted Hypervisor“ bezeichnet. Sie hat in der Kompatibilität bzgl. der zur Verfügung stehenden Ressourcen große Vorteile. Die Virtualisierungsschicht muss hier selbst keine eigenen Treiber für die vorhandene Hardware haben. Alles, was das darunter liegende Betriebssystem ansprechen und verwalten kann, steht auch der Virtualisierung zur Verfügung.

Durch das Betriebssystem auf dem Host entsteht jedoch auch ein entscheidender Nachteil. Zum einen werden durch ihn Ressourcen verbraucht und stehen den virtuellen Maschinen nicht mehr zur Verfügung. Zum anderen ergibt sich hier durch die Vielzahl an möglichen Hardware- und Softwarekonfigurationen auf dem Host, die letztendlich zur Instabilität der Virtualisierung und folglich allen Gastbetriebssystemen führen können.[21]

2.6 Single Points of Failure

"Mit Single Point of Failure (SPOF) werden Systemkomponenten oder Systempfade bezeichnet, durch die im Fehlerfall das System nicht mehr betriebsbereit ist. Das trifft immer dann zu, wenn eine Komponente eine zentrale Funktion im Gesamtsystem übernimmt, nicht redundant vorhanden ist und bei Ausfall die Funktionen der anderen Komponenten beeinträchtigt. Eine SPOF-Komponente ist zudem zwingend für die sichere und zuverlässige Funktionalität des Gesamtsystems verantwortlich."[22]

Die Virtualisierung dient zur Konsolidierung der Server. Dabei werden mehrere Serversysteme zu einem zusammengefasst. Gleichzeitig entsteht jedoch zwangsläufig ein Single-Point-of-Failure. Das ist die Abhängigkeit aller virtuellen Instanzen von dem physischen Hostsystem. Durch die Zusammenfassung wird der Host zum Single-Point-of-Failure. Fällt der Host aus, so gilt das in der Folge auch für all seine virtuellen Gäste. Um das zu vermeiden, müssen virtuelle Infrastrukturen in jeden Fall auch hochverfügbar ausgelegt sein. Bei der Forderung nach der Hochverfügbarkeit gilt zusätzlich, dass sie sich über alle Komponenten erstrecken muss, denn für den betroffenen Benutzer oder Geschäftsprozess spielt es keine Rolle was letztendlich die Ursache für den Ausfall oder die Engpass ist.

3 Softwarearchitektur

Dieses Kapital soll einen kurzen Überblick verschaffen über Softwarearchitekturen, die im Markt zu erwerben sind.

3.1 KVM

KVM steht für Kernel-based virtual Machine und ermöglicht durch Modifikation des Linux Kerns die Virtualisierung von beliebigen unveränderten Gastsystemen, soweit das Hostsystem Hardwarevirtualisierung unterstützt. Obwohl das Projekt sehr jung ist, wird es Einzug in die nächste Kernelversion von Linux (2.6.20) halten und somit zu einer leicht nutzbaren alternative im Bereich der nativen Virtualisierung werden.[23]

3.2 Mircosoft Hyper-V

Microsoft Hyper-V Server 2008 R2 ist eine zuverlässige und optimierte Virtualisierungslösung, die es Unternehmen ermöglicht, die Serverauslastung zu verbessern und Kosten zu reduzieren. Da es sich bei Hyper-V Server um ein dediziertes Standalone-Produkt handelt, das neben dem Windows Hypervisor sowie dem Windows Server-Treibermodell lediglich Virtualisierungskomponenten enthält, bietet es einen kleinen Footprint und minimalen Overhead.[24]

3.3 Microsoft Virtual PC

Microsoft Virtual PC implementiert native Virtualisierung ohne Nutzung von Hardwarevirtualisierung. Das Programm ist kostenlos jedoch nicht quelloffen und für Windows sowie Mac OS erhältlich. Im Vergleich zu VMware bietet es einen geringeren Funktionsumfang und unterstützt offziell nur Microsoft Produkte als Gastsystem. Eine kürzlich veröffentlichte vorab Version von Virtual PC 2010 unterstützt mittlerweile die Hardwarerweiterungen von AMD und Intel sowie Windows 7 als Gastsystem, dies jedoch aufgrund mangelnder GPU Virtualisierung nur ohne Aero Glass Oberfläche.[25]

3.4 VMware ESX Server

Das Produkt ESX Server der Firma VMware ist eine kommerzielle high-end Virtualisierungsapplikation. Als Ebene 1 Hypervisor kommt das Produkt ohne ein Hostbetriebssystem aus und nutzt selbst einen sehr kompakten, selbstentwickelten Systemkern. Durch die flexible Architektur und mithilfe diverser Zusatzmodule lassen sich mittels ESX Server diverse komplexe Problemstellungen wie beispielsweise automatischer Lastenausgleich durch Livemigration von virtuellen Maschinen zwischen mehreren ESX Server oder High Availability Cluster lösen, weswegen das Programm vor allem in Firmenumgebungen eingesetzt wird.[26]

3.5 VMware Player

VMware Player ist ein Konzept der Firma VMware, mit dem aus einer sehr großen Auswahl an vorgefertigten Maschinen beliebig viele aus dem Internet heruntergeladen und getestet werden können. Auch wenn diese Funktionalität mittlerweile durch die kostenlose Freigabe von VMware Server ohnehin möglich wäre, bietet der Player weniger professionellen Nutzern eine einfache Möglichkeit, sich mit fremden Betriebssy- stemen oder komplexen Applikationsservern auf sehr einfache Art beschäftigen zu können.[27]

4 Techniken für HA

Es gibt diverse Techniken und Methoden um Hochverfügbarkeit bei virtualisierten Systemen zu realisieren. Im folgenden sollen die gängigsten Techniken erläutert werden. Viele der Techniken haben die gleiche Basis und unterscheiden sich oftmals nur im Detail voneinander. Ferner sind manche Methoden Maßnahmen zur Aufrechterhaltung der HA und nicht die technische Realisierung.

4.1 Business Continuity

Das Kontinuitätsmanagment, im englischen Business Continuity Management(BCM), beschreibt die planerische Vorbereitung auf verschiedene denkbare Szenarien, sowohl von Einzelpersonen, Verantwortlichkeiten, Meldewegen, Eskalationsprozeduren wie auch von Organisationen und es empfiehlt sich die schriftliche Ausarbeitung eines Kontinuitätsplanes.[28] Das Kontinuitätsmanagement kann auch als Teil des Risiko-Managements angesehen werden. Der Kontinuitätsplan dient der Vorbereitung auf verschiedene Szenarien durch Einzelpersonen und Organisatuinen um im Falle einer Betriebsstörung eine richtige Reaktion sicher zu stellen. Meist ergibt sicher der Plan aus einem Szenarioplan, in dem fiktive Betriebsstörungen simuliert und benannt werden und in einem Risikoinventar katalogisiert werden. Das in der IT auch Kontingenzmanagement genannte Verfahren umfasst Pläne und Verfahren für die Zeit vor, während und nach einem Vorfall, der direkt den Betrieb betrifft und kann sowohl die Reinigung, das Personal, die Hardware, die Software oder auch Dienstleister betreffen. Sie dient dazu, die Verfügbarkeit kritischer Systeme zu gewährleitsten und eine berechenbare Umgebung aufrechtzuerhalten.

4.2 Server Load Balancing

Der Begriff Serverlastverteilung (englisch Server Load Balancing (SLB)) beschreibt in der Netzwerktechnik Methoden zur Lastverteilung auf mehrere getrennte Hosts im Netzwerk. Das 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.[29] Typische Kriterien zur Ermittlung der Notwendigkeit von SLB sind:

- die Datenrate,
- die Anzahl der Clients,
- die Anfragerate.

Ein weiterer Aspekt ist die Erhöhung der Datensicherheit durch Server Load Balancing. Der Einsatz mehrerer Systeme ermöglicht redundante Datenhaltung. Die Aufgabe des Server Load Balancing ist es die Vermittlung der Clients an die einzelnen Server. Zum Einsatz kommt SLB beispielsweise bei großen Portalen, Marktplätzen oder Online-Shops. Der Anwender bemerkt in der Regel nicht, ob auf der Gegenseite SLB eingesetzt wird. Eines der bekanntesten Methoden um SLB zu realisieren ist das Round Robin Verfahren.

4.3 Disaster Recovery

Der Begriff Disaster Recovery (englisch für Notfallwiederherstellung) bezeichnet Maßnahmen, die nach einem Unglücksfall in der Informationstechnik eingeleitet werden. Dazu zählt sowohl die Datenwiederherstellung als auch das Ersetzen nicht mehr benutzbarer Infrastruktur, Hardware und Organisation. Umfassender als Disaster Recovery ist der Begriff Business Continuity, der nicht die Wiederherstellung der IT-Dienste, sondern unterbrechungsfreie Geschäftsabläufe in den Vordergrund stellt.[30]

4.4 Live Migration

Live Migration bezeichnet die Umlagerung von einer virtuellen Maschine von einem physikalischen Host auf einen anderen, ohne die Maschine ausschalten zu müssen. Wenn die Migration korrekt durchgeführt wird, findet er ohne jegliche Beeinträchtigung aus Sicht des Anwenders statt. Mithilfe der Live-Migration kann ein Administrator eine virtuelle Maschine zu Wartungszwecken oder zwecks Aktualisierung eines Systems einfach verschieben.[31]

Einer der größten Vorteile der Live-Migration besteht darin, dass sie die aktive Wartung vereinfacht. Wenn der Administrator einen Systemfehler vermutet, kann das potenzielle Problem gelöst werden, bevor eine Unterbrechung der Operationen stattfindet. Die Live-Migration wird außerdem zum Lastenausgleich eingesetzt, indem Arbeit zwischen Computern verteilt wird, um die Auslastung der verfügbaren CPU-Ressourcen zu verbessern.

4.5 Backup and Restore

Wenn es darum geht, die Daten auf Abruf bereit zu halten, gibt es Backup- und Restore Techniken. Auch in virtuellen Umgebungen ändert sich das Konzept nicht. Allerdings ist die Umsetzung anders gelöst. Das oberste Ziel ist die Bereitstellung der Daten und der Applikationen zu deren Bearbeitung. Durch unterschiedliche Konzepte zur Absicherung soll dabei eine möglichst hohe Verfügbarkeit von Daten und Programmen erreicht werden. Um dies sicherzustellen, werden allerdings unterschiedliche Techniken angewandt. Damit die Daten stets verfügbar sind, greift man heute noch auf die traditionellen Backup-Verfahren zurück. Sie beginnen beim Aufbau eines Raid-Plattenverbund und ziehen sich fort über die unterschiedlichen Sicherungstechniken. Ausgehend von einer funktionierende Backup und Restore Lösung müssen ein paar Faktoren berücksichtigt werden:[32]

- Wie viel Datenverlust (RPO-Recovery Point Objective) kann ein Unternehmen akzeptieren?
- Wie lange kann man dem Anwender zumuten, keinen Zugriff auf seine Daten zu haben (Recovery Time Objective)?
- Als letzter wichtiger Faktor steht die Klärung an, welchen Einfluss eine implementierte Backup- und Restore-Lösung auf das produktive IT Umfeld hat. Ist es zum Beispiel notwendig, Applikationen herunterzufahren, um diese in einem definierten Zustand zu sichern?

4.6 Datenspiegelung & Replikation

Die Datenspiegelung dient der Erhöhung der Verfügbarkeit der aktuellsten Daten. Dazu werden alle Änderungen an Daten auf dem Spiegelsystem nahezu gleichzeitig durchgeführt. Man unterscheidet dabei zwischen der synchronen und der asynchronen Spiegelung.[33]

- Synchrone Spiegelung:

Hierbei wird der Schreibvorgang erst beendet, wenn die Daten sowohl auf das Primärsystem als auch auf dem Spiegelsystem geschrieben wurden. Synchrone Spiegelung bietet die höchste Datensicherheit.

- Asynchrone Spiegelung:

Hierbei wird der Schreibvorgang bereits beendet, wenn die Daten auf dem Primärsystem geschrieben wurden. Der Schreibvorgang auf dem Spiegelsystem wird zeitverzögert durchgeführt. Dabei ist der Zeitversatz abhängig von der Schreiblast auf dem Primärsystem. Asynchrone Replikation bietet speziell bei geringeren Replikationsbandbreiten ein bessere Performance. Bei der asynchronen Spiegelung können jedoch Daten verloren gehen, wenn ein Ausfall des Primärsystems während einer Lastspitze auftritt.

Die Replikation von Daten erfolgt entweder auf der logischen Block Ebene - also unterhalb des Filesystems oder auf Filesystem-Ebene. Die Redundanz auf der Blockebene sorgt dafür, dass bei Ausfall eines kompletten Storage Arrays der Betrieb weiter ermöglicht wird. Die menschlichen Fehler (logische Fehler) können zu einem solchen Totalausfall führen. Um sich vor solchen Fehlern zu schützen, ist es notwendig mehrere Versionen des kompletten Datenbestandes bereitzuhalten.

5 Alternativen

5.1 Cloud Computing

Der Begriff "Cloud Computing" ist zurzeit in der Informationstechnologie allgegenwärtig. Es gibt viele Interpretationen aber keine standardisierte oder gar einheitliche Definition. Das Cloud Computing erlaubt die Bereitstellung und Nutzung von IT-Infrastruktur, von Plattformen und von Anwendungen aller Art als im Web elektronisch verfügbare Dienste. Der Begriff Cloud soll dabei andeuten, dass die Dienste von einem Provider im Internet beziehungsweise im Intranet eines Unternehmens erbracht werden. Die Nutzer der Cloud-Dienste können ihre eigenen Angebote wiederum selbst als Dienste im Internet beziehungsweise Intranet anbieten. Cloud-Dienste sind dynamisch skalierbar, das heisst wenn zusätzliche Ressourcen benötigt werden, können diese automatisch zugeschaltet werden. Cloud Computing folgt der Idee des Utility Computing. Dabei wird immer die aktuell benötigte Menge an Ressourcen zur Verfügung gestellt und bezahlt. Der große Vorteil von Cloud Computing liegt in der Kosteneinsparung aufgrund der flexiblen Bereitstellung und Nutzung.

Obwohl es keine einheitliche Definition für das Cloud Computing gibt, sind die Ziele und das Konzept unbestritten. Cloud Computing nutzt Virtualisierung und das World Wide Web(www) um Ressourcen verschiedener Dienste bereitzustellen. Christian Baun,Marcel Kunze,Jens Nimis und Stefan Tai definieren Cloud Computing wie folgt:"Unter Ausnutzung virtualisierter Rechen- und Speicherressourcen und moderner Web-Technologien stellt das Cloud Computing skalierbare, netzwerk-zentrierte, abstrahierte IT Infrastrukturen, Plattformen und Anwendungen als On-Demand Dienste zur Verfügung. Die Abrechnung dieser Dienste erfolgt nutzungsabhängig".[34]

5.2 HA auf Systemebene

Die Hochverfügbarkeit auf der Systemebene stellt eigentlich keine Neuerung dar und ist auch keine richtige Alternative zur Virtualisierung. Es ist eine Grundvorraussetzung für die Virtualisierung und ergänzt das Konzept einer hochverfügbaren Virtualisierungsumgebung. Hochverfügbarkeit wurde auch vor dem Virtualisierungzeitalter groß geschrieben.

5.2.1 Passive Standby Server

Beim Passive Standby Server wird der Sekundär-Server gespiegelt, die Spiegelung erfolgt über den Heartbeat. Im Ausfall übernimmt der Sekundärer Server die Funktion des Primärservers.

Schaubild des Passive Standby Server
Schaubild des Passive Standby Server
Vgl.Schäfer[2011]

5.2.2 Duplicate Everything

Bei der Duplicate Everything Methode werden die Datenbestände werden kontinuierlich zwischen den beiden Primär-Servern synchron gehalten. Für die Synchronisition sorgt auch hier wieder der Heartbeat.

Schaubild des Duplicate Everything
Schaubild des Duplicate Everything
Vgl.Schäfer[2011]

5.2.3 Share Nothing Methode

Bei der Share Nothing Methode haben beide Server ein gemeinsames Festplattensystem mit einem eigenen Datenbereich für jeden Server. Wenn einer der Server ausfällt, kann der jeweils andere auf dessen Datenbestand zugreifen und die Dienste weiter fortführen.

Schaubild des Duplicate Everything
Schaubild des Duplicate Everything
Vgl.Schäfer[2011]

5.2.4 Share Everything

Bei der Share Everything Methode teilen sich beide Server ein gemeinsames Festplattensystem. Beide Server teilen sich immer den gleichen Datenbestand. Über einen Zugriffsmanager (englisch Lock-Manager) wird geregelt, wann welcher Server auf den Datenbestand zugreifen darf. Der Lock-Manager ist wichtig für diese Methode aufgrund des sonst möglichen Verlustes der Datenintegrität.

Schaubild des Duplicate Everything
Schaubild des Duplicate Everything
Vgl.Schäfer[2011]

5.3 HA auf Komponentenebene

Bei Hochverfügbarkeit auf der Komponentenebene gibt es zu diesem Thema eine menge Literatur. Allerdings befasst sich diese Seminararbeit nicht tiefer mit der Hochverfügbarkeit auf Komponentenebene. Grundlegend läßt sich sagen, dass sich diese Art von Hochverfügbarkeit mit den Themen in der untenstehenden Liste näher beschäftigt:
• RAID Systeme
• Redundante Lüfter
• Redundante Netzwerkkarten
• Redundante Netzteile

6 Schlussbetrachtung

Die Virtualisierung und insbesondere auch die Hochverfügbarkeit durch Virtualisierung findet eine immer breitere Anwendung im IT Sektor. Sowohl in Firmenumgebungen als auch im privaten Bereich ist die Technologie nicht mehr wegzudenken und an vielen Stellen auch kaum zu ersetzen. Die zunehmende Verbreitung ist auch einer der Gründe, die momentan für eine rasante Entwicklung im Bezug auf die Virtualisierung sorgt.

Durch neue Impulse und Technologien der Hersteller zeichnen sich in Zukunft viele interessante Entwicklungen in diesem Sektor ab, von denen der Business-Anwender auch insofern profitieren wird, dass der relative starke Konkurrenzkampf der führenden Softwareherstellern sowohl unter Open Source wie auch unter den kommerziellen Produkten zu niedrigeren Preisen und eine höheren Featurevielfalt führen wird.

Welche Virtualisierungs-Software ein Unternehmen einsetzen soll um Hochverfügbarkeit zu realisieren, hängt unter anderem davon ab, welche Gastsysteme auf dem Wirt(system) laufen sollen. Ist es beispielweise nur ein oder zwei Windowsserver die durch die Virtualisierung Hochverfügbar gemacht werden sollen, kann bereits das Microsoft eigene Virtual PC die Lösung sein. Wer aber die gesamte Vielfalt der Gastsysteme benötigt und auf eine "Zero-Downtime" angewiesen ist, wie es beispielsweise in der Versicherungsbranche üblich ist, sollte sich dagegen für die Produkte der derzeitigen Marktführer entscheiden.

Ferner sind die Entwicklungen der führenden Chiphersteller AMD und Intel sehr interessant. Die Firmen Intel und AMD erweiterten ihre neueren Prozessoren um Techniken "AMD-V" und "Intel VT", die Virtualisierung auf Hardwareebene unterstützen und damit den Hypervisor entlasten können. Dazu zählt die Neuordnung des Privilegiensystems, das mit dem "VMX Root mode" eine zusätzliche Ebene bekommt, die dem Hypervisor vorbehalten bleibt.

Die aktuellen Entwicklungen der gängigsten Hypervisor verfolgen derzeit zwei verschiedene Ansätze, um die Kommunikation über Ein- und Ausgabegeräte zu regeln. Beispielsweise sieht VMware vor, dass Anbieter von PC Komponenten eigene Treiber für den Hypervisor entwickeln, durch die der Zugriff von allen Gastsystemen erfolgt. Hyper-V dagegen leitet alle Zugriffe aus den Virtuellen Maschinen durch ein privilegiertes Service-Betriebssystem, das auf einer eigenen Partition läuft. Damit der Datentransfer direkt und schnell mit dem Hypervisor abgewickelt werden kann, kommen im Gastsystem bei Hyper-V bevorzugt paravirtualisierte Treiber zum Einsatz.

7 Abkürzungsverzeichnis

AbkürzungBedeutung
AECAvailability Environment Classification
AMDAdvanced Micro Devices
BCMBusiness Continuity Management
HAHigh Availibility
IntelIntegrated Electronics
LBLoad Balancing
MSMicrosoft
SLBServer Load Balancing
SPoFSingle Point of Failure
VMMVirtual Machine Manager

8 Abbildungsverzeichnis

Abb.-Nr.Abbildung
Abbildung 0--
Abbildung 1Passive Standby Server, entnommen aus Skript: IT Infrastruktur Kapitel 7 Servertechnologie
Abbildung 2Duplicate Everything Methode, entnommen aus Skript: IT Infrastruktur Kapitel 7 Servertechnologie
Abbildung 3Share Nothing Methode, entnommen aus Skript: IT Infrastruktur Kapitel 7 Servertechnologie
Abbildung 4Share Everything Methode, entnommen aus Skript: IT Infrastruktur Kapitel 7 Servertechnologie

9 Tabellenverzeichnis

Tabelle Nr.Quelle
1AEC Klassifizierung der Harvard Research Group
2Verfügbarkeitsklassen "Five Nines", Herausgeber unbekannt

10 Fußnoten

  1. Vgl. Gerald J. Popek und Robert P. Goldberg (1974), Formal requirements for virtualizable third generation architectures, in: Communications of the ACM, S. 412 - 421.
  2. http://www.amazon.com/gp/browse.html?node=201590011, Zugriff:16.10.2010
  3. Vgl. Lampe[2010],S.3ff
  4. Singh, Amit: An introduction to virtualization. World Wide Web, 2006. http://www.thread.com/publications/virtualization/.
  5. Vgl.Wikipedia: Full Virtualization[2007]. http://en.wikipedia.org/wiki/Full virtualization.
  6. http://www.vm.ibm.com,[2010],Zugriff: 21.12.2010 14:30Uhr
  7. Schwaller, Tom: VMware. Linux Magazin,[1999]. http://www.linux-magazin.de/Artikel/ausgabe/1999/05/VMware/vmware.html.
  8. http://marketshare.hitslink.com/report.aspx?qprid=8&qptimeframe=M&qpsp=120,Zugriff: 2.01.2011
  9. Vgl.Radonic[2006],S.83
  10. Vgl. Weygant,[2001],S.2.
  11. Großmann und Koschek,[2005],S.134.
  12. Vgl.Keith & Schincariol,[2006],S.320.
  13. Vgl.Großmann und Koschek,[2005],S.135.
  14. Großmann und Koschek,[2005],S.135.
  15. Vgl. Tannenbaum,van Steen[2003],S410
  16. Vgl.Großmann und Koschek,[2005],S.135.
  17. Vgl. Held (2004), S.29
  18. Vgl. Fischer[2009],S.58
  19. Vgl. Picht,[2009],S.12.
  20. Vgl. IBM,[2005]
  21. Vgl.IBM[2005]
  22. Lipinski[SPOF (single point of failure)]
  23. Vgl. Heise[2007]
  24. Vgl. Microsoft GmbH[2010]
  25. Vgl. Microsoft[2011]
  26. Vgl VMware[2011]
  27. Vgl VMware[2011]
  28. Vgl. Lenges,[],S.28ff
  29. Vgl. Adelstein, Lubanovic,[2007],S.182.
  30. Vgl.Moser[2002],S.28f
  31. Vgl. Warnke und Ritzau[2010],S.119
  32. Vgl.Schorn[2010]S.1.
  33. Vgl. Müller[2005],S.234
  34. Christian Baun,Marcel Kunze,Jens Nimis,Stefan Tai[2010]

11 Quellenverzeichnis

[2007],Adelstein Tom,Bill Lubanovic,Linux-Schnellkurs für Administratoren,Verlag: O'Reilly; Auflage: 1 (September 2007)
[2010],Baumeister Johannes,Backup und Restore in virtuellen Umgebungen,http://www.tecchannel.de/server/virtualisierung/2022144/datensicherung_backup_und_restore_in_virtuellen_umgebungen/index12.html,[12.01.2011]
[2010],Baun Christian ,Marcel Kunze,Jens Nimis,Stefan Tai,Verlag Springer
[2010],Charles A. Windom,Hemant Gaidhani,Alex Fontana,Virtualizing Microsoft Tier 1 Applications with VMware VSphere 4, Verlag Sybex.
[2009],Fischer Rolf,Elektrische Maschinen, Verlag Hanser.
[2005],Großmann Martina,Holger KoschekUnternehmensportale: Grundlagen, Architekturen, Technologien, Verlag Springer.
[2007],Heise.de: Virtualisierungslösung KVM in nächster Linux-Version,http://www.heise.de/newsticker/meldung/82317.
[2005],IBM,Virtualization, Armonk: International Business Machines Corporation.
[2010],Lampke Frank,Green IT,Virtualisierung und Thin Clients, Verlag Vieweg+Teubner.
[2011],Lipinski Klaus,SPOF (single point of failure),http://www.itwissen.info/definition/lexikon/single-point-of-failure-SPoF.html,[18.01.2011]
[2008],Lenges Michael,Framework zum IT-risikomanagement, Verlag Books on Demand,Norderstedt.
[2011],Microsoft,Microsoft Virtual PC,http://www.microsoft.com/windows/virtual-pc/ Zugriff: 18.01.2011 15:00Uhr.
[2010],Microsoft,Hyper-V Server,http://www.microsoft.com/hyper-v-server/en/us/overview.aspx Zugriff: 28.12.2010 21:15Uhr.
[2010],Müller,Klaus Rainer,Handbuch Unternehmenssicherheit: Umfassendes Sicherheits-, Kontinuitäts- und Risikomanagement mit System,Verlag: Vieweg+Teubner; Auflage: 2., neu bearbeitete Auflage. (28. September 2010).
[2002],Moser UlrichBusiness Continuity & Disaster Recovery. Der IT-Ernstfall: Katastrophenvorsorge, Verlag BPX Edition Dalla Vecchia; Auflage: 1 (1. September 2003)
[2006],Radonic,Andrej ,Frank Meyer, Xen3 Verlag Addison Wesley
[2011],Schäfer Christian, Skript: IT Infrastruktur Kapitel 7 Servertechnologie.
[2011],Stratus Technolgies Inc, Stratus Avance, Zugegriffen: 19.01.2011 19:45 Uhr.
[2003],Tannenbaum A.,van Steen M., Verteilte Systeme,Pearson Education Deutschland GmbH,München
[2009],Picht,Hans Joachim,Xen-Kochbuch,Verlag: O´Reilly
[2011],VMware Inc.,http://vmware.de/products/player/,Zugegriffen: 20.01.2011 16:30Uhr.
[2011],VMware Inc.,http://vmware.de/products/server/,Zugegriffen: 20.01.2011 16:30Uhr.
[2010],Warnke Robert,Thomas Ritzau,Qemu, Verlag Books on Demand GmbH,Norderstedt
[2001],Weygant Peter, Clusters for High Availability: A Primer of HP Solutions, Verlag Hewlett Packard Professional Books.

Persönliche Werkzeuge