2054764

Die Grundlagen der Virtualisierung unter Linux

02.02.2018 | 10:15 Uhr |

Ein Computer, ein Betriebssystem: Diese Gleichung stimmt so schon länger nicht mehr. Virtualisierungs-Software erlaubt es, mehrere Betriebssysteme gleichzeitig auf der Hardware auszuführen.

Wer mehrere Betriebssysteme auf seinem PC nutzen möchte, muss diese nicht nebeneinander auf der Festplatte installieren. Einfacher geht‘s mit Virtualisierungssoftware, über die sich weitere Systeme in einem Fenster oder bildschirmfüllend starten lassen. Das ist praktisch, wenn Sie neue Betriebssysteme ausprobieren oder unter Linux auch Windows-Programme nutzen müssen. Im Vergleich zur herkömmlichen Installation auf der Festplatte bieten virtuelle Maschinen einige Vorteile: Sie können mehrere virtualisierte Systeme gleichzeitig nutzen, der aktuelle Zustand lässt sich jederzeit sichern sowie wiederherstellen und Sie können Software gefahrlos ausprobieren, ohne das installierte Hauptsystem zu gefährden. Es gibt jedoch auch Nachteile: Virtualisierte Systeme laufen etwas langsamer, die Grafikleistung ist geringer und Sie benötigen ausreichend CPU-Leistung und Hauptspeicher für zwei oder mehr Betriebssysteme.

Siehe auch: Virtualisierung mit NAS-Systemen verwirklichen

So funktioniert Virtualisierung

Virtualbox und Vmware Workstation Player sind ohne große Einarbeitung leicht zu bedienen.
Vergrößern Virtualbox und Vmware Workstation Player sind ohne große Einarbeitung leicht zu bedienen.

Virtualisierungssoftware bildet einen kompletten Rechner („virtuelle Maschine“) mit allen Komponenten wie Festplatten-, Grafik und Netzwerkadapter nach. Wenn im virtuellen System („Gastsystem“) ein Zugriff beispielsweise auf das Netzwerk erfolgt, läuft dieser über einen virtuellen Netzwerkadapter und dann über einen Treiber des installierten Systems („Hostsystem“) zum physikalisch vorhanden Netzwerkadapter. Das Gastsystem sieht also nicht die tatsächlich vorhandene Hardware, sondern nur die virtuellen Komponenten.

Bei der Virtualisierung fängt eine Virtualisierungsschicht Befehle ab, die das Gastsystem an Prozessor und Hardware sendet. Nur das zuerst gestartete Betriebssystem darf privilegierte CPU-Instruktionen verwenden, die später gestarteten Anwendungen dagegen nicht. Dieser privilegierte Zugriff findet im „Ring 0“ der CPU statt („Kernel-Mode“) und umfasst direkten Zugriff auf Interrupts und RAM. Die abgesicherten Ringe darüber, Ring 1, 2 und 3, gehören zum „User-Mode“. Treiber dürfen beispielsweise im Ring 1 und 2 arbeiten, normale Programme für das Betriebssystem arbeiten dagegen nur ab Ring 3. Das gilt auch für die Virtualisierungssoftware. Damit trotzdem CPU-Befehle aus dem Gastsystem beim Prozessor ankommen, baut ein Hypervisor die Anweisungen bei Bedarf um. Dafür ist eine ständige Analyse der Befehle aus dem Gastsystem nötig. Was umgebaut werden muss, hängt von der Art des virtuellen Systems und der Plattform ab (32 oder 64 Bit). In der Virtualisierungssoftware gibt es daher Vorlagen mit unterschiedlichen Optionen für ein 32-Bit- sowie 64-Bit-Windows oder Linux.

Paravirtualisierung: Bei diesem Verfahren greift der Kernel des Gastsystems über eine abstrakte Verwaltungsschicht auf die Hardwareressourcen zu, was zu einer Verbesserung der Geschwindigkeit führen kann. Der Kernel muss dafür speziell angepasst sein, was aber bei aktuellen Linux- und Windows-Systemen standardmäßig der Fall ist.

Virtuelle Maschinen beschleunigen

Ein Gastsystem („VM“) kann die Hardware im PC nicht direkt verwenden.
Vergrößern Ein Gastsystem („VM“) kann die Hardware im PC nicht direkt verwenden.

