Initial commit.
This commit is contained in:
162
03b-Nacharbeiten-Feinschliff-libvirt.txt
Normal file
162
03b-Nacharbeiten-Feinschliff-libvirt.txt
Normal file
@@ -0,0 +1,162 @@
|
||||
# ==========
|
||||
# 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'/>.
|
||||
|
||||
Reference in New Issue
Block a user