Weltweit führend bei Datenresilienz
Hinweise von Veeam für Kunden, die vom Content-Update von CrowdStrike betroffen sind

Was ist eine virtuelle Maschine?

Eine virtuelle Maschine, kurz VM, ist genau das, was der Name vermuten lässt, eine Form von virtuellem Computer. Mithilfe von Virtualisierungssoftware können auf einem einzelnen „Host“-Computer mehrere „Gastsysteme“ auf dessen Hardware ausgeführt werden. Jeder Gast führt sein eigenes Betriebssystem aus und verhält sich unabhängig von den anderen Gästen. Es ist möglich, dass Gäste ein anderes Betriebssystem als der Host ausführen. Auf einem macOS-Host könnten beispielsweise virtuelle Windows- und/oder Linux-Maschinen ausgeführt werden.

Wie funktioniert eine virtuelle Maschine?

Der Prozess der Erstellung virtueller Maschinen, die auf einem Host ausgeführt werden, wird als Virtualisierung bezeichnet. Auf der Hardware des Host-Computers wird das Host-Betriebssystem ausgeführt. Virtualisierungssoftware wird innerhalb des Host-Betriebssystems ausgeführt und weist jedem Gast Ressourcen zu. Jeder Gast verfügt über ein eigenes Betriebssystem und einen eigenen Satz von Bibliotheken und Binärdateien, die zum Ausführen der gewünschten Anwendungen erforderlich sind. Das Gastbetriebssystem verhält sich wie ein physischer Computer, der mit der ihm zugewiesenen Rechenleistung, dem Arbeitsspeicher, dem Speicherplatz und anderen Rechenressourcen ausgestattet ist.

Die zwei Arten von virtuellen Maschinen

Es gibt zwei Arten von virtuellen Maschinen: Prozess-VMs und System-VMs. Der Hauptunterschied zwischen ihnen ist ihre Größe und ihr beabsichtigter Anwendungsfall.

Was ist eine Prozess-VM?

Eine Prozess-VM ist eine spezialisierte VM, die dafür entwickelt wurde, dass ein einzelner Prozess als Anwendung auf dem Host ausgeführt werden kann. Ein typisches Beispiel hierfür ist die Java-VM. In Java geschriebene Anwendungen sind plattformunabhängig und können auf jeder Hardware und jedem Betriebssystem ausgeführt werden, die die Java VM unterstützen. Anstatt sich um die Kompatibilität von Hardware und Betriebssystem kümmern zu müssen, schreiben Entwickler einfach für die Java-VM, die sich um alle Host-spezifischen Probleme kümmert und es so ermöglicht, dass Java-Code auf jedem unterstützten Betriebssystem so ausgeführt wird, als wäre er nativ für das jeweilige Betriebssystem geschrieben worden.

Was ist eine virtuelle Systemmaschine?

System-VMs stellen eine umfassendere Form der Virtualisierung dar. Eine System-VM ist ein vollständiges Replikat einer physischen Maschine. Auf einem leistungsstarken Host-Rechner können mehrere VMs ausgeführt werden, wobei jeder Gast sein eigenes Betriebssystem ausführt. Dazu muss der Host einen Hypervisor ausführen.

Manche Hypervisor-Software läuft auf einem Host-Betriebssystem auf. Diese sogenannten Typ-2-Hypervisoren bieten Komfort und Benutzerfreundlichkeit auf Kosten einer gewissen Latenz und zusätzlichen Ressourcenverbrauchs. Andere Lösungen können direkt auf der Hardware des Hosts ausgeführt werden („Bare-Metal-System“). Ein solcher Hypervisor wird als Typ-1-Hypervisor bezeichnet. Da Typ-1-Hypervisoren direkt auf der Host-Hardware ausgeführt werden, stellen sie eine leistungsstarke Lösung mit geringer Latenz dar und werden häufig in Enterprise-Umgebungen eingesetzt, in denen eine effiziente Ressourcennutzung unabdingbar ist.

Mit Hypervisoren können alle Maschinen unabhängig voneinander ausgeführt werden, wobei Arbeitsspeicher, Netzwerkdurchsatz, Speicher- und Prozessorressourcen dynamisch zugewiesen werden, während die Gast-VMs zur Vermeidung von Sicherheitsproblemen voneinander isoliert sind.

