Virtuelle Maschinen – Flexibilität und Effizienz durch nahtlose Systemintegration und isolierte Umgebungen

Eine Virtuelle Maschine bzw. Virtuelle Maschinen (VM) ist ein (OS = Operating System) oder eine Anwendungsumgebung, die auf einem bestehenden Betriebssystem auf der Software-Ebene installiert ist und eine dedizierte Hardware ausführt.

Nicht zu verwechseln mit einem Emulator

Als Emulator wird in der Computertechnik ein System bezeichnet, das ein anderes Computer System in bestimmten Teilaspekten nachbildet. Dabei handelt es sich um keine Virtuelle Maschinen 😉

Auch nicht zu verwechseln mit einem Simulator

Ein Simulator wird dazu genutzt um eine Simulation auszuführen. Beispielsweise für die Nachbildung von realen Szenarien zum Zwecke der Ausbildung von Piloten im Flugsimulator. Auch von Ärzten und Pflegepersonal in einem Patientensimulator kommt ein Simulator zum Einsatz. Kriegs- bzw. Gefechtssimulationen bei Einsatzkräften der Polizei oder dem Militär, sind heutzutage auch schon normal. Die Simulation zur Analyse von Systemen, deren Verhalten für die theoretische, formelmäßige Behandlung zu komplex sind, finden ebenfalls Einsatz. Auch wenn diese Art von Simulation sich grundlegend von den vorher genannten unterscheidet. Und dann gibt es natürlich die Simulation in Spielen (Aber diesen Dingen bei späteren Beiträgen mehr).

Der Hypervisor

Man kann sich die Sache mit den Virtuellen Maschinen im Endeffekt so vorstellen wie einen oder mehrere Computer in einem Computer zu betreiben. Spezialisierte Software, die man als Hypervisor bezeichnet, emulieren die CPU- (Central Processing Unit = Prozessor), den Speicher-, die Festplatten-, die Sound-, Netzwerk- und andere Hardwareressourcen des Computers oder Servers vollständig und ermöglicht es virtuellen Maschinen, die Ressourcen gemeinsam zu nutzen oder aber vollkommen zu isolieren.

Der Hypervisor kann mehrere virtuelle Hardwareplattformen emulieren. Diese können voneinander isoliert sein, so dass virtuelle Maschinen zum Beispiel Unix-, Linux– und Windows-Betriebssysteme auf demselben zugrundeliegenden physischen Computer ausführen können. Mit der Virtualisierung kann man beispielsweise auch die Kostensenkung der IT-Infrastruktur erreichen.

Virtuelle Maschinen nutzen die Hardware effizienter, wodurch sich die benötigten Hardwarekomponenten, die damit verbundenen Wartungs- und Instandhaltungskosten, sowie der Energiebedarf sänken lassen. Sie verringern auch den Aufwand der Administration, da sich alles an einem Ort befindet. Auch nutzt sich virtuelle Hardware innerhalb der Virtuellen Maschinen nicht ab und mechanische Fehler sind ausgeschlossen.

Admins (Administratoren = Benutzer mit erweiterten Rechten in IT-Systemen) können die Vorteile virtueller Umgebungen nutzen, um Images (In der Computertechnik ist ein Image ein Systemabbild bzw. eine serielle Kopie des gesamten Zustands eines Computersystems, die in einer nichtflüchtigen Form wie einer Datei gespeichert ist), Backups (Sicherheitskopien), das Einrichten und die Bereitstellung neuer Computersysteme und grundlegende Systemverwaltungsaufgaben zu vereinfachen.

Virtuelle Maschinen erfordern keine spezielle Hardware und sind in der Regel bzw. je nach Anwendungsbereich und den Anwendungen, die ausgeführt werden sollen, nicht sehr ressourcenhungrig. Wobei dies stark von der Menge der ausgeführten Virtuellen Maschinen und der jeweiligen Konfigurationen abhängt. Zu den Vorteilen gehört unter Anderem auch die Flexibilität beim Verschieben der Instanzen zwischen diversen Servern oder Computersystemen.

Administration

