Definition

Virtuelle Maschine - Virtual Machine (VM)

Eine virtuelle Maschine (VM) ist ein Betriebssystem (OS) oder eine Anwendungsumgebung, die auf einer Software installiert ist, die eine dedizierte Hardware imitiert. Der Endnutzer hat auf einer VM die gleiche Erfahrung wie auf dedizierter Hardware.

Was ist eine VM und wie funktioniert sie?

Eine VM bietet eine isolierte Umgebung für die Ausführung ihres eigenen Betriebssystems und ihrer Anwendungen unabhängig vom zugrunde liegenden Hostsystem oder von anderen VMs auf diesem Host. Das Betriebssystem der VM wird gemeinhin als Gastbetriebssystem bezeichnet und kann mit dem Host-Betriebssystem oder den anderen VMs identisch sein oder sich von ihnen unterscheiden. Auf diese Weise kann ein einzelner Computer mehrere VMs beherbergen, auf denen unterschiedliche Betriebssysteme und Anwendungen laufen, ohne dass sie sich gegenseitig beeinflussen oder stören. Die VM ist nach wie vor von den physischen Ressourcen des Hosts abhängig, aber diese Ressourcen sind virtualisiert und auf die VMs verteilt und können bei Bedarf neu zugewiesen werden, so dass es möglich ist, verschiedene Umgebungen gleichzeitig zu betreiben und schwankende Arbeitslasten auszugleichen.

Aus der Sicht des Anwenders funktioniert die VM ähnlich wie eine Bare-Metal-Maschine. In den meisten Fällen können Anwender, die sich mit einer VM verbinden, nicht erkennen, dass es sich um eine virtuelle Umgebung handelt. Das Gastbetriebssystem und seine Anwendungen können nach Bedarf konfiguriert und aktualisiert und neue Anwendungen installiert oder entfernt werden, ohne den Host oder andere VMs zu beeinträchtigen. Ressourcen wie CPUs,Arbeitsspeicher (Memory) und Speicherplatz werden wie auf einem physischen Computer angezeigt. Obwohl Anwender gelegentlich auf Störungen stoßen können, zum Beispiel wenn eine Anwendung in einer virtuellen Umgebung nicht ausgeführt werden kann, sind solche Probleme in der Regel minimal.

Ein Computer, auf dem VMs gehostet werden, benötigt eine spezielle Software, einen so genannten Hypervisor. Der Hypervisor emuliert die CPU, den Arbeitsspeicher, die Festplatte, das Netzwerk und andere Hardwareressourcen des Computers und erstellt einen Ressourcenpool, der den einzelnen VMs entsprechend ihren spezifischen Anforderungen zugewiesen werden kann. Der Hypervisor kann mehrere virtuelle Hardwareplattformen unterstützen, die voneinander isoliert sind, so dass VMs Linux- und Windows-Server-Betriebssysteme auf demselben physischen Host ausführen können.

Der Hypervisor verwaltet die Ressourcen und weist sie den VMs zu. Er plant und passt die Ressourcenverteilung auf der Grundlage der Konfiguration des Hypervisors und der VMs an und kann die Ressourcen bei schwankendem Bedarf neu zuweisen. Die meisten Hypervisoren lassen sich in eine von zwei Kategorien einteilen:

  • Typ 1. Dieser auch als Bare-Metal-Hypervisor bezeichnete Hypervisor-Typ wird direkt auf dem physischen Host-Rechner ausgeführt und hat direkten Zugriff auf dessen Hardware. Typ-1-Hypervisoren werden in der Regel auf Server-Computern ausgeführt und gelten als effizienter und leistungsfähiger als Typ-2-Hypervisoren, weshalb sie sich gut für die Server-, Desktop- und Anwendungsvirtualisierung Beispiele für Hypervisoren des Typs 1 sind Microsoft Hyper-V und VMware ESXi.
  • Typ 2. Ein Hypervisor des Typs 2, der manchmal auch als gehosteter Hypervisor bezeichnet wird, wird auf dem Betriebssystem des Host-Rechners installiert, das die Aufrufe der Hardwareressourcen verwaltet. Hypervisoren vom Typ 2 werden in der Regel auf Endbenutzersystemen für bestimmte Anwendungsfälle eingesetzt. Beispielsweise kann ein Entwickler einen Typ-2-Hypervisor verwenden, um eine spezielle Umgebung für die Erstellung einer Anwendung zu schaffen, oder ein Datenanalyst kann ihn verwenden, um eine Anwendung in einer isolierten Umgebung zu testen. Beispiele für Hypervisoren vom Typ 2 sind VMware Workstation und Oracle VirtualBox.