Hypervisoren erleichtern das schnelle Aufsetzen neuer VMs bei Bedarf und ermöglichen eine effiziente Nutzung der Host-Hardware. VM-Images, die für einen bestimmten Hypervisor wie VMware ESXi oder Oracle VM VirtualBox erstellt wurden, sind hochgradig portabel, da sie auf jeder beliebigen Hardware bereitgestellt werden können, die die Hypervisor-Software unterstützt und über ausreichende Systemressourcen verfügt. Diese Portabilität in Kombination mit der Leistungsfähigkeit der Replikationssoftware macht die Virtualisierung zu einem wichtigen Bestandteil eines jeden Business-Continuity-Plans. Mit Veeam Backup and Replication können Sie lokale und in der Cloud gehostete virtuelle Maschinen verwalten, die Daten Ihres Unternehmens sichern und dafür sorgen, dass Sie nach einem System- oder Hardwareausfall schnell wieder betriebsbereit sind.

Wofür wird eine virtuelle Maschine verwendet?

Für virtuelle Maschinen gibt es viele Anwendungsszenarien:

  • Ausführen verschiedener Betriebssysteme zum Testen plattformübergreifender Builds
  • Ausführung betriebssystemspezifischer Software auf einem Gerät/einer Plattform, für das/die sie nicht entwickelt wurde
  • Zugriff auf Daten von mit Viren oder Ransomware infizierten Geräten
  • Einrichtung einer Entwicklungsumgebung für automatisierte Tests/Builds
  • Sicherung einer vorhandenen Maschinenkonfiguration für eine schnelle Wiederbereitstellung
  • Bereitstellen von Anwendungen in der Cloud
  • Aufteilen eines leistungsstarken Webservers in mehrere virtuelle Server, die ein Hosting-Provider weiterverkaufen kann

Warum sollte man eine virtuelle Maschine verwenden?

Virtuelle Maschinen haben mehrere entscheidende Vorteile. Sie ermöglichen es, mehrere Betriebssystemumgebungen auf einem Gerät auszuführen. Dies macht sie zu einer kostengünstigen und effizienten Möglichkeit, mehrere Server hochzufahren, Anwendungen auf einer Vielzahl verschiedener Betriebssystemkonfigurationen zu testen oder eine Legacy-Anwendung auszuführen. Beispielsweise kann ein Unternehmen, das sich auf ein Kundenkontensystem stützt, das für eine sehr alte Windows-Version geschrieben wurde, eine VM mit dieser Anwendung bereitstellen, anstatt dedizierte ältere Hardware für die Ausführung dieser Software vorzuhalten.

Der Hypervisor stellt für jeden Gast eine Sandbox-Umgebung bereit. Das macht VMs aus Sicherheitssicht nützlich, da die Gastsysteme keinen direkten Zugriff auf die Dateisysteme oder den Speicher der anderen Gäste haben. Wenn eine virtuelle Maschine von einem Virus infiziert wird, sollte der Schaden eingedämmt werden können. Wenn eine virtuelle Maschine aufgrund eines fehlerhaften Programms abstürzt, sollten der Host und andere VMs davon unberührt bleiben.

Eine weitere nützliche Eigenschaft virtueller Maschinen ist, dass sie in unkomplizierter Weise gesichert, verschoben und wiederhergestellt werden können. Für das Erstellen von Backups einer virtuellen Maschine müssen lediglich die Konfigurationsdateien und das Festplatten-Image gesichert werden. In einem Disaster-Recovery-Szenario kann ein Unternehmen seine Betriebsbereitschaft schnell wiederherstellen, wenn diese Dateien auf einem neuen Host wiederhergestellt und die VMs wieder gestartet werden. Da virtuelle Maschinen hardwareunabhängig sind, können die Backups auf jedem Server wiederhergestellt werden, der über ausreichende Ressourcen für die Ausführung dieses Gastbetriebs verfügt. 

Die abgeschottete und hochgradig portable Natur virtueller Maschinen hat jedoch ihren Preis. Auf jeder Gast-VM wird eine vollständige Kopie des Betriebssystems ausgeführt. Wenn mehrere virtuelle Maschinen auf einem physischen Server laufen, kann es zu Stabilitätsproblemen kommen, wenn der Server nicht leistungsstark genug ist. Je nach Verwendungszweck der VMs gibt es möglicherweise eine effizientere Möglichkeit, Ihre Ziele zu erreichen, z. B. Container.

Container und virtuelle Maschinen im Vergleich