Alles in allem sind Virtuelle Maschinen etwas Feines. Zumal jemand, der mehrere Betriebssysteme einer IT-Infrastruktur administrieren, orchestrieren bzw. verwalten muss, die Vorzüge diverser Betriebssysteme auf einem dedizierten System nutzen kann. Nichtsdestotrotz besteht das Risiko, falls systemrelevante Anwendungen plattformübergreifend auf einem dedizierten Server bzw. Computer ausgeführt werden, bei einer Überlastung oder einem Hardwarefehler alle Systeme die darauf abgebildet sind, in Mitleidenschaft zieht. Folglich macht es Sinn, auch Virtuelle Maschinen auf der Hardware-Ebene redundant zu betreiben.

Wozu benötigt man Virtuelle Maschinen?

Virtuelle Maschinen sind vielseitig einsetzbar. Eines der wichtigsten Aspekte ist, wie bereits erwähnt, die synchrone Nutzung unterschiedlicher Betriebssysteme. Diese Art der Nutzung trifft man häufig beim Testen von Software- bzw. Web-Anwendungen an. So ist es beispielsweise möglich, die Tests auf verschieden Systemen mit verschiedenster Hardware-Ausstattung auszuführen und die Resultate bzw. Laufzeitergebnisse auf einem primären System zu evaluieren und zu verwalten. Dies macht auch dann Sinn, wenn es sich um sicherheitsrelevante Anwendungen handelt, die beispielsweise in einer isolierten Umgebung ausgeführt werden sollen/müssen oder wenn man Penetrationstests (Penetrationstest, kurz Pentest(ing), ist der fachsprachliche Ausdruck für einen umfassenden Sicherheitstest einzelner Rechner oder Netzwerke jeglicher Größe) in diversen Netzwerkumgebungen und verschiedenen Betriebssystemen ausführen möchte.

Virtuelle Maschinen und Multi-Boot-Systeme

Als die Virtualisierung noch nicht existierte, musste man ein Computer-System mit mehreren Betriebssystemen immer wieder neu booten (Neustarten), um auf die verschiedenen Betriebssysteme zuzugreifen. Jedes dieser Betriebssysteme konnte zwar sowohl abhängig als auch unabhängig vom Dateisystem agieren, doch sie konnten immer nur einzeln zu einem bestimmten Zeitpunkt verwendet werden. Auch heute macht man dies nach wie vor so. Beispielsweise wenn man Software nutzen will, die ausschließlich auf einem spezifischen Betriebssystem wie MacOS, Windows oder Linux funktionsfähig ist, die Hardware-Ressourcen relativ begrenzt sind und die vollständige Kapazität des Systems für das spezifische Betriebssystem oder die Anwendungen benötigt werden. Nachteile sind hierbei, meiner Erfahrung nach, besonders auf Apple Geräten, die fehlenden oder fehlerhaften Treiber bzw. das geschlossene Ökosystem des Herstellers.

Virtuelle Maschinen und Cloud Computing

Mit dem Aufkommen der Cloud lassen sich die virtuellen Maschinen auch in der Cloud ausführen bzw. umziehen/migrieren. Dieses Thema werde ich aber in einem anderen Beitrag genauer bearbeiten, da ich mich derzeit auch in diesem Umfeld bewege.

Virtuelle Maschinen und Container

Container funktionieren nach einem ähnlichen Prinzip wie Virtuelle Maschinen – Bis auf die Hardware versteht sich. Doch dies habe ich bereits in dem Blog-Beitrag über Docker beschrieben. Hier ist auch der Beitrag über Kubernetes zu empfehlen.

Welche Virtuellen Maschinen gibt es?

Zu den Hauptanbietern gehören wohl VMware, was heute als EMC unter dem Dach von Dell existiert, Oracle, Microsoft und Parallels. Ansonsten sind da noch Open-Source-VM-Lösungen wie Red Hat Virtualization oder ProxMox, die ich zusammen mit Azure auch noch in späteren Beiträgen thematisieren möchte. Nicht zu vergessen Virtual Box von Oracle, was ebenfalls als „Open Source“ zu haben ist.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.