====== KVM (Kernel-based Virtual Machine) ====== ++++ Quellen: | * https://virt-manager.org/ * https://www.florian-fritsch.com/kvm-unter-debian-10-mit-windows-10-vm/ * https://blog.thul.org/technik/anwendungen/virtualisierung-unter-debian/ * https://wiki.libvirt.org/page/The_daemon_cannot_be_started ++++ 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 sudo usermod -aG libvirt-qemu 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 default 76f47a3c-7656-4c34-9ab5-c87e5136d532 396452147200 71178977280 325273169920 /home/kvm 0755 1000 1000 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 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 Virtuelle Maschine neustarten sudo virsh reboot Virtuelle Maschine ausschalten sudo virsh shutdown ==== Netzwerkbrücke ===== Software "bridge-utils" bereits installiert - s.o. \\ Ist die Netzverwaltung auf dem Server mit Netplan realisiert: siehe [[https://netplan.readthedocs.io/en/latest/netplan-yaml/#properties-for-device-type-bridges|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 [[open:it:net#Restart der Netzwerkeinstellungen|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 [[https://de.minitool.com/datentraegerverwaltung/windows-10-partition-erweitern.html|Minitool]].