Container sind eine Form der Virtualisierungstechnologie, die viele Ähnlichkeiten mit virtuellen Maschinen aufweist, jedoch einem etwas anderen Zweck dient. Während virtuelle Maschinen einen vollständigen Computer simulieren, einschließlich der Betriebssystem- und Hardwareebene, virtualisieren Container nur die Softwareebenen, die auf dem Betriebssystem ausgeführt werden. Das IEEE beschreibt Container als leichtgewichtige Alternative zu virtuellen Maschinen.

Während virtuelle Maschinen auf einem Hypervisor ausgeführt werden, der entweder direkt auf der Hardware oder innerhalb eines Betriebssystems laufen kann, werden Container in einer Container-Engine ausgeführt. Jeder Container verfügt über eigene Kopien aller Binärdateien und Bibliotheken, die zum Ausführen der darin enthaltenen Software erforderlich sind, benötigt jedoch keine eigenen Kopien des Betriebssystems. Die Container teilen sich die Hardware, auf der sie ausgeführt werden, obwohl sie eingeschränkten Zugriff auf das Dateisystem haben.

Beliebte Container-Management-Software sind Docker, Google Kubernetes Engine, LXC und Portainer. Container werden häufig auf Cloud-Computing-Plattformen verwendet, um schnell alles bereitzustellen, was zum Ausführen eines Skripts oder Microservices erforderlich ist.

Zu den Vorteilen von Containern gehören:

  • Sie sind leichtgewichtig, da sie nur die Binärdateien und Bibliotheken enthalten, die für ihre Ausführung unbedingt erforderlich sind.
  • Sie sind einfach einzurichten und zu verwalten.

Die Nachteile von Containern sind:

  • Es ist nicht möglich, Betriebssysteme auf einem einzelnen Host zusammen mit Containern zu verwenden.
  • Temporäre Container lassen sich einfach erstellen, die Verwaltung von dauerhaften Containern erfordert jedoch mehr Planung.
  • Da Container nicht vollständig in einer Sandbox untergebracht sind, gelten sie häufig als weniger sicher als virtuelle Maschinen.

Die Frage der Containersicherheit ist komplex, und ordnungsgemäß konfigurierte Container bieten robuste Sicherheit. Anwendungen in Containern sind voneinander isoliert, was sie sicherer macht, als wenn die einzelnen Anwendungen direkt auf der Hostmaschine ausgeführt werden. Außerdem bietet jeder Container eine kleinere Angriffsfläche als eine ausgewachsene VM. Manche Container sind temporär, so dass bei jedem Start ein „Neuanfang“ mit der gleichen Konfiguration erfolgt. Zustandslose Container sind für bestimmte Arten von Mikroservern nützlich, und das Fehlen von persistentem Speicher kann in einigen Situationen als Sicherheitsmerkmal angesehen werden.

Temporäre Container eignen sich jedoch nicht für die Ausführung komplexerer Services oder für Services, bei denen es wichtig ist, den Anwendungszustand bei einer Wiederherstellung nach einem Ausfall beizubehalten. Darüber hinaus teilen sich Container ein Betriebssystem, so dass der Angreifer, wenn ein Container kompromittiert wird, die Möglichkeit hat, andere Container zu kompromittieren, die auf demselben Computer ausgeführt werden. Wenn bei virtuellen Maschinen eine VM kompromittiert wird, kann der Angreifer diesen Zugriff nicht nutzen, um andere VMs auf dem gleichen Host zu gefährden.  

Wann Sie sich für Container und wann für VMs entscheiden sollten

Im Allgemeinen bietet sich die Verwendung virtueller Maschinen an, wenn Sie mehrere Betriebssysteme auf einem Computer ausführen oder für Sicherungszwecke Snapshots der Maschine in unterschiedlichen Zuständen erstellen möchten. Zum Einsatz bereite virtuelle Maschinen erleichtern die Skalierung Ihres Betriebssystems, was im Hinblick auf Disaster Recovery-Anforderungen von Vorteil sein kann. 

Container eignen sich für die Bereitstellung kleinerer Microservices oder als Teil einer DevOps-Pipeline. In einem Beitrag für EPR Today erklärt Daniel Riedel den Unterschied in der Philosophie als «Haustiere vs. Vieh». Container gleichen manchmal Gebrauchsartikeln, die bei Bedarf hochgefahren werden. Monolithische Services werden eher in VMs verwendet, in der Regel sorgfältig gepflegt und gleichen damit mehr Liebhaberobjekten.

