Mehr Geschwindigkeit bei Windows 10 in libvirt/kvm

Veröffentlicht am
  • Falls auf dem Host BTRFS als Dateisystem verwendet wird, dann vor dem Erstellen des Festplatten-Images für die Windows 10-VM für das Verzeichnis “/var/lib/libvirt/images“ Copy-On-Write ausschalten:
    chattr +C /var/lib/libvirt/imagesCopy-On-Write ist allerdings dann nur für neu angelegte Dateien abgeschaltet. Wenn also in diesem Verzeichnis bereits Dateien liegen, dann gilt das für diese nicht. Lösung: Diese Dateien kopieren, und dann die Originaldateien wieder durch die Kopien ersetzen.
  • Videospeicher der virtuellen QXL-Grafikkarte von 16 MByte auf 64 MByte erhöhen:
    virsh edit <Name_der_Windows_10_Domain>, dann in der Sektion „video“ das Attribut „vgamem“ von „16384“ ändern zu „65536“.
    Also von

    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>

    ändern zu

    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='65536' heads='1' primary='yes'/>
  • HPET einschalten, das senkt die CPU-Belastung des Hosts deutlich. Dazu wieder virsh edit <Name_der_Windows_10_Domain>, dann die Sektion „clock“ wie folgt ändern
      <clock offset='localtime'>
        <timer name='rtc' tickpolicy='catchup'/>
        <timer name='pit' tickpolicy='delay'/>
        <timer name='hpet' present='no'/>
        <timer name='hypervclock' present='yes'/>
      </clock>
    

    ändern zu:

      <clock offset='localtime'>
        <timer name='hpet' present='yes'/>
        <timer name='hypervclock' present='yes'/>
      </clock>
  • Die Windows VirtIO-Treiber herunterladen und installieren.
    Installiert werden können:

    • Balloon (Speicherverwaltung)
    • NetKVM (Netzwerkkarte)
    • viorng (Zufallszahlengenerator)
    • vioscsi (Storage)
    • vioserial (Serieller Port)
    • qxldod (Grafikkarte)

    Anschließend Windows herunterfahren und für die VM die Netzwerkkarte auf „VirtIO “ einstellen.

    Die Umstellung der Datenträger von IDE zu VirtIO ist etwas schwieriger, weil Windows nur dann den Treiber „vioscsi“ zum Start verwendet, wenn bereits beim Herunterfahren ein entsprechendes Gerät vorhanden war. Am Besten geht’s so:

    1. Windows-VM herunterfahren
    2. Zur VM einen kleinen VirtIO-Datenträger hinzufügen
    3. Windows starten
    4. vioscsi-treiber installieren
    5. den kleinen VirtIO-Datenträger wieder von der VM entfernen
    6. Die virtuelle IDE-Festplatte entfernen und das Festplattenimage wieder als VirtIO-Datenträger zur VM hinzufügen
    7. Boot-Reichenfolge prüfen und ggf so ändern, dass die VM als erstes vom VirtIO-Datenträger gestartet wird.