Ich strebe wieder einmal nach mehr Wissen und versuche mich daher momentan im Bereich Virtualisierung weiterzubilden. Durch einen Kollegen angeregt nahm ich mir diesmal KVM vor...
Ich bin ja schon lange überzeugt von LXC und habe inzwischen auch Docker einiges abgewinnen können.
Nun wollte ich praktische Erfahrungen mit QEMU und KVM sammeln. Ich strebte dazu an, meine letzte noch existierende VirtualBox-VM nach QEMU zu migrieren. Es handelt sich dabei um ein 32-Bit Windows 10, auf der eine gekaufte Software installiert ist.
Nach meinen ersten Versuchen, dem Internet zu folgen stellte ich fest, dass nichts funktionierte - ich konnte die virtuelle Maschine nicht einmal booten: Ich hatte das virtuelle Festplattenimage in das Format qcow2 konvertiert und mittels virt-manager eine neue Virtuelle Maschine erstellt, mittels derer ich versuchte, dieses Image zu booten. Mein Kollege brachte mich dann darauf, dass dieses Image vielleicht per UEFI gebootet werden möchte - dazu musste ich noch einige Installationsaufwand an meinem KVM-Host betreiben, aber damit bootete die Maschine.
Allerdings wurde ich was die Alltagstauglichkeit anging enttäuscht - hatte Windows laut Taskmanager nichts zu tun, betrug die Auslastung des Docker-Host dennoch über 60%! Das wäre für mich ein Grund gewesen, die Maschine als VirtualBox weiter zu betreiben und zunächst Abstand von QEMU/KVM zu nehmen.
Aber ich hatte bei meinem Kollegen gesehen, dass es auch anders geht. Daher recherchierte ich ein wenig im Internet und fand auch recht rasch die Ansage, dass Windows 10 in der Version 1803 an den internen Timern Änderungen vorgenommen hat, die dafür sorgen, dass unter KVM Windows nicht mehr rund 140 Interrupts abarbeiten muss, sondern in derselben Zeit 2000! Das erklärt zunächst die hohe Last auf dem Hostsystem.
Ich fand auch diverse Ideen, wie man dieses Problem lösen könnte - eins gleich vornweg: Ich verschwendete einen halben Tag meiner Lebenszeit damit, die falschen Dateien zu editieren: Ich fand Beschreibungen meiner Windows VM in meinem Homeverzeichnis wie auch unter /etc/ - keine dieser Dateien ist diejenige welche. Daher dachte ich auch, das all die vielen Tips im Internet zu diesem Thema keine Lösung enthielten. Als ich dann realisierte, dass diese Dateien vom System nicht genutzt werden und die einzige zuverlässige Methode zum Anpassen der Konfiguration das Kommando
virsh -c qemu:///system edit mywin
ist, habe ich auch die für mich funktionierende Konfiguration gefunden: Dieses Problem betreffend musste ich die Abschnitte features und clock in der Konfiguration wie folgt abändern:
<features>
<acpi/>
<apic/>
<hyperv>
<relaxed state='on'/>
<vapic state='on'/>
<spinlocks state='on' retries='8191'/>
</hyperv>
<vmport state='off'/>
</features>
<clock offset='localtime'>
<timer name='hpet' present='yes'/>
<timer name='hypervclock' present='yes'/>
</clock>
Installing Virtio Drivers In Windows On KVM
virt-manager is not giving me an option to change my firmware from BIOS to UEFI
Using UEFI with QEMU
Virtualbox nach KVM: Virtuelle Maschinen migrieren
Dynamic Memory Management
Paravirtualized Block Drivers for Windows
17.11.2019
Nachdem ich mich in letzter Zeit verstärkt mit Docker und dem zugehörigen Ökosystem beschäftige, habe ich begonnen, verschiedenste Dienste in Containern zu testen um zu sehen, ob in manchen Fällen LXC oder KVM nicht doch die bessere Wahl wäre...
Multi-User-WebDAV, Docker, GitHub
17.11.2019
Nachdem ich mich in letzter Zeit verstärkt mit Docker und dem zugehörigen Ökosystem beschäftige, habe ich begonnen, verschiedenste Dienste in Containern zu testen um zu sehen, ob in manchen Fällen LXC oder KVM nicht doch die bessere Wahl wäre...
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
In eigener Sache...
Weiterlesen...Ich habe eine neue Java Swing Komponente erstellt: Es handelt sich um einen Wrapper für von JToolBar abgeleitete Klassen, die die Werkzeugleiste minimieren und sie nur dann einblenden, wenn der Mauszeiger über ihnen schwebt.
Weiterlesen...Ich habe bereits in einem früheren Artikel über meine ersten Erfolge berichtet, der sQLshell auf Basis des bestehenden Codes aus dem Projekt EBMap4D eine bessere Integration für Geo-Daten zu spendieren und entsprechende Abfragen, bzw. deren Ergebnisse auf einer Kartenansicht zu visualisieren.
Weiterlesen...Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen Codeberg-Repositories findet man hier.