Linux lernen

Was ist eine virtuelle Maschine und warum sollte man sie verwenden??

Was ist eine virtuelle Maschine und warum sollte man sie verwenden??

In Zukunft werden wir in der Lage sein, solche perfekt ausgearbeiteten Virtual-Reality-Systeme zu verwenden, um von der Realität kaum zu unterscheiden zu sein. Umgebungen, die nicht da sind, aber man kann sie sehen und fühlen. Auch wenn wir bei uns noch nicht ganz am Ziel sind, sind wir es bei unseren Computern. Virtualisierungstechnologie schafft diese Möglichkeit für unsere Computer. Dies hat verschiedene Anwendungen und Arbeitsprinzipien, die wir versuchen, Ihnen etwas näher zu erläutern.

Virtuelle Maschine und ihre Bedürfnisse

Einführung

Das Ausführen eines ganzen Betriebssystems erfordert traditionell eine Reihe wesentlicher Hardware, die alle dem Betriebssystem zur Verfügung stehen. Um mehrere Betriebssysteme auszuführen, könnte man auch mehrere Boote durchführen, aber in diesem Fall können Sie nicht zwei Betriebssysteme gleichzeitig ausführen. Virtuelle Maschinen haben uns die Möglichkeit gegeben, mehr als ein Betriebssystem gleichzeitig auf derselben Hardware zu verwenden.

Im Fall einer virtuellen Maschine gibt es einige offensichtliche Punkte, die wir machen können. So wie wir diesen Artikel begonnen haben, ist es eine Art VR für Betriebssysteme. Die von uns erstellten VMs verwenden „virtuelle“ Hardware. Die Hardware, die das gehostete Betriebssystem verwendet, ist so real wie jede andere, wenn es um das Verständnis dieses Betriebssystems selbst geht, aber das Betriebssystem ist nur dafür gemacht, es so zu betrachten. Die vom Betriebssystem verwendete RAM-, Speicher- und Prozessorleistung nutzt nur Bruchteile der realen Hardware. All diese Virtualisierung und Verwaltung wird von einem sogenannten Hypervisor durchgeführt.

Hypervisor

Ein Hypervisor ist Firmware, Software oder Hardware, die die zentrale Komponente einer VM ist. Lassen Sie uns hier ein wenig Terminologie klären: Das System, auf dem die VMs installiert werden, heißt das Host-System, und die auf den VMs installierten Maschinen heißen die Gastsysteme. Der Hypervisor ist die Schicht, die alle Ressourcen zwischen den VMs und der tatsächlichen Hardware des Systems (oder dem Betriebssystem, das den Hypervisor hostet) verwaltet. Obwohl die Betriebssysteme auf virtueller Hardware ausgeführt werden, ist es die Aufgabe des Hypervisors, den Anschein zu erwecken, dass das Betriebssystem Zugriff auf die reale Hardware hat.

Hypervisoren bieten eine stabile und uneinnehmbare Grenze zwischen den verschiedenen Betriebssystemen, die als VMs ausgeführt werden. Der Hypervisor simuliert die Hardwarekomponenten für die VM, die vom Benutzer konfiguriert werden. Die Hardware, die VMs (über Hypervisoren) verwenden, sind Bruchteile der tatsächlichen Hardware des Systems. Somit kann man die realen Hardwaregrenzen nicht überschreiten. Wenn Sie beispielsweise über 16 GB RAM verfügen, können Sie das als 8 GB auf zwei VMs aufteilen.

Der kritische Punkt ist, dass die Technologie, die VMs ermöglicht: Hypervisoren; benötigt keine spezielle Hardware. Es ist nur eine wesentliche Softwarekomponente. Es gibt zwei wesentliche Arten von Hypervisoren:

Typ 2: Gehostete Hypervisoren

Mir ist bewusst, dass ich Typ 2 vor 1 demonstriere, aber es gibt eine Sequenz. Die gehosteten Hypervisor bleiben auf Anwendungsebene. Dies ist Ihnen vielleicht bekannt, wenn Sie jemals Oracle VM VirtualBox, VMWare oder GNOME Boxes verwendet haben.

Dies ist eine Anwendung, mit der Sie ein Betriebssystem als virtuelle Maschine innerhalb Ihres Betriebssystems installieren können (das Betriebssystem, in dem die Anwendung selbst installiert ist). Dies ist sehr einfach einzurichten und zu verwenden. Sie müssen lediglich eine Anwendung installieren, mit der Sie VMs erstellen können, und ein Image des erforderlichen Betriebssystems abrufen. Sie können direkt angeben, wie viel RAM, Festplattenspeicher usw. Sie möchten, dass die VM verwendet wird.

