Inhaltsverzeichnis
KVM (Kernel-based Virtual Machine)
Virtuelle Maschinen werden auf einem laufenden OS (Server) installiert und können dort mit einem beliebigen (anderen) OS (Linux, Windows) betrieben werden. Die Verwaltung der VM's erfolgt über die GUI des Virt-Manager, das auch auf einer anderen Maschine laufen kann → Fernwartung.
Server, Wirt der VM
Prüfen ob die CPU des Servers geeignet ist, um virtuelle Maschinen zu betreiben
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
Sofern farbig „vmx“ (Intel) oder „svm“ (AMD) auftaucht, unterstützt die CPU Virtualisierung.
Installation
sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager qemu-utils -y
check Status
sudo systemctl status libvirtd.service
Zugriffrechte anpassen, User zu Gruppen hinzufügen
sudo usermod -aG libvirt <USER>
sudo usermod -aG libvirt-qemu <USER>
Spezial bei SRV134 (intern):
sudo usermod -aG alle libvirt-qemu
Speicherort KVM-Images
https://ostechnix.com/how-to-change-kvm-libvirt-default-storage-pool-location/
Zeige laufende VM's
sudo virsh list --all
Zeige Pools
sudo virsh pool-list
Zeige Details des Pools „default“
sudo virsh pool-info default
Zeige den Datenpfad für den Pool „default“
sudo virsh pool-dumpxml default | grep -i path
Zeige alle VM's auf diesem Datenpfad
sudo virsh vol-list default | grep "/var/lib/libvirt/images/"
sudo virsh vol-list default | grep "/home/kvm/images/"
Editiere den Datenpool default → neuen Datenpfad eingeben (z.B. /home/kvm/)
sudo virsh pool-edit default
<pool type='dir'> <name>default</name> <uuid>76f47a3c-7656-4c34-9ab5-c87e5136d532</uuid> <capacity unit='bytes'>396452147200</capacity> <allocation unit='bytes'>71178977280</allocation> <available unit='bytes'>325273169920</available> <source> </source> <target> <path>/home/kvm</path> <permissions> <mode>0755</mode> <owner>1000</owner> <group>1000</group> <label>unconfined_u:object_r:svirt_home_t:s0</label> </permissions> </target> </pool>
Anpassen: PATH /home/kvm
Stop Pool „default“
sudo virsh pool-destroy default
sudo virsh pool-undefine default
Default pool neu erstellen
sudo virsh pool-define-as --name default --type dir --target /home/kvm/
Anpassen: PATH /home/kvm
Pool starten und in zukunft automatisch starten
sudo virsh pool-start default
sudo virsh pool-autostart default
Check den Pfad für default pool
sudo virsh pool-dumpxml default | grep -i path
Check pool-list
sudo virsh pool-list
Restart an Check libvirt
sudo systemctl restart libvirtd
sudo systemctl status libvirtd
Umzug KVM-Image
Auf altem System:
Registrierte Images ansehen
sudo virsh list --all
Altes System (VNAME ersetzen mit korrektem Namen):
sudo virsh dumpxml VMNAME > /tmp/VMNAME.xml
sudo virsh undefine VMNAME
Die Datei VNAME.qcow2 an den neuen Ort kopieren.
Bei Systemwechsel auch die XML-Datei auf das neue System kopieren.
Auf neuem System:
Pfad in der XML-Datei korrigieren, z.B. auf /var/lib/libvirt/images
sudo nano /tmp/VMNAME.xml
<source file='/var/lib/libvirt/images/VMNAME.qcow2'/>
Virtuelle Maschine auf neuem System oder geändertem Pfad aktivieren.
sudo virsh define /tmp/VMNAME.xml
Registrierte Images ansehen
sudo virsh list --all
Virtuelle Maschine einschalten
sudo virsh start <VMNAME>
Virtuelle Maschine neustarten
sudo virsh reboot <VMNAME>
Virtuelle Maschine ausschalten
sudo virsh shutdown <VMNAME>
Netzwerkbrücke
Software „bridge-utils“ bereits installiert - s.o.
Ist die Netzverwaltung auf dem Server mit Netplan realisiert: siehe Bridges mit Netplan.
sudo nano /etc/network/interfaces
Beispiel
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto br0 iface br0 inet dhcp bridge_ports eth0
br0 = Name der Netzwerkbrücke
eth0 oder eno1 oder … = Name der Netzwerkkarte
Ggf. Netzwerk neu starten, siehe Netzwerk - Restart
Download Betriebssysteme
Debian 11 - ISO download in das Verzeichnis für OS-Images
cd /home/kvm/
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.6.0-amd64-netinst.iso
Images für Windows finden sich unter: https://www.microsoft.com/de-de/software-download
Sollte man die Seite unter einem Windows-OS aufrufen, dann sind die Download-Optionen dadurch ggf. eingeschränkt. Unter einem Linux-System kann man problemlos Images aller gängigen Win-Systeme downloaden. Natürlich ohne Lizenz!
Installation dann über das GUI des Virt-Manager
Administration
Virt-Manager installieren, kann auch auf einem anderen System erfolgen.
sudo apt install virt-manager
Starten über die GUI
Festplattenspeicher erweitern
Das virtuelle System muss vor der Vergrößerung heruntergefahren werden.
Auf dem Server in das Verzeichnis des Images wechseln.
Anzeigen der aktuellen Größe:
sudo qemu-img info win10.qcow2
win10.qcow2 = Image
Vergrößern (hier um 10 GB):
sudo qemu-img resize win10.qcow2 +10G
Dann mit Hilfe der Windows-Datenträgerverwaltung die Festplatte erweitern. Erweitern funktioniert allerdings nur, wenn der (neue) freie Speicher direkt neben der Partition liegt, die erweitert werden soll. Anderfalls ist das „Erweitern“ ausgegraut und es wird eine externes Tool benötigt. Z.B. die Freeware-Version von Minitool.