Virtualisierung

Definition

Bei Virtualisierung handelt es sich um die Abstraktion physischer IT-Ressourcen wie Hardware, Software, Speicher und Netzwerkkomponenten. Eine im Rahmen der Virtualisierung erstellte IT-Komponente wird als virtuelle oder logische Komponente bezeichnet und kann genauso verwendet werden wie ihr physisches Pendant.

Ziel ist es, diese Ressourcen auf virtueller Ebene bereitzustellen und ebenso flexibel wie bedarfsgerecht an verschiedene Abnehmer zu verteilen. Dies soll für eine verbesserte Auslastung der IT-Ressourcen sorgen.

Wer sich mit Virtualisierung beschäftigt, stößt unweigerlich auf die Begriffe Simulation und Emulation, die oft synonym verwendet werden, sich technisch jedoch sowohl voneinander als auch vom Konzept der Virtualisierung unterscheiden.

Simulation

Als Simulation bezeichnet man die vollständige Nachbildung eines Systems mittels Software. „Vollständig“ heißt in diesem Fall, dass nicht nur die Funktionen im Zusammenspiel mit anderen Systemen imitiert, sondern alle Systemkomponenten sowie deren innere Logik nachgestellt werden. Simulatoren kommen zur Anwendung, um Programme, die eigentlich für ein bestimmtes System entwickelt wurden, zu Analysezwecken auf einem anderen System kompilieren zu können. Simulation ermöglicht es beispielsweise, Software für antiquierte Großrechner auf modernen Rechenplattformen auszuführen. Im Gegensatz zur Emulation ist Simulation nicht für den Praxiseinsatz vorgesehen. Als Beispiel bietet sich der Flug-Simulator an. Beispiele sind die großen Flug- oder Fahrsimulatoren, um Piloten auszubilden.

Emulation

Der Begriff „Emulieren“ steht nur für „nachahmen“. Im Gegensatz zum Simulator, wird hier also die Wirklichkeitstreue vernachlässigt.

Einem Emulator geht es also im Kern nur darum, dass das Ergebnis stimmt. Es ist nicht nötig die internen Funktionsprozesse (Hardware, Prozessor, Schnittstellen) wirklichkeitsgetreu nachzubilden. Wenn also später ein Emulator-Spieler auf die Konsole trifft, die er vorher noch nicht kannte, muss er erst mal lernen, wie die Konsole überhaupt funktioniert (Strom, Spiele-Kassetten, einschalten, ausschalten)

Gründe für Virtualisierung

Durch Virtualisierung kann die Agilität, Flexibilität und Skalierbarkeit der IT erhöht werden. Gleichzeitig werden deutliche Kosteneinsparungen ermöglicht. IT-Komponenten lassen sich einfacher verwalten und kostengünstiger betreiben, da Workloads schneller bereitgestellt, Performance und Verfügbarkeit optimiert sowie Betriebsabläufe automatisiert werden. Weitere Vorteile:

Wie Virtualisierung funktioniert

Eine Software namens Hypervisor trennt die physischen Ressourcen von den virtuellen Umgebungen, also den Systemen, die die Ressourcen benötigen. Hypervisoren können auf beliebigen Betriebssystemen aufsitzen (wie auf einem Laptop) oder direkt auf der Hardware (wie ein Server) installiert werden, was das von Unternehmen am häufigsten verwendete Modell ist. Mit Hypervisoren können Sie Ihre physischen Ressourcen zur spezifischen Verwendung durch Ihre virtuellen Umgebungen aufteilen.

Ressourcen werden je nach Bedarf von Ihrer physischen Umgebung an die verschiedenen virtuellen Umgebungen partitioniert. Die Nutzer interagieren mit ihrer speziellen virtuellen Umgebung (normalerweise als Guest oder virtuelle Maschine bezeichnet) und führen dort ihre Berechnungen durch. Die virtuelle Maschine (VM) funktioniert wie eine einzelne Datendatei. Und wie diese Dateien auch lassen sie sich von einem PC zum anderen verschieben und dort öffnen bzw. bieten die exakt gleiche Funktion.