Die meisten Hypervisors erfordern keine speziellen Hardwarekomponenten, aber der Computer, auf dem der Hypervisor läuft, muss über die notwendigen Ressourcen verfügen, um VMs sowie die Operationen des Hypervisors und die eigenen Operationen des Hosts zu unterstützen, auch wenn diese noch so minimal sind.

Gute Gründe für den Einsatz einer VM

Unternehmen setzen routinemäßig VMs in ihren Rechenzentren ein, um ein breites Spektrum an Anwendungsfällen und Arbeitslasten zu unterstützen. Sie verwenden VMs aus mehreren Gründen, darunter:

  • VMs helfen Unternehmen, Server zu konsolidieren und Hardwareressourcen besser zu nutzen. Da auf einem einzigen Server mehrere VMs gleichzeitig ausgeführt werden können, können Unternehmen die Ressourcen auf einem einzigen Server effizienter nutzen und müssen die Arbeitslasten nicht auf mehrere Server verteilen, die oft unter ihrer Kapazität arbeiten. Auf diese Weise sparen die Unternehmen Kapital- und Betriebskosten.
  • VMs bieten isolierte Umgebungen, die es ermöglichen, verschiedene Betriebssysteme und Anwendungen auf einem einzigen Server auszuführen. Unternehmen können Legacy- und Geschäftsanwendungen in den von ihnen benötigten Umgebungen bereitstellen, ohne sich mit Konkurrenzproblemen auseinandersetzen zu müssen oder mehrere Server zur Unterstützung verschiedener Umgebungen anschaffen zu müssen.
  • VMs erleichtern die Skalierung von Anwendungen und die Anpassung an schwankende Arbeitslasten. Dies ist einer der Gründe, warum die Virtualisierung eine so wichtige Rolle im Cloud Computing und in Systemen wie der hyperkonvergenten Infrastruktur (HCI) spielt.
  • Unternehmen setzen VMs auch wegen der zusätzlichen Sicherheitsebene ein, die sie gegen potenzielle Bedrohungen bieten. Wenn eine VM gefährdet ist, kann sie gelöscht oder auf ein aktuelles Backup oder einen Snapshot zurückgesetzt werden. Da sie vom Host und anderen VMs isoliert ist, ist die Bedrohung auf diese VM beschränkt.
  • VMs erleichtern die Verwaltung mehrerer Umgebungen mit unterschiedlichen Betriebssystemen. Da die Arbeitslasten auf weniger Servern konsolidiert werden, müssen auch weniger physische Systeme bereitgestellt und gewartet werden. Darüber hinaus ermöglichen die meisten Virtualisierungsplattformen die Verwaltung der VMs über eine einzige Schnittstelle, selbst wenn diese VMs auf mehrere Hosts verteilt sind.

Unternehmen setzen häufig VMs ein, wenn sie mehrere Anwendungen gleichzeitig ausführen möchten, die unterschiedliche Betriebssysteme und Verarbeitungsleistungen erfordern. So kann ein Qualitätssicherungsteam beispielsweise mehrere Webserver und kleine Datenbanken gleichzeitig testen, oder die IT-Abteilung muss denselben Server für die Ausführung einer grafikintensiven Spielesoftware und einer Kundendienstdatenbank verwenden. Auch DevOps können VMs für ihre kontinuierlichen Integrations- und Bereitstellungsvorgänge nutzen, oder ein Unternehmen benötigt eine Umgebung, um Legacy-Anwendungen neben anderen Workloads auszuführen.

Vorteile von VMs