Die Verwendung eines gehosteten Hypervisors hat erhebliche Vorteile, insbesondere für regelmäßige Benutzer wie uns. Es gibt jedoch ein Problem. Der übliche Aufbau eines Computersystems folgt dieser Reihenfolge:

Um ein wenig in die technischen Details einzusteigen, hat die Software, die wir auf einem Computersystem verwenden, verschiedene "Privilegien".„Wenn Sie zum Beispiel nur einen beliebigen Softwarezugriff erlauben, um die Leistung Ihres Prozessors zu konfigurieren, kann dies Ihr gesamtes System leicht durcheinander bringen. Dies ist eine schlechte Sicherheitspraxis. In Wirklichkeit tritt der Kernel eines Betriebssystems in Interaktion mit der Hardware. Wenn eine App Zugriff auf eine Hardwarekomponente benötigt, kann sie eine Anfrage an den Kernel senden und der Kernel wird eine entsprechende Antwort bereitstellen. Diese Anfragen heißen Systemaufrufe oder Systemaufrufe.

Nehmen wir nun den Fall einer VM auf einem gehosteten Hypervisor. Sie führen beispielsweise eine Anwendung auf dem Gastbetriebssystem aus. Dadurch wird ein Systemaufruf an den Kernel des Gastbetriebssystems gesendet. Dies wiederum wird vom Hypervisor interpretiert und in einen anderen Systemaufruf umgewandelt, der diesen Systemaufruf nun an den Kernel des Host-Betriebssystems sendet (denn denken Sie daran, der gehostete Hypervisor ist nur eine weitere Anwendung für das Host-Betriebssystem). Der Kernel des Hostbetriebssystems sendet die Antwort an den Hypervisor, die nun in die entsprechende Antwort für die Anwendung im Gastbetriebssystem umgewandelt werden muss. Puh.

All dies bedeutet, dass gehostete Hypervisor einen ziemlich langen Prozess durchlaufen müssen. Auf der meisten modernen Hardware dauert es nicht so lange, wie es scheint, entspricht aber nicht der nativen Geschwindigkeit und Leistung. Die Lösung hierfür ist Typ-1-Hypervisor.

Gehosteter Hypervisor

Typ 1: Bare-Metal-Hypervisor

Auf den Punkt gebracht, der Bare-Metal-Hypervisor sitzt auf der Firmware-/Treiberschicht. Dies bedeutet, dass es wie ein Betriebssystem direkt mit der Hardware interagieren kann. Alle erforderlichen Betriebssysteme werden auf dem Bare-Metal-Hypervisor installiert und die Anwendungen darüber hinaus. Dies bietet mehrere Vorteile. Alle auf dem Hypervisor installierten Betriebssysteme laufen sehr gut, fast wie native Betriebssysteme, mit minimaler Verzögerung oder Stottern. Wenn die Hardware, auf der der Hypervisor installiert wird, leistungsstark ist (wie es normalerweise bei Gaming-Computern oder Servern der Fall ist), kann er problemlos mehrere Betriebssysteme verwalten.

Bare-Metal-Hypervisor

Einige gängige Beispiele für Bare-Metal-Hypervisoren sind VMWare ESXi, Microsoft Hyper-V, Citrix XenServer, Xen, Linux KVM usw.

Behälter

Container sind VMs etwas ähnlich, aber es gibt einige Unterschiede. Wie wir im Fall von gehosteten Hypervisoren gesehen haben, werden VMs verwendet, um ein ganzes Betriebssystem zu installieren, und dann werden Anwendungen installiert und auf diesen Betriebssystemen verwendet. Ein Container hingegen packt den Code einer Anwendung, ihre Abhängigkeiten, Tools, Bibliotheken, Laufzeiten und alle anderen erforderlichen Dinge und führt genau diese Anwendung in einer virtuellen Umgebung aus.

Container

Das Bild macht die Hierarchie klarer. Beachten Sie, dass der Container über dem Betriebssystem installiert wird und dann Anwendungen direkt im Container ausgeführt werden. Im Container befindet sich kein Betriebssystem, wie es bei VMs der Fall ist.

Verwendet

Wir haben uns also bereits mit den Details der Arbeitsprinzipien von VMs befasst. Es ist an der Zeit zu erfahren, wie es in realen Szenarien nützlich sein kann.

Mehrere Workstations aus einem einzigen System