Wenn die virtuelle Umgebung ausgeführt wird und ein Nutzer/Programm eine Anweisung ausgibt, die zusätzliche Ressourcen von der physischen Umgebung erfordert, gibt der Hypervisor diese Anfrage an ein physisches System weiter und speichert die Änderungen. Das alles läuft praktisch mit nativer Geschwindigkeit ab (insbesondere, wenn die Anfrage über einen Open Source-Hypervisor gesendet wird, der auf KVM basiert, der Kernel-based Virtual Machine.

https://youtu.be/E_syJ2r_okk

Virtualisierungsarten

Eine Einteilung in Gruppen bzw. Kategorien fällt nicht immer ganz leicht, da manche Virtualisierungstechnologien mehreren zugeordnet werden können. Hier findest du eine mögliche Einteilung:

1) Servervirtualisierung (auch Betriebssystemvirtualisierung genannt)

Die Virtualisierung von Servern bedient sich der Virtualisierung von Computern, die auch Hardware-Virtualisierung oder Betriebssystemvirtualisierung genannt wird. Hierbei wird auf physikalischer Computerhardware dem VM Host ein als sog. Hypervisor dienendes Betriebssystem installiert das vorhandene Hardwareressourcen intelligent auf virtuelle Maschinen verteilt. Dadurch ermöglicht diese Konstellation einem Serverbetriebssystem Teile der Vorhandenen Hardware, also Prozessor, Speicher und Anschlüsse, zu nutzen. Dabei wird einem Betriebssystem ein vorhandener Hardwarecomputer vorgespiegelt. Die gängigsten, kommerziellen Lösungen die von Herstellern verfügbar sind VMWare ESX, Citrix XEN, Microsoft Hyper-V sowie IBM MPAR bei professionellen Mainframe Großrechnersystemen. Freie kostenlose Virtualisierungslösungen für Serverbetriebssysteme sind ebenfalls in großer Anzahl verfügbar. Die bekanntesten wären VMWare ESXi und VMWare Player, XEN, KVM und Oracle VirtualBox.

2) Desktop Virtualisierung

Die Virtualisierung von Desktop PCs entspricht technisch im weitest gehenden der Virtualisierungstechnik für Server. In der neuesten Generation der Desktop Virtualisierungen kann ein Virtualisierter PC auf beliebige Endgeräte der Anwender wie Laptops, Pads, Thin Clients oder PCs plattformübergreifend gestreamt werden. Für Desktopbetriebssysteme können die professionellen Virtualisierungslösungen für Server ebenfalls verwendet werden. Spezielle Softwarelösungen für Desktop Virtualisierung sind Microsoft Virtual PC; VMWare Workstation und Apple‘s Parallels Workstation. Konkret heißt das ein Windows 10 läuft nicht mehr am Arbeitsplatz-Rechner sondern innerhalb einer virtuellen Server-Infrastruktur (ESX, XenServer, Hyper-V). Die Benutzer verwenden entweder einen Terminal-Services-Client oder direkt einen ThinClient mit Hilfe dessen sie die virtuellen Clients steuern können.

Vorteile sind hierbei, dass sämtliche Server und Client-Betriebssysteme an einem zentralen Ort betrieben werden können (z. B. VMware vSphere-Umgebung im Serveraum). Somit ist eine zentrale Datenhaltung mit verbesserten Backup-, Performance- oder KostenersparnisMöglichkeiten gegeben. Für die Verwaltung der virtuellen Desktop-VMs wurden VMware View und Citrix XenDesktop entwickelt. Einen entscheidenden Nachteil teilen sich jedoch alle Virtualisierungslösungen, die für die (Client-)Benutzer-Interaktion ausgelegt sind: die Grafikkartenperformance. Bei einem physikalischen Client-PC ist die Grafikkarte direkt mit dem Monitor verbunden, während bei einer Client-VM die Daten von der virtuellen Grafikkarte im Serverraum erst über das Netzwerk zur lokalen Grafikkarte und letztlich zum Monitor übertragen werden müssen.

3) Applikations/Anwendungs-Virtualisierung

Anwendungsvirtualisierung ist ein Prozess, durch den eine Standardanwendung davon ausgeht, dass sie direkt mit den Kapazitäten eines Betriebssystems verbunden ist, obwohl dies nicht der Fall ist.

Für diesen Prozess benötigt man eine Virtualisierungsebene, die zwischen der Anwendung und dem Betriebssystem eingefügt wird. Diese Ebene bzw. dieses Framework muss die Untergruppen einer Anwendung virtuell und ohne Beeinträchtigung des tieferliegenden Betriebssystems ausführen. Die Virtualisierungsschicht ersetzt einen Teil der Laufzeitumgebung, der normalerweise vom Betriebssystem bereitgestellt wird, und leitet Dateien und Registry-Protokolländerungen transparent zu einer einzigen ausführbaren Datei um.

