Lade Inhalt...

Virtualisierung. Theorie und Praxis am Beispiel der Servervirtualisierung

Referat (Ausarbeitung) 2013 19 Seiten

Informatik - Angewandte Informatik

Leseprobe

Inhaltsverzeichnis

1 Einleitung

2 Virtualisierung in der Theorie
2.1 „Echte“ Virtualisierung
2.2 Virtualisierungstechnologien der x86-Prozessoren
2.3 Andere Virtualisierungsverfahren

3 Servervirtualisierung in der Praxis
3.1 Vorteile durch VMs
3.2 Grenzen virtueller Maschinen
3.3 Beispiel VMware ESXi 5.1
3.4 Beispiel Microsoft Hyper-V 3

4 Rolle der Virtualisierung / Green-IT
4.1 Gründe für die Einführung von Green-IT
4.2 Fallbeispiel: Experton Group

5 Fazit

6 Literaturverzeichnis

1 Einleitung

Im Zuge der stetigen Leistungssteigerung der Computer heutzutage kommt es zu einem sehr paradoxen Phänomen. Einer meiner Dozenten hat vor zirka einem Jahr gesagt, dass Computer heute vor allem warten. Wenn sie rechnen, dann täten sie dies zwar sehr schnell, allerdings würden sie doch überwiegend warten: auf Benutzereingaben, auf die Bereitstellung von Daten von der Festplatte, auf eine Antwort aus dem Internet.

Natürlich ist dieses Phänomen am stärksten bei den Consumer-PCs ausgeprägt, jedoch tritt es auch in Unternehmen auf. Selten sieht man dort einzelne Server, deren Prozessor zu 98% ausgelastet ist. Gerade bei nicht-virtualisierten Systemen ist dies ein nicht zu unterschätzender Faktor auf der Stromrechnung. Deshalb, und da die Anzahl der Server in den meisten Unternehmen recht schnell zunimmt, greift man seit einigen Jahren vermehrt auf die Virtualisierung der Server-Infrastruktur zurück.

Auf welchen hardware- und softwaretechnischen Grundlagen diese Technologie aufbaut, werde ich in dieser Arbeit erläutern. Dabei geht es zunächst um die Prozessor-Technologien zur Unterstützung der Virtualisierung, sowie um das theoretische Konzept der virtualisierten Hardware. Danach werde ich den Einsatz von virtuellen Systemen in der Praxis beleuchten und zwei der größten Hersteller – VMware und Microsoft – vorstellen. Des Weiteren zeige ich die Vorteile, aber auch die Herausforderungen der Servervirtualisierung auf. Außerdem beleuchte ich noch kurz die Rolle der Virtualisierung innerhalb der Green-IT. Zuletzt werde ich ein Fazit ziehen und erklären, weshalb ich zu meiner Meinung gekommen bin.

2 Virtualisierung in der Theorie

Der Begriff Virtualisierung lässt sich in drei Hauptbestandteile unterteilen:

1. „echte“ Virtualisierung / Hardware-Virtualisierung
2. Emulation
3. Systempartitionierung

Die Hardware-Virtualisierung (von einigen auch „echte Virtualisierung“ genannt) ist die sicherste der drei Varianten. Sie ist sowohl mit Hardware-Unterstützung als auch ohne durchführbar.1 Auf sie werde ich weiter unten noch genauer eingehen.

Die Emulation ist eine Art Software-gestützter Virtualisierung, bei der die Hardware sowie die Schnittstellen des Gasts vollständig simuliert werden. Dadurch ist es möglich, Gäste auf dem Host auszuführen, welche eigentlich inkompatibel zur Host-Architektur wären.2

Der dritte Punkt ist die Systempartitionierung, bei der die vorhandenen Hardware-Ressourcen vom Betriebssystem auf einzelne sogenannte „Instanzen“ innerhalb des Betriebssystems aufgeteilt werden.3

2.1 „Echte“ Virtualisierung

Bei der „echten“ Virtualisierung wird die Hardware des Hosts (= der physische Server) anteilig an die Gäste oder sogenannten Virtuellen Maschinen (VM) zugewiesen.4 Dies übernimmt der Virtual Machine Monitor (VMM), welcher oft auch einfach „Hypervisor“ genannt wird. Der Hypervisor ist also eine Art Betriebssystem, das direkt auf der Hardware läuft und so z.B. Windows ablöst.