Ursprünglich war für die üblichen x86-Prozessoren, die in den meisten PCs und Notebooks stecken, die Virtualisierung von Betriebssystemen nicht vorgesehen. Es kann nur ein einziges System laufen, das die volle Kontrolle über den Prozessor und die sonstige Hardware hat. Seit längerer Zeit schon lassen sich jedoch Virtualisierungsfunktionen über Treiber und Software nachrüsten, ohne dass die Hardware das explizit unterstützen muss. Die damit erreichbare Leistung ist zufriedenstellend, wenn auch nicht optimal.

Seit 2006 unterstützen die Prozessorhersteller AMD und Intel die Virtualisierung auch direkt und hardwareseitig in der CPU. Das hat seither die Leistung der virtualisierten Systeme deutlich verbessert. Außerdem ist es möglich, in einer virtuellen Maschine ein 64-Bit-Betriebssystem (Gastsystem) zu betreiben, selbst wenn diese unter einem 32-Bit-System (Hostsystem) ausgeführt wird. AMD nennt die Technik AMD Virtualization (AMD-V). Sie ist in AMD-Prozessoren seit dem Athlon 64 von 2006 enthalten. Bei Intel heißt die vergleichbare Erweiterung „Virtualization Technology“, „Intel VT“ oder „Intel VT-x“ und ist seit dem Pentium 4 Modell 662 verfügbar.

In der Praxis spielt das jedoch keine große Rolle. Kaum jemand wird einen mehr als zehn Jahre alten PC mit wenig CPU-Leistung und Hauptspeicher nutzen, um darauf mehrere Betriebssysteme zu virtualisieren. PCs und Notebooks mit 64-Bit-Prozessor und einem 64-Bit-Betriebssystem sind inzwischen Standard. Zu Testzwecken kann man jedoch auch ein 32-Bit-Gastsystem installieren.

Virtualisierungserweiterungen: „cat /proc/cpuinfo“ gibt Infos zum Prozessor aus.
Vergrößern Virtualisierungserweiterungen: „cat /proc/cpuinfo“ gibt Infos zum Prozessor aus.

Die hardwaretechnischen Virtualisierungsfunktionen sind in der PC-Firmware allerdings häufig deaktiviert. Genauen Aufschluss über die Fähigkeiten der CPU zeigt unter Linux folgende Befehlszeile in einem Terminalfenster

egrep -c '(svm|vmx)' /proc/cpuinfo 

Wenn Sie in der Ausgabe einen Wert größer „0“ sehen, dann unterstützt der Prozessor Virtualisierungsfunktionen und diese sind auch aktiv. Bei einem Intel Core i7 beispielsweise lautet das Ergebnis „8“, weil alle acht Prozessorkerne Intel-VT unterstützen. Mit

cat /proc/cpuinfo  

können Sie sich auch die komplette Liste der CPU-Eigenschaften anzeigen lassen. Die einschlägigen Werte „vmx“ beziehungsweise „svm“ tauchen hinter „flags:“ auf.

Erscheint in der Ausgabe von cpuinfo dagegen eine „0“, dann Sie im Bios/Firmwaresetup nach, ob sich AMD-V oder Intel-VT („vt-x“, „Intel Virtualization Technologie“) aktivieren lässt. Manchmal gibt es auch Optionen für „AMD-Vi“ beziehungsweise bei Intel „Vt-d“. Sofern vorhanden, aktivieren Sie diese ebenfalls.

Dahinter verbirgt sich die I/O-Virtualisierung („Input/Output“), über die sich der Datenaustausch mit Netzwerkadaptern, Grafikchips und Festplatten-Controllern beschleunigen lässt.

Virtualisierungssoftware wie Virtualbox oder Vmware funktioniert notfalls auch ohne direkte Hardwareunterstützung – wenn auch oft etwas langsamer. Allerdings ist es dann nicht möglich, beispielsweise ein 64-Bit-System zu virtualisieren, wenn der PC unter einem 32-Bit-Linux läuft.

Virtualbox vs. Vmware vs. Hyper-V: Der beste virtuelle PC

Hypervisor für Desktop und Server