4) Storage Virtualisierung

Die Virtualisierung von Speichersystemen stellt die Zusammenfassung vorhandener Speicherressourcen wie Festplatten, NAS und SAN Systeme dar. Hierbei werden die vorhandenen Datenspeicher unterschiedlicher Technologien und Hersteller in einem gemeinsamen großen Speicherpool zusammengefügt. Einzelne, vorhandene Rechnersysteme können benötigten Speicherplatz in flexibler Größe aus dem virtuellen Speichersystem in Anspruch nehmen. Durch Hinzufügen weiterer Speicherhardware kann bei anwachsenden Datenmengen der Speicherpool im laufenden Betrieb beliebig vergrößert werden. Zusätzlich minimiert Storage-Virtualisierung den Aufwand zur Schaffung von Redundanz als Schutzmaßnahme gegen Datenverlust oder Betriebsausfälle. Man unterscheidet zwischen drei Arten der Storage-Virtualisierung. Die Hostbasierte Lösungen wie Datacore SANSymphony, Symantec Storage Foundation for Windows oder HPs LeftHand Virtual SAN laufen auf eigenen Rechnersystemen. Die zweite Möglichkeit findet direkt in Speicherhardware wie SAN Systemen statt bei denen weitere Geräte und Switches als zusätzliche vermittelnde Schicht ins SAN integriert werden. Der Storage Controller erkennt diese als Hostsystem während zugreifende Hosts diese als Storage erkennen. Die Produkte solcher kombinierter Systeme sind u.A. EMC Invista, LSI Logic StoreAge und HPs SVSP. Die dritte Möglichkeit ist Storage Virtualisierung die direkt in einem dedizierten Controller, der Anschlussmöglichkeiten für verschiedene Speichersysteme anbietet, stattfindet. Hierzu zählen IBM Systems SVC (Storage Virtualisierungs Controller) oder VMWare vSphere Storage Appliance.

5) Netzwerk Virtualisierung

Die Virtualisierung von Netzwerken bietet die Möglichkeit ein Firmennetzwerk über bauliche Abgrenzungen hinweg in mehrere Teilnetze aufzuteilen. Bei einer klassischen physikalischen Netzwerkinfrastruktur gilt ein Adressbereich für das ganze Unternehmen. Zugriffsberechtigungen und Netzwerkkontrolle kann bei dieser Konfiguration nur durch Dateiberechtigungen und komplizierte Firewall Lösungen ausgeübt werden. Eine physikalische Trennung einzelner Abteilungen ist bei dieser Konfiguration beinahe unmöglich. Bei einem virtualisierten Netzwerk können einzelne Clients sogar über Stockwerksgrenzen hinweg einer einzelnen Netzwerkgruppe zugeordnet werden. Jedes der so erstellten virtuellen Netzwerke hat einen eigenen Adressbereich obwohl sich diese im gleichen physikalischen Netzwerk befinden. Ressourcen der Entwicklungsabteilung z.B. sind somit vor ungewollten oder unautorisierten Zugriffen durch eine andere Abteilung auf unterster Ebene abgesichert. Mittlerweile implementiert fast jeder Hersteller von Netzwerkhardware die Möglichkeit zur Virtualisierung von Netzwerken in seine Produkte. Voraussetzung sind Layer2 oder Layer3 fähige Netzwerkswitche. Die besten Erfahrungen bei der Netzwerkvirtualisierung hatten wir mit Produkten der Hersteller Cisco, Extreme Networks, HP und Juniper.

Was ist eine virtuelle Maschine?

