Inhaltsverzeichnis
Transcrição
Inhaltsverzeichnis
Desktop-Virtualisierung_mit_Oracle_VirtualBox Hochschule: Standort: Studiengang: Veranstaltung: Betreuer: Typ: Themengebiet: Autor(en): Studienzeitmodell: Semesterbezeichnung: Studiensemester: Bearbeitungsstatus: Prüfungstermin: Abgabetermin: Fallstudienarbeit Hochschule für Oekonomie & Management Duisburg Bachelor Wirtschaftsinformatik Fallstudie / Wissenschaftliches Arbeiten Dipl-Inf._(FH)_Christian_Schäfer Fallstudienarbeit Desktop Virtualisierung Cihan Yilmaz, Baris Koymat, Michael Motzek Abendstudium SS11 2 Bearbeitung abgeschlossen 22.07.2011 Inhaltsverzeichnis • 1 Einleitung • 2 Grundlagen der Virtualisierung ♦ 2.1 Geschichte der Virtualisierung ♦ 2.2 Virtualisierte Umgebung ♦ 2.3 Formen der Virtualisierung ◊ 2.3.1 Servervirtualisierung ◊ 2.3.2 Anwendungsvirtualisierung ◊ 2.3.3 Desktop -Virtualisierung ♦ 2.4 Zentrale vs. dezentrale Virtualisierung • 3 Vorstellung der Oracle VM VirtualBox ♦ 3.1 Eigenschaften der Oracle VM VirtualBox ♦ 3.2 Lizenzierung ♦ 3.3 Funktionsweise einer VM ◊ 3.3.1 Die HAL ◊ 3.3.2 Funktionsweise einer Anwendung ◊ 3.3.3 Der Schedular ◊ 3.3.4 Offenheit des Betriebssystems ◊ 3.3.5 Der Hypervisor ◊ 3.3.6 Kommunikation zwischen den VM • 4 Installation ♦ 4.1 Erstellen einer VM ♦ 4.2 VirtualBox Gasterweiterungen ♦ 4.3 Virtuelles Speichermanagement ◊ 4.3.1 Festplatten-Controller Inhaltsverzeichnis 1 Desktop-Virtualisierung_mit_Oracle_VirtualBox ◊ 4.3.2 Image-Dateien ◊ 4.3.3 Virtual Media Manager ◊ 4.3.4 Speicherverwaltung bei Snapshots ◊ 4.3.5 Cloning von Image-Dateien ◊ 4.3.6 I/O Caching ◊ 4.3.7 Limitieren der Bandbreite von Image-Dateien ◊ 4.3.8 CD/DVD Unterstützung ◊ 4.3.9 iSCSI Server ♦ 4.4 Virtual Networking ◊ 4.4.1 Virtuelle Netzwerkkarten ◊ 4.4.2 Netzwerkmodi • 5 Bedienung/Steuerung ♦ 5.1 Fernwartung / Fernsteuerung von VMs ◊ 5.1.1 VirtualBox Remote Display Protocol (VRDP) ◊ 5.1.2 Verbinden von USB-Geräten via VRDP ◊ 5.1.3 Sicherheit von VRDP ◊ 5.1.4 RDP Verschlüsselung ◊ 5.1.5 Parallele Verbindungen zum VRDP-Server ◊ 5.1.6 VRDP Video Redirection ◊ 5.1.7 Teleporting ◊ 5.1.8 Sonstiges • 6 Backup-Strategien von VirtualBox • 7 Fazit • 8 Endnoten • 9 Abkürzungsverzeichnis • 10 Abbildungsverzeichnis • 11 Tabellenverzeichnis • 12 Literatur- und Quellenverzeichnis 1 Einleitung Typischerweise sind IT-Infrastrukturen historisch gewachsen und geprägt von einer übermäßigen Bereitstellung von heterogenen, physischen Systemen mit eigenen, von anderen Systemen abgekapselten, fest eingebauten Hardwareressourcen. Das zeigt sich in den laufenden Kosten, bei der neben der Vergeudung teurer Hardwareressourcen auch noch laufende Kosten wie Kühlung, Stromverbrauch und erhöhter Verwaltungsaufwand anfallen. 1 Einleitung 2 Desktop-Virtualisierung_mit_Oracle_VirtualBox Um dennoch bei steigenden Anforderungen an die IT die bestehenden Infrastrukturen zu vereinfachen und zu standardisieren um Verwaltungskosten zu senken, Ressourcen effektiver zu nutzen und damit die Betriebskosten zu senken, bietet sich die Virtualisierung der kompletten IT-Infrastruktur an. Nach der Konsolidierung im Serverbereich ist die Desktop-Virtualisierung der nächste Schritt bei der konsequenten Weiterführung der Reduzierung der physischen Systeme durch virtuelle. Doch was genau bedeutet Virtualisierung und wie funktioniert es ? Um unter anderem diese Fragen zu klären werden im Rahmen der Fallstudie ?Desktop-Virtualisierung mit Oracle VirtualBox? zunächst die Grundlagen der Virtualisierung erläutert, die Virtualisierungssoftware Oracle VM VirtualBox vorgestellt und die technische Funktionsweise der Virtualisierung dargelegt. 2 Grundlagen der Virtualisierung [Abb. 1] Abbildung der Abstraktionsschicht In Anlehnung an: http://www.itwissen.info/bilder/abstraktionsebene-fuer-die-zusammenfassung-und-aufteilung-der-ressourcen.png "Virtualisierung ist eine Herangehensweise in der IT, die Ressourcen so zusammenfasst und verteilt, dass ihre Auslastung optimiert wird und automatisch Anforderungen zur Verfügung steht."[1] Bei der Virtualisierung werden die physisch vorhandenen Komponenten eines einzelnen Servers wie Prozessor, Arbeitsspeicher, Netzwerkkarte und Festplatte in mehrere, voneinander unabhängige logische Einheiten, in sogenannte virtuelle Maschinen aufgeteilt und dynamisch genutzt, sodass die Möglichkeit der parallelen Inbetriebnahme mehrerer Betriebssystem-Instanzen auf ein und der selben Hardware und die optimale Nutzung vorhandener Ressourcen gewährleistet wird. Dem Anwender gegenüber verhält sich die virtualisierte Umgebung wie ein System mit eigenen, physisch vorhandenen Hardware-Ressourcen. Demnach bildet die Virtualisierung zwischen dem Betriebssystem des Anwenders und den vorhandenen Komponenten des Servers eine Abstraktionsschicht ab. Dadurch kann eine einzelne physisch vorhandene Hardware-Ressource wie zum Beispiel Prozessor oder Festplatte in mehrere virtuelle Ressourcen aufgeteilt und von mehreren voneinander isolierten Betriebssystem-Instanzen mehrfach und abwechselnd genutzt werden. [2] 2 Grundlagen der Virtualisierung 3 Desktop-Virtualisierung_mit_Oracle_VirtualBox 2.1 Geschichte der Virtualisierung Christopher Strachey konstruierte Ende der fünfziger Jahre Konzepte zur Ausnutzung der damals kostbaren, physikalischen CPU und war damit der Vorreiter des Mehrprozessorbetriebs. Aufgrund der hohen Preise für Mainframe-Computer wurde die logische CPU mit Hilfe eines Scheduler einer physisch vorhandenen CPU zugeordnet. In den darauf folgenden Jahren wurde dann der Speicher virtualisiert um die Kosten für den Hauptspeicher zu sparen bis in der Mitte der sechziger Jahre durch eine Zusammenarbeit von IBM und dem MIT die erste virtuelle Maschine entstand. [3] Aufgrund der rasanten Entwicklung und neuen Erkenntnissen in der IT, steigendem Wettbewerb in einer weltweiten Verflechtung im Dienstleistungsbereich und dem Wunsch, Anforderungen so kostengünstig wie möglich umzusetzen hat sich der Ansatz für das Spektrum der Virtualisierung bis heute ausgeweitet. 2.2 Virtualisierte Umgebung In einer virtualisierten Umgebung gibt es auf der einen Seite einen Computer als Host und auf der anderen Seite die Gastsysteme welche die von dem Host angebotenen Hardware-Ressourcen nutzen. Jedes einzelne Gastsystem wird mit seiner eigenen Betriebssystem-Instanz in einem der virtuellen Maschinen ausgeführt. Auf dem Host läuft eine Software mit der die physisch vorhandenen Hardware-Ressourcen und die virtuellen Maschinen verwaltet werden können. Weiterhin können mehrere Hosts zu einem Cluster gruppiert werden, wodurch nach entsprechender Konfiguration Synergien in Form von Load Balancing entstehen können um das Lastaufkommen virtueller Maschinen auf verschiedenen Hosts auszubalancieren und die Überlastungen einzelner Hosts zu vermeiden. 2.3 Formen der Virtualisierung 2.3.1 Servervirtualisierung Bei der Servervirtualisierung werden mehrere Server auf einem Host ausgeführt um vorhandenen Ressourcen optimal auszunutzen und laufende Kosten wie Kühlung, Wartung und Stromverbrauch zu senken. Hierbei bieten sich verschiedene Implementierungsvarianten an: OS-Level Virtualization Bei der Betriebsystemvirtualisierung wird das vorhandene Betriebssystem auf Kernel-Ebene partitioniert und nicht die vorhandene Hardware. Bei der Erstellung der Gastsysteme werden nur die individuell benötigten Daten für den Betrieb auf Betriebssystemebene angelegt, welche in sogenannten Heimatverzeichnissen der virtuellen Mschinen angelegt werden. Somit besteht eine virtuelle Maschine in der Grundausstattung aus einer kleinen Datei, verbraucht somit wenig Festplattenspeicher und gewährleistet eine hohe Anzahl an virtuellen Maschinen auf physisch vorhandenen Hardwareressourcen. [4] Paravirtualisierung 2.1 Geschichte der Virtualisierung 4 Desktop-Virtualisierung_mit_Oracle_VirtualBox Bei diesem Ansatz wird die Virtualisierung nicht vor dem Gast verborgen, sondern die virtuelle Maschine weiss, dass auch andere virtuelle Maschinen die gleiche Hardware nutzen. Im Unterschied zur vollständigen Virtualisierung muss bei einer Paravirtualisierung das Gastsystem angepasst werden, da es nicht direkt mit der Hardware, sondern durch das Hostsystem über eine vom Hostsystem bereitgestellte API mit der physisch vorhandenen Hardware kommuniziert. Ein Vorteil der Paravirtualisierung ist die hohe Ausführungsgeschwindigkeit und die Live-Migration, bei der virtuelle Maschinen im laufenden Betrieb von einem Hostsystem auf ein anderes übertragen werden könen. Die Gast-Systeme sind durchgehend verfügbar, auch wenn einer der Hosts für Wartungsarbeiten heruntergefahren werden muss. Der Nachteil der Paravirtualisierung liegt darin, dass der Kernel der Gastsysteme für den paravirtualisierten Einsatz angepasst werden müssen und dass die Inhaber propritärer Betriebssysteme eine Anpassung ablehnen. Full Virtualization Bei diesem Ansatz wird jedem virtualisierten Server ein vom Administrator festgelegtes Volumen der Hardware zugewiesen. Dadurch wird erreicht, dass jedes Betriebssystem ohne Anpassung in der virtuellen Maschine genutzt werden kann. Das Hostsystem, welches die virtuellen Maschinen beherbergt, startet die virtuellen Maschinen und hat auch die Kontrolle über sie. Die virtuellen Maschinen haben direkten Zugriff auf den echte Prozessor, wodurch eine nahezu gleichwertige Performace zu physikalisch installierten Systemen erreicht wird. [5] 2.3.2 Anwendungsvirtualisierung Bei der Anwendungsvirtualisierung wird auf einem Computer im Netzwerk eine Software installiert, welches die Funktionen des Computers erweitert und es zu einem Terminal-Server macht. Dieser bietet den anderen Computern im Netzwerk Anwendungen an, welche von den Gastsystemen genutzt werden können. Auf den Gastsystemen selbst wird das Clientprogramm für Terminaldienste installiert bei der über das RDP Protokoll die Dienste des Terminal-Servers in Anspruch genommen werden können[6]. Auf den Gastsystemen selbst wird eine virtuelle Umgebung erzeugt, in der die Anwendung ausgeführt werden kann. Die angebotenen Anwendungen selbst können unabhängig vom installierten Betriebsystem auf den Gastsystemen ausgeführt werden auch wenn die Anwendung nicht für das Betriebssystem des Gastsystems programmiert wurde. Der Vorteil der Anwendungsvirtualisierung ist, dass die Anwendung nur auf den Terminal-Servern im Netzwerk installiert werden und auch nur dort Updates eingespielt werden müssen. Somit wird der Verwaltungsaufwand für Administratoren gesenkt. Auch das Ausführen von Anwendungen auf Gastsystemen mit unterschiedlichen Betriebssystemen ist als Vorteil anzusehen. Der Nachteil liegt darin, dass bei einem Netzwerkausfall die Anwendungen von den Gastsystemen nicht genutzt werden können. 2.3.3 Desktop -Virtualisierung Bei diesem Ansatz wird eine komplette Arbeitsumgebung virtualisiert. Individuell konfigurierte Betriebssystemeinstellungen der Gastsysteme werden auf dem Hostsystem abgelegt und auch von diesem bereitgestellt. Alle Eingaben auf dem Gastsystem werden an das Hostsystem für die Verarbeitung weitergeleitet. Das Hostsystem schickt die Ergebnisse an das Gastsystem, welches diese Ergebnisse nur noch anzeigen muss. Der Vorteil liegt dabei in der Kombination dieser Technologie mit sogenannten Thin-Clients, bei der bis auf Monitor, Maus und Tastatur keine weiteren Hardware-Ressourcen für die Verarbeitung der Daten vorhanden sein müssen. Auf den Thin-Clients wird meist ein freies, auf GNU-Software basiertes Betriebssystem wie Linux installiert auf der eine spezielle Software läuft, welches sich mit dem Hostsystem verbindet. Beim Ausfall eines Thin-Clients muss der Administrator nur ein anderes Thin-Client mit der IP-Adresse des ausgefallenen Thin-Clients an den Arbeitsplatz stellen. Somit werden Kosten in Hinblick auf die Ausstattung der Computer und in Hinblick auf den Verwaltungsaufwand eingespart. Jedoch bringt diese Methode auch Nachteile mit sich. 2.3.1 Servervirtualisierung 5 Desktop-Virtualisierung_mit_Oracle_VirtualBox Während bei einem lokal betriebenen Computer bei einem Ausfall nur dieser betroffen ist, betrifft ein Ausfall des Servers, auf dem die Virtualisierung läuft, alle im Unternehmen vorhandenen Desktops. Somit ist ein Weiterarbeiten für keinen der User möglich. Ein weiterer Nachteil der Desktop-Virtualisierung ist, dass über die Thin-Client-Protokolle auf die virtuellen PCs zugegriffen werden muss, wobei die Zugriffe verlangsamt und eine schlechte Bildqualität dargestellt werden kann. 2.4 Zentrale vs. dezentrale Virtualisierung In Unternehmen entscheidet die Höhe der anfallenden Kosten meist, ob ein Projekt genehmigt oder abgelehnt wird. Unternehmen haben das Ziel Kosten zu senken und den Ertrag zu maximieren. Viele haben ebenfalls leistungsstarke Server-Cluster, die jedoch nur zum Teil ausgelastet sind. Der Sinn eines Clusters ist das Bündeln von verfügbarer Rechenleistung zu einer Einheit. Diese Einheit wird anschließend Clients, die diese Rechenleistung in Anspruch nehmen möchten, zur Verfügung gestellt. Übertragen auf die Virtualisierung bedeutet dies, dass virtuelle Maschinen zentral in einem oder mehreren Clustern verwaltet und den Clients zur Verfügung gestellt werden. Der Vorteil ist hierbei, dass die Clients nun nicht mehr viel Rechenleistung brauchen, um die entfernte virtuelle Maschine ansprechen und bedienen zu können. So können auf der Clientseite sogenannte Thin Clients verwendet werden, die kostengünstig sind. Bei der dezentralen Virtualisierung ist der Client selbst für die Virtualisierung verantwortlich, weshalb er mehr Rechenleistung in Anspruch nehmen muss. Das bedeutet, dass im Vergleich zu Thin Clients teurere sogenannte Fat Clients oder vollwertige Computerarbeitsplatzsysteme angeschafft werden müssen, wodurch der Administrationsaufwand aufgrund von verschiedenen Hardwarekombinationen steigt. Bei der zentralen Virtualisierung verringert sich der Administrationsaufwand, weil die Anzahl der heterogenen Insellösungen verringert wird. Zusätzlich werden Kosten eingespart. Nichtsdestotrotz müssen die Cluster-Systeme finanziert werden. Vorteilhaft ist hierbei, dass dieses System je nach Bedürfnissen skaliert werden kann, indem vorhandene Hardware in Anspruch genommen wird um einem weiteren Client eine virtuelle Maschine zur Verfügung zu stellen. Nachteil dieser Architektur ist, dass die Bedienbarkeit der virtuellen Maschine von der Auslastung und Geschwindigkeit des vorhandenen Netzwerks abhängig ist. So kann es ebenfalls zu Verzögerungen bei der Darstellung der virtuellen Maschine auf dem Client kommen. Der zentralisierte Hardware-Cluster muss ebenfalls aus Hochverfügbarkeitsgründen redundant ausgelegt sein, was zusätzliche Kosten verursacht. 3 Vorstellung der Oracle VM VirtualBox Oracle VM VirtualBox ist eine von innotek GmbH entwickelte plattformunabhängige Virtualisierungssoftware. Die Entwicklung wurde 2004 begonnen und hatte nach der Markteinführung lediglich Behörden als Kunden. Ab 2007 wurde die Virtualisierungssoftware den Anwendern als freie Software zur Verfügung gestellt. Im Jahr 2008 kaufte Sun Microsystems Inc. die Firma innotek GmbH auf, welches selbst im Januar 2010 von Oracle aufgekauft wurde. Nach der Übernahme wurde die Virtualisierungssoftware in Oracle VM Virtualbox unbenannt und wird nun von Oracle vertrieben. 3.1 Eigenschaften der Oracle VM VirtualBox Oracle VM VirtualBox kann auf verschiedenen Betriebssystemplattformen installiert werden, wie z.B. Windows, Linux, Max OS X, FreeBSD, Solaris und kann wie eine gewöhnliche Applikation gestartet und ausgeführt werden. Das Betriebssystem, auf dem VirtualBox gestartet wird, wird als Wirtssystem oder Host genannt. VirtualBox wird ebenfalls als ?hosted Hypervisor? oder ?type 2 Hypervisor? genannt. Das bedeutet, dass VirtualBox das Wirtssystem benötigt, um Gastsysteme erstellen zu können (siehe Abb.1). 3 Vorstellung der Oracle VM VirtualBox 6 Desktop-Virtualisierung_mit_Oracle_VirtualBox Daneben gibt es auch andere Virtualisierungsprodukte, die auch ohne das Wirtssystem existieren können und auf der Hardware direkt aufbauen. Solche Systeme werden auch ?bare-metal? oder ?type 1 Hypervisor? genannt (siehe Abb.2). VirtualBox ist vergleichbar mit einem Container, der mehrere x86 sowie x64-Betriebssysteminstanzen enthält und in der Lage ist diese zum gleichen Zeitpunkt unabhängig voneinander auszuführen. Diese Betriebssysteminstanzen werden ebenfalls Gastsystem genannt. Die Festplatte wird in eigenständigen Containerdateien verwaltet und emuliert, auf sogenannten Virtual Disk Images (VDI). Oracle VM VirtualBox ist ebenfalls in der Lage mit Festplattenabbildern von Konkurrenzprodukten, wie VMware (*.vmdk) oder Microsoft Virtual PC (*.vhd) zu arbeiten. Die virtuelle Maschine lässt sich bedienen über: • Grapihical User Interface (VirtualBox) • Konsole (VBoxManage) • Simple DirectMedia Layer (VBoxSDL) • Remote-Desktop-Protocol-Server (VBoxHeadless) Da die virtuellen Maschinen als Gastsystem über Oracle VM VirtualBox ausgeführt werden, können diese virtuellen Maschinen, die auf einer Plattform erstellt wurden, ebenfalls auf anderen beliebigen Plattformen von der Applikation erkannt und ausgeführt werden. Oracle VM VirtualBox benötigt keine Hardware-Virtualisierung, wie AMD-V oder Intel VT-x, weshalb die Applikation auch auf älterer Hardware funktionsfähig ist. Zahlreiche Hardware-Komponenten werden im Gastsystem emuliert und der virtuellen Maschine zur Verfügung gestellt. Die Emulierung umfasst folgende Komponenten: [Abb. 2] hosted Hypervisor (VMM) [Abb. 3] bare-metal Hypervisor (VMM) 3.1 Eigenschaften der Oracle VM VirtualBox 7 Desktop-Virtualisierung_mit_Oracle_VirtualBox Funktion Beschreibung PXE Network Boot VM kann über die eigene virtualisierte Netzwerkkarte über das Netzwerk remote hochgefahren werden Multiscreen resolutions unterstützt höhere Bildschirmauflösungen als das Host-System USB device support Der integrierte virtuelle USB-Controller unterstützt beliebe USB-Geräte auch ohne die Installation von gerätspezifischen Treibern Guest multiprocessing (SMP) Unabhängig von der Anzahl der physikalischen CPU-Kerne des Hosts, können der VM bis zu 32 CPU-Kerne zugewiesen werden Full ACPI support Einbinden von Host- oder VM-Images in die virtuelle Maschine erleichtert sich. ACPI-Status vom Host kann ebenfalls von der VM interpretiert werden und ggf. den Host in den Energiesparmodus versetzen. Built-in iSCSI support VM kann direkt an einen iSCSI Storage Server eingebunden werden Tabelle 1.: Darstellung der Funktionen von Oracle VM VirtualBox in Anlehnung auf folgende Quelle [7] Zusätzlich ist es möglich den Systemzustand des Gastsystems in sogenannten Snapshots festzuhalten und im Fehlerfall ggf. den zuvor erstellten Snapshot wiederherzustellen. Die VM lässt sich ebenfalls über VRDE (VirtualBox Remote Desktop Extension), die das RDP (Remote Desktop Protocol) unterstützt, fernsteuern. Damit auch andere Betriebssysteme, die das RDP nicht interpretieren können, ferngesteuert werden können, ist das VRDE im Virtualisierungs-Layer implementiert. 3.2 Lizenzierung Seit Version 4.0 vertreibt Oracle eine Version unter der GNU General Public License. Diese Lizenz wurde von der FSF (Free Software Foundation) veröffentlicht und dient der Lizenzierung von freier Software. Diese von Oracle angebotene Version ähnelt der früher angebotenen VirtualBox OSE (Open Source Edition). Um zusätzliche Funktionen, wie z.B. die Automatisch Benutzeranmeldung in Anspruch nehmen zu können, müssen zusätzliche Software-Module eingebunden werden, die im Oracle VM VirtualBox Extension Pack zusammengefasst sind. Diese Extension Pack steht jedoch separat unter der propritäeren Lizenz PUEL (VirtualBox Personal Use and Evaluation License) zur Verfügung. Diese Lizenzart gibt an, dass das Produkt lediglich für privaten Gebrauch, zu Test- oder Bildungszwecken installiert und eingesetzt werden kann.[8] 3.3 Funktionsweise einer VM Im Rahmen der Virtualisierung werden dem Anwender (Client) verschiedene voneinander unabhängige und individuell konfigurierbare Betriebssystemprofile auf einem Computer (Host) zur Verfügung gestellt. Im 3.2 Lizenzierung 8 Desktop-Virtualisierung_mit_Oracle_VirtualBox Gegensatz zu den klassischen Terminal Services, bei dem nur eine Betriesbssysteminstanz zum gleichen Zeitpunkt existiert und die Hardware des Host in Anspruch nimmt, teilen sich bei der Virtualisierung die einzelnen Betriebssysteminstanzen die gleichen Ressourcen des Hosts. Deshalb ist bei der Virtualisierung die Nachfrage nach mehr Rechenleistung und zusätzlichen Ressourcen höher. Bei der Virtualisierung wird dem Client eine virtuelle Systemumgebung zur Verfügung gestellt, die nach den Bedürfnissen des Anwenders angepasst werden kann und andere gestarteten virtuellen Systemumgebungen nicht beeinflusst. Um die Funktionsweise der Virtualisierungstechnologie verstehen zu können wird zunächst die Ausführung von Anwendungen auf Computersystemen aus Prozesssicht erklärt und anschließend auf die Funktionsweise der Virtualisierung eingegangen. 3.3.1 Die HAL Damit das System auf einer Vielzahl an Hardwaretypen erfolgreich installiert und eingesetzt werden kann, wird zwischen dem Hardware-Layer und dem Softwaresystem ein zusätzlicher Layer geschaffen, die HAL (Hardware Abstraction Layer). Die HAL hat die Aufgabe, den Befehlssatz der Hardware zu abstrahieren, und somit die Komplexität der Hardwarearchitektur vor dritten Soft- und Hardwareentwickelern zu kapseln. Dadurch ist es möglich das System unabhängiger von der genutzten Hardware zu gestalten. Da die HAL den Befehlssatz abstrahiert, kann es auch vorkommen, dass einige speziellere Befehle z.B. der CPU von der HAL nicht unterstützt werden, wodurch die Leistungsfähigkeit des Prozessors negativ beeinträchtigt wird. 3.3.2 Funktionsweise einer Anwendung Zunächst wird die Virtualisierungssoftware aus der Sicht einer normalen Anwendung betrachtet und die Funktionsweise von Anwendungsprogrammen erläutert. Wenn eine Applikation gestartet wird, stellt das System dieser Applikation eine Laufzeitumgebung zur Verfügung. ?Diese besteht aus einem oder mehreren anwendungsorientierten Prozessen, die den ausführbaren Code repräsentieren, einer Zuordnung von Seiten, die für den Start der Anwendung sinnvoll sind und einer Startbelegung für die Register." [9] In einem Rechnersystem mit einem Prozessor, der lediglich einen Core (Prozessorkern) hat, konkurrieren Applikationen miteinander um die Prozessorzeit. Anwendungen setzen Anwendungscode auf dem Prozessor ab, damit sie lauffähig sind und existieren können. Laufen verschiedene Applikationen parallel, bedeutet dies, dass die Ausführung des Programmcodes einer zweiten Anwendung abhängig ist von dem Abschluss der Codeausführung der ersten Applikation, die die Prozessorzeit für sich beansprucht hat. Solange die erste Applikation ansteht, würden keine weiteren Anwendungen gestartet und ausgeführt werden können, da die Berechtigung zur Codeausführung nur der ersten Anwendung obliegt. Da die Möglichkeit bestehen soll, Anwendungen parallel ausführen zu lassen und die Codeausführung unabhängig von der eines konkurrierenden Prozesses zu gestalten, werden Single-Core-Prozessoren zu einem multitaskingfähigen System organisiert. ?Multitasking bezieht sich auf die Fähigkeit des Betriebssystems, schnell zwischen den Verarbeitungstasks hin und her zu wechseln, so dass der Eindruck entsteht, dass verschiedene Anwendungen mehrere Operationen zur selben Zeit durchführen.? [10] Bei einem System mit einem Multi-Core-Prozessor, können zum gleichen Zeitpunkt mehrere Verarbeitungstasks verarbeitet werden. 3.3 Funktionsweise einer VM 9 Desktop-Virtualisierung_mit_Oracle_VirtualBox 3.3.3 Der Schedular Damit das multitaskingfähige System funktionieren kann, gibt es einen sogenannten Schedular, der auf dem Prozessor zwei Arten von Elementarprozessen erzeugt und die zuvor erstellten Laufzeitumgebungen auf diese Elementarprozesse abbildet: • anwendungsunterstützende • systemunterstützende Diese Elementarprozesse werden nach einem Scheduling-Verfahren abwechselnd vom Prozessor abgearbeitet. Dabei steht jedem Elementarprozess auf dem Prozessor ein begrenztes Ausführungszeitfenster zur Verfügung. Wird das Zeitfenster überschritten oder tritt ein Unterbrechungsereignis ein, wie z.B. eine Ein- oder Ausgabe, kommt der nächste wartende Elementarprozess, der durch das Scheduling-Algorithmus bestimmt wurde an die Reihe und führt seinen Anwendungscode auf dem Prozessor aus. Der Unterschied zwischen einem anwendungsunterstützenden und systemunterstützenden Elementarprozess ist der, dass anwendungsunterstützende Elementarprozesse von normalen Anwendungen in Anspruch genommen werden und systemunterstützende beim Zugriff auf Hardwarekomponenten, wie z.B. auf die Festplatte, Speicher, Grafikkarte oder aber bei Systemsteuerungs- und verwaltungsaufgaben. Diese systemunterstützenden Elementarprozesse nehmen einen bestimmten Anteil an der Prozessorleistung in Anspruch. Der Rest ist für die Anwendungen vorgesehen. Das Mapping der Anwendungen auf den entsprechenden Elementarprozess erfolgt über den sogenannten Dispatcher.[11] [Abb. 4] Abbildung von Laufzeitumgebungen auf Elementarprozesse In Anlehnung an: Funktionsweise eines klassischen Betriebssystems in einer Multiprozessorumgebung (2010, Bild: Abbildung 2, Intel / Dr. Franz-Joachim Kauffels 3.3.3 Der Schedular 10 Desktop-Virtualisierung_mit_Oracle_VirtualBox 3.3.4 Offenheit des Betriebssystems Die Virtualisierungssoftware selbst wird als herkömmliche Applikation behandelt. Bei der Virtualisierung hat die Offenheit des Betriebssystems auf dem Host eine wichtige Funktion. Die virtuelle Maschine führt mithilfe von anwendungsunterstützenden Elementarprozessen Anwendungscode auf dem realen Prozessor aus. Dazu werden die zu ausführenden Befehle über die HAL auf die eigentliche Hardware gemappt. Da nun die virtuelle Maschine von einem anwendungsunterstützenden Elementarprozess gehostet wird, und diese ein vollwertiges Betriebssystem repräsentiert, müssen auch dort auf Systemfunktionen zugegriffen werden. Es ist zu beachten, dass z.B. bei Zugriff auf Systemfunktionen dementsprechend systemunterstützende Elementarprozesse in Anspruch genommen werden. Dazu findet IPC (Interprocess communication) zwischen den betroffenen anwendungs- und systemunterstützenden Elementarprozessen statt. Die Offenheit der HAL ist letzendlich entscheidend für die Funktionalität des virtualisierten Betriebssystems. 3.3.5 Der Hypervisor Wenn dieses Gast-System mit anderen Anwendungsprogrammen koexisitert, spricht man auch von einer gehosteten Lösung. In dieser Konstellation konkurrieren die Anwendungen um die Prozessorzeit, wodurch es zu Performanceproblemen kommt. Ein Betriebssystem muss schnell und zuverlässig arbeiten. Nur so kann auch das Gastsystem in der virtuellen Maschine produktiv eingesetzt werden. Dieses Performanceproblem wird mit dem Einsatz eines so genannten Hypervisors behoben. Der Hypervisor, auch Virtual Machine Manager genannt, ist ein spezialisierter Schedular, der auf die erzeugten Laufzeitumgebungen der virtuellen Maschinen optimiert ist. Der Unterschied zwischen dem realen Schedular des Hosts und dem Hypervisor ist, dass die erzeugten anwendungsund systemunterstützenden Elementarprozesse des Hypervisors in Gruppen zusammengelegt werden, sodass diese der aktiven virtuellen Maschine, auf der sie erzeugt wurden, direkt zugeordnet werden können. Dadurch ist es möglich, mehrere virtuelle Maschinen voneinander unabhängig parallel auf einem Host-System einsetzen zu können. Der Hypervisor koordiniert die Kommunikation der virtuellen Maschinen untereinander und mit dem Host-System. Er hat ebenfalls die Eigenschaft, in einem Multi-Core-System die selbst erstellten Elementarprozesse auf die verfügbaren Cores aufzuteilen um die Performance der virtuellen Maschinen zu steigern. Um den Hypervisor konfigurieren und steuern zu können exisitiert eine Service-Console, über der neue virtuelle Maschinen erstellt werden können. In modernen Systemen ersetzt der Hypervisor auch untere Layer, wie z.B. den Schedular vom Host, wodurch die Anwendungen in einem sehr großen Anteil in der virtuellen Maschine laufen und lediglich für das Beanspruchen der Prozessorzeit ein kleiner Rest-Layer des Host in Anspruch genommen wird.[12] 3.3.6 Kommunikation zwischen den VM Prozesse in einer virtuellen Maschine, die Laufzeitumgebungen unterstützen, können miteinander kommunizieren, in dem die Laufzeitumgebungen sich mithilfe von IPC verständigen. Bei virtuellen Maschinen mit unterschiedlichen Betriebssystemen kann es bei der Kommunikation über IPC Probleme geben, da IPC sich nicht als Standard durchsetzen konnte und bei unterschiedlichen Betriebssystemen die Kommunikation auf den kleinsten gemeinsamen Teiler festgelegt werden muss. Dadurch können z.B. wichtige Funktionen der IPC nicht in Anspruch genommen werden. Für die betriebssystemübergreifende Kommunikation zwischen verschiedenen virtuellen Maschinen wird deshalb als Transportkanal TCP/IP genommen, weil inzwischen die meisten Anwendungen und Systeme mit TCP/IP-Paketen umgehen können. In einer gehosteten Lösung ohne einen Hypervisor existieren in den virtuellen Maschinen ein Stück Softwarepaket, das einen Ethernet-Switch nachbildet. Dieser virtuelle Switch ist in der Lage mit virtuellen Switches der anderen virtuellen Maschinen zu kommunizieren. Dabei schicken die Applikationen in 3.3.4 Offenheit des Betriebssystems 11 Desktop-Virtualisierung_mit_Oracle_VirtualBox den virtuellen Maschinen sich gegenseitig TCP/IP-Pakete. [Abb. 5] Abbildung der Kommunikation zwischen den VM In Anlehnung an: Transaktionsverarbeitung und VM-Kommunikation in virtuellen Systemen (2010, Bild: Abbildung 5, Intel / Dr. Franz-Joachim Kauffels 4 Installation 4.1 Erstellen einer VM Um eine virtuelle Maschine erstellen zu können, wird die Anwendung Oracle VM VirtualBox gestartet. Anschließend wird oben links auf die Schaltfläche ?Neu? geklickt. Es erscheint ein Fenster, indem folgende Informationen eingegeben werden müssen: 1. VM Name ♦ sollte aussagekräftig gewählt werden zur leichteren Identifikation der VM 2. Betriebssystem ♦ VirtualBox selektiert bereits vordefinierte Konfigurationen, die später bei der Installation des jeweiligen Betriebssystems benötigt werden. 3. Größe des Arbeitsspeichers ♦ Der Arbeitsspeicher vom Host wird dazu in der angegeben Größe in Anspruch genommen und der VM als virtuellen Arbeitsspeicher zur Verfügung gestellt. Während der Ausführung der VM kann dieser reservierte Arbeitsspeicher vom Host nicht mehr zugegriffen werden. 4. Virtuelle Festplatte 4 Installation 12 Desktop-Virtualisierung_mit_Oracle_VirtualBox ♦ Es muss der virtuellen Maschine eine virtuelle Festplatte zugewiesen werden, welche in einer Image-Datei auf dem Host abgelegt wird. Hier besteht die Möglichkeit entweder eine zuvor erstellte virtuelle Festplatte wiederzuverwenden oder eine neue zu erstellen. Beim Erstellen einer neuen virtuellen Festplatte muss die Größe des Speicherplatzes angegeben werden, welche von der physikalischen Festplatte des Hosts reserviert wird. Es besteht die Möglichkeit diesen Speicherplatz einmalig oder aber dynamisch wachsend, also je nach Speicherplatzbedarf des Gastsystems, zu reservieren. Befindet sich das zu installierende Betriebssystem auf einer CD-ROM muss das CD-ROM-Laufwerk des Hosts auf die virtuelle Maschine gemappt werden, sodass das Gastsystem ebenfalls auf die Ressource zugreifen und das Betriebssystem installieren kann. 4.2 VirtualBox Gasterweiterungen Gasterweiterungen sind Softwarepakete, die zusätzliche Gerätetreiber sowie Systemprogramme enthalten, die die Performance und die Benutzerfreundlichkeit der VM steigern und die Kommunikation mit dem Host verbessern. Gasterweiterungen können der bestehenden virtuellen Maschine hinzugefügt werden. Die VirtualBox Gasterweiterungen stehen als Image-Datei (VBoxGuestAdditions.iso) zur Verfügung, welche in die VM zunächst als virtuelles CD-ROM-Laufwerk eingebunden werden muss. Das Softwarepaket enthält folgende Verbesserungen: Funktion Beschreibung Mauszeiger-Integration Ein spezieller Maustreiber auf dem Gastsystem kommuniziert mit dem Maustreiber des Hostsystems und ermöglicht so einen nahtlosen Übergang des Mauszeigers zwischen Host- und Gastsystem. Es ist nicht mehr notwendig, die Host-Taste zu drücken, damit der Mauszeiger aus dem Gastsystem zurückkehrt. Verbesserte Grafikunterstützung Es werden höhere und nicht standardmäßige Grafik-Modi zur Verfügung gestellt. Die Fenstergröße kann nach Bedarf an die Größe der virtuellen Maschine angepasst werden. Die Bildschirmauflösung des Gasts wird automatisch angepasst. Zeit-Synchronisierung Die Zeit-Synchronisierung unterstützt bessere Synchronisation der Zeit zwischen Host und der VM, da ein Parallelbetrieb im Normalfall Probleme bei der Synchronisation bereitet und die Zeiten zwischen Host und Gast stark voneinander abweichen würde. Gemeinsame Ordner Ein Ordner wird zur gemeinsamen Verwendung von Host und VM festgelegt, sodass der Datenaustausch zwischen den Systemen erleichtert wird. Nahtlose Fenster Geöffnete Fenster auf dem Desktop der VM können auf dem Desktop vom Host angezeigt werden. Gemeinsame Zwischenablage Die Zwischenablage der VM kann auf dem Host mitgenutzt werden. 4.1 Erstellen einer VM 13 Desktop-Virtualisierung_mit_Oracle_VirtualBox Automatische Anmeldung Die Gasterweiterungen sind zur automatischen Benutzeranmeldung mit zusätzlichen Modulen (Windows: GINA bis Windows XP, ab Windows Vista credential providers, Linux/Unix: PAM) ausgestattet. Bei der Installation der Gasterweiterunen muss in der Konsole zusätzlich der Parameter /with_autologon eingegeben werden Generisches Host/Gast Kommunikationskanal Dieses Kommunikationskanal steuert und überwacht die Ausführung des Gastsystems indem zeichenbasierte Informationen mit dem Host ausgetauscht werden. Mithilfe von Schlüsselwörtern kann der Host Anwendungen auf dem Gastsystem starten lassen. Tabelle 2.: Darstellung der Software-Verbesserungen in den Oracle VM VirtualBox Gasterweiterungen in Anlehnung auf folgende Quelle [13] 4.3 Virtuelles Speichermanagement [Abb. 6] Abbildung der Verteilungsmöglichkeiten von Image-Dateien Um eine Desktop-Umgebung zu betreiben, werden Festplatten mit ausreichender Speicherkapazität benötigt. In der Regel ist der in realen Systemen vorhandene Speicherplatz überdimensioniert, da sich die Festplattenkapazität nur durch hohen Aufwand vergrößern lässt. Wünschenswert sind daher Systeme, die einfach, schnell und unkompliziert ausgetauscht oder verändert und somit den jeweiligen tatsächlichen Bedürfnissen angepasst werden können. VirtualBox bietet hierfür eine Reihe nützlicher Funktionen, auf die in den folgenden Abschnitten genauer eingegangen wird. Wie bei einem realen Desktop-PC benötigt man für den Betrieb einer VM auch eine Festplatte. Diese wird in der Regel emuliert vom Host zur Verfügung gestellt. 4.2 VirtualBox Gasterweiterungen 14 Desktop-Virtualisierung_mit_Oracle_VirtualBox 4.3.1 Festplatten-Controller In realen PCs werden Festplatten über sogenannte Festplatten-Controller angesprochen. Jedes Betriebssystem, welches als Gastsystem dienen soll, benötigt diese als Basis der Installation. Auf dem Markt existieren derzeit verschiedenste Varianten von Festplatten-Controllern. Die zurzeit am häufigsten verwendeten Varianten (IDE, SATA, SCSI und SAS) werden von VirtualBox unterstützt. Dabei werden die Controller für das Gastsystem emuliert. Über diese emulierten Schnittstellen ist VirtualBox in der Lage eine Verbindung zwischen dem Festplattenspeicher des Gastsystems und dem real zugewiesenen Speicherplatz des Hostsystems bzw. des Servers herzustellen. Für das jeweilige Gastsystem ist kein Unterschied zwischen einer realen und der emulierten Hardware der VM zu erkennen. Über die emulierten Festplatten-Controller ist es auch möglich, optische Laufwerke zu emulieren. Diese können dem Gastsystem entweder als reales Medium oder über eine Image-Datei zur Verfügung gestellt werden. Welchen Festplatten-Controller man letztendlich verwendet, macht keinen großen Unterschied. In Bezug auf die Kompatibilität wird in der Regel der IDE-Controller bevorzugt verwendet. Die Alternativen werden von VirtualBox zur Verfügung gestellt, um Konflikte mit bestehender Hardware bzw. mit virtualisierten realen Systemen zu umgehen, haben aber im Gegensatz zu den realen Controller-Varianten keine Auswirkung auf die Performance. 4.3.2 Image-Dateien Die emulierten Speicherressourcen der VM werden durch sogenannte Image-Dateien auf dem Hostsystem bzw. Server repräsentiert. Beim Lesen oder Speichern des Gastsystems auf einer Festplatte leitet VirtualBox die Anfragen an die entsprechenden Image-Dateien weiter. VirtualBox verwendet als Standardformat für Image-Dateien das ?Virtual Disc Image? (VDI) Format. VirtualBox ist aber auch in der Lage Formate anderer namhafter Virtualisierungsanbieter wie zum Beispiel VMDK (VMWare) oder VHD (Microsoft) zu unterstützen. Im Gegensatz zu realen Festplatten, bei denen die Speicherkapazität fest definiert ist, ist es mit VirtualBox möglich, die Größe der Image-Dateien dynamisch anzupassen oder eine feste Größe zu definieren. Der Vorteil der dynamischen Anpassung ist, dass zu jedem Zeitpunkt nur der real belegte Speicherplatz reserviert wird und somit ungenutzte Ressourcen freigegeben werden können. Im Gegensatz dazu wird bei einer festgelegten Größe der Image-Datei sofort der gesamte Speicherplatz reserviert. Allerdings ist der Zugriff auf eine Image-Datei mit festdefinierter Größe schneller als bei einer dynamischen Datei. Dieser Vorteil ist aber bei Erreichen der gleichen Größenordnung der Image-Dateien vernachlässigbar. 4.3.3 Virtual Media Manager VirtualBox bietet zur Verwaltung von Image-Dateien einen sogenannten Virtual Media Manager an. Hier können in drei verschieden Listen Image-Dateien von Festplatten, CD/DVD-ROM oder Floppy verwaltet werden. Diese können im gesamten Netzwerk verteilt existieren und über den Virtual Media Manager dem Gastsystem als Medium zur Laufzeit verfügbar gemacht werden. 4.3.4 Speicherverwaltung bei Snapshots Snapshots bieten dem Anwender die Möglichkeit, einen aktuellen Systemzustand zu speichern. Hierbei wird die aktuelle Image-Datei abgeschnitten und fixiert, indem nur noch lesender Zugriff gewährt wird. Alle Änderungen der Datensätze bzw. Erweiterungen werden ab diesem Zeitpunkt in eine weiteren Image-Datei gespeichert. Das heißt, dass sobald auf Daten eines früheren Zeitpunktes zugegriffen werden soll, die abgeschnittene Image-Datei verwendet wird. Sollte es sich um neue bzw. geänderte Datensätze handeln, wird die neue Image-Datei benutzt. VirtualBox hat hierdurch die Möglichkeit geschaffen, Systemzustände ressourcensparend zu sichern. Über die 4.3.1 Festplatten-Controller 15 Desktop-Virtualisierung_mit_Oracle_VirtualBox Systemverwaltung von VirtualBox kann jederzeit der gesicherte Systemzustand des Snapshots wiederhergestellt werden. 4.3.5 Cloning von Image-Dateien In großen Unternehmen werden Desktop-Systeme in der Regel standardisiert ausgeliefert. Das bedeutet, dass jedes Desktop-System mit dem gleichen Betriebssystem, Konfigurationen und Grundprogrammen betrieben wird. Meistens wird nur vereinzelt individuelle Zusatzsoftware installiert. Aus diesem Grund würde es sich anbieten, ein einziges fertig installiertes und konfiguriertes Grundsystem zu erstellen, um dieses dann nur minimal anzupassen und auszuliefern. Bei realen Desktop-PCs lässt sich dieser Gedanke in der Regel aufgrund der sehr differenzierten Hardware nicht oder nur bedingt umsetzen. VirtualBox ermöglicht mittels Cloning von Image-Dateien genau diesen Ansatz. Über die Verwaltung von VirtualBox ist es möglich eine aktuelle VM zu klonen und dadurch eine neue VM, mit den gleichen Eigenschaften des Gastsystems, zu erzeugen. Dies bietet die Möglichkeit, das Gastsystem beliebig oft zu reproduzieren. Für den Fall, dass ein neues Desktop-System benötigt wird, wird das Grundsystem innerhalb kürzester Zeit geklont und minimal für den Anwender angepasst. Dies ermöglicht Systemadministratoren, nicht nur unnötige Redundanzen in den Arbeitsprozessen zu reduzieren, sondern auch individuelle, teils komplizierte Anpassungen im Bezug auf die Hardware zu vermeiden. 4.3.6 I/O Caching Als Standard-Caching verwendet VirtualBox das Caching für Dateien des Hostsystems. Dadurch kann die Performance erheblich gesteigert werden. Da jedoch bei einem normalen Caching die Daten nicht direkt auf die Festplatte geschrieben werden, kann es zum Beispiel bei Stromausfällen oder Hardwaredefekten zu Datenverlust kommen. Um die Datensicherheit zu erhöhen, bietet VirtualBox hierzu die Option, das Host-I/O-Caching zu deaktivieren. Dabei wird das Caching vom Gastsystem übernommen und die Daten direkt in der Image-Datei auf der Festplatte gespeichert. 4.3.7 Limitieren der Bandbreite von Image-Dateien Insbesondere wenn das Hostsystem für weitere wichtige Arbeitsprozesse verwendet wird, bietet VirtualBox die Möglichkeit, die Bandbreite für Schreib- und Lesezugriffe der VM auf die Image-Datei zu beschränken. Hierdurch werden die Ressourcen des Hostsystems geschont und können für andere Prozesse zur Verfügung stehen. 4.3.8 CD/DVD Unterstützung VirtualBox bietet auch die Unterstützung von CD/DVD-Laufwerken. In der Regel werden diese für das Gastsystem emuliert. Bei der Emulation des Laufwerkes ist lediglich ein lesender Zugriff möglich, der sich wahlweise auf ein Medium im Host-Laufwerk oder aber auf eine Image-Datei beziehen kann. Zusätzlich kann das Laufwerk auch auf Empty gesetzt werden, wodurch das Laufwerk dem Gastsystem als leer angezeigt wird. Jede Änderung am Zustand des emulierten Laufwerkes, wird als Signal an das Gastsystem weitergeleitet. Momentan in der Testphase ist noch eine weitere Option, bei der das reale Laufwerk zur VM durchgeschleust wird. Dadurch wird dem Gastsystem der volle Zugriff auf das Laufwerk ermöglicht, sodass es ein Medium nicht nur lesen, sondern auch beschreiben kann. 4.3.4 Speicherverwaltung bei Snapshots 16 Desktop-Virtualisierung_mit_Oracle_VirtualBox 4.3.9 iSCSI Server Durch die schnelle Gigabit-Verbindung wurde die Möglichkeit geschaffen, VirtualBox auch über das iSCSI-Protokoll mit Festplatten, die im Internet verteilt existieren zu verbinden. Für das Gastsystem bleibt verborgen, wo sich letztendlich der Speicherplatz der Image-Datei befindet. 4.4 Virtual Networking Eine Verbindung ins WWW bzw. ins interne Firmennetzwerk ist für heutige Desktop-PCs nicht mehr wegzudenken. VirtualBox ist in der Lage bis zu acht Netzwerkkarten pro VM zu unterstützen. Vier davon können direkt über die grafische Schnittstelle verwaltet werden. Benötigt man mehr Netzwerkkarten, so müssen diese über die Kommandozeile konfiguriert werden. Bei der Zuweisung einer Netzwerkkarte zum Gastsystem, wird zum einen die zu emulierende Hardware und zum anderen der Modus der Kommunikation angegeben. 4.4.1 Virtuelle Netzwerkkarten VirtualBox stellt sechs verschiedene Arten von Netzwerkkarten zur Verfügung, die unabhängig von der realen Netzwerkkarte des Hosts gewählt werden können. • AMD PCNet PCI II (Am79C970A) • AMD PCNet FAST III (Am79C973, the default); • Intel PRO/1000 MT Desktop (82540EM); • Intel PRO/1000 T Server (82543GC) • Intel PRO/1000 MT Server (82545EM) • Paravirtualized network adapter (virtio-net) Als Standard ist die PCNet Fast III eingestellt, da sie von fast allen Betriebssystemen sowie vom GRUB Bootloader standardmäßig unterstütz wird. Für einige Betriebssysteme, wie zum Beispiel Windows Vista, die den Treiber für PCNet Fast III standardmäßig nicht mit ausliefern, steht zum Beispiel der Typ Intel PRO/1000 MT Desktop zur Verfügung. Falls die benötigte Hardwareemulationen nicht vorhanden sein sollte, ist es möglich, über die Schnittstelle Paravirtualized network adapter eine individuelle Netzwerkkarte zu emulieren. 4.4.2 Netzwerkmodi Die Netzwerkkartenkonfiguration von VirtualBox kennt fünf verschiedene Modi. Diese können für jede der acht möglichen Netzwerkkarten unterschiedlich gewählt werden. 4.3.9 iSCSI Server 17 Desktop-Virtualisierung_mit_Oracle_VirtualBox [Abb. 7] Abbildung der Möglichkeiten zur Netzwerkkommunikation Der erste Modus ist ?Not attached?. Hierbei wird dem Gastsystem angezeigt, dass eine Netzwerkkarte installiert, aber kein Netzwerkkabel angeschlossen ist. Ein weiterer Modus ist ?Network Address Translation? (NAT). Dieser Modus wird verwendet, wenn lediglich Internetbrowsing und/oder E-Mail-Verkehr benötigt wird. Wenn eine erweiterte Netzwerknutzung gefordert ist, so ist der Modus ?Bridged networking? zu wählen. Hierbei wird ein Zugriff auf die Netzwerkkarte des Hostsystems gewährt, wodurch es möglich ist, direkt Netzwerkpakete über die Karte auszutauschen. Um lediglich eine Kommunikation zwischen bestimmten virtuellen Maschinen zu ermöglichen, kann der Modus ?Internal networking? gewählt werden. Hierbei wird eine Netzwerkkarte auf Softwarebasis emuliert, die den gewählten VMs zur Verfügung steht. Eine Kommunikation nach außen bzw. zum Host ist dabei nicht möglich. Der Vorteil dieser Variante ist, dass die Möglichkeit zur Simulation eines gesamten Netzwerkes besteht, ohne die Ressourcen des realen Netzwerkes zu beanspruchen. Um den Host mit ins Netzwerk einzubinden, ist der Modus ?Host-only networking? zu wählen. Hierbei wird wie schon beim internen Netzwerk, eine Netzwerkkarte auf Softwarebasis emuliert, dies geschieht jetzt aber auch beim Host, wodurch dieser mit ins Netzwerk eingebunden werden kann. Die letzte Alternative ist der ?Virtual Distributed Ethernet? (VDE) Modus. Dabei besteht die Möglichkeit, das Gastsystem mit der VDE-Software auf einem Linux- oder FreeBSD-System zu verbinden. 4.4.2 Netzwerkmodi 18 Desktop-Virtualisierung_mit_Oracle_VirtualBox 5 Bedienung/Steuerung VirtualBox bietet verschiedenste Möglichkeiten der Steuerung. Im Standardpaket von VirtualBox ist ein Graphical User Interface (GUI) enthalten, mit dem sich viele Standardkonfigurationen bequem mit Maus und Tastatur erledigen lassen. Innerhalb des GUIs werden die verschiedensten VMs in Listen verwaltet und können direkt aufgerufen werden. Andere meist spezielle Konfigurationen sind aber über das GUI nicht konfigurierbar. Für solche Funktionen besteht die Möglichkeit der Konfiguration mittels Kommandozeile. VirtualBox bietet die Möglichkeit, sämtliche Einstellungen über die Kommandozeile zu konfigurieren. Dies versetzt die Anwender gleichzeitig in die Lage, VirtualBox vollständig aus anderen Programmen bzw. über Skripte steuern und verwalten zu können. Dies bietet Spielraum für individuelle Anwendungen und Virtualisierungslösungen auf Basis von VirtualBox. 5.1 Fernwartung / Fernsteuerung von VMs Virtuelle Maschinen befinden sich meistens auf Servern, die sich weit entfernt von dem Arbeitsplatz der Anwender bzw. Systemadministratoren befinden. In einigen Fällen existiert keine direkte Möglichkeit, ein Display an das Hostsystem anzuschließen. Aus diesem Grund wird eine Schnittstelle benötigt, über die das Gastsystem angesprochen werden kann. Dies übernimmt bei VirtualBox ?VirtualBox Remote Display Protocol?. Dieses Protokoll ermöglicht nicht nur den grafischen Zugriff auf die virtuelle Maschine, sondern die Verwendung eines vollwertigen Desktop-Systems über das Netzwerk inklusive USB-Unterstützung. 5.1.1 VirtualBox Remote Display Protocol (VRDP) VRDP ist eine abwärts kompatible Erweiterung des Microsofts Remote Desktop Protocol (RDP). Daher ist es möglich, mit jedem Standard-RDP-Programm auf die VMs von VirtualBox zuzugreifen. VirtualBox ermöglicht mittels VRDP die Steuerung der VMs über das Netzwerk. Wird eine Verbindung zu einer VM über einen RDP-Client hergestellt, hat der Anwender das Gefühl direkt vor einer realen Maschine zu sitzen. Über das Protokoll werden die Bild- und Audiodaten des Gastsystems an den Client weitergeleitet und dort ausgegeben. Das Gastsystem erhält im Gegenzug sämtliche Eingaben über die Tastatur bzw. der Maus des Clients. 5.1.2 Verbinden von USB-Geräten via VRDP Im Gegensatz zum RDP von Microsoft bietet VRDP nicht nur die Möglichkeit Bild-, Audio- und Eingabedaten auszutauschen, sondern auch am Client angeschlossene USB-Geräte dem Gastsystem zur Verfügung zu stellen. Da dies keine Eigenschaft des Standard-RDP ist, benötigt man für diese Funktionalität einen VRDP-Client, der bei Linux bzw. Solaris bereits bei der Installation von VirtualBox enthalten ist (?rdesktop ?vrdp?). 5.1.3 Sicherheit von VRDP VirtualBox bietet die Möglichkeit, den Zugriff auf die VMs zu beschränken. Dafür stehen derzeit drei verschiedene Modi zur Verfügung. Der erste Modus ist ?null?. Bei diesem Modus besitzt jeder Client unbeschränkten Zugriff auf die virtuelle Maschine via VRDP. Der Modus ?external? bietet die Möglichkeit, den Zugriff zu beschränken, indem entweder die Logindaten des Hosts oder eine benutzerdefinierte XML-Datei für die Legitimierung des Clients herangezogen werden. Der letzte Modus ?guest? befindet sich derzeit noch in der Testphase und soll einen Gastzugang zur Verfügung stellen. 5 Bedienung/Steuerung 19 Desktop-Virtualisierung_mit_Oracle_VirtualBox 5.1.4 RDP Verschlüsselung Um die Sicherheit der RDP-Verbindung zu gewährleisten, unterstützt VirtualBox die gängigen RDP-Encryption-Standards RDP4, RDP5.1 und RDP5.2. Um eine möglichst hohe Sicherheit im Netzwerk sicherzustellen, sollte aber nur der RDP5.2 Standard verwendet werden. 5.1.5 Parallele Verbindungen zum VRDP-Server VRDP ermöglicht den gleichzeitigen Zugriff von mehreren Clients zur selben virtuellen Maschine. Dabei sehen und hören alle Clients dieselben Ausgaben des Gastsystems und haben die Möglichkeit, ihre Eingaben via Tastatur und/oder Maus an das Gastsystem zu senden. 5.1.6 VRDP Video Redirection Der VRDP-Server ist in der Lage, Videostreams auf dem Gastsystem zu erkennen und an den Client weiterzuleiten. Durch diese Funktionalität wird die Performance des Gastsystems gesteigert und die Bildqualität des Clients verbessert. Um diese Funktionalität nutzen zu können, muss der Client diese unterstützen. Das ist standardmäßig bei Microsoft erst ab Windows 7 der Fall. Ist keine Unterstützung für Video Redirection beim Client vorhanden, wird automatisch die Standard-Bitmap-Übertragung verwendet. 5.1.7 Teleporting Ein weiteres hilfreiches Feature von VirtualBox ist das Teleporting. Beim Teleporting ist es möglich, das Hostsystem für eine VM während des laufenden Betriebes zu wechseln. Hierzu müssen auf beiden Hosts jeweils eine VM mit identischen Hardwarekonfigurationen existieren. Des Weiteren müssen beide VMs auf dieselben Festplatten-Images zugreifen können. Zum Beispiel über iSCSI oder über ein gemeinsames Netzlaufwerk. Über eine bestimmte Anfrage kann jetzt das eine Hostsystem (Target) die laufende VM des anderen Hostsystems (Source) übernehmen, ohne dass die VM abgeschaltet werden muss. Dies ist vorteilhaft bei Überlastung oder Wartung des Source-Systems. Für den Fall, dass das Gastsystem ein Server ist, kann dieser seinen Betrieb ohne Unterbrechungen fortsetzen und der Wechsel bleibt für Clients verborgen. 5.1.8 Sonstiges VirtualBox bietet die Möglichkeit das VRDP zu beschränken, sodass einzelne Protokollparameter deaktiviert werden. So können z.B. die Übertragungen von Video-, Audio-, Eingabe- oder USB-Daten einzeln oder zusammen abgeschaltet werden. 6 Backup-Strategien von VirtualBox Eines der wichtigsten Themengebiete beim Umgang mit wichtigen Daten und Systemen sind Backups. Sie sollen uns vor möglichem Datenverlust durch falsche Handhabung oder Hardwaredefekten schützen. Bei VirtualBox sind verschiedenste Backup-Strategien denkbar. Eine Variante wäre die Sicherung der wichtigsten Dateien und Systemeinstellungen über das Gastsystem selbst. Hierbei werden wie bei realen Desktop-Systemen über Backup-Server oder systemeigene Routinen die zu sichernden Daten aus dem Gastsystem heraus gesichert. Ein 6 Backup-Strategien von VirtualBox 20 Desktop-Virtualisierung_mit_Oracle_VirtualBox Vorteil dieser Strategie ist, dass der laufende Betrieb der VM nicht beeinflusst wird und nur die wirklich wichtigen Daten gesichert werden, was Speicherplatz einspart. Jedoch ist eine Wiederherstellung der Daten nur mittels hohem Arbeits- und Zeitaufwand möglich. Snapshots hingegen bieten die Möglichkeit einen aktuellen Systemstand einzufrieren und auch im laufenden Betrieb zu speichern. Eine Wiederherstellung des gesamten Systems wäre mit vernachlässigbarem Aufwand jederzeit möglich und würde im Idealfall nur wenige Minuten dauern. Wie bei der ersten Variante kann jetzt die Image-Datei des Snapshots über einen Backup-Server oder der systemeigenen Backup-Routine gesichert werden. Die Erstellung eines Snapshots kann dank der vollunterstützen Kommadozeilensteuerung über ein kurzes Skript erfolgen, das in die automatische Backup-Strategie integriert wird. 7 Fazit Desktop-Virtualisierung erhält in einer modernen IT-Infrastruktur einen wachsenden Stellenwert. Durch den gezielten Einsatz einer virtuellen Desktop-Infrastrukur, lässt sich der Bedarf an Energie- und Hardwareressourcen, wie zum Beispiel Speicherplatz, Arbeitsspeicher oder Prozessorleistung stark reduzieren. Die gemeinsame Nutzung von Hardwareressourcen fördert das Optimierungspotenzial in Bezug auf die Dimensionierung und Auslastung. Der Austausch von vollwertigen, kostenintensiven Desktop-Systemen, die dem Anwender am Arbeitsplatz zur Verfügung gestellt wurden, durch relativ leistungsschwache und kostengünstige Thin Clients, die lediglich eine lokale Verbindung zur VM herstellen müssen, ermöglicht es, den Wartungsaufwand erheblich zu reduzieren. Virtualisierte Desktop-Systeme können zentral auf Servern verwaltet und gepflegt werden. Durch Redundanz der virtuellen Maschinen, kann zusätzlich die Ausfallsicherheit von wichtigen Desktop-Systemen erhöht werden. Im Falle eines Hardwaredefektes der mit Thin Clients betriebenen Workstation kann die Wiederherstellung der Arbeitsfähigkeit innerhalb kürzester Zeit durch den Tausch des Endgerätes erfolgen, ohne dass größere Konfigurationen oder der Einsatz von Fachpersonal erforderlich sind. Der Einsatz von virtuellen Desktops wird jedoch häufig durch die Leistungsfähigkeit der Netzwerkinfrastruktur begrenzt. In Unternehmen, die ältere Netzwerkleitungen verwenden und eventuell noch viele Verzweigungen mit veralteter Hardware besitzen, kann die mögliche Bandbreite des Netzwerkes zum Flaschenhals werden. Wenn viele Clients gleichzeitig auf die virtuellen Maschinen zugreifen, besteht die Gefahr einer Netzwerküberlastung, wodurch ein störungsfreies und flüssiges Arbeiten nicht mehr möglich ist. Da die Kosten für eine Modernisierung der Netzwerkinfrastruktur immens sein können, muss die zur Verfügung stehende Infrastruktur bei einer möglichen Umstellung berücksichtigt werden. Ein weiterer wichtiger Aspekt für den Einsatz von virtuellen Desktop-Systemen ist die Möglichkeit, einfach und unkompliziert eine isolierte Testumgebung für eine Desktop-Infrastrukur aufzubauen. Diese kann in verschiedenen Stadien gestestet werden, ohne dass das bestehende System beeinflusst wird. Ein Beispiel hierfür wäre die Simulation einer vollständigen Domain inkl. Server und Clients, ohne dass hierfür weitere Hardwareressourcen zur Verfügung stehen und einzeln konfiguriert werden müssen. Auch die Anzahl der unterschiedlichsten Endgeräte wie z. B. Tabletts, Netbooks oder immer leistungsfähigere Handys prädestinieren den Einsatz von virtuellen Desktops, da die einzige Anforderung an den Client die Unterstützung des Remote Desktop Protocols ist. So ist man heute schon in der Lage, sein Handy als vollwertigen Desktop-PC zu nutzen. Abschließend ist festzuhalten, dass Virtualisierungstechniken in modernen IT-Infrastrukturen zunehmend an Bedeutung gewinnen und man, rückblickend auf die rasante Entwicklung der letzten Jahre, gespannt sein darf, wie die Zukunft von Desktop-Systemen aussieht. 8 Endnoten 1. ? Virtualisierung: Rechenleistung aus dem großen Topf, Seite 1 2. ? VT (virtualization technology), Seite 1 3. ? vgl. Virtualisierung von Betriebssystemen 8 Endnoten 21 Desktop-Virtualisierung_mit_Oracle_VirtualBox 4. ? vgl. Alles über Virtualisierung 5. ? vgl. Understanding Full Virtualization , Paravirtualization, and Hardware Assist 6. ? vgl. Terminalserver 7. ? vgl. Oracle VM VirtualBox User Manual (2011), Seite 12 8. ? vgl. Oracle VM VirtualBox Lizenzbestimmungen 9. ? Die grundsätzliche Funktionsweise der Virtualisierung im Überblick (2010), Seite 1 10. ? Unterschiede zwischen Multithreading und Multitasking für Programmierer, Seite 1 11. ? vgl. Die grundsätzliche Funktionsweise der Virtualisierung im Überblick (2010), Seite 1 http://www.searchnetworking.de/specials/netzwerk-grundlagen/rz-basics/articles/270644/index.html (11.7.2011, 14:00) 12. ? vgl. Hypervisor, http://www.itwissen.info/definition/lexikon/virtual-machine-monitor-VMM.html (15.7.2011, 15:45) 13. ? vgl. Oracle VM VirtualBox User Manual (2011), Seite 53 ff. 9 Abkürzungsverzeichnis Abkürzung ACPI CIFS CPU FSF GUI HAL IBM IDE IPC iSCSI IT MIT NAT NFS OSE PUEL RDP SAS SATA SCSI SMB SMP USB VDE VDI VHD 9 Abkürzungsverzeichnis Bedeutung advanced configuration and power interface Common Internet File System Central Processing Unit Free Sotware Foundation Graphical user interface Hardware Abstraction Layer International Business Machines Corp Integrated Device Electronics Inter-process communication internet Small Computer System Interface Information Technology Massachusetts Institute of Technology Network Address Translation Network File System Open Source Edition VirtualBox Personal Use and Evaluation License remote desktop protocol Server Attached Storage Serial Advanced Technology Attachment Small Computer System Interface Server-Message-Block symmetric multiprocessing Universal Serial Bus Virtual Distributed Ethernet Virtual Disc Image Virtual-Hard-Disk 22 Desktop-Virtualisierung_mit_Oracle_VirtualBox VM VMDK VRDE VRDP Extensible Markup Language Virtuelle Maschine Virtual Machine Disk VirtualBox Remote Desktop Extension VirtualBox Remote Display Protocol 10 Abbildungsverzeichnis Abb.-Nr. 1 2 3 4 5 6 7 Abbildung Abbildung der Abstraktionsschicht hosted Hypervisor (VMM) bare-metal Hypervisor (VMM) Abbildung von Laufzeitumgebungen auf Elementarprozesse Abbildung der Kommunikation zwischen den VM Abbildung der Verteilungsmöglichkeiten von Image-Dateien Abbildung der Möglichkeiten zur Netzwerkkommunikation 11 Tabellenverzeichnis Tabelle Nr. 1 2 Quelle Darstellung der Funktionen von Oracle VM VirtualBox in Anlehnung auf folgende Quelle Darstellung der Software-Verbesserungen in den Oracle VM VirtualBox Gasterweiterungen in Anlehnung auf folgende Quelle 12 Literatur- und Quellenverzeichnis Kurzverweis Quelle Virtualisierung: http://www.computerwoche.de/software/office-collaboration/553021/index.html (11.07.2011 Rechenleistung aus dem 11:00) großen Topf VT (virtualization http://www.fh-wedel.de/~si/seminare/ws06/Ausarbeitung/02.VMware/vmware1.htm (11.07.2 technology) 12:30) Die grundsätzliche Funktionsweise der http://www.searchnetworking.de/specials/netzwerk-grundlagen/rz-basics/articles/270644/ind Virtualisierung im Überblick (11.07.2011, 14:00) (2010) Terminalserver http://technet.microsoft.com/de-de/library/cc737856(WS.10).aspx (11.07.2011, 14:30) http://www.computerwoche.de/hardware/data-center-server/2350017/index6.html (11.07.201 Alles über Virtualisierung 18:00) Understanding Full http://www.vmware.com/files/pdf/VMware_paravirtualization.pdf (11.07.2011, 21:00) Virtualization , Paravirtualization, and 12 Literatur- und Quellenverzeichnis 23 Desktop-Virtualisierung_mit_Oracle_VirtualBox Hardware Assist Unterschiede zwischen Multithreading und ftp://ftp.ni.com/pub/devzone/pdf/tut_6680.pdf (10.07.2011, 13:00) Multitasking für Programmierer Oracle VM VirtualBox User http://download.virtualbox.org/virtualbox/UserManual.pdf (10.07.2011, 12:00) Manual (2011) Oracle VM VirtualBox http://www.virtualbox.org/wiki/VirtualBox_PUEL (09.07.2011, 15:00) Lizenzbestimmungen(2011) 12 Literatur- und Quellenverzeichnis 24