WikiDer > Virtualisierung
Virtualisierung bezieht sich auf das Erstellen einer virtuellen Version von etwas. Dies wird am häufigsten verwendet, um ein Betriebssystem gleichzeitig auszuführen Computers das schon laufen lassen Betriebssystem haben.
Vorwort
Normalerweise gibt es auf einem Computer nur ein Betriebssystem, wie z Fenster, Linux oder Mac OS X. Auf einem Computer können mehrere Betriebssysteme installiert werden, jedoch kann immer nur ein Betriebssystem gleichzeitig gestartet werden.
Es stehen jedoch mehrere Softwarelösungen zur Verfügung, innerhalb derer ein zweites Betriebssystem gestartet werden kann. Das Betriebssystem, das in einem solchen Programm läuft, kann beispielsweise nicht einfach die Festplatte wenn es Tastatur, da dies bereits vom Hauptbetriebssystem verwendet wird. Aber das Programm spiegelt sozusagen einen imaginären (virtuellen) Computer mit einer virtuellen Festplatte und einer virtuellen Tastatur usw.
Da sich ein solches Programm als virtueller Computer ausgibt, nennt man die Methode „Virtualisierung“ Es ist möglich, mehrere virtuelle Computer zu erstellen und damit mehrere Gastbetriebssysteme gleichzeitig auf einem Computer auszuführen.
- Das Hauptbetriebssystem wird als „Host“ bezeichnet.
- Das Gastbetriebssystem wird „Gast“ genannt.
Diese Methode gibt es schon seit einiger Zeit, sie wurde jedoch nicht weit verbreitet, da das Gastbetriebssystem oft sehr langsam war. Ab ca. 2004 jedoch neu Prozessoren mit speziellen Fähigkeiten zur Virtualisierung, die das Gastbetriebssystem kaum ausbremst.
Virtuelle Maschinen gibt es seit den 1960er Jahren auf dem S/360-Computer von IBM und sind seit den 1980er Jahren sehr leistungsfähig.
Von VM/370 zu z/VM
Virtuelle Maschinen gibt es seit etwa 1967, als IBM CP67 gemacht.
Das war in den frühen Tagen der S/360-Mainframe-Maschine von IBM (diese Maschine entwickelte sich zu der heutigen IBM z-Serie). Virtuellen Maschinen inhärent war auch die Erfindung des virtuellen Speichers, der Speicher dieser virtuellen Maschinen ist nur virtuell. CP (Kontrollprogramm) war mal manchmal Hypervisor genannt, heute ein etablierter Begriff. CP erstellt virtuelle Maschinen, in einer solchen virtuellen Maschine können Sie jedes Betriebssystem ausführen, das für S/360 entwickelt wurde. Aber es gab auch CMS, ein leichtes Betriebssystem, das nur unter CP läuft, oft für Personal Computing. Eine virtuelle CMS-Maschine war eine Art "PC avant la lettre".
Mit dem Aufkommen des S/370-Systems (der Nachfolger von S/370 um 1970 wurde CP67 CMS bekannter als VM/370. VM ist also nichts Neues und gibt es seit über 50 Jahren. VM /370 entwickelte sich zu VM/SP(1980), VM/XA(1984), VM/ESA(1995) und z/VM(2001). Seit den 2000er Jahren wird z/VM nicht viel für Personal Computing verwendet, sondern hauptsächlich als Host für Linux auf z.
In einer virtuellen Maschine können Sie VM wieder "VM unter VM" starten. Der Overhead wird immer größer. Bei einer z-Serie wird die Hardware seit /- 2010 auf zwei Ebenen bereitgestellt; die erste Schicht wird von PR/SM verwendet, einer Hardwareversion von VM. Das Booten von z/VM unter z/VM erstellt also tatsächlich drei Schichten, die immer noch ordnungsgemäß funktionieren, auf Kosten einer zusätzlichen CPU-Auslastung. VM unter VM wird normalerweise verwendet, um VM zu testen, wenn neue Versionen installiert werden, z.
Das Grundprinzip von VM war sehr einfach: Ein S/360 (und Nachfolger) hat zwei Arten von Anweisungen: Problemzustand und Supervisor-Zustand. Die erste Art von Anweisungen wird von Anwendungen verwendet (zum Beispiel zum Hinzufügen von Zahlen); die zweite Art werden vom Betriebssystem "dem Supervisor" verwendet (zB um Daten auf eine Platte zu schreiben). Der Supervisor stellt sicher, dass sich die verschiedenen Anwendungsprogramme nicht gegenseitig stören. Verwendet ein Anwendungsprogramm eine Supervisor-State-Anweisung, wird diese unterbrochen ("Programmcheck") und der Supervisor greift ein. Klassisch bricht der Supervisor das Programm ab und zeigt eine Fehlermeldung an. Anwendungsprogramme sollten die SVC-Anweisung verwenden, wenn sie Hilfe vom Supervisor benötigen (z. B. beim Schreiben in eine Datei auf der Festplatte). In einem VM-System läuft nur das Steuerungsprogramm im Supervisor-Zustand. Ein Betriebssystem in einer virtuellen Maschine verwendet auch Anweisungen des Supervisor-Zustands, aber da diese Hardware in einem Problemzustand läuft, signalisiert die Hardware dem Steuerprogramm CP eine Programmprüfung. CP verfolgt virtuelle Maschinen unabhängig davon, ob sie sich virtuell im Supervisor- oder Problemstatus befinden. Wenn der privilegierte Befehl aus dem virtuellen Supervisor-Zustand kommt, simuliert CP diesen Befehl für diese virtuelle Maschine; wenn es sich im Zustand eines virtuellen Problems befand, simuliert CP eine Programmprüfung auf dem Betriebssystem dieser virtuellen Maschine.
Das Abfangen jeglicher Supervisor-State-Befehle und das Weiterleiten an CP verursacht Overhead. Deshalb wurden bereits in den s/370-Maschinen „Hardware-VM-Assists“ geschaffen, die dafür sorgten, dass CP weniger eingreifen musste. In der XA-Architektur (1984) wurde der Begriff der "virtuellen Maschine" vollständig in die Architektur integriert: Interpretive Execution; CP muss dann seltener eingreifen.
Da "falsche" Anweisungen einen Programmcheck geben, eignete sich VM auch hervorragend für die Entwicklung neuer Hardware. Immerhin kommt bei CP ein Programmcheck an. Betriebssysteme wie MVS/XA konnten geschrieben werden, bevor die HW vollständig mit diesen neuen Anweisungen fertig war, CP simulierte sie.
Anwendungen
Der große Vorteil der Virtualisierung besteht darin, dass die verschiedenen Betriebssysteme voneinander abgeschirmt sind. Dadurch ist es beispielsweise möglich, nach Computerviren zu recherchieren, ohne den Computer (den „Host“) zu infizieren. Auch können Kosten eingespart werden, indem mehrere Betriebssysteme (z. B. mit jeweils einem Webserver) auf einem Computer arbeiten. Da die „Gäste“ voneinander abgeschirmt sind, ist es einfacher zu verwalten und führt auch zu Kosteneinsparungen.
Durch die Ausführung mehrerer Gastbetriebssysteme auf einem einzelnen Computer benötigt dieser Computer zusätzlichen Speicher und einen schnelleren Prozessor. In der Praxis scheint es jedoch günstiger zu sein, einen teureren Computer (oft ein Server) mit Virtualisierung zu verwenden, als mehrere billigere Computer ohne Virtualisierung.
Programme
Ab 2007 gibt es mehrere Virtualisierungsprogramme, die stabil funktionieren.
Zu den Virtualisierungsprogrammen, in denen ein Gastbetriebssystem betrieben werden kann, gehören: z/VM, VMware, Microsoft Virtual PC, Microsoft HyperV, xen, QEMU, KVM (basierend auf Qemu), VirtualBox, Parallelen, Bochs, Docker (Software), usw.
Abstrakte Beschreibung
In dem Informatik ist Virtualisierung ein Technik zum Verstecken körperlich Eigenschaften von Computerressourcen wie andere Systeme, Anwendungen oder Endbenutzer mit diesen Ressourcen interagieren.
Dazu gehört die Bereitstellung einer einzelnen physischen Ressource (z. B. eines Servers, Betriebssystem, eine Anwendung oder einen Datenträger) als mehrere logische Quellen. Dazu gehört die Bereitstellung mehrerer physischer Ressourcen (wie Datenträger oder Server) als eine einzige logische Ressource."[1]. Diese neue virtuelle Sicht auf Ressourcen ist nicht durch die Implementierung eingeschränkt, geografisch Standort oder physische Konfiguration der zugrunde liegenden Ressourcen. Virtualisierung wird häufig in Ressourcen wie Rechenleistung, Datenspeicherung und Rechenmethoden eingesetzt.
Formen der Virtualisierung
Virtualisierung gibt es in vielen Formen innerhalb der Automatisierung. Um eine gute Vorstellung davon zu bekommen, was Virtualisierung ist, ist es wichtig zu wissen, in welchen Formen Virtualisierung möglich ist. Virtualisierung lässt sich in folgende Kategorien einteilen:
Emulation - Dies ist Software, die in Form eines Programms in ein Betriebssystem geladen wird. Dieses Programm simuliert eine ganze Maschine und ermöglicht es, ein unverändertes Gastbetriebssystem zu starten. Dieses Betriebssystem läuft virtuell auf einer anderen Hardwareplattform. Beispiele sind: Bochs PearPC, PowerPC, Virtual PC und beispielsweise Hercules-Emulator. Andere Formen werden auch als Spielekonsolen-Emulatoren bezeichnet. Bei der Emulation können alle Arten von Techniken verwendet werden, um die Anweisungen an die virtuelle Hardware in die tatsächliche Hardware des zugrunde liegenden Systems zu übersetzen.
Native Virtualisierung- Bei der nativen Virtualisierung wird wie bei der Emulation eine Software geladen, um eine komplette Maschine zu simulieren oder zu emulieren. Der Unterschied zur Emulation besteht jedoch darin, dass bei der nativen Virtualisierung die zu emulierende Maschine oder „virtuelle Maschine“ dieselbe Art von Hardware verwendet wie das zugrunde liegende System. Eine x86-Hardwareplattform kann daher nur virtuelle Maschinen ausführen, die für die x86-Plattform geeignet sind. Die zur Unterstützung der virtuellen Maschinen geladene Software (auch Host genannt) verteilt die zur Verfügung gestellten Systemressourcen auf die verschiedenen virtuellen Maschinen oder Gäste. Dadurch wird die Hardware auf dem Host besser ausgenutzt. Beispiele für native Virtualisierung sind: Vmware Server/Workstation/Player, Microsoft Virtual PC/Server, Vserver Qemu etc.
Vollständige Virtualisierung - Mehrere virtuelle Maschinen (Gäste) werden nebeneinander auf einem Satz Hardware platziert. Dies geschieht durch Platzieren einer Softwareschicht zwischen der Hardware und der virtuellen Maschine, die Anfragen an die Hardware verarbeitet. Ein anderer Begriff dafür ist die Platzierung des virtuellen Hosts auf dem `Bare-Metal`. Dadurch ist es möglich, Hardware-Ressourcen effizienter zu nutzen als bei einer gewöhnlichen Emulation. Eine bekannte Form dieser Art der Virtualisierung ist VMwareESX-Server.
Virtualisierung auf Betriebssystemebene – Ähnlich der Vollvirtualisierung, unterscheidet sich jedoch darin, dass die Gäste bei Vollvirtualisierung ein anderes Betriebssystem als der Host haben können und bei der Virtualisierung auf Betriebssystemebene kann der Gast dasselbe Betriebssystem wie der Host haben. Beispiele sind: Linux-Vserver, Virtuozzo (für Microsoft Windows oder Linux), OpenVZ, Solaris-Container und FreeBSD-Jails.
Hardware-gestützte Virtualisierung – In diesem Fall ist die Software, die die Hardware auf die verschiedenen virtuellen Maschinen verteilt, in der Hardware selbst implementiert. Dies hat den Vorteil, dass die Virtualisierung noch tiefer in das System integriert ist und das Management der Hardware-Ressourcen noch weniger Systemkapazität kostet.
Teilvirtualisierung – Bei der Teilvirtualisierung werden für viele, aber nicht alle Hardwarekomponenten mehrere virtuelle Komponenten erstellt. Diese Komponenten oder Instanzen sorgen dafür, dass Geräte gemeinsam genutzt werden können. Es ist nicht möglich, mehr als ein Betriebssystem zu teilen. Dies wird oft nicht als Virtualisierung angesehen und tritt häufig in Betriebssystemen wie Windows und Linux, aber auch auf großen Mainframe-Systemen auf.
Paravirtualisierung – Bei dieser Technologie wird der virtuellen Maschine die Hardware durch spezielle APIs präsentiert, die nur durch Anpassung an das Gastbetriebssystem genutzt werden können. Auf diese Weise kann ausgewählt werden, welche Hardware von den VMs (Virtual Machines) gemeinsam genutzt wird und welche Hardware speziell für eine VM zur Verfügung steht. Diese Technologie wird unter anderem verwendet in: xen , trango und Sonne logische Domänen.
Plattformübergreifende Virtualisierung- Ist die Form der Virtualisierung, bei der eine Anwendung für ein Betriebssystem kompiliert wird, aber auf einem anderen Betriebssystem läuft, ohne das andere Betriebssystem emulieren zu müssen. Und das ohne den Quellcode und/oder die Binärdateien zu verändern. Nachdenken über: Apfelrosetta und TransitivQuickTransit.
Anwendungsvirtualisierung - Bei der Anwendungsvirtualisierung werden Anwendungen lokal auf einem Desktop ausgeführt, wobei lokale Systemressourcen verwendet werden, ohne dass die Anwendung auf dem Computer installiert ist, innerhalb einer benutzerdefinierten VM. So lassen sich Updates unter anderem einfach in Anwendungen implementieren, ohne dass dies auf jedem System eigenständig erfolgen muss.[2] Es ist etwas vergleichbar mit Terminal-basierten Anwendungen, mit dem großen Unterschied, dass bei Terminaldiensten die Anwendungen auf einem Server laufen und bei der Anwendungsvirtualisierung die Anwendungen lokal ausgeführt werden. Durch das virtuelle Anbieten von Anwendungen ist es möglich, Anwendungen mit widersprüchlichen Anforderungen auf einem Desktop zusammenarbeiten zu lassen. Beispiele sind: Thinstal, Microsoft-Anwendungsvirtualisierung, Altiris SVS, SonneJava VM und Trigenz.
Ressourcenvirtualisierung- Ist eigentlich das Grundkonzept aller Virtualisierungsarten in der ICT-Branche. Später wurde dies auf die heute bekannten Virtualisierungsbegriffe ausgedehnt. Ressourcenvirtualisierung bezieht sich auch auf die Virtualisierung von Speicher- und Netzwerkelementen, zum Beispiel Techniken wie: SAN- und NAS-Systeme, VLANs , VPNs, usw. usw. Die Partitionierung und Kapselung von Clusterlösungen fällt ebenfalls unter Ressourcenvirtualisierung. Ressourcenvirtualisierung ist daher eigentlich die Sammelbezeichnung für alle Virtualisierungsarten.
Siehe auch
Quellen, Anmerkungen und/oder Verweise
|