KVM
Seit ein paar Wochen beschäftigen sich ein paar von uns mit KVM; hier sammeln wir interessante Informationen.
Fragen
- Seit Version xxx von qemu werden Snapshots direkt in den qcow-Images gespeichert; wie kann man veranlassen, dass Snapshots weiterhin in externen Dateien landen?
Sammelsurium
Alles mögliche, was man so zum Thema gefunden hat…
- Online-Dokumentation von RedHat: https://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Host_Configuration_and_Guest_Installation_Guide/
- KVM Bestpractices von IBM: https://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaat/liaatbpkickoff.htm
- KVM-Tuning: https://www.linux-kvm.org/page/Tuning_KVM
- CPU-Flags: https://blog.incase.de/index.php/cpu-feature-flags-and-their-meanings/
- https://libvirt.org
- https://libvirt.org/storage.html#StorageBackendLogical
- https://www.ovirt.org/Develop
- https://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Speichermedien/_VM-Snapshots
- https://serverfault.com/questions/119949/how-to-copy-kvm-disk-image-to-lvm
- https://doc.opensuse.org/documentation/html/openSUSE/opensuse-kvm/sec.libvirt.stornet.storage.html
- https://redes-privadas-virtuales.blogspot.com/2011/05/taking-snapshots-on-kvm-with-lvm.html
- https://redes-privadas-virtuales.blogspot.de/2011/03/taking-snapshots-on-kvm-with-libvirt.html
- https://blog.allanglesit.com/2011/03/linux-kvm-managing-disk-images/
- https://www.centos.org/docs/5/html/5.2/Virtualization/chap-Virtualization-Managing_guests_with_virsh.html
- https://redes-privadas-virtuales.blogspot.com/2011/03/taking-snapshots-on-kvm-with-libvirt.html
- https://wiki.kartbuilding.net/index.php/KVM_Setup_on_Debian_Squeeze
- CPU-Affinität: https://docs.fedoraproject.org/en-US/Fedora/13/html/Virtualization_Guide/ch25s06.html
- RAID, LUKS, LVM, KVM: https://serverfault.com/questions/453198/high-i-o-latency-with-software-raid-luks-encrypted-and-lvm-partitioned-kvm-setu
IO
- https://careers.directi.com/display/tu/Understanding+and+Optimizing+Disk+IO
- https://www.open-attic.org/blog/openattic-blog-einzelansicht/title/xfs-als-basis-fuer-performante-virtualisierung.html
Tipps
Migration
- https://serverfault.com/questions/156502/how-do-i-migrate-a-kvm-guest-from-host-to-another (letzter Beitrag)
- https://libvirt.org/migration.html
PCI-Geräte zur KVM-Maschine durchreichen
https://www.linux-magazin.de/Heft-Abo/Ausgaben/2010/04/Was-ist-schon-real
Ein anderer Einsatz für Grafikkarten, der auch ohne KVM funktioniert könnte irgendwann Folgender sein: https://www.nvidia.de/object/vgx-remote-desktop-virtualization-de.html.
KVM auf einem USB-Stick
Umgang mit Images
https://blog.allanglesit.com/2011/03/linux-kvm-managing-disk-images/
Speicher sparen mit KSM
KSM = Kernel Samepage Merging
Die Speicherbereiche, die mehrfach vorhanden sind, werden zusammengelegt. Der Daemon ksmd läuft deshalb die ganze Zeit und kümmert sich darum.
Mit folgendem, etwas geänderten Kommando (von diesem Blog) kann man sich anzeigen lassen, wie viel Speicher gemeinsam genutzt wird:echo "How many shared pages are being used: $(( $(cat /sys/kernel/mm/ksm/pages_shared) * $(getconf PAGESIZE) / 1024 / 1024 ))MiB" echo "How many more sites are sharing them i.e. how much saved: $(( $(cat /sys/kernel/mm/ksm/pages_sharing) * $(getconf PAGESIZE) / 1024 / 1024 ))MiB"
Beispiele und frei gewordener RAM
- KVM Host mit 5 VMs und Minecraft-Servern: 1525 MiB bis 1868 MiB
- KVM Host mit 7 VMs: 802 MiB
Unsortiert
KVM und Bridges:
- https://www.linux-kvm.org/page/HOWTO1
- https://davemorris.wordpress.com/2010/11/22/kvm-snapshot-backups-with-qemu-img/
- https://tldp.org/HOWTO/BRIDGE-STP-HOWTO/set-up-the-bridge.html
- https://libvirt.org/formatsnapshot.html#example
- https://blog.datentraeger.li/?p=921
- https://www.linux-kvm.org/page/Virtio
- https://libvirt.org/formatnetwork.html#elementsAddress
- https://wiki.libvirt.org/page/Networking
- https://www.linux-kvm.org/page/Main_Page
- https://inqbus-hosting.de/support/dokumentation/docs/debian-unter-kvm-mit-libvirt
- https://debianforum.de/forum/viewtopic.php?f=30&t=128367
- https://wiki.kartbuilding.net/index.php/KVM_Setup_on_Debian_Squeeze#Network_Setup_with_KVM
- https://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Netzwerkoptionen/_Virtuelle_Netzwerke_konfigurieren/_Mehrere_QEMU/KVM-Instanzen_vernetzen/_Bridging
- https://riaschissl.blogspot.com/2009/08/debiankvm-proxyarp-for-individual-ip.html
- https://alexeytorkhov.blogspot.de/2009/09/mounting-raw-and-qcow2-vm-disk-images.html
- https://libvirt.org/formatdomain.html#elementsDisks
- https://help.ubuntu.com/community/KVM/CreateGuests
- https://www.techotopia.com/index.php/Installing_a_KVM_Guest_OS_from_the_Command-line_%28virt-install%29
- https://libvirt.org/formatdomain.html#elementsNICSBridge
- https://wiki.libvirt.org/page/Networking#Debian.2FUbuntu_Bridging
- https://wiki.debian.org/KVM
- https://www.linux-kvm.org/page/Migration
- https://www.linux-kvm.org/page/Networking
- https://www.linux-kvm.org/page/Main_Page
- https://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines
- https://virt.kernelnewbies.org/TechComparison
- https://virt.kernelnewbies.org/InterWiki
- https://www.linux-kvm.org/page/Networking
- https://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Netzwerkoptionen/_Virtuelle_Netzwerke_konfigurieren
- https://wiki.libvirt.org/page/Networking
- https://pve.proxmox.com/wiki/Vision
- https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/2009-December/066096.html
- https://bwachter.lart.info/linux/bridges.html
- https://www.linux-magazin.de/Heft-Abo/Ausgaben/2004/12/Zugbruecke/%28offset%29/2
- https://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Speichermedien/_Images_anlegen
- https://www.linux-kvm.org/page/9p_virtio
Häufige Probleme
IO Performance
Häufig gibt es bei KVM Probleme mit der IO Performance von Maschienen.
Generell gibt es hier einige Dinge die man beachten sollte:
- Als Schnittstelle sollte wenn möglich immer VIRTIO genutzt werden.
- Auch sollte der Scheduler der Platte auf “noop” gestellt werden:
# echo noop > /sys/block/sda/queue/scheduler
Alternativ kann man “elevator=noop” in zu den Kernelparametern hinzufügen. - Auch lässt sich von der Performance her folgendes sagen (von links nach rechts abnehmend): LVM > raw-image > qcow2
Informationen zum qcow-Format: https://people.gnome.org/~markmc/qcow-image-format.html.
Speicherauslastung
Falls öfters mal der OOM-Killer (Out of Memory) zuschlägt: https://www.hskupin.info/2010/06/17/how-to-fix-the-oom-killer-crashe-under-linux/.