163 lines
4.7 KiB
Plaintext
163 lines
4.7 KiB
Plaintext
# ==========
|
||
# Nacharbeiten - Libvirt-Feinschliff
|
||
# ==========
|
||
|
||
|
||
# ----------
|
||
# Libvirt-Feinschliff
|
||
# ----------
|
||
|
||
nach der Installation, via virsh edit WinServer2025:
|
||
|
||
|
||
a) HugePages (stabilere Latenz & weniger Overhead)
|
||
|
||
<memoryBacking>
|
||
<hugepages/>
|
||
</memoryBacking>
|
||
|
||
Host-seitig HugePages bereitstellen (2M oder 1G), Dienst neu starten oder Host reboot.
|
||
VM dann ohne Memory-Ballooning betreiben.
|
||
|
||
|
||
b) I/O-Threads & Multiqueue für Disk
|
||
|
||
<iothreads>4</iothreads>
|
||
<devices>
|
||
<disk ... bus='virtio'>
|
||
<driver name='qemu' type='raw' cache='none' io='native' queues='4'/>
|
||
<iothread>1</iothread>
|
||
</disk>
|
||
</devices>
|
||
|
||
Alternativ virtio-scsi nutzen: controller type='scsi' model='virtio-scsi' und mehrere
|
||
queues setzen - bringt oft bessere Skalierung bei vielen I/Os.
|
||
|
||
|
||
c) NUMA-Pinning (AMD EPYC, 32 vCPUs)
|
||
|
||
VCPUs an zusammenhängende NUMA-Node(s) binden, gleiches für iothreads. Beispiel:
|
||
|
||
<cputune>
|
||
<vcpupin vcpu='0' cpuset='0-15'/>
|
||
<vcpupin vcpu='1' cpuset='0-15'/>
|
||
...
|
||
<iothreadpin iothread='1' cpuset='16-23'/>
|
||
</cputune>
|
||
<numatune>
|
||
<memory mode='strict' nodeset='0'/>
|
||
</numatune>
|
||
|
||
Passe cpuset/nodeset an die Host-Topologie an (EPYC CCDs/NUMA-Nodes).
|
||
|
||
|
||
d) Hyper-V-Enlightenments (falls nicht via virt-install gesetzt)
|
||
|
||
<features>
|
||
<hyperv>
|
||
<relaxed state='on'/>
|
||
<vapic state='on'/>
|
||
<spinlocks state='on' retries='8191'/>
|
||
<synic state='on'/>
|
||
<stimer state='on'/>
|
||
<reset state='on'/>
|
||
<time state='on'/>
|
||
</hyperv>
|
||
<kvm>
|
||
<hidden state='on'/>
|
||
</kvm>
|
||
</features>
|
||
|
||
|
||
e) Secure Boot (optional, empfehlenswert)
|
||
|
||
Nutze OVMF mit Secure-Boot-Vars (paketspezifische Pfade variieren):
|
||
|
||
<os>
|
||
<loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.secboot.fd</loader>
|
||
<nvram>/var/lib/libvirt/qemu/nvram/WinServer2025_VARS.fd</nvram>
|
||
</os>
|
||
|
||
Microsoft-DB ist in den secboot-Varianten enthalten; Windows 2025 bootet damit.
|
||
|
||
|
||
f) VNC nach Setup einschränken/entfernen
|
||
|
||
<graphics type='none'/>
|
||
|
||
oder
|
||
|
||
<graphics type='vnc' listen='127.0.0.1' autoport='yes'/>
|
||
|
||
|
||
|
||
# ----------
|
||
# Netzwerk & Host-Tuning
|
||
# ----------
|
||
|
||
- Host-Bridge (br0): prüfe, dass txqueuelen, GRO/LRO-Einstellungen und Offloads sinnvoll sind.
|
||
Häufig gut: GRO/LRO an, TSO an.
|
||
|
||
- vhost-net ist bereits aktiv (driver.name=vhost). Mit driver.queues=16 nutzt der Gast
|
||
Multiqueue - passt zu 16 Cores.
|
||
|
||
Im Gast: Enable-NetAdapterRss (s.o.) und prüfe, dass mehrere IRQs/Queues genutzt werden
|
||
(Perfmon -> Netzwerk-Adapter > "Empfangene Pakete/s" per Queue).
|
||
|
||
- Für sehr hohe PPS-Raten: ethtool -L <tap/host-nic> combined 16 auf dem Host (abhängig vom Treiber).
|
||
|
||
|
||
|
||
# ----------
|
||
# Storage-Hinweise (LVM als Block-Device)
|
||
# ----------
|
||
|
||
Du nutzt RAW auf LVM – gut für Performance und Trim (discard=unmap). In Windows regelmäßig „Laufwerke optimieren“ (TRIM) laufen lassen (oder per Task Scheduler wöchentlich).
|
||
|
||
Falls du später Snapshots brauchst: lieber in LVM (COW) als in QEMU-Blocksnapshots – oder Windows-seitig über VSS + Backup-Software (sauberer).
|
||
|
||
|
||
|
||
# ----------
|
||
# Anzeige & TeamViewer – Best Practices
|
||
# ----------
|
||
|
||
Virtio GPU WDDM (aus Guest Tools) liefert hohe, freie Auflösungen → in Anzeigeeinstellungen manuell auf z. B. 2560×1440/3840×2160 stellen.
|
||
|
||
Windows Server hat teils die „Grafik-Arbeitsplatzerfahrung“/Desktop Experience bereits, andernfalls Desktopdarstellung/„Server mit Desktopdarstellung“ aktivieren (bei Core-Install nicht nötig, falls du nur TeamViewer verwendest – aber für GUI-Apps natürlich schon).
|
||
|
||
VNC/SPICE brauchst du danach nicht mehr; TeamViewer kapselt den Desktop.
|
||
|
||
|
||
|
||
# ----------
|
||
# Backup, Wartung, Sicherheit
|
||
# ----------
|
||
|
||
QEMU Guest Agent ist Pflicht für konsistente Backups (Freeze/Thaw).
|
||
|
||
Windows VSS aktiv: nutze Backup-Lösungen, die VSS-aware sind.
|
||
|
||
Secure Boot (s.o.), TPM-Emulation (falls BitLocker/Attestation):
|
||
|
||
<tpm model='tpm-crb'>
|
||
<backend type='emulator' version='2.0'/>
|
||
</tpm>
|
||
|
||
Windows Updates: automatisieren, Neustarts in Wartungsfenster legen.
|
||
|
||
Zeit: Nicht vom Host syncen; NTP im Gast (s.o.).
|
||
|
||
|
||
|
||
# ----------
|
||
# Häufige Varianten
|
||
# ----------
|
||
|
||
virtio-scsi statt virtio-blk: bei mehreren Disks/hoher Queue-Tiefe oft im Vorteil. Dann beim Setup den vioscsi-Treiber laden.
|
||
|
||
CPU-Topologie: bei EPYC ggf. --cpu host-passthrough + Topologie so wählen, dass vCPUs nicht über zu viele NUMA-Nodes streuen.
|
||
|
||
Ballooning: Wenn du HugePages nutzt, kein Ballooning. Sonst Balloon-Treiber installieren und in libvirt <memballoon model='virtio'/>.
|
||
|