Dabei ist die Sicherheit von größter Wichtigkeit. Der VMM muss dafür sorgen, dass kein Gast abseits der bekannten Protokolle wie TCP/IP direkt auf einen anderen Gast zugreifen kann. Ebenso darf ein Gast nicht „wissen“, dass es neben ihm noch andere Gäste auf der gleichen Hardware gibt. 5

Eine weitere wichtige Aufgabe des Hypervisors ist das Abfangen von kritischen Befehlen wie der Speicherallokation. Wenn das Betriebssystem einer VM Arbeitsspeicher reservieren möchte, muss der Hypervisor diesen Befehl abfangen und dafür sorgen, dass der Arbeitsspeicher nicht versehentlich gleichzeitig von einer anderen VM allokiert wird. 6 Man könnte also sagen, dass der Hypervisor jeden Befehl der VMs an die CPU kennen und bewerten muss.

Die Hardware-Virtualisierung basiert auf der Annahme, dass die Hardware nahezu direkt an die VMs durchgereicht wird und der Hypervisor eine Beobachter- und Verwaltungsrolle einnimmt, um so die Performance zu steigern. Dies hat jedoch zur Folge, dass die Architektur der Gäste der des Hosts entsprechen muss.7 Ein 64-bit Gast kann also nicht auf einem 32-bit Host installiert werden, genauso wenig wie man das iPhone-Betriebssystem auf normaler 64-bit-Hardware installieren kann.

Um den Hypervisor an sich möglichst klein und effizient zu halten, haben viele Hersteller eine privilegierte VM eingeführt, welche als normaler Gast auf dem Host läuft, aber z.B. die Geräte-Initialisierung dem Hypervisor abnimmt, sodass dieser keine entsprechenden Treiber haben muss. Weitere Gäste können die dann bereits initialisierten Geräte direkt über die privilegierte VM ansprechen.8

2.2 Virtualisierungstechnologien der x86-Prozessoren

Um eine hohe Performance und möglichst geringen Verwaltungsaufwand zu erreichen, haben die Prozessorhersteller reagiert und entsprechende Befehlssatzerweiterungen in ihre CPUs und Chipsätze implementiert.9 Zur Erklärung mache ich zuerst einen Exkurs in das Jahr 1982, in dem Intel den 80286-Prozessor auf den Markt gebracht hat. Dies war der erste Prozessor mit dem „Ring-Modell“, welches von Intel entwickelt wurde und sicherstellen sollte, dass Anwendungen keine kritischen Befehle ohne Genehmigung des Betriebssystems an die CPU absetzen konnten. Dazu waren insgesamt vier Ringe vorgesehen: Ring 0 war für den Kernel, Ring 1 und 2 für Gerätetreiber und Ring 3 für alle übrigen Applikationen. Mit der Zeit hat sich allerdings herausgestellt, dass die Ringe 1 und 2 nicht genutzt wurden und Treiber stattdessen auf Kernel- oder Anwendungsebene ausgeführt wurden. Wurde jetzt dem Betriebssystem ein Hypervisor vorgeschaltet, so lief dieser in Ring 0 und das Betriebssystem in Ring 1. Da dieses das allerdings nicht wusste, kam es zu Situationen, in denen das Betriebssystem Befehle an die CPU abgesetzt hat und im schlimmsten Fall eine Antwort erhielt, dass dieser Befehl nicht erlaubt ist. In so einem Fall wäre das Betriebssystem abgestürzt. In anderen Fällen könnte das Betriebssystem Werte zurückgeliefert bekommen, die zu falschen Ergebnissen führen, was zur Konsequenz hätte, dass eine Operation falsch ausgeführt wird.10

