Virtualisierung - Virtualization

In der Datenverarbeitung ist Virtualisierung oder Virtualisierung (manchmal abgekürzt v12n , ein Numeronym ) die Erstellung einer virtuellen (statt einer tatsächlichen) Version von etwas, einschließlich virtueller Computerhardwareplattformen , Speichergeräte und Computernetzwerkressourcen .

Die Virtualisierung begann in den 1960er Jahren als Methode zur logischen Aufteilung der von Großrechnern bereitgestellten Systemressourcen auf verschiedene Anwendungen. Seitdem hat sich die Bedeutung des Begriffs erweitert.

Hardware-Virtualisierung

Hardwarevirtualisierung oder Plattformvirtualisierung bezieht sich auf die Erstellung einer virtuellen Maschine , die sich wie ein echter Computer mit einem Betriebssystem verhält. Auf diesen virtuellen Maschinen ausgeführte Software ist von den zugrunde liegenden Hardwareressourcen getrennt. Ein Computer, auf dem Microsoft Windows ausgeführt wird, kann beispielsweise eine virtuelle Maschine hosten, die wie ein Computer mit dem Betriebssystem Ubuntu Linux aussieht . Ubuntu-basierte Software kann auf der virtuellen Maschine ausgeführt werden.

Bei der Hardwarevirtualisierung ist die Hostmaschine die Maschine, die von der Virtualisierung verwendet wird, und die Gastmaschine ist die virtuelle Maschine. Die Wörter Host und Gast werden verwendet, um die Software, die auf der physischen Maschine ausgeführt wird, von der Software zu unterscheiden, die auf der virtuellen Maschine ausgeführt wird. Die Software oder Firmware , die eine virtuelle Maschine auf der Hosthardware erstellt, wird als Hypervisor oder Virtual Machine Monitor bezeichnet .

Zu den verschiedenen Arten der Hardwarevirtualisierung gehören:

  • Vollständige Virtualisierung  – fast vollständige Simulation der tatsächlichen Hardware, damit Softwareumgebungen, einschließlich eines Gastbetriebssystems und seiner Apps, unverändert ausgeführt werden können.
  • Paravirtualisierung  – die Gast-Apps werden in ihren eigenen isolierten Domänen ausgeführt, als ob sie auf einem separaten System laufen würden, aber eine Hardwareumgebung wird nicht simuliert. Gastprogramme müssen speziell modifiziert werden, um in dieser Umgebung ausgeführt zu werden.

Hardware-unterstützte Virtualisierung ist eine Möglichkeit, die Gesamteffizienz der Virtualisierung zu verbessern. Es umfasst CPUs, die die Virtualisierung in der Hardware unterstützen, und andere Hardwarekomponenten, die dazu beitragen, die Leistung einer Gastumgebung zu verbessern.

Hardwarevirtualisierung kann als Teil eines Gesamttrends in der Unternehmens-IT betrachtet werden, der Autonomic Computing umfasst , ein Szenario, in dem sich die IT-Umgebung basierend auf wahrgenommener Aktivität selbst verwalten kann, und Utility Computing , bei dem die Rechenleistung des Computers als ein Faktor angesehen wird Dienstprogramm, das Kunden nur bei Bedarf bezahlen können. Das übliche Ziel der Virtualisierung besteht darin, administrative Aufgaben zu zentralisieren und gleichzeitig die Skalierbarkeit und die allgemeine Auslastung der Hardware-Ressourcen zu verbessern . Durch Virtualisierung können mehrere Betriebssysteme parallel auf einer einzigen Zentraleinheit (CPU) betrieben werden. Diese Parallelität senkt tendenziell die Gemeinkosten und unterscheidet sich vom Multitasking, bei dem mehrere Programme auf demselben Betriebssystem ausgeführt werden. Durch Virtualisierung kann ein Unternehmen Updates und schnelle Änderungen des Betriebssystems und der Anwendungen besser verwalten, ohne den Benutzer zu stören. „Letztendlich verbessert Virtualisierung die Effizienz und Verfügbarkeit von Ressourcen und Anwendungen in einem Unternehmen dramatisch. Anstatt sich auf das alte Modell „ein Server, eine Anwendung“ zu verlassen, das zu nicht ausgelasteten Ressourcen führt, werden virtuelle Ressourcen dynamisch angewendet, um die Geschäftsanforderungen ohne jegliche zu erfüllen überschüssiges Fett" (ConsonusTech).