Der erste Punkt und das wichtigste Verkaufsargument von VMs ist die Tatsache, dass Sie mehrere voneinander getrennte Betriebssysteme gleichzeitig auf derselben Maschine verwenden können. Das eröffnet unglaubliche Möglichkeiten. Wenn Sie beispielsweise zwei Workstations am selben Ort benötigen, können Sie ein leistungsstarkes System kaufen, das in der Lage ist, zwei separate Systeme gleichzeitig auszuführen. Dies wird sich in der Tat als sehr effizient erweisen.

Dies ist auch weit verbreitet. Wenn Sie eine Anwendung benötigen, die auf einem Betriebssystem läuft, das Sie nicht verwenden, müssen Sie das Betriebssystem nicht auf Ihrem Computer installieren. Sie können eine gehostete Hypervisor-Software auf Ihrem Betriebssystem installieren und das unterstützte Betriebssystem installieren. Es ist viel einfacher zu handhaben und erledigt die Arbeit.

Maximale Auslastung

Die maximale Auslastung der Ressourcen ist der Grund, warum Virtualisierung bei Servern sehr beliebt ist. Ein Server ist ein sehr, sehr leistungsfähiger Computer. Für ein einzelnes Betriebssystem ist es schwierig, die Ressourcen der Hardware tatsächlich vollständig zu nutzen. Lösung? Installieren Sie einen Bare-Metal-Hypervisor und führen Sie mehrere Betriebssysteme aus, die zusammen die gesamte Hardware nutzen.

Somit nutzen VMs die Ressourcen maximal aus. Aber es sind nicht nur die Server, von denen wir sprechen. Wenn Sie beispielsweise einen leistungsstarken Gaming-Computer haben, können Sie seine Hardware stattdessen vollständig verwenden, indem Sie beispielsweise ein Betriebssystem als primäre Workstation und eines als NAS verwenden. Oder vielleicht eine größere Anzahl von Betriebssystemen und Aufgaben.

Energie-Effizienz

Da Sie nun zwei Anlagen mit einer Maschine betreiben können statt zwei getrennten Maschinen für zwei verschiedene Anlagen, sparen Sie viel Strom und Strom. Es ist gut für Ihre Stromrechnung; es ist zweifellos auch gut für die Umwelt.

Physischer Raum/ Mobilität

Sie können eine Maschine für mehrere Systeme anstelle von verschiedenen Geräten verwenden, sodass Sie jetzt natürlich viel Platz sparen. Dies bedeutet, dass Sie mit einer sehr leistungsstarken Maschine die Anforderungen mehrerer Maschinen erfüllen können. Wenn Sie also Ihre Infrastruktur von einem Ort an einen anderen verlagern müssen, müssen Sie jetzt weniger physische Hardware verschieben, als Sie es normalerweise tun müssten.

Wiederherstellung

Dies ist eine praktische Funktion. VMs haben die Eigenschaft, "Schnappschüsse" zu machen. Da das gesamte System virtuell ist, erstellen VMs in bestimmten Zeitabständen Kopien ihrer Eigenschaften, Einstellungen und Daten. Wenn Ihr System also irgendwann durcheinander oder beschädigt wird, können Sie zu einem der stabilen Zustände zurückkehren, und es wird nicht viel Schaden angerichtet.

Testbereich

Eine VM (eigentlich auch ein Container) wird oft als Testgelände verwendet. Alle Probleme, die Sie in einem virtuellen Setup verursachen können, können der realen Hardware nichts anhaben, daher ist dies ein idealer Ort zum Testen der neuen Software (insbesondere der Firmware). Entwickler verwenden häufig VMs, um auch die Kompatibilität mit verschiedenen Betriebssystemen zu überprüfen.

Fazit

Virtuelle Maschinen haben uns gegenüber unseren alten Methoden viele Verbesserungen gebracht. Wir können jetzt Systeme auf kleinerem Raum, effizienter und sicherer betreiben. Sie sind zu einer einfachen Lösung für die Verwendung von Software geworden, die von Ihrem Betriebssystem nicht nativ unterstützt wird. VMs sind zu einem Paradies für Testzwecke geworden – alles in allem ideal für persönliche, berufliche und ökologische Zwecke.

Wir hoffen, dass Sie diesen Artikel informativ und hilfreich fanden.

Schlacht um Wesnoth 1.13.6 Entwicklung veröffentlicht
Schlacht um Wesnoth 1.13.6, das letzten Monat veröffentlicht wurde, ist die sechste Entwicklungsversion im 1.13.x-Serie und bietet eine Reihe von Verb...
So installieren Sie League of Legends auf Ubuntu 14.04
Wenn Sie ein Fan von League of Legends sind, dann ist dies eine Gelegenheit für Sie, League of Legends zu testen. Beachten Sie, dass LOL von PlayOnLin...
Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...