Obwohl sich Container und andere moderne Anwendungstechnologien auf die Nutzung von VMs ausgewirkt haben, werden VMs weiterhin in großem Umfang von Unternehmen aller Größenordnungen eingesetzt, da sie mehrere wichtige Vorteile bieten, darunter:

  • Virtualisierung begrenzt die Kosten, indem sie den Bedarf an physischen Hardwaresystemen reduziert. VMs nutzen Hardwareressourcen effizienter als Bare-Metal-Implementierungen. Dies reduziert die Anzahl der bereitzustellenden Server und die damit verbundenen Wartungskosten. Außerdem wird der Bedarf an Strom und Kühlung gesenkt.
  • VMs sind isolierte, in sich geschlossene Umgebungen, in denen verschiedene Arten von Anwendungen und Betriebssystemen auf demselben Server ausgeführt werden können, wodurch potenzielle Konflikte und Sicherheitsprobleme sowie die Notwendigkeit, mehrere physische Server einzusetzen, vermieden werden.
  • VMs können problemlos zwischen Host-Servern sowie zwischen lokalen und Cloud-Umgebungen verschoben, kopiert und neu zugewiesen werden, wodurch die Auslastung der Hardwareressourcen verbessert und die Skalierung von Anwendungen erleichtert wird.
  • VMs erleichtern die Verwaltung in mehrfacher Hinsicht. Administratoren, Entwickler und Tester können VMs schnell bereitstellen, und mehrere VMs lassen sich problemlos über eine zentrale Schnittstelle verwalten. Administratoren können virtuelle Umgebungen auch nutzen, um Backups, Disaster Recovery (DR), neue Bereitstellungen und grundlegende Systemverwaltungsaufgaben zu vereinfachen.
  • Da VMs in isolierten Umgebungen arbeiten, bieten sie einen zusätzlichen Schutz vor bösartigen Angriffen. Außerdem unterstützen sie Funktionen wie Snapshots und Backups, die ein Rollback einer VM für den Fall erleichtern, dass die aktuelle VM gefährdet oder beschädigt ist.

VMs erfordern keine spezielle oder Hypervisor-spezifische Hardware. Allerdings benötigt der Host-Computer mehr Bandbreite, Speicherplatz und Verarbeitungskapazität als ein herkömmlicher Server oder Desktop, wenn die physische Hardware mehrere laufende VMs hosten soll. Da VMs auf einem physischen Host ungleiche Ressourcenmengen verbrauchen können - eine kann den verfügbaren physischen Speicher in Anspruch nehmen, während eine andere nur wenig speichert - müssen IT-Experten die VMs mit den verfügbaren Ressourcen ausgleichen. Glücklicherweise erleichtern Virtualisierungsplattformen diesen Prozess.

Zwei Arten von VMs

VMs werden häufig nach dem Typ des Hypervisors, der sie verwaltet, oder nach der Art der von ihnen unterstützten Workloads kategorisiert. VMs werden jedoch auch nach VM-Typ kategorisiert:

  1. Prozess-VMs. Eine Prozess-VM ist eine temporäre, plattformunabhängige Programmierumgebung für die Ausführung eines einzelnen Prozesses als Anwendung. Die Umgebung bietet eine hochgradige Abstraktion, die die zugrunde liegende Hardware oder das Betriebssystem verbirgt. Eine Prozess-VM wird erstellt, wenn der Prozess beginnt, und wird zerstört, wenn der Prozess endet. Zwei gängige Beispiele für Prozess-VMs sind die Java Virtual Machine, die Teil der Java-Plattform ist, und die Common Language Runtime, die für das .NETFramework verwendet wird.
  2. System-VMs. Eine System-VM ist eine vollständig virtualisierte Umgebung, die auf einem physischen Server gehostet wird und ihr eigenes Betriebssystem ausführt. Die VM teilt sich die physischen Ressourcen des Hosts, bietet aber eine vollständige Umgebung für die Ausführung von Anwendungen und Diensten, wie ein physischer Computer, jedoch ohne den Overhead. System-VMs stützen sich auf einen Hypervisor, um die Hardwareressourcen zu virtualisieren und sie für VM-Umgebungen verfügbar zu machen. Gängige Beispiele für System-VMs sind die von Virtualisierungsplattformen wie VMware vSphere und Microsoft Hyper-V unterstützten VMs.

VM vs. Container