Intel und auch AMD haben allerdings mittlerweile bemerkt, dass es sehr schwierig ist, solche Befehle ohne Unterstützung einfach abzufangen, sodass man den Ring 0 in Ring 0 „root“ und Ring 0 „non-root“ geteilt hat.11 Ist jetzt ein Hypervisor dem normalen Betriebssystem vorgeschaltet, läuft das Betriebssystem in Ring 0 „non-root“ und der Hypervisor im Ring 0 „root“, in welchem er erweiterte Möglichkeiten zur Verwaltung der Gäste hat. Bekannt geworden ist diese Technik unter dem Namen „VT-x“ bei Intel und „AMD-V“ bzw. „Pacifica“ bei AMD. Beide Varianten sind ähnlich, aber inkompatibel untereinander.12 Dadurch ist es den Entwicklern von Hypervisoren deutlich vereinfacht worden, diese zu programmieren.

2.3 Andere Virtualisierungsverfahren

Wie ich anfangs bereits erwähnt habe, gibt es neben der Hardware-Virtualisierung auch noch zwei weitere Virtualisierungsverfahren.

Die Emulation simuliert die gesamte Hardware des Gasts inklusive aller Schnittstellen usw.13 Daraus ergibt sich eine starke Unabhängigkeit von der Host-Hardware, welche aber gegen die Probleme aufgewogen werden muss. Dadurch, dass alles nur simuliert ist, müssen auch sämtliche Befehle des Gasts an seine Hardware zur Laufzeit interpretiert und verarbeitet werden. Gerade bei rechenintensiven Anwendungen kann dies zu erheblichen Performance-Einbußen kommen, welche schnell inakzeptabel für den Produktiv-Einsatz werden.14

Bei der Systempartitionierung wird hingegen die Hardware innerhalb des Betriebssystems aufgeteilt und einzelnen Instanzen zugeteilt. Deshalb ist hier eine klare Trennung von Partitionen auf Festplatten und der Systempartitionierung zu ziehen. Voraussetzung für die Systempartitionierung ist eine Unterstützung seitens des Betriebssystems. Als Beispiel ist der Microsoft SQL-Server zu nennen, bei dem mehrere sogenannte „Instanzen“ gleichzeitig innerhalb eines Betriebssystems laufen können, ohne dass es zu Konflikten kommt. Hier ist das Betriebssystem alleine für die Verwaltung verantwortlich. Eine Hilfe von Seiten der Hardware gibt es nicht.15

3 Servervirtualisierung in der Praxis

Kommen wir nun vom theoretischen zum praktischen Teil, in dem es um die Umsetzung der eben genannten Punkte geht. Die Einsatzgebiete der Servervirtualisierung sind vielfältig: Seien es Testumgebungen bevor man ein Update produktiv einspielt16, das Erreichen von Hochverfügbarkeit17, das Vereinfachen der Arbeit im Supportcenter durch das Bereitstellen von vielen Konfigurationen um Fehler zu erkennen18, oder auch bei Cloud-Anbietern. In vielen Situationen ist eine Servervirtualisierung möglich und auch nützlich. Der Hauptgrund, sich für die Virtualisierung seiner Server zu entscheiden, ist einfach: Kostensenkung.19 Das Problem hier ist allerdings, dass die Kostensenkung nach Abschluss eines Virtualisierungsprojektes oft nicht direkt nachweisbar ist. Auch gibt es bislang nur sehr wenige Studien darüber.

3.1 Vorteile durch VMs

Eine virtuelle Infrastruktur anstelle einer konventionellen Serverlandschaft zu verwenden hat viele verschiedene Vorteile. Allerdings herrscht unter denjenigen Leuten, die sich mit der Virtualisierung noch nicht allzu sehr beschäftigt haben, oftmals die Meinung vor, eine VM sei instabil und langsam. In der Praxis hat sich jedoch gezeigt, dass virtualisierte Systeme oft deutlich schneller und auch stabiler sind, da sie vor allem keine Herstellerzusatzprogramme wie Agents oder ähnlichem mehr benötigen. Dadurch kommt es deutlich seltener zu Abstürzen oder ungewolltem Verhalten.

Auch ist eine deutlich gesteigerte Flexibilität mit VMs zu erreichen, vor allem weil die physische Hardware reduziert wird20 und VMs innerhalb eines Zusammenschlusses von Hosts (ein sogenanntes „Cluster“) – die entsprechende Lizenz vorausgesetzt – beliebig hin und her verschieben können. Dies ermöglicht weiterhin eine vorher unerreichte Unabhängig von der Hardware, da es relativ egal ist, auf welchem Host die VM ausgeführt wird. Das Wechseln der zugrunde liegenden Hardware stellt dadurch kein großes Problem mehr dar und ist schnell gemacht, ohne dass die Anwender Einschränkungen in ihrer Arbeit hätten.21