Intel-VTx ist oft nicht standardmäßig aktiviert. Setzen Sie die Option auf „Enabled“.
Vergrößern Intel-VTx ist oft nicht standardmäßig aktiviert. Setzen Sie die Option auf „Enabled“.

Es gibt verschiedene Techniken, Gastbetriebssysteme auf einem Rechner in virtuellen Umgebungen zu starten. Bei diesen Techniken unterscheidet man zumeist danach, auf welcher Ebene die Abstraktionsschicht angesiedelt ist, auf der die Virtualisierung vonstatten geht. Die verschiedenen Methoden liefern je nach angestrebten Einsatzzweck, etwa auf Desktops, Servern und für den Zugriff über das Netzwerk, die beste Leistung bei niedrigem Verwaltungsaufwand.

Typ-2-Hypervisor: Setzt eine Virtualisierungsumgebung als Basis ein ausgewachsenes Betriebssystem voraus, dann spricht man von einem „Typ-2-Hypervisor“. Generell ist ein Hypervisor, auch „Virtual Machine Monitor“ genannt, jene Verwaltungssoftware, welche die Kontrolle über die virtuellen Maschinen hat, diese starten und anhalten kann sowie Ressourcen zuweist. Beispiele für diesen Typ 2 sind die verbreiteten Virtualisierungsprogramme für den Desktop: Vmware Workstation Player, Vmware Workstation und Oracle Virtualbox.

Typ-1-Hypervisor: Läuft der Hypervisor direkt auf der Hardware und ersetzt dabei das Betriebssystem, dann handelt es sich um einen Typ-1-Hypervisor. Diese Virtualisierungsumgebungen werden beim Einsatz auf Servern und in Rechenzentren auf Computern bevorzugt, die sowieso nur virtuelle Maschinen beherbergen sollen – dann allerdings gleich dutzendweise. Beispiele dafür sind Vmware Vsphere, Oracle VM Server und Citrix Xen Server.

Mischformen: Hyper-V von Microsofts Serverbetriebssystemen und Windows 8.1/10 Pro sowie die Technik „KVM“ des Linux-Kernels sind Mischformen. Die Virtualisierungsfunktionen sind hier Teil des Betriebssystems selbst oder werden wie bei von Linux direkt als Kernel-Modul geladen. Das Betriebssystem kann sich so selbst virtualisieren und mehrere unabhängige Instanzen starten.

Virtuelle Maschinen installieren oder herunterladen

Fertige virtuelle Maschinen gibt es kostenlos von Microsoft. Sie laufen 90 Tage lang.
Vergrößern Fertige virtuelle Maschinen gibt es kostenlos von Microsoft. Sie laufen 90 Tage lang.

In der Regel installieren Sie das gewünschte Gastbetriebssystem selbst in einer virtuellen Maschine. Dafür benötigen Sie die zugehörige ISO-Datei, die Sie auch sonst für die Installation auf der Festplatte verwendet würden. Tipps zur Installation von Virtualbox und Vmware und der Einrichtung virtueller Maschinen finden Sie auf den folgenden Seiten.

Es gibt aber bereits komplett vorbereitete virtuelle Maschinen zum Download. Microsoft beispielsweise bietet auf www.modern.ie wahlweise Windows 7, 8.1 und 10 als Testumgebungen für den Internet Explorer an (90 Tage). Folgen Sie auf der Seite dem Link „Virtual Machines“. Für Virtualbox ist www.virtualboximages.com eine gute Anlaufstelle. www.osboxes.org bietet Dateien für Virtualbox und Vmware an und https://solutionexchange.vmware.com nur für Vmware.

Für Profis: Virtualisierung mit KVM

Im Linux-Kernel ist die Virtualisierungssoftware bereits enthalten.
Vergrößern Im Linux-Kernel ist die Virtualisierungssoftware bereits enthalten.

KVM (Kernel Virtual Machine) ist bereits seit längerer Zeit als Modul ein Bestandteil des Linux-Kernels. Zwingende Voraussetzung für KVM ist, dass die CPU des Systems die Virtualisierungserweiterungen von Intel (Intel VT-x) oder AMD (AMD-V) mitbringt. KVM selbst leistet keine Emulation, kann aber Geräte wie Netzwerk- und Festplattenadapter paravirtualisieren und an das Gastsystem weiterreichen. Für die Emulation von virtuellen Geräten wie Grafik- und Soundkarte zieht KVM bei Bedarf QEMU heran.