Einrichten einer virtuellen Maschine

Zu verbreiteten VM-Softwareprodukten gehören etwa:

  • VMware ESXi
  • Oracle VM VirtualBox
  • Azure Spot Virtual Machines
  • Linux KVM

Der Prozess zum Einrichten einer virtuellen Maschine unterscheidet sich je nach verwendeter Virtualisierungssoftware. Tools wie VMware und Oracle VM VirtualBox bieten geführte Setup-Funktionen, die den Benutzern helfen, die Hardware zu konfigurieren und das Betriebssystem für die VM über eine grafische Benutzeroberfläche (GUI) zu installieren. Da es sich um eine cloudbasierte Lösung handelt, bieten die Dedicated- und Spot-VMs von Azure zudem relativ einfache Setup-Optionen.

Die Konfiguration eines Linux-KVM über die Befehlszeile erfordert fundiertere Kenntnisse über das Netzwerk und die Hardware der Maschine. Tools wie Kimchi und Proxmox erleichtern es Systemadministratoren, Bereitstellungen mehrerer virtueller Maschinen auf einem einzigen Host zu verwalten.

Einige wichtige Überlegungen bei der Konfiguration einer virtuellen Maschine sind:

  • Hardware-Zuweisung: Das Gastsystem sollte Zugriff auf ausreichend Arbeitsspeicher und Prozessorkerne/Threads haben, um eine gute Leistung sicherzustellen.
  • Verfügbare Ressourcen: Wenn der Host mehrere Gastsysteme ausführt, muss er über ausreichende Ressourcen für den reibungslosen Betrieb jeder VM verfügen.
  • Burst-Grenzwerte: Wenn der virtuellen Maschine erlaubt wird, ihre übliche Ressourcenzuweisung vorübergehend zu überschreiten, können Sie die Stabilität und Leistung in kurzen Phasen hoher Last verbessern.
  • Festplattenspeicher: Stellen Sie sicher, dass dem Gast ausreichend Speicherplatz zugewiesen ist. Dabei kann es sich um eine einzelne große Datei handeln, aber auch um mehrere Dateien, um Portierbarkeit und schnelle Backups zu verbessern.
  • Softwarelizenzierung:  Berücksichtigen Sie die Lizenzierungsanforderungen jeder Software, die Sie auf Ihrer VM bereitstellen. Jede ausgeführte virtuelle Maschine kann für Softwarelizenzierungszwecke als „Arbeitsplatz“ betrachtet werden.

Wenn bereits eine physische Maschine so konfiguriert ist, wie Sie es sich für Ihre VM wünschen, können Sie eine Kopie der Festplatte dieser virtuellen Maschine als Hyper-V-VM-Festplatte erstellen. Dies geschieht durch die so genannte P2V-Konvertierung (Physical-to-Virtual). Sobald Sie eine Kopie des Laufwerks erstellt haben, kann diese in eine virtuelle Maschine geladen werden, die mit der gleichen Art von Hardwarevirtualisierung konfiguriert ist, und nach Bedarf hochgefahren werden. Anschließend können Sie die Daten der virtuellen Maschine sichern, indem Sie virtuelle Backups mit Veeam ausführen.

Sobald die virtuelle Maschine eingerichtet ist, kann sie von innerhalb des Host-OS aus so ausgeführt werden, als wäre sie eine Anwendung. Die VM kann dann entweder über die Tastatur und Maus des Hosts oder über SSH/Remote-Standort-KVM gesteuert werden, wenn der Server im Headless-Modus läuft.

Wenn Sie mehr über Veeams Backup-Lösungen für virtuelle Maschinen erfahren möchten und wissen möchten, wie wir Ihnen bei der Datensicherung helfen können, testen Sie Veeam Backup & Replication selbst! Laden Sie noch heute Ihre kostenlose Testversion herunter.

Ausgewählte Ressourcen

Datensicherung

Report „Trends bei der Datensicherung 2022“

Der umfassendste Report zum Thema Datensicherung von 3K+ IT-Führungskräften

Partner-Symbol

Demo anfordern

Erfahren Sie in einer Live-Session, wie Sie Ihre Datensicherung modernisieren

Kontakt-Symbol

Kontakt

Erhalten Sie Unterstützung bei der Wahl der richtigen Lösung für Ihr Unternehmen