Einstellungen für KVM Virtual Machines optimieren
Anfrage: Ich habe eine Virtuelle Maschine (VM) auf meinem Linux Server eingerichtet. Das Hostbetriebssystem ist ein Windows Server und Schreib-/ Lesezugriff dauern unglaublich lange.
Lösung: Diese Erfahrung mussten wir auch am eigenen Leib erfahren. I.d.R. funktionieren die Standardeinstellungen ziemlich gut, aber in einigen Fällen muss doch Hand angelegt und Feintuning vorgenommen werden.
Zu allererst sollte man die Caching Modus überprüfen. Ext3 / Ext4 laufen sehr gut mit der Default Einstellung “writethrough”. Andere Dateisysteme wie z.B. ZFS laufen damit sehr unperformant. Hier hat die Erfahrung gezeigt, dass man mit “writeback” deutlich besser fährt.
Ebenso sollte man das VM Image Format unter die Lupe nehmen. Das Raw Format ist ziemlich schnell bezüglich Daten lesen und schreiben, bietet jedoch keine zusätzlichen Funktionen wie z.B. Snapshots oder Verschlüsselung bei qcow2.
Zu guter Letzt ist es eine Überlegung wert, den benötigten Speicherplatz der VM vorab zu allokieren. Ein qcow Image kann z.B. 2 TB groß sein, belegt im Dateisystem aber erst einmal nur den tatsächlich benutzten Speicher. Wenn aber nun große Datenbestände migriert werden sollen, entpuppt sich dieser Vorteil schnell zur Kopierbremse. Das Image muss on the fly vergrößert werden und zieht damit die Performance beträchtlich in die Knie. Hier die Empfehlung den kompletten Speicherplatz oder zumindest die Metadaten vorab zu allokieren.
qemu-img convert -f qcow2 -O qcow2 -o preallocation=metadata vm_alt.qcow2 vm_neu.qcow2
preallocation = erlaubte Werte: "off", "metadata", "falloc", "full")
P.S. Alle aktuellen Linux Distribution haben die virtio Treiber integriert. Unter Windows sollte man diese am besten gleich während der Installation einbinden. Download hier: https://fedoraproject.org/wiki/Windows_Virtio_Drivers