Container sind wie VMs, nur dass sie nur das Betriebssystem virtualisieren und nicht den Rest der zugrunde liegenden Hardware. Container enthalten den Code, die System-Tools, die Laufzeit, die Systembibliotheken und die Einstellungen, die für die Ausführung der containerisierten Anwendungen erforderlich sind. Aus diesem Grund werden Container häufig für mehrere Anwendungen verwendet, die auf demselben Betriebssystem laufen. Container werden auch für Cloud-native, verteilte Anwendungen und zur Paketierung von Legacy-Anwendungen genutzt, um die Portabilität zu erhöhen und die Bereitstellung zu vereinfachen. Docker, das 2013 als Linux-basierte Container-Plattform auf den Markt kam, ist einer der führenden Container-Entwickler.

Container haben einen geringeren Overhead als VMs und sind wesentlich schlanker. Außerdem booten sie schneller, verbrauchen weniger Serverressourcen und sind portabler, wodurch sie sich gut für moderne Anwendungstechnologien wie Microservices eignen. Allerdings müssen alle Container, die auf demselben Host ausgeführt oder auf einen anderen Host portiert werden, dasselbe Betriebssystem unterstützen. VMs können mit unterschiedlichen Betriebssystemen betrieben werden und bieten ein höheres Maß an Isolation; sie können jedoch so konfiguriert werden, dass sie bei Bedarf miteinander kommunizieren. VMs eignen sich besser für monolithische Anwendungen oder für die gemeinsame Ausführung mehrerer Anwendungen. Sie sind auch praktisch für Legacy-Anwendungen, die isolierte Umgebungen erfordern.

Abbildung 1: VMs benötigen mehr Speicherplatz als Container, da sie ein Gastbetriebssystem benötigen, um zu laufen. Jeder Container teilt sich das Betriebssystem des Hosts. Einige Anwender setzen Container innerhalb von VMs ein, um die Sicherheit von Containern zu verbessern.
Abbildung 1: VMs benötigen mehr Speicherplatz als Container, da sie ein Gastbetriebssystem benötigen, um zu laufen. Jeder Container teilt sich das Betriebssystem des Hosts. Einige Anwender setzen Container innerhalb von VMs ein, um die Sicherheit von Containern zu verbessern.

Container und VMs können zusammen verwendet werden, um das Beste aus beiden Welten zu bieten. Obwohl dies einen zusätzlichen Aufwand bedeutet, bietet es eine zusätzliche Sicherheitsebene, die bei Containern allein nicht gegeben ist. Die Kombination ermöglicht außerdem die Bereitstellung einer Infrastruktur, die sowohl moderne als auch traditionelle Arbeitslasten unterstützen kann. Die meisten HCI-Plattformen basieren auf Virtualisierungstechnologien, aber viele haben Unterstützung für Kubernetes hinzugefügt, das innerhalb der VM-Struktur implementiert ist. Folglich werden alle containerisierten Workloads in VMs ausgeführt und profitieren von der Isolierung, während sie gleichzeitig mit herkömmlichen Workloads arbeiten.

Einrichten einer VM

Der Prozess zur Einrichtung einer VM hängt von der Virtualisierungsplattform ab. Viele Plattformen bieten Assistenten und andere Funktionen, die das Erstellen und Bereitstellen einer VM erleichtern. In VMware vSphere beispielsweise kann ein Administrator eine VM aus einer Vorlage oder einem Klon erstellen oder eine einzelne VM von Grund auf neu erstellen. In vSphere ist der Assistent für neue virtuelle Maschinen enthalten, der den Benutzer durch den Prozess der VM-Erstellung führt, unabhängig davon, ob es sich um eine neue oder eine auf einer Vorlage oder einem Klon basierende VM handelt.

Red Hat Virtualization verfolgt einen anderen Ansatz bei der Einrichtung einer VM. Um beispielsweise eine Linux-VM zu installieren, führt der Benutzer die folgenden Schritte aus:

  • Erstellen Sie eine leere VM.
  • Fügen Sie eine virtuelle Festplatte für die Speicherung hinzu.
  • Fügen Sie eine Netzwerkschnittstelle hinzu, um die VM mit dem Netzwerk zu verbinden.
  • Installieren Sie das Gastbetriebssystem.
  • Registrieren Sie die VM beim Content Delivery Network (CDN) und fügen Sie die erforderlichen Abonnements hinzu.
  • Installieren Sie alle erforderlichen Gastagenten oder Treiber.