Eine virtuelle Maschine ist ein Software-Container, der einem darin installierten Betriebssystem eine Scheinwelt vorgaukelt, in dem gängige Hardware-Komponenten emuliert werden. Üblicherweise verfügen Betriebssystem über Standard-Treiber mit denen sie die emulierte Hardware ansprechen können. Virtuelle Maschinen verfügen nur über eine eingeschränkte Grafikleistung. 3D-Software und die Wiedergabe und Bearbeitung von Videos ist in einer virtuellen Maschine nicht ausreichend schnell machbar. Mit virtuell ist die Hardware gemeint, die dem Betriebssystem in der virtuellen Maschine zur Verfügung steht. Denn CPU, Arbeitsspeicher, Grafikkarte, Laufwerke und Schnittstellen stehen den parallel arbeitenden Betriebssystemen nicht direkt zur Verfügung. Eine im Hintergrund laufende Virtualisierungssoftware überwacht die Zugriffe auf die Hardware. Sie organisiert und verwaltet die virtuellen Maschinen (VM). Diese Aufgabe kann zum Beispiel ein Hypervisor übernehmen. Er benötigt einen kleinen Teil der Hardware-Leistung, insbesondere von Prozessor und Arbeitsspeicher, um seine Arbeit erledigen zu können.

Hardware - Unterstützung

Hardware-Unterstützung Ursprünglich war Virtualisierung reine Software-Sache. Doch für manche Funktionen braucht die Virtualisierungssoftware Hardware-Unterstützung. 64-Bit und Mehrkern-Prozessoren unterstützen die Virtualisierung. Erst mit einem großen Adressraum und viel Rechenleistung macht Virtualisierung Sinn. Mehrere parallel laufende virtuelle Computer sind darauf angewiesen. Sonst leidet der Bedienkomfort unter der schleichenden Ausführungsgeschwindigkeit der Anwendungen.

Bei der Hardware-Unterstützung geht es weniger um die Geschwindigkeitssteigerung, sondern um Zusatzfunktionen. Das sind bestimmte Funktionen im Prozessor und im Chipsatz.

Intel Virtualization Technology (VT)

Die Virtualization Technology ist die Virtualisierungsunterstützung von Intel, die seit November 2005 in Intel-Prozessoren eingebaut ist.

AMD Secure Virtual Machine (SVM)

Die Virtualisierungsunterstützung von AMD heißt Secure Virtual Machine (SVM), und ist seit 2006 in den AMD-Prozessoren eingebaut.

VMNetwerkverbindungsarten

VMware Workstation bietet mehrere Möglichkeiten, die Netzwerkressourcen des Hosts zu nutzen. Je nach Anforderungen wird man eine dieser Möglichkeiten auswählen. Hier sind die wichtigsten erklärt:

Bridge

Hier benutzt der Gast die Netzwerkverbindung des Hosts mit einer eigenen IP in dessen lokalem Netz. Das kommt der Installation eines separaten Rechners gleich – auch von außen her gesehen.

NAT

Der Gast bekommt eine IP in einem von VMware dafür eingerichteten privaten Netz, das vom physischen Netz des Hostrechners verschieden ist. Es kommt ein virtueller Netzwerkadapter zum Einsatz, den VMWare im Host einrichtet und mit einer weiteren IP des privaten Netzes konfiguriert; der Host wird auf Seite des Clients als Default-Gateway eingetragen. Via Adressübersetzung (NAT) kann der Gast nun das Host-Netz erreichen. Ressourcen des Gasts, z. B. Windows-Freigaben, sind nur vom Host aus unter der privaten IP des Gasts erreichbar. Von außen her ist nur eine IP sichtbar; dass sich dahinter mehrere Systeme befinden, kann nur durch Analyse des Datenverkehrs erkannt werden.

Host only

Auch hier richtet VMware ein privates Netz ein. Es werden jedoch keine Regeln definiert, die Datenpaketen des Gastes erlauben, dieses private Netz zu verlassen. Wenn zusätzliche Verbindungen gewünscht sind, müssen diese auf dem Host durch Routing (Forwarding) explizit hergestellt oder als Serverdienst (z. B. Proxy) realisiert werden. Diese Methode eignet sich vorzüglich, um einen dedizierten Server im lokalen Netz zu betreiben. Beispielsweise würde man für einen Terminalserver nur den Port für RDP freischalten. Damit wäre die Maschine für ihren eigentlichen Bestimmungszweck im Netz erreichbar, während z. B. Viren, die sich über andere Ports verbreiten, beim Host enden würden. Auch für private Zwecke eignet sich diese Methode, da damit verhindert werden kann, dass der Gast unerwünschte IP-Verbindungen (z. B. für Spamversand) aufbaut. Anmerkung: Mehrere Gastsysteme können separate private Netze nutzen, die nur miteinander kommunizieren können, wenn es jeweils im Hostsystem explizit konfiguriert ist.

 VM-Verbindungsarten