Eine Virtual Machine (VM) ist eine virtuelle Repräsentation oder Emulation eines physischen Computers, die Software anstelle von Hardware verwendet, um Programme auszuführen und Anwendungen bereitzustellen.
Durch die Nutzung der Ressourcen einer einzelnen physischen Maschine, wie z. B. Speicher, CPU, Netzwerkschnittstelle und Speicher, ermöglichen VMs Unternehmen, mehrere Maschinen mit unterschiedlichen Betriebssystemen auf einem einzigen Gerät virtuell auszuführen.
VMs werden in der Regel als Gäste bezeichnet, wobei ein oder mehrere „Gast”-Maschinen auf einem physischen Computer, der sogenannten „Host”-Maschine, ausgeführt werden. Die VM-Technologie umfasst Virtual Servers, virtuelle Serverinstanzen (VSI) und virtuelle private Server (VPS).
In einem Global Market Insights (GMI) Bericht wurde die Marktgröße für Virtual Machines im Jahr 2023 mit über 9,5 Milliarden US-Dollar beziffert. GMI prognostiziert für diesen Markt zwischen 2024 und 2032 eine durchschnittliche jährliche Wachstumsrate (CAGR) von etwa 12 %, die durch die zunehmende Verbreitung von Cloud Computing angetrieben wird. Da Unternehmen aufgrund der Skalierbarkeit, Flexibilität und Kosteneffizienz in die Cloud wechseln, integrieren Cloud-Provider fortlaufend Virtual Machines und andere kritische Technologien (z. B. Container), um eine konsistente IT-Infrastruktur bereitzustellen.
VMs arbeiten mit Virtualisierung, einem Prozess zur Erstellung softwarebasierter oder virtueller Versionen von Ressourcen (Rechenleistung, Speicher, Netzwerk, Server) oder Anwendungen.
Die Virtualisierung ermöglicht eine effizientere Nutzung der physischen Computerhardware und ist die Grundlage für das Cloud Computing.
Die Virtualisierung wird durch einen Hypervisor ermöglicht, der auch als Virtual Machine Monitor (VMM) bezeichnet wird. Diese schlanke Softwareschicht verwaltet Virtual Machines, die parallel ausgeführt werden.
Die Geburtsstunde der Virtualisierung liegt im Jahr 1964, als IBM den CP-40 entwarf und einführte, ein experimentelles Time-Sharing-Forschungsprojekt für das IBM System/360. Der CP-40, der sich später zum CP-67 und schließlich Unix weiterentwickelte, stellte Computerhardware bereit, die mehrere gleichzeitige Benutzer unterstützen konnte, und legte den Grundstein für Virtual Machines.
Am 2. August 1972 veröffentlichte IBM die VM/370 – die von vielen als erste Virtual Machine angesehen wird – und die ersten System/370-Mainframes, die virtuellen Speicher unterstützten.
1998 entwickelte VMware (Link außerhalb von ibm.com) das x86-Betriebssystem, mit dem ein einzelner Computer in mehrere Virtual Machines mit jeweils eigenem Betriebssystem aufgeteilt werden konnte. 1999 führte das Unternehmen VM Workstation 1.0 ein, das erste kommerzielle Produkt, mit dem Benutzer mehrere Betriebssysteme als Virtual Machine auf einem einzigen PC ausführen konnten.
Heute ist die Virtualisierung eine Standardpraxis für IT-Infrastrukturen auf Unternehmensebene und eine treibende Kraft in der Wirtschaftlichkeit des Cloud Computing, die es Unternehmen ermöglicht, die Kapazitätsauslastung zu erhöhen und Kosten zu senken. Die gesamte IT-Infrastruktur kann virtualisiert werden, einschließlich Desktop-Umgebungen, Betriebssysteme, Speicherhardware, Rechenzentren und vieles mehr.
Virtualisierung basiert auf Hypervisor-Technologie. Diese Software-Ebene, die auf einem physischen Computer oder Server (auch als Bare Metal Server bezeichnet) platziert ist, ermöglicht es dem physischen Computer, sein Betriebssystem und seine Anwendungen von seiner Hardware zu trennen. Diese virtuellen Maschinen können ihre Betriebssysteme und Anwendungen unabhängig voneinander ausführen und gleichzeitig die ursprünglichen Ressourcen (Speicher, RAM usw.) vom Server, den der Hypervisor verwaltet, freigeben. Im Wesentlichen fungiert der Hypervisor wie ein Verkehrspolizist, der den virtuellen Maschinen Ressourcen zuweist und sicherstellt, dass sie sich nicht gegenseitig stören.
Es gibt zwei Haupttypen von Hypervisors:
Neben der Klassifizierung nach Hypervisor-Management lassen sich virtuelle Maschinen in zwei Hauptkategorien einteilen: virtuelle Systemmaschinen (auch Vollvirtualisierungsmaschinen genannt) und virtuelle Prozessmaschinen.
System-VMs ermöglichen die gemeinsame Nutzung der zugrunde liegenden physischen Maschinenressourcen durch verschiedene Virtual Machines, die jeweils ihr eigenes Betriebssystem ausführen. Im Gegensatz dazu führen virtuelle Prozessmaschinen (auch als virtuelle Anwendungsmaschinen bezeichnet) eine Anwendung innerhalb eines Betriebssystems aus und unterstützen einen einzelnen Prozess. Java Virtual Machines, auf denen in Java kompilierte Programme ausgeführt werden, sind Beispiele für Prozess-VMs.
VMs bieten zahlreiche Vorteile gegenüber herkömmlicher physischer Hardware.
Da mehrere VMs auf einem einzigen physischen Computer ausgeführt werden, müssen Kunden nicht jedes Mal einen neuen Server kaufen, wenn sie ein anderes Betriebssystem ausführen möchten. So können sie mehr Rendite aus jeder Hardware, die sie bereits besitzen, herausholen und die IT-Kosten in Bezug auf Kapital- und Betriebsausgaben erheblich senken.
Da VMs softwarebasiert sind, lassen sich neue VMs einfach einrichten, sodass eine schnellere Skalierung möglich ist, um neuen Workload-Anforderung gerecht zu werden, im Vergleich zur Bereitstellung neuer hardwarebasierter Umgebungen.
Unternehmen können VMs nach Bedarf zwischen den physischen Computern in einem Netzwerk verschieben. Diese Funktion ermöglicht es, Workloads auf Server mit freier Rechenleistung zu verteilen. VMs können sogar zwischen lokalen und Cloud-Umgebungen verschoben werden, was sie für Hybrid Cloud- Szenarien nützlich macht, bei denen Sie Rechenressourcen zwischen Ihrem Rechenzentrum und einem Cloud-Dienstanbieter gemeinsam nutzen.
Die Erstellung einer VM ist schneller und einfacher als die Installation eines Betriebssystems auf einem physischen Server, da Sie eine VM mit dem bereits installierten Betriebssystem klonen können. Entwickler und Softwaretester können bei Bedarf neue Umgebungen erstellen, um neu auftretende Aufgaben zu bewältigen.
VMs verbessern die Sicherheit auf verschiedene Weise im Vergleich zu Betriebssystemen, die direkt auf der Hardware ausgeführt werden. Mit einem externen Programm können Sie eine VM-Datei auf schädliche Software scannen. Sie können jederzeit einen Snapshot der VM erstellen und sie in diesem Zustand wiederherstellen, wenn sie mit Malware infiziert wird, und so die VM quasi in der Zeit zurückdrehen. Die schnelle und einfache Erstellung von VMs ermöglicht es auch, eine kompromittierte VM schnell zu löschen und neu zu erstellen, wodurch die Wiederherstellung nach Malware-Infektionen beschleunigt wird.
Durch die geringere Anzahl physischer Server, die für die Ausführung von Workloads und Anwendungen benötigt werden, können Sie den Energieverbrauch drastisch senken und so Ihre Umweltbilanz verbessern.
Obwohl VMs viele Vorteile bieten, gibt es auch einige Nachteile, die berücksichtigt werden müssen.
VMs sind von den Hardwareressourcen abhängig, die ihnen auf dem Host-Computer zur Verfügung gestellt werden. Begrenzte Ressourcen können zu Leistungseinbußen und Ineffizienz führen.
Die Konfiguration und Verwaltung von Virtual Machines kann komplex sein und erfordert Teams mit technischem Wissen und Fachkenntnissen, um sie einzurichten und zu warten.
Virtual Machines bergen das Risiko eines Single Point of Failure, da sie auf einem physischen Computer basieren.
VMs bieten sowohl IT-Administratoren als auch Benutzern in Unternehmen eine Vielzahl von Einsatzmöglichkeiten, darunter die folgenden:
VMware ist das erste Unternehmen, das die Virtualisierung der x86-Mikroprozessorarchitektur erfolgreich kommerzialisiert hat, und ist ein führender Anbieter auf dem Virtualisierungsmarkt. VMware bietet Unternehmenskunden Hypervisor- und VM-Software vom Typ 1 und Typ 2.
Die meisten Hypervisors unterstützen VMs, auf denen das Windows-Betriebssystem als Gast ausgeführt wird. Der Hyper-V-Hypervisor von Microsoft ist Teil des Windows-Betriebssystems. Nach der Installation wird eine übergeordnete Partition erstellt, die sich selbst und das primäre Windows-Betriebssystem enthält, wobei beide privilegierten Zugriff auf die Hardware erhalten. Andere Betriebssysteme, einschließlich Windows-Gästen, werden in untergeordneten Partitionen ausgeführt und kommunizieren mit der Hardware über die übergeordnete Partition.
Googles Open Source Android OS ist auf Mobilgeräten und vernetzten Heimgeräten weit verbreitet.
Das Android-Betriebssystem läuft nur auf der ARM-Prozessorarchitektur, die für diese Geräte typisch ist. Enthusiasten, Android-Gamer oder Softwareentwickler möchten es aber möglicherweise auf PCs ausführen. Diese Situation kann problematisch sein, da PCs auf einer völlig anderen x86-Prozessorarchitektur laufen und ein Hardwarevirtualisierungs-Hypervisor nur Anweisungen zwischen der VM und der CPU übergibt. Er übersetzt sie nicht für Prozessoren mit anderen Anleitungen.
Verschiedene Projekte wie Shashlik oder Genymotion können dieses Problem mithilfe eines Emulators lösen, der die ARM-Architektur in Software nachbildet. Eine Alternative, das Android-x86-Projekt, portiert Android stattdessen auf die x86-Architektur. Für die Ausführung müssen Sie das Android-x86-Programm als Virtual Machine installieren, die den VirtualBox-Hypervisor vom Typ 2 verwendet. Anbox ist eine weitere Alternative, die das Android-Betriebssystem auf dem Kernel eines Host-Linux-Betriebssystems ausführt.
Apple lässt sein macOS-System nur auf Apple-Hardware laufen. Das bedeutet, dass Sie es nicht auf Nicht-Apple-Hardware als Virtual Machine oder unter der entsprechenden Endbenutzer-Lizenzvereinbarung ausführen können. Sie können jedoch Hypervisors vom Typ 2 auf Mac-Hardware verwenden, um VMs mit einem macOS-Gast zu erstellen.
Es ist heute nicht möglich, iOS in einer VM auszuführen, da Apple sein iOS-Betriebssystem streng kontrolliert und nur die Ausführung auf iOS-Geräten zulässt.
Das, was einer iOS-VM am nächsten kommt, ist der iPhone-Simulator, der mit der integrierten Entwicklungsumgebung Xcode geliefert wird und das gesamte iPhone-System in Software simuliert.
Die Java-Plattform ist eine Ausführungsumgebung für Programme, die in der Programmiersprache Java geschrieben sind. Javas Versprechen – „einmal schreiben, überall ausführen” – bedeutet, dass jedes Java-Programm auf jeder Java-Plattform ausgeführt werden kann. Aus diesem Grund enthält die Java-Plattform eine Java Virtual Machine (JVM).
Java-Programme enthalten Bytecode, eine Form von Anweisungen, die für die JVM bestimmt sind. Die JVM kompiliert diesen Bytecode in Maschinencode, die niedrigste Sprachebene, die vom Host-Computer verwendet wird. Die JVM in der Java-Plattform einer Computerplattform erstellt einen anderen Satz von Maschinencode-Anweisungen als die JVM in einer anderen, basierend auf dem Maschinencode, den der Prozessor erwartet.
Daher führt die JVM kein vollständiges Betriebssystem aus und verwendet keinen Hypervisor wie andere VMs. Stattdessen werden Softwareprogramme auf Anwendungsebene für die Ausführung auf einer bestimmten Hardware übersetzt.
Wie die JVM läuft auch die Python-VM nicht auf einem Hypervisor und enthält kein Gastbetriebssystem. Es handelt sich um ein Tool mit dem sich in Python geschriebene Programme auf verschiedenen CPUs auszuführen lassen.
Ähnlich wie Java überträgt Python seine Programme in ein Zwischenformat, das als Bytecode bezeichnet wird, und speichert sie in einer Datei, die zur Ausführung bereit ist. Wenn das Programm ausgeführt wird, übersetzt die Python-VM den Bytecode in Maschinencode für eine schnelle Ausführung.
Linux ist ein typisches Gastbetriebssystem, das in vielen VMs verwendet wird. Es ist auch ein typisches Host-Betriebssystem, das zur Ausführung von VMs verwendet wird, und verfügt sogar über einen eigenen Hypervisor, die kernelbasierte virtuelle Maschine (KVM). Obwohl es sich um ein Open Source-Projekt handelt, ist KVM Eigentum von Red Hat.
Ubuntu ist eine Linux-Distribution, die von Canonical hergestellt wird. Sie ist in Desktop- und Server-Versionen verfügbar, die Sie als VM installieren können. Benutzer können Ubuntu als Gastbetriebssystem auf Microsoft Hyper-V bereitstellen. Es bietet eine optimierte Version von Ubuntu Desktop, die gut im Enhanced Session Mode von Hyper-V funktioniert und eine enge Integration zwischen dem Windows-Host und der Ubuntu-VM ermöglicht. Es unterstützt die Integration der Zwischenablage, die dynamische Größenanpassung des Desktops, gemeinsame Ordner und das Bewegen der Maus zwischen dem Host- und dem Gast-Desktop.
Öffentliche oder Multi-Tenant-Virtual Machines sind Virtual Machines, bei denen sich mehrere Benutzer eine gemeinsame physische Infrastruktur teilen. Dieses Modell ist der kostengünstigste und skalierbarste Ansatz für die Bereitstellung von Virtual Machines. In Umgebungen mit mehreren Mandanten fehlen jedoch einige Isolierungseigenschaften, die Unternehmen mit strengen Sicherheits- oder Compliance-Vorgaben bevorzugen könnten.
Zwei Modelle für Single-Tenant-Virtual Machines sind dedizierte Hosts und dedizierte Instanzen.
Bei einem „Pay-as-you-go”-Modell fallen keine Vorabkosten für die Virtual Machine an, und die Benutzer zahlen nur für das, was sie nutzen. Kunden zahlen je nach Anbieter und Instanzentyp pro Stunde oder Sekunde.
Das kostengünstigste Modell von VMs, transiente oder Spot-Instanzen, profitiert von der überschüssigen Kapazität eines Anbieters, kann aber jederzeit vom Anbieter zurückgefordert werden. Transiente/Spot-Instanzen sind nützlich für Anwendungen, die nicht immer eingeschaltet sein müssen oder in einem anderen Modell unerschwinglich teuer wären.
Im Gegensatz zu „Pay-as-you-go”-Modellen sind reservierte Fälle mit einer expliziten Laufzeitbindung verbunden, die in der Regel zwischen einem und drei Jahren liegt, aber auch mit hohen Rabatten verbunden ist.
Ein Benutzer zahlt in der Regel die Gesamtkosten für den physischen Server und erhält eine Rechnung in den vom Anbieter angebotenen Abstufungen für dedizierte Server, in der Regel stündlich oder monatlich.
Bei Bare Metal Servern liegt der Fokus auf der reinen Hardware, Stromversorgung und Isolierung. Es handelt sich um physische Single-Tenant-Server, die völlig frei von Hypervisor-Zyklen (Virtualisierungssoftware) sind und ausschließlich einem einzigen Kunden zugewiesen sind – Ihnen.
Workloads, bei denen Leistung und Abgeschiedenheit im Vordergrund stehen, wie datenintensive Anwendungen und Vorschriften zur Einhaltung von Vorschriften, eignen sich in der Regel am besten für Bare Metal Server, insbesondere wenn sie über längere Zeiträume bereitgestellt werden.
Enterprise-Resource-Planning-Programme (ERP), Customer Relationship Management (CRM), Supply-Chain-Management (SCM), E-Commerce und Finanzdienstleistungsanwendungen sind nur einige der Workloads, die sich ideal für Bare Metal Server eignen.
Wenn Ihre Workloads jedoch maximale Flexibilität und Skalierbarkeit erfordern, ist es besser, einen Hypervisor auf der Bare-Metal-Hardware zu platzieren, um eine Virtual Machine zu erstellen. Virtual Machines erhöhen die Serverkapazität und -auslastung. Sie sind ideal, um Daten von einer VM auf eine andere zu verschieben, die Größe von Datensätzen zu ändern und dynamische Arbeitslasten aufzuteilen.
Der einfachste Weg, die Funktionsweise eines Containers zu verstehen, besteht darin, die Unterschiede zu einer herkömmlichen Virtual Machine (VM) zu kennen. In der traditionellen Virtualisierung– ob lokal oder in der Cloud – wird ein Hypervisor verwendet, um physische Hardware zu virtualisieren. Jede VM enthält dann ein Gastbetriebssystem und eine virtuelle Kopie der Hardware, die für die Ausführung des Betriebssystems erforderlich ist, sowie eine Anwendung und die zugehörigen Bibliotheken und Abhängigkeiten.
Anstatt die zugrunde liegende Hardware zu virtualisieren, virtualisieren Container das Betriebssystem (in der Regel Linux). Jeder Container enthält nur die Anwendung und ihre Bibliotheken und Abhängigkeiten. Das Fehlen des Gastbetriebssystems ist der Grund dafür, dass Container so leicht, schnell und portabel sind.
Container und Kubernetes, die Open-Source-Container-Orchestrierungsplattform, die sie verwaltet, sind de facto zu Einheiten moderner cloudnativer und Microservice-Architekturen geworden. Container werden zwar am häufigsten mit zustandslosen Diensten in Verbindung gebracht, Unternehmen können sie aber auch für zustandsbehaftete Dienste verwenden. Container sind Standard in Hybrid-Cloud-Szenarien, da sie in Public Clouds, Private Clouds und herkömmlichen lokalen Umgebungen konsistent ausgeführt werden können. Heute kann ein Unternehmen die Anwendung in seiner Private Cloud ausführen, aber morgen muss es sie möglicherweise in einer Public Cloud eines anderen Anbieters bereitstellen. Die Containerisierung von Anwendungen bietet Teams die Flexibilität, die sie benötigen, um die vielen Softwareumgebungen der modernen IT zu bewältigen.
Es ist wichtig zu wissen, dass Unternehmen mit Containern und Virtual Machines koexistieren können. Zum Beispiel ist es üblich, Container in VMs auszuführen, da viele Unternehmen über eine VM-basierte Infrastruktur verfügen.
Ein Unternehmen kann einen Container auswählen, um eine Anwendung auszuführen, und eine Virtual Machine die zugrunde liegende Infrastruktur bereitstellen lassen. Diese Methode kombiniert die Portabilität und Geschwindigkeit von Containern mit der Sicherheit von Virtual Machines. In einem anderen Szenario kann ein Finanzinstitut VMs für seine Datenbanksysteme verwenden, um durch Ressourcenisolation eine höhere Sicherheit zu gewährleisten, und Container für Front-End-Anwendungen wie kundenorientierte mobile Apps verwenden.
Der Blogbeitrag „Container vs. VMs: Was ist der Unterschied?“ erklärt mehr.
Das folgende Video erklärt die Grundlagen der Containerisierung und vergleicht sie mit der Verwendung von VMs:
Die Auswahl eines Anbieters für Virtual Machines und Cloud-Dienste beginnt mit der Überprüfung Ihrer Workload- und Budgetanforderungen sowie anderer entscheidender Faktoren. Nachfolgend finden Sie 10 Punkte, die Sie bei der Auswahl eines Anbieters für Virtual Machines berücksichtigen sollten.
Beschleunigen Sie Ihre Unternehmenstransformation mit Cloud-Lösungen, die auf Innovation und Wachstum ausgelegt sind. Erkunden Sie hochmoderne Tools und Erkenntnisse, um der Konkurrenz immer einen Schritt voraus zu sein.
Sind Sie bereit, Ihr Unternehmen zu modernisieren? Entdecken Sie die effizientesten Cloud-Migrationsstrategien, mit denen Sie die Leistung optimieren, Kosten senken und die Skalierbarkeit verbessern können.
Erfahren Sie, wie Infrastructure as a Service (IaaS) Ihr Unternehmen mit skalierbaren, flexiblen und kosteneffizienten Cloud-Infrastrukturlösungen unterstützen kann, die auf Ihre Bedürfnisse zugeschnitten sind.
Erfahren Sie, wie IaaS, PaaS und SaaS Ihre Abläufe transformieren können und Flexibilität, Skalierbarkeit und Kosteneffizienz bieten. Verstehen Sie die Unterschiede und wählen Sie die perfekte Lösung für das Wachstum Ihres Unternehmens.
Erfahren Sie, wie NoSQL-Datenbanken Ihre Datenverwaltungsstrategie mit flexiblen, skalierbaren Lösungen verbessern können. Erfahren Sie mehr über die Arten und Vorteile von NoSQL, um in der heutigen datengesteuerten Welt an der Spitze zu bleiben.
Erfahren Sie, wie Techwave IBM Cloud Bare Metal Server einsetzte, um die digitale Transformation voranzutreiben und seinen Kunden Flexibilität, Skalierbarkeit und vollständige Kontrolle zu gewährleisten.
IBM Cloud Virtual Server for VPC ist eine Familie von virtuellen Servern mit Intel x86, IBM Z und IBM LinuxONE, die auf IBM Cloud Virtual Private Cloud basieren.
Dedizierte IBM Cloud-Server bieten eine skalierbare Webhosting-Lösung mit unbegrenztem, kostenlosem Backhaul-Traffic und umfangreichen Anpassungsmöglichkeiten.
Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.