Hardware-Virtualisierung ist nicht gleich Hardware-Emulation . Bei der Hardwareemulation imitiert eine Hardware eine andere, während bei der Hardwarevirtualisierung ein Hypervisor (eine Software) eine bestimmte Computerhardware oder den gesamten Computer imitiert. Außerdem ist ein Hypervisor nicht dasselbe wie ein Emulator ; beide sind Computerprogramme, die Hardware imitieren, aber ihr Anwendungsbereich in der Sprache ist unterschiedlich.

Schnappschüsse

Ein Snapshot ist ein Zustand einer virtuellen Maschine und im Allgemeinen ihrer Speichergeräte zu einem genauen Zeitpunkt. Ein Snapshot ermöglicht die spätere Wiederherstellung des Zustands der virtuellen Maschine zum Zeitpunkt des Snapshots, wodurch später vorgenommene Änderungen effektiv rückgängig gemacht werden. Diese Fähigkeit ist beispielsweise als Backup- Technik nützlich , bevor eine riskante Operation durchgeführt wird.

Virtuelle Maschinen verwenden häufig virtuelle Festplatten als Speicher; in einem sehr einfachen Beispiel, ein 10 Gigabyte - Festplattenlaufwerk ist mit einer 10-Gigabyte simuliert Flachdatei . Alle Anforderungen der VM nach einem Speicherort auf ihrer physischen Festplatte werden transparent in eine Operation an der entsprechenden Datei übersetzt. Sobald eine solche Übersetzungsschicht vorhanden ist, ist es jedoch möglich, die Operationen abzufangen und in Abhängigkeit von verschiedenen Kriterien an verschiedene Dateien zu senden. Jedes Mal, wenn ein Snapshot erstellt wird, wird eine neue Datei erstellt und als Overlay für ihre Vorgänger verwendet. Neue Daten werden in das oberste Overlay geschrieben; Beim Lesen vorhandener Daten muss jedoch die Overlay-Hierarchie gescannt werden, was zum Zugriff auf die neueste Version führt. Somit ist der gesamte Snapshot-Stack praktisch eine einzige zusammenhängende Platte; In diesem Sinne funktioniert das Erstellen von Snapshots ähnlich wie die inkrementelle Backup- Technik.

In einem Snapshot können auch andere Komponenten einer virtuellen Maschine enthalten sein, wie der Inhalt ihres Arbeitsspeichers (RAM), BIOS- Einstellungen oder ihre Konfigurationseinstellungen. Die Funktion " Status speichern " in Emulatoren von Videospielkonsolen ist ein Beispiel für solche Schnappschüsse.

Das Wiederherstellen eines Snapshots besteht darin, alle Overlay-Layer, die nach diesem Snapshot hinzugefügt wurden, zu verwerfen oder zu ignorieren und alle neuen Änderungen in ein neues Overlay zu leiten.

Migration

Die oben beschriebenen Snapshots können mit einem eigenen Hypervisor auf einen anderen Hostcomputer verschoben werden; Wenn die VM vorübergehend gestoppt, Snapshots erstellt, verschoben und dann auf dem neuen Host wieder aufgenommen wird, wird dies als Migration bezeichnet. Wenn die älteren Snapshots regelmäßig synchron gehalten werden, kann dieser Vorgang recht schnell sein und es der VM ermöglichen, einen unterbrechungsfreien Dienst bereitzustellen, während ihr vorheriger physischer Host beispielsweise zur physischen Wartung heruntergefahren wird.

Failover

Ähnlich wie beim oben beschriebenen Migrationsmechanismus ermöglicht Failover der VM, den Betrieb fortzusetzen, wenn der Host ausfällt. Im Allgemeinen tritt es auf, wenn die Migration nicht mehr funktioniert. In diesem Fall setzt die VM den Betrieb jedoch ausgehend vom zuletzt bekannten kohärenten Zustand und nicht vom aktuellen Zustand fort, basierend auf den Materialien, mit denen der Sicherungsserver zuletzt bereitgestellt wurde.

Emulation von Videospielkonsolen