Da der Prozess der Einrichtung einer VM spezifisch für die jeweilige Virtualisierungsplattform ist, sollten Anwender die Dokumentation der Plattform lesen, bevor sie eine VM einrichten.

VM-Verwaltung

Die Verwendung von VMs bringt einige wichtige Managementüberlegungen mit sich, von denen viele durch allgemeine Best Practices für die Systemadministration und Tools für die Verwaltung von VMs gelöst werden können.

Die Konsolidierung birgt einige Risiken, zum Beispiel die Überlastung von Ressourcen oder potenzielle Ausfälle mehrerer VMs aufgrund von Hardwarefehlern. Obwohl die Kosteneinsparungen zunehmen, wenn mehr VMs dieselbe Hardwareplattform nutzen, steigt auch das Risiko. Es ist zwar möglich, Hunderte von VMs auf derselben Hardware zu platzieren, aber wenn die Hardwareplattform ausfällt, kann dies Dutzende oder Hunderte von VMs in Mitleidenschaft ziehen. Die Verwendung von VM-Backups oder Snapshots kann jedoch dazu beitragen, diese Risiken zu mindern.

VM-Anbieter

Mehrere Anbieter bieten Virtualisierungsplattformen an. Vier der beliebtesten Plattformen stammen von VMware, Citrix, Microsoft und Red Hat:

  • VMware vSphere ist eine weit verbreitete Virtualisierungsplattform, die so umgestaltet wurde, um native Unterstützung für Kubernetes zu bieten, wodurch es möglich ist, traditionelle und moderne Arbeitslasten in VMs auszuführen. VMware vSphere ist hoch skalierbar und kann leistungsstarke Anwendungen wie SAP HANAunterstützen.
  • Citrix Hypervisor - ehemals Citrix XenServer - ist ein leistungsstarker Hypervisor, der auf dem Open-Source-Hypervisor des Xen-Projekts basiert. Citrix Hypervisor ist für virtuelle Anwendungen und Desktops sowie für virtuelle Windows- und Linux-Server optimiert. Administratoren können Richtlinien konfigurieren, die VMs auf einem anderen Server neu starten, falls einer von ihnen ausfällt.
  • Microsoft Hyper-V ist eine Windows Server-Rolle, mit der Administratoren VMs erstellen und verwalten können. Hyper-V hat den Vorteil, dass es eine in die Windows-Server-Plattform integrierte Komponente ist, die Implementierungen vereinfacht. Hyper-V unterstützt sowohl Windows- als auch Linux-VMs und bietet Funktionen zum einfachen Verschieben, Verteilen oder Replizieren von VMs.
  • Red Hat Virtualization ist eine Virtualisierungsplattform für Unternehmen, die auf Red Hat Enterprise Linux(RHEL) und Kernel-based VM (KVM) basiert. Die Plattform kann geschäftskritische Anwendungen und ressourcenintensive Arbeitslasten unterstützen und ist mit den Plattformen Red Hat OpenStack, RedHat OpenShiftund Red Hat Ansible Automation integriert.

Zahlreiche Open-Source-Virtualisierungsprodukte haben sich ebenfalls auf dem VM-Markt etabliert, darunter KVM, OVirt und Proxmox VE. Darüber hinaus nutzt Cloud Computing in großem Umfang die Virtualisierung, wobei jedoch zusätzliche Technologien auf die Plattform aufgesetzt werden, wie zum Beispiel Self-Service-Provisioning und Chargeback. In einem virtualisierten Rechenzentrum kann das IT-Personal beispielsweise neue VMs je nach Bedarf des Benutzers oder eines neuen Projekts aufsetzen. In einer Cloud-Umgebung kann ein Endbenutzer jedoch VMs aus einem Self-Service-Katalog bereitstellen und Ressourcen angeben, ohne mit der zugrunde liegenden physischen Ausrüstung zu interagieren oder die Hilfe eines Administrators zu benötigen.

Diese Definition wurde zuletzt im Januar 2023 aktualisiert

Erfahren Sie mehr über Containervirtualisierung

ComputerWeekly.de
Close