Files
Install-Windows-Server-2025…/03b-Nacharbeiten-Feinschliff-libvirt.txt
2025-10-07 10:18:43 +02:00

163 lines
4.7 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ==========
# 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'/>.