Ein Videospiel - Konsole Emulator ist ein Programm , das ein ermöglicht Personal - Computer oder Videospiel - Konsole eine andere Videospielkonsole , das Verhalten zu emulieren. Emulatoren für Videospielkonsolen und Hypervisoren führen beide Hardwarevirtualisierung durch; Wörter wie "virtualization", "virtual machine", "host" und "guest" werden nicht in Verbindung mit Konsolenemulatoren verwendet.

Verschachtelte Virtualisierung

Verschachtelte Virtualisierung bezieht sich auf die Fähigkeit, eine virtuelle Maschine innerhalb einer anderen auszuführen, wobei dieses allgemeine Konzept auf eine beliebige Tiefe erweitert werden kann. Mit anderen Worten, verschachtelte Virtualisierung bezieht sich auf die Ausführung eines oder mehrerer Hypervisoren innerhalb eines anderen Hypervisors. Die Beschaffenheit einer verschachtelten virtuellen Gastmaschine muss nicht mit ihrer virtuellen Hostmaschine homogen sein; beispielsweise die Virtualisierung von Anwendungen kann durch die Verwendung erstellt innerhalb einer virtuellen Maschine eingesetzt werden , die Hardware - Virtualisierung .

Verschachtelte Virtualisierung wird immer notwendiger, da weit verbreitete Betriebssysteme über integrierte Hypervisor-Funktionalität verfügen, die in einer virtualisierten Umgebung nur verwendet werden kann, wenn der umgebende Hypervisor verschachtelte Virtualisierung unterstützt. beispielsweise Windows 7 ist in der Lage läuft Windows XP - Anwendungen in einer integrierten virtuellen Maschine. Darüber hinaus ist das Verschieben bereits bestehender virtualisierter Umgebungen in eine Cloud nach dem Infrastructure as a Service (IaaS)-Ansatz viel komplizierter, wenn die Ziel-IaaS-Plattform keine verschachtelte Virtualisierung unterstützt.

Die Art und Weise, wie verschachtelte Virtualisierung auf einer bestimmten Computerarchitektur implementiert werden kann, hängt von unterstützten hardwaregestützten Virtualisierungsfunktionen ab . Wenn eine bestimmte Architektur keine für die verschachtelte Virtualisierung erforderliche Hardwareunterstützung bietet, werden verschiedene Softwaretechniken verwendet, um dies zu ermöglichen. Im Laufe der Zeit erhalten immer mehr Architekturen die erforderliche Hardwareunterstützung; So hat Intel beispielsweise seit der Haswell- Mikroarchitektur (angekündigt im Jahr 2013) damit begonnen, VMCS-Shadowing als eine Technologie zu integrieren, die die verschachtelte Virtualisierung beschleunigt.

Lizenzierung

Virtuelle Maschinen, auf denen proprietäre Betriebssysteme ausgeführt werden, erfordern eine Lizenzierung, unabhängig vom Betriebssystem der Hostmaschine. Die Installation von Microsoft Windows auf einem VM-Gast erfordert beispielsweise die Erfüllung der Lizenzanforderungen.

Desktop-Virtualisierung

Desktop-Virtualisierung ist das Konzept der Trennung des logischen Desktops von der physischen Maschine.

Eine Form der Desktopvirtualisierung, Virtual Desktop Infrastructure (VDI), kann als eine fortschrittlichere Form der Hardwarevirtualisierung betrachtet werden. Anstatt direkt über Tastatur, Maus und Monitor mit einem Host-Computer zu interagieren, interagiert der Benutzer mit dem Host-Computer über einen anderen Desktop-Computer oder ein mobiles Gerät über eine Netzwerkverbindung, wie z. B. ein LAN , Wireless LAN oder sogar das Internet . Darüber hinaus wird der Hostcomputer in diesem Szenario zu einem Servercomputer , der mehrere virtuelle Maschinen gleichzeitig für mehrere Benutzer hosten kann.