KVM besteht im Wesentlichen nur aus einem Kernel-Modul. Tools zur Konfiguration und Verwaltung der virtuellen Maschinen gehören nicht zum KVM-Projekt. Als grafisches Front-End dient der Virtual Machine Manager , der in den Repositories der meisten populären Distributionen enthalten ist. Die Verbindung zur Grafikausgabe des Gastsystems erfolgt über VNC oder über das Protokoll Spice. Unter Ubuntu installieren Sie die nötigen Pakete in einem Terminalfenster mit folgender Befehlszeile:

sudo apt install qemu-kvm libvirt-bin bridge-utils virt-manager qemu-system python-spice-client-gtk  

Der aktuell angemeldete sudo-Benutzer wird bei der Installation der Programmpakete automatisch zur Gruppe „libvirtd“ hinzugefügt. Starten Sie Linux neu oder melden Sie sich ab und wieder an, damit diese Änderung wirksam wird.

Mit dem Virtual Machine Manager (Ubuntu- Dash: „Virtuelle Maschinenverwaltung“) sind Einrichtung der virtuellen Maschinen und Anpassungen bei den Gastsystemen komplizierter als bei Virtualbox oder Vmware. KVM wird überwiegend zur Virtualisierung von Linux-Servern genutzt. Hauptmotiv für KVM ist gegenüber Virtualbox und Vmware eine noch deutlich verbesserte Leistung. Bei der Windows-Virtualisierung ist KVM jedoch unterlegen. Hier müssen Sie sogar mit Abstrichen bei der Geschwindigkeit rechnen. Für Windows ab Vista (32 Bit und 64 Bit) gibt es von Red Hat entwickelte und von Microsoft signierte Gerätetreiber ( Virtio-Driver ), um paravirtualiserte Geräte des Hosts im Gast zu verwenden. Ausführliche Infos und Tipps zu KVM finden Sie hier .

Simulation - Emulation - Virtualisierung

Im Zusammenhang mit dem Thema Virtualisierung tauchen häufig Begriffe wie Simulator, Emulator und virtuelle Maschine auf, die zwar Ähnliches, aber nicht dasselbe bedeuten. In einer Simulation wird ein fremdes System mit seinen Hardware- und Softwareeigenschaften vollständig abgebildet. Ein Beispiel dafür ist die Softwaresimulation des ab 1955 entwickelten historischen Computers Zuse Z22.

Mit Playonlinux lassen sich einige Windows-Anwendungen auch unter Linux nutzen.
Vergrößern Mit Playonlinux lassen sich einige Windows-Anwendungen auch unter Linux nutzen.

Für die Emulation genügt es, die Äußerlichkeiten nachzubilden – etwa, damit Programme kompatible Soft- und Hardwareschnittstellen vorfinden. Gemäß dieser Definition handelt es sich beispielsweise bei Wine eher um eine Art Emulator. Wine bildet die Windows-API nach, die Funktionsaufrufe für Linux umsetzt. Das kann eine Alternative zur Virtualisierung sein, wenn Sie nur einzelne Windows-Programme unter Linux starten möchten. Allerdings funktioniert das nicht mit jedem Programm reibungslos und ohne Einschränkungen. Zu Wine und seinem Konfigurationswerkzeug Playonlinux finden Sie weitere Informationen im Artikel .

Virtualisierung bedeutet, dass einem Gastbetriebssystem eigene Instanzen von Hard- und Software zugewiesen werden mit dem Ziel, mehrere konkurrierende Systeme gleichzeitig auszuführen, ohne das Wirtsbetriebssystem zu ändern. Bei dieser Technik geht es darum, möglichst wenig zu simulieren oder zu emulieren. Stattdessen werden Hardwarezugriffe möglichst immer an die tatsächlichen Systemkomponenten wie Prozessor, Grafikkarte, Festplatte durchgereicht und von der Virtualisierungsumgebung nur verwaltet.

0 Kommentare zu diesem Artikel

PC-WELT Marktplatz

2054764