Virtualisierung mit kvm & VMM


© September 2020, Letzte Änd. 26.05.23

Im ersten Teil KVM & virsh hatte ich beschrieben, wie kvm einzurichten ist
und wie man es über virsh über ein CLI - Kommand-line-Interface bedienen kann.

Ebenso kann man KVM etwas komfortabler, über die grafische Oberfläche, mit den Virtual Machine Manager benutzen.

Themen

Via Virtual Machine Manager Mint 21.1 installieren

Da auf dem konservativen Debian 10 11 nicht immer die aktuellste Software ist,
möchte ich mir virtualisiert Linux Mint 20.1 21.1 installieren.
Hierfür habe ich mich für die graphische (Gnome) open Source Desktop Software
virt-manager.org  virt-manager  oder auch VMM genannt, entschieden.

Da VMM auf libvirt aufsetzt, ist das auch zu installieren.

su
apt install qemu-kvm                        die Virtualisierungssoftware

apt install libvirt-bin                     gibt es nicht mehr
Package libvirt-bin is not available, but is referred to by another package.

apt install libvirt-clients                 enth. libvirt-daemon

apt install libvirt-daemon-system           enth. Konfig. für den libvirt-daemon

apt install virt-manager                    grafische Manager

Benutzer kvm & libvirt hinzufügen.

su
/usr/sbin/adduser a1 libvirt

Nach der Installation, kann ich das Programm unter folgenden Pfad aufrufen
Applications > System > Virtual Machine Manager
Alternativ kann ich natürlich auch auf dem CLI - command line interface
virt-manager eingeben.

Die Einschaltmeldung bietet erst einmal nicht viel.

erster Start vom vmm

Um eine virtuelle Maschine zu erzeugen, bitte das Monitor-Symbol
mit den gelben Stern anklicken. (ganz links über NAME)

vmm > new machine step 1

Alternativ kan man auch   File > New virtual Machine   anklicken.

Folgendes Menü erscheint (1. von 5 Schritten)…

erzeuge virtuelle Maschine

Zunächst ist die Art der Installation auszuwählen.
In meinem Fall habe ich Mint 21.1 runter geladen.
Also belasse ich die (Default-) Einstellung auf "Local install media"
und klicke auf Forward.

via Monitor virtuelle Maschine erzeugen

Nun wähle ich den Browse Button und erhalte in etwa folgendes Menü.

Boot-Medium auswählen  step 2

In der Übersicht kann ich sehen, wieviel Platz mir für mein virtuelles System bleibt.
Durch die vorherigen Tätigkeiten (mit virsh),
sind bereits Dateien Linux Mint 20.sh und mxlinux.sh vorhanden.
Ebenso liegt /var/lib/libvirt/images an anderer Stelle (mehr Platz).
Siehe KVM & virsh - Kapitel virsh Konfiguration.

Die ISO-Datei habe ich über den Button Browse Local ausgewählt,
hier linuxmint-20.1-xfce-64bit.iso.

Da das Betriebssystem nicht automatisch erkannt wurde,
habe ich das Häkchen für automatische Erkennung raus genommen
und per Hand die Version, hier Ubuntu 18.04, ausgewählt.
und versucht Ubuntu 22.04 LTS einzugeben.
Da dies unbekannt ist, erscheint Generic.

Bei exotischen Linux-Versionen kann es ein wenig Jugend forscht bedeuten,
bis man einen passenden Ursprung gefunden hat.

ISO und Betriebssystem festlegen

(2/5) Weiter geht es wieder mit Forward.

Da unter Umständen mehrere Systeme parallel aktiv sind, verteile ich nur wenig Ressourcen.
Beispielsweise definiere ich 4096 8192 MB (von 16 GB) RAM-Speicher
und statt 4 nun 6 (von 12) CPU-Kerne für Linux Mint mit
MPLAB, FreeCAD, Slicer, etc.

RAM & CPU  step 3

(3/5) Weiter geht es wieder mit Forward.

Vom SSD-Plattenplatz gebe ich 15 40 GB (von den verbleibenden 179 GB) für das virtuelle System ab.

disk size  step 4

(4/5) Weiter geht es wieder mit Forward.

Nun ist es noch wichtig dem Kind einen Namen zu geben. z.B.   mint21_1.
Weitere Konfigurationen, wie Netzwerk, etc. entfallen hier…
Standardmäßige wird zunächst ein NAT-Netzwerk vom Host verwendet.

Name & Abschluss  step 5

(5/5) Der Abschluss geschieht mit Finish.

Kurz darauf erscheint schon das Boot-Menü von der ISO…

Bootmenü Mint

Auf dem Desktop der gestarteten Live-CD befindet sich das Menü Install Linux Mint.
Erst nach diesem Aufruf wird das System dauerhaft auf die zuvor definierte virtuelle Platte geschrieben.