Während Unternehmen ihre Rechenzentrumsumgebung weiter virtualisieren und konvergieren, entwickeln sich auch die Client- Architekturen weiter, um die Vorhersagbarkeit, Kontinuität und Servicequalität ihrer konvergenten Infrastruktur zu nutzen . Unternehmen wie HP und IBM bieten beispielsweise ein hybrides VDI-Modell mit einer Reihe von Virtualisierungssoftware und Bereitstellungsmodellen an, um die Einschränkungen des verteilten Client-Computing zu verbessern . Ausgewählte Client-Umgebungen verlagern Workloads von PCs und anderen Geräten auf Rechenzentrumsserver, wodurch gut verwaltete virtuelle Clients erstellt werden, wobei Anwendungen und Client-Betriebsumgebungen auf Servern und Speicher im Rechenzentrum gehostet werden. Für Benutzer bedeutet dies, dass sie von jedem Ort aus auf ihren Desktop zugreifen können, ohne an ein einzelnes Client-Gerät gebunden zu sein. Da die Ressourcen zentralisiert sind, können Benutzer, die zwischen Arbeitsstandorten wechseln, weiterhin mit ihren Anwendungen und Daten auf dieselbe Client-Umgebung zugreifen. Für IT-Administratoren bedeutet dies eine zentralisiertere, effizientere Client-Umgebung, die einfacher zu warten ist und schneller auf die sich ändernden Anforderungen von Benutzern und Unternehmen reagieren kann. Eine andere Form, die Sitzungsvirtualisierung, ermöglicht es mehreren Benutzern, sich über das Netzwerk bei einem gemeinsam genutzten, aber leistungsstarken Computer anzumelden und ihn gleichzeitig zu verwenden. Jeder erhält einen Desktop und einen persönlichen Ordner, in dem sie ihre Dateien speichern. Bei der Mehrplatzkonfiguration kann die Sitzungsvirtualisierung über einen einzigen PC mit mehreren angeschlossenen Monitoren, Tastaturen und Mäusen erreicht werden.

Thin Clients , die in der Desktop-Virtualisierung verwendet werden, sind einfache und/oder billige Computer, die in erster Linie für die Verbindung mit dem Netzwerk konzipiert sind. Ihnen fehlt möglicherweise erheblicher Festplattenspeicherplatz , RAM oder sogar Rechenleistung , aber viele Unternehmen beginnen, die Kostenvorteile der Eliminierung von "Thick Client" -Desktops, die mit Software vollgepackt sind (und Softwarelizenzgebühren erfordern) zu eliminieren und strategischere Investitionen zu tätigen . Die Desktop-Virtualisierung vereinfacht die Softwareversionierung und das Patch-Management, wobei das neue Image einfach auf dem Server aktualisiert wird und der Desktop beim Neustart die aktualisierte Version erhält. Es ermöglicht auch eine zentrale Kontrolle darüber, auf welche Anwendungen der Benutzer auf der Workstation zugreifen darf.

Durch das Verschieben virtualisierter Desktops in die Cloud entstehen gehostete virtuelle Desktops (HVDs), in denen die Desktop-Images zentral von einem spezialisierten Hosting-Unternehmen verwaltet und gewartet werden. Zu den Vorteilen zählen Skalierbarkeit und die Reduzierung der Investitionsausgaben, die durch monatliche Betriebskosten ersetzt werden.

Containerisierung

Virtualisierung auf Betriebssystemebene , auch als Containerisierung bekannt , bezieht sich auf eine Betriebssystemfunktion, bei der der Kernel die Existenz mehrerer isolierter User-Space- Instanzen zulässt . Solche Instanzen, die als Container, Partitionen, virtuelle Umgebungen (VEs) oder Jails ( FreeBSD- Jail oder chroot- Jail ) bezeichnet werden , können aus der Sicht der darin ausgeführten Programme wie echte Computer aussehen. Ein Computerprogramm, das auf einem normalen Betriebssystem läuft, kann alle Ressourcen (verbundene Geräte, Dateien und Ordner, Netzwerkfreigaben , CPU-Leistung, quantifizierbare Hardwarefähigkeiten) dieses Computers sehen. Programme, die in einem Container ausgeführt werden, können jedoch nur den Inhalt des Containers und die dem Container zugewiesenen Geräte sehen.

Die Containerisierung gewann 2014 mit der Einführung von Docker an Bedeutung .

Andere Arten

Software
Erinnerung
Lager
Daten
  • Datenvirtualisierung : die Darstellung von Daten als abstrakte Schicht, unabhängig von zugrundeliegenden Datenbanksystemen, Strukturen und Speicher
  • Datenbankvirtualisierung : die Entkopplung der Datenbankschicht, die zwischen Speicher- und Anwendungsschicht innerhalb des Anwendungsstapels insgesamt liegt
Netzwerk

Siehe auch

Verweise

Externe Links