Dies hat zur Konsequenz, dass auch die Skalierbarkeit der Infrastruktur deutlich gesteigert wird. Hinzufügen oder Entfernen von Hosts in das bzw. aus dem Cluster sind sehr einfach und schnell erledigt, sodass man immer eine optimale Auslastung garantieren kann. Auf Lastspitzen bspw. aufgrund einer saisonal bedingten starken Auftragslage können besser reagiert werden, z.B. indem man sich einfach die entsprechende Anzahl an Servern mietet und dem eigenen Cluster hinzufügt.

Ein weiterer Vorteil von VMs ist die Hochverfügbarkeit.22 Sofern die IT-Landschaft aus einem Cluster besteht ist es möglich, die Ausfallzeiten sehr gering zu halten. Hat das Unternehmen bspw. 2 Hosts zusammen in einem Cluster und der erste Host fällt aufgrund eines Hardware-Defekts aus, springt sofort der andere Host ein und übernimmt die VMs. Natürlich dauert es einen Moment bis die VMs wieder hochgefahren sind, allerdings nimmt dies meistens nur wenige Minuten in Anspruch, sodass sich die Ausfallzeit dann auf eben diese kurze Zeit beschränkt. Voraussetzung für eine solche Möglichkeit ist das Vorhandensein von gemeinsam genutztem Speicherplatz, eines sogenannten „SANs“ (Storage Area Network). Beide Hosts müssen also auf die gleichen Festplatten zugreifen können. Typischerweise ist in einer hochverfügbaren Infrastruktur jede Komponente redundant um einen „Single Point of Failure“ zu vermeiden.

Des Weiteren sorgt eine virtualisierte Umgebung für eine deutlich verbesserte Auslastung der Hardware. Dadurch, dass je nach Verwendungszweck viele VMs auf einem Host ausgeführt werden können, verbessert sich die Effizienz enorm.23

Dies alles hat vor allem eine Konsequenz: Eine virtualisierte Infrastruktur lässt sich um ein Vielfaches einfacher warten als eine konventionelle Infrastruktur. Durch das beliebige Verschieben von VMs und den sogenannten „Snapshots“, welche den aktuellen Stand der VM speichern und sämtliche Änderungen nach dem Speichern in eine separate Datei schreiben, um so später entweder beide Dateien zusammenzuführen oder die Änderungen zu verwerfen, wird der Austausch von Hardware, das Wiederherstellen nach einem Komplettausfall oder auch das simple Testen von Änderungen innerhalb der VM äußerst einfach gestaltet.

[...]


1 Vgl. Thorns, 2008, S. 22.

2 Vgl. ebd.

3 Vgl. ebd.

4 Vgl. ebd., S. 23.

5 Vgl. ebd.

6 Vgl. ebd., S. 24.

7 Vgl. Thorns, 2008, S. 22.

8 Vgl. ebd., S. 31.

9 Vgl. ebd., S. 29.

10 Vgl. ebd., S. 24.

11 Vgl. ebd., S. 30.

12 Vgl. Thorns, 2008, S. 29.

13 Vgl. Thorns, 2008, S. 35.

14 Vgl. ebd.

15 Vgl. ebd., S. 32.

16 Vgl. Thorns, 2008, S. 45.

17 Vgl. ebd., S. 51.

18 Vgl. ebd., S. 46.

19 Siehe dazu Kap. 4.1.

20 Vgl. Ahnert, 2009, S. 26.

21 Vgl. ebd., S. 27.

22 Vgl. Ahnert, 2009, S. 27.

23 Siehe dazu Kap. 4.

Details

Seiten
19
Jahr
2013
ISBN (eBook)
9783656861904
ISBN (Buch)
9783656861911
Dateigröße
1.2 MB
Sprache
Deutsch
Katalognummer
v286068
Note
1,3
Schlagworte
Virtualisierung Hyper-V VMware vSphere Server IT Informatik Computer PC Technologie Microsoft

Autor

Teilen

Zurück

Titel: Virtualisierung. Theorie und Praxis am Beispiel der Servervirtualisierung