von Life CD - Möglichkeit auf Platte zu installieren

Alle Dialoge zu durchlaufen (mit Spracheinstellung, Tastertur, Benutzer, Passwörter, etc.)
bis zum Neustart und anschließenden Update des Systems, hat keine 5 Minuten gedauert.

Wem die Anzeige wie ein Guckloch vorkommt,
kann die Displayauflösung innerhalb von Mint verändern.
Siehe   Mint-Button > Settings > Display > … z.B. 1920 x 1080

display setting

Erste Amtshandlung sollte  sudo apt update  und sudo apt upgrade  sein.

Zum Anfang

Tasten

Manchmal schmiert einem das Gast-System ab, aber die Tastertur oder Maus ist noch im Gast gefangen.
Um trotzdem den Gast zu entkommen, kann man sog. Hotkeys definieren.
Siehe z.B. virt-viewer --hotkeys=toggle-fullscreen=shift+f11,release-cursor=shift+f12

Standardmässig dient zum Ausstieg aus den KVM Gast-System folgende Tasterturkombination.
CTRL-Left & ALT-Left

fedoraproject.org   Die grafische Konsole der virtuellen Maschine
golinuxcloud.com   How to exit full screen mode in qemu virt-manager ( RHEL / CentOS 7)

Zum Anfang

Mint ändern, starten, stoppen, etc.

Hat man via Pulldown-Menü   Applications > System > Virtual Machine Manager   gestartet,
werden 2 Menü-Ebenen angezeigt.

Alternativ kann man auch im CLI - command line Interface virt-manager eingeben.

File > New virtual Machine zur Erzeugung eines weiteren Gastsystem ist bereits beschrieben.

File > add Connection benötige ich nicht, wenn ich lokal bleibe.

Edit > Preferences erlaubt Einstellungen, welche sich auf alle Gäste beziehen.

kann man entweder mit einen Doppelklick auf das zurzeit nicht aktive virtuelle System

Monitor Symbol von mint20_1

oder über den Open-Dialog (2. Symbol des dunklen Monitors)

Monitor mit Text Open

oder über Edit > Virtual Machine Details
ein weiteres Fenster zur Konfiguration des Gastsystems öffnen.

Konfig eines Gastsystems

Nun kann man das Glübirnen Symbol - show virtual hardware details anklicken.
Die Übersicht sieht wie folgt aus:

VMM Gast-Konfigurations übersicht

Overview ermöglicht Name, Titel & Beschreibung zu editieren.
Desweiteren wird eine eindeutige UUID angezeigt.
Sollte eine Kopie des Systems erzeugt werden, wird mindestens die UUID geändert.

OS information ist wichtig um die Virtualisierung optimieren zu können.
Es entspricht unter virt-install den Parameter --os-variant.
Die passende Version kann mit den Befehl osinfo-query os | more herausgefunden werden.
Falls nichts passendes gefunden wird, kann man immer noch --os-variant generic angeben.

Performance Falls einiges Disabled ist, so kann man das über die allgemeinen Einstellungen ändern.
Edit > Preferences > Reiter Polling

Edit > Preferences > Reiter Polling

CPU Ich kann zwar nicht die Leistung in Prozent angeben, wie z.B. bei VirtualBox,
aber die Anzahl an Kerne angeben.

Memory wird sinnvollerweise als Vielfache von z.B. 1024 angegeben.

Boot Options ermöglicht die Boot-Reihenfolge zu ändern und
einen automatischen Start beim Start des Host-Systems zu veranlassen.

Disk kann auf verschiedene Bus-Typen (IDE, SATA, SCSI, USB ode VirtIO) basieren.
Bevorzugt, würde ich VirtIO verwenden.
Eine Einstellung für SSD, statt HD, habe ich bisher nicht gefunden.
Leistungsfähigstes Format ist qcow2
mit writeback Cache -> Gast Betriebssystem verwaltet es (flush cmd) selber.

VirtIO

Anbei ein Bild eines 32bit Deb-Gast unter 64bit DEB9-Host.

ide

Der NIC oder Network interface controller kann unterschiedlich angebunden sein.
Wenn man Nichts einstellt ist es: 'default' NAT -
Desweiteren ist auch direkt die physikalische Schnittstelle möglich.
Hier: enp37s0 für LAN & wlp36s0 für das WLAN.

ide

Weitere Einstellungen sind das Device Modell der virtuellen Hardware.
Hier kann man sich zwischen Intel e1000e; Hypervisor default und dem virtio Treiber enscheiden.

ide

Insgesamt sehen die Standard-Einstellungen unter DEB 10 wie folgt aus:

ide

Generell ist es besser den emulierten Rechner nicht mit der gleichen IP-Adresse
laufen zu lassen, sondern mit einer anderen.
Dies habe ich beispielsweise auf dem always on Rechner
(mit 2 Eth-Interfaces) wie folgt als Bridge realisiert.

ide

Wobei enp3s0 & enp4s0 die beiden physikalischen Ethernet Schnittstellen sind.
Als Alternative zu Bridge gibt es noch VEPA, Private und Passthrough

Wie man ein bridged Network erstellt, habe ich unter Netzwerke unter Linux beschrieben.

Maus, Keyboard bedürfen glaube ich keiner weiteren Erklärung.

Display sollte vorzugsweise auf Spice, statt VNC stehen,
da dies das performantere und modernere Interface ist.

ide

Sound kann ich bei Problemen downgraden auf z.B. HDA (ICH6) oder AC97.

Video Model QXL ist die Standard-Hardware bei Spice.

Controller USB steht normalerweise auf USB 2.0, kann aber, sofern es die Hardware erlaubt, auf USB 3.0 gestellt werden.

Alle Änderungen werden erst bei Neustart des Gast-Systems übernommen.

Zum Anfang

Shared Drive

Möchte man ein zwischen Host und Gast einen geteilten Ordner einrichten, so ist erst der Ordner zu erzeugen.
Z.B. auf der HD, allerdings nicht im Verzeichnis des Benutzers, denn dann hagelt es Fehlermeldungen…

su
mkdir /mnt/sda3/share

Im Detail-Menü des Virtual Machine Manager kann man dann über folgenden Befehl
den geteilten Ordner hinzufügen.  Add Hardware > Reiter Filesystem
Die Einstellungen sind: Path; Passthrough; Immediate
Hier kopiert man den Pfad /mnt/sda3/share hinein und bestätigt mit Finish.

shared drive

Danach kann ich das Gast-System starten und

Zum Anfang

Migration von VirtualBox zu KVM

Zum Anfang

via Virtual Machine Manager Win10 installieren

verschiedenen Konfigurationen

Zum Anfang

Extinction Pack o.ä.

Zum Anfang

Guest Addition




Zum Anfang

Quellen

admin-magazin.de   Virtuelle Maschinen mittels VNC und Spice bedienen - 2012
via virt-manager

computerwoche.de   KVM-Workshop-für-Ubuntu - 2013
via virt-manager

https://docs.fedoraproject.org/de-DE/Fedora/12/html-single/Virtualization_Guide/index.html

frontpagelinux.com   Getting Started With KVM Hypervisor, Virtual Machines The Right Way

funtoo.org   libvirt (Anleitung für DEB nicht so geeignet)
via NAT, spice, Virt-Manager, BIOS-Versionen, XML editing to return unused space, Virtual Machine Template

golinuxcloud.com   How to configure bridged network in virt-manager (CentOS / RHEL 7)

howtoforge.de   KVM Hochverfügbarkeits-Cluster mit 2 Nodes (Debian 9)

libvirt.org   Creating a new virtual network with VirtManager

libvirt.org   Domain XML format
Ein paar Netzwerk-Grundlagen (NAT, routed, isolated) und Konfiguration mit virt-manager, Netzwerksteuerung mit virsh.

anracom.com   KVM/Qemu VMs with a multi-screen Spice console – II – local access with remote-viewer via a network port.

linux-kvm.org   Example Sharing Host files with the Guest

linuxtechi.com   install-kvm-hypervisor-on-centos-7-and-rhel-7
bridge interface, virt-manager, virt-install

ostechnix.com   Manage KVM virtual machines with virt-manager

https://unix.stackexchange.com/questions/86071/use-virt-manager-to-share-files-between-linux-host-and-windows-guest

suse.com   Configuring Virtual Machines with Virtual Machine Manager

tecmint.com   How to create virtual Machines using KVM
KVM Features, zu inst.Pakete Beschreibung, create VMs via virt-manager

tecmint.com   How to install KVM on Ubuntu (2020)
kvm-ok, virt-install, virt-manager, bridge-utils nur installiert (ohne config)

tecmint.com   install and configure kvm in Selinux (2015)
create VM with virt-manager;

tecmint.com   install-kvm-on-ubuntu (2020)
create VM via virt-install & via virt-manager (recht kurz)

https://www.tecmint.com/manage-virtual-machines-in-kvm-using-virt-manager/

techotopia.com   Creating KVM Virtual Machines on RHEL 8 using Cockpit and virt-manager
install cockpit-machines; virt-viewer; virt-manager

thomas-krenn.com   Virtual Machine Manager - GUI zur Verwaltung virtueller Maschinen

https://wiki.ubuntuusers.de/virt-manager/

virt-manager.org   Manage virtual machines with virt-manager

stackexchange.com   CentOS 6.5 + KVM (Virtual Machine Manager) create shortcut - Laucher for Guest Machine

Zum Anfang