Die meisten Administratoren klicken sich durch den VM-Wizard, wählen CPU/RAM/Disk und drücken „Finish“. Dabei werden dutzende kritische Einstellungen ignoriert, die Performance, Sicherheit und Stabilität massiv beeinflussen.
1. VM Hardware Version — nicht bei Default lassen
Die VM Hardware Version bestimmt, welche Features die VM nutzen kann. Viele Admins lassen die Standard-Version stehen, die oft nicht die neueste ist.
- vSphere 7.0 U3: Hardware Version 19 — unterstützt Precision Clock, SGX Enclaves und verbesserte vTPM-Integration.
- vSphere 8.0: Hardware Version 20 — bietet bessere CPU-Sicherheitsmitigierungen, neue Device-Typen und verbesserte vGPU-Unterstützung.
- vSphere 8.0 U2+: Hardware Version 21 — neueste Version mit optimierten Security-Defaults, NVMe 1.3 Unterstützung und verbesserter Precision Time Protocol (PTP) Integration.
- Warum wichtig? Neuere Hardware-Versionen enthalten Security-Fixes für CPU-Schwachstellen (Spectre, Meltdown, MDS, L1TF) direkt im Hypervisor. Bei älteren Versionen müssen diese Mitigierungen per Guest-OS-Patch erfolgen — weniger effizient und fehleranfälliger.
- Praxis-Tipp: Upgrade per PowerCLI:
Set-VM -VM "MeineVM" -HardwareVersion vmx-21. Achtung: Nur bei ausgeschalteter VM möglich. Downgrade ist nicht unterstützt. Vorher Snapshot erstellen.
2. PVSCSI und VMXNET3 — die meistignorierten Performance-Booster
Die Standard-Controller einer neuen VM sind LSI Logic SAS (Storage) und E1000E (Netzwerk). Beide emulieren physische Hardware — unnötiger Overhead, den fast niemand ändert.
-
PVSCSI (Paravirtual SCSI) statt LSI Logic SAS:
Der PVSCSI-Controller ist speziell für Virtualisierung entwickelt und kommuniziert direkt mit dem Hypervisor, ohne Hardware-Emulation. Ergebnis: bis zu 30% höherer IOPS-Durchsatz und bis zu 50% weniger CPU-Last für I/O-Operationen. Besonders kritisch bei Datenbankservern (SQL, PostgreSQL), Exchange und Fileservern.
Pfad: VM → Edit Settings → SCSI Controller 0 → Typ ändern auf
VMware Paravirtual.Hinweis: Windows benötigt den VMware PVSCSI-Treiber. Bei einer Neuinstallation muss der Treiber während des Setups geladen werden (F6/Load Driver), sonst sieht Windows keine Festplatten. Bei Linux ist PVSCSI nativ unterstützt.
-
VMXNET3 statt E1000E:
VMXNET3 ist ein paravirtualisierter Netzwerkadapter mit 10 Gbps Unterstützung, RSS (Receive Side Scaling), TSO (TCP Segmentation Offload) und LRO (Large Receive Offload). Der E1000E emuliert eine Intel 82574 — ein 1 Gbps Adapter aus 2008.
Pfad: VM → Edit Settings → Network Adapter 1 → Adapter Type ändern auf
VMXNET 3.Hinweis: VMware Tools müssen installiert sein, damit VMXNET3 funktioniert. Unter Windows wird der Treiber automatisch mit VMware Tools installiert.
- Benchmark-Vergleich (typischer Fileserver): LSI Logic + E1000E: ~25.000 IOPS, 800 Mbps. PVSCSI + VMXNET3: ~35.000 IOPS, 9.500 Mbps. Das sind 40% mehr IOPS und 10x mehr Netzwerkbandbreite — ohne Hardware-Änderung.
3. CPU-Konfiguration, NUMA und die Hot-Add-Falle
CPU-Konfiguration ist weit mehr als „wie viele vCPUs brauche ich?“. Die Art, wie die vCPUs zugewiesen werden, beeinflusst die Performance massiv.
-
Cores per Socket — nicht Sockets!
Die goldene Regel: Konfigurieren Sie vCPUs immer als Cores per Socket, nicht als mehrere Sockets. Beispiel: 8 vCPUs = 1 Socket × 8 Cores, nicht 8 Sockets × 1 Core. Warum? Mehrere virtuelle Sockets erzwingen NUMA-Node-Übergreifungen, was zu L2/L3-Cache-Misses und erhöhten Latenzen führt.
Faustregel: Die Anzahl der vCPUs (Cores) pro Socket darf die Anzahl der physischen Cores pro NUMA-Node des Hosts nicht überschreiten. Beispiel: Dual-Socket-Server mit Intel Xeon Gold 6348 (28 Cores pro Socket) → maximal 28 Cores pro vSocket.
-
CPU Hot-Add deaktiviert lassen!
Das ist die meistunterschätzte Falle in vSphere. Wenn Sie „CPU Hot Add“ aktivieren, deaktiviert vSphere automatisch vNUMA für die VM. Das bedeutet: Das Guest-OS sieht die CPU-Topologie nicht korrekt, kann keine NUMA-optimierten Speicherzugriffe durchführen, und die Performance sinkt — besonders bei speicherintensiven Anwendungen wie SQL Server, SAP oder Oracle.
Empfehlung: CPU Hot-Add nur aktivieren, wenn die VM weniger Cores hat als ein physischer NUMA-Node UND Sie wirklich ohne Neustart CPUs hinzufügen müssen. In der Praxis: fast nie.
-
CPU-Affinität — niemals verwenden:
VM → Edit Settings → CPU → Scheduling Affinity— damit können Sie eine VM an bestimmte physische CPU-Kerne binden. Klingt gut, ist aber fast immer falsch. Es verhindert, dass der ESXi-Scheduler die VM optimal auf verfügbare Kerne verteilen kann, und blockiert vMotion, DRS und HA. -
Latency Sensitivity — für Echtzeit-Workloads:
VM → Edit Settings → VM Options → Advanced → Latency Sensitivity: High. Dieser versteckte Parameter reserviert exklusive CPU-Zyklen für die VM und deaktiviert CPU-Overcommitment. Nur für VoIP-Server, Handelsplattformen oder SCADA-Systeme verwenden.
4. Memory — Reservation, Shares und die Ballooning-Gefahr
-
Memory Reservation setzen:
VM → Edit Settings → Memory → Reservation. Ohne Reservation kann der ESXi-Host den zugewiesenen RAM der VM per Ballooning oder Swapping zurückholen, wenn der Host unter Speicherdruck steht. Für Produktions-VMs (Datenbanken, Domain Controller, Exchange): Reservation auf 100% des zugewiesenen RAMs setzen. Damit wird der VM physischer RAM garantiert. -
Memory Hot-Add — gleiche Falle wie CPU Hot-Add:
Memory Hot-Add deaktiviert ebenfalls die korrekte vNUMA-Darstellung. Nur aktivieren, wenn zwingend erforderlich. In der Praxis: VM herunterfahren, RAM erhöhen, starten — dauert 2 Minuten und behält die NUMA-Topologie bei.
-
Transparent Page Sharing (TPS) härten:
TPS ermöglicht es dem Hypervisor, identische Speicherseiten mehrerer VMs zu teilen — spart RAM, ist aber ein Sicherheitsrisiko (Side-Channel-Angriffe). Setzen Sie den Advanced Parameter
Mem.ShareForceSalting = 2auf dem ESXi-Host. Damit wird TPS nur noch innerhalb derselben VM angewendet, nicht zwischen VMs.
5. Disk-Einstellungen — Thick, Thin und disk.EnableUUID
-
Thick Provision Eager Zeroed für Produktion:
Bei „Thin Provisioned“ wächst die VMDK-Datei dynamisch — spart Platz, kostet aber Write-Performance, da jeder neue Block zuerst allokiert werden muss. Für Produktions-VMs (besonders Datenbanken und Exchange): Thick Provision Eager Zeroed. Der gesamte Speicherplatz wird sofort allokiert und mit Nullen überschrieben. Zusätzlicher Vorteil: Unterstützt Fault Tolerance.
-
disk.EnableUUID = TRUE:
Einer der wichtigsten versteckten Parameter.
VM → Edit Settings → VM Options → Advanced → Configuration Parameters → disk.EnableUUID = TRUE. Ohne diesen Parameter präsentiert vSphere der VM keine konsistente Disk-UUID. Das führt zu Problemen bei: Veeam Backup (Application-Aware Processing), Kubernetes/OpenShift (CSI-Treiber), Linux LVM (multipath), Cluster-Software (MSCS, Veritas). Immer auf TRUE setzen. -
NVMe Controller für maximale Performance:
Ab VM Hardware Version 13 kann ein NVMe Controller statt SCSI verwendet werden. NVMe bietet höhere Queue-Tiefe (bis zu 65.535 Queues) und geringere Latenzen. Ideal für VMs auf NVMe-basiertem Datastore (vSAN NVMe, NVMe-oF).
-
Multi-Writer Modus — Vorsicht:
Disk → Sharing: Multi-Writererlaubt mehreren VMs gleichzeitigen Schreibzugriff auf dieselbe VMDK. Nur für Cluster-Szenarien (MSCS, Oracle RAC) verwenden. Falsch konfiguriert führt es zu Datenverlust.
6. Security Hardening — der VMware Security Configuration Guide
VMware veröffentlicht einen offiziellen Security Configuration Guide (SCG) mit Prioritätsstufen P0 (kritisch) bis P2 (empfohlen). Die folgenden Einstellungen sind P0/P1 und sollten bei jeder VM gesetzt werden.
-
Boot-Geräte einschränken:
bios.bootDeviceClasses = "allow:hd"— erlaubt nur das Booten von Festplatten. Verhindert, dass Angreifer von USB, CD/DVD oder Netzwerk (PXE) booten können. Für UEFI-VMs: Secure Boot aktivieren unterVM Options → Boot Options → Enable UEFI Secure Boot. -
Unnötige Geräte entfernen:
Entfernen Sie: Floppy Drive (wird nie benötigt), Serial/Parallel Ports (Angriffsvektor), CD/DVD Drive (nach OS-Installation entfernen), USB Controller (wenn kein USB-Passthrough benötigt). Jedes virtuelle Gerät erhöht die Angriffsfläche.
-
vTPM (Trusted Platform Module) hinzufügen:
Ab VM Hardware 14 kann ein virtuelles TPM 2.0 hinzugefügt werden. Voraussetzung: vCenter mit Key Provider konfiguriert. vTPM ermöglicht: BitLocker (Windows), Measured Boot, Credential Guard, VBS (Virtualization Based Security). Für Windows Server 2022/2025 dringend empfohlen.
-
VM Encryption:
VM → Policies → Edit VM Storage Policies→ Encryption-Policy zuweisen. Verschlüsselt VMDKs, VMX-Datei, Snapshots und vMotion-Daten. Schützt vor Datenzugriff auf Datastore-Ebene (z. B. bei Diebstahl von Festplatten oder unautorisierten Datastore-Zugriffen). -
vMotion-Verschlüsselung erzwingen:
VM → Edit Settings → VM Options → Encryption → Encrypted vMotion: Required. Standardmäßig ist dies auf „Opportunistic“ — vMotion-Daten werden nur verschlüsselt, wenn beide Hosts es unterstützen. Auf „Required“ setzen verhindert unverschlüsselte vMotion-Übertragungen.
7. Isolation — Gast-zu-Host-Interaktion einschränken
Diese Parameter befinden sich unter VM → Edit Settings → VM Options → Advanced → Configuration Parameters. Sie kontrollieren, welche Aktionen zwischen Guest-OS und Hypervisor möglich sind.
-
Copy/Paste/Drag-Drop deaktivieren (P0):
isolation.tools.copy.disable = TRUE isolation.tools.paste.disable = TRUE isolation.tools.dnd.disable = TRUE isolation.tools.setGUIOptions.enable = FALSEVerhindert Datenübertragung zwischen VM-Konsole und lokaler Zwischenablage. Pflicht für Server, die über vSphere-Konsole administriert werden.
-
HGFS (Host Guest File System) deaktivieren:
isolation.tools.hgfsServerSet.disable = TRUEHGFS ermöglicht Dateiübertragung zwischen Host und Guest. In Produktionsumgebungen nicht benötigt und ein Sicherheitsrisiko.
-
PCI/PCIe Passthrough einschränken:
pciPassthru.use64bitMMIO = FALSEDirectPath I/O (PCI Passthrough) gibt der VM direkten Hardware-Zugriff. Das deaktiviert vMotion, DRS und HA. Nur verwenden, wenn absolut notwendig (z. B. GPU-Passthrough für KI-Workloads).
-
Konsolen-Verbindungen begrenzen:
RemoteDisplay.maxConnections = 1Begrenzt die VM-Konsole auf eine gleichzeitige Verbindung. Verhindert, dass mehrere Benutzer unbemerkt die Konsole beobachten.
8. Logging und VMX-Dateigröße begrenzen
-
Log-Rotation aktivieren:
log.rotateSize = 2048000 log.keepOld = 10Ohne Rotation können VM-Logdateien (
vmware.log) unkontrolliert wachsen und den Datastore füllen. Diese Einstellung begrenzt jede Logdatei auf 2 MB und behält die letzten 10 Dateien. -
VMX-Dateigröße begrenzen (P1):
tools.setinfo.sizeLimit = 1048576VMware Tools im Guest-OS können Name-Value-Paare in die VMX-Datei schreiben. Ohne Begrenzung kann ein kompromittiertes Guest-OS die VMX-Datei unbegrenzt aufblähen — potenzielle Denial-of-Service-Attacke auf den Datastore. Limit: 1 MB.
-
VM-Informationsnachrichten begrenzen:
tools.guestlib.enableHostInfo = FALSEVerhindert, dass das Guest-OS detaillierte Informationen über den Host-Server abfragt (CPU-Modell, RAM-Größe, ESXi-Version). In Multi-Tenant-Umgebungen Pflicht.
9. Erweiterte VMX-Parameter — das komplette Hardening-Set
Die folgenden Parameter können über VM Options → Advanced → Configuration Parameters oder per PowerCLI gesetzt werden. Dieses Set deckt die wichtigsten VMware SCG-Empfehlungen ab.
# === SECURITY (SCG P0/P1) ===
isolation.tools.copy.disable = TRUE
isolation.tools.paste.disable = TRUE
isolation.tools.dnd.disable = TRUE
isolation.tools.setGUIOptions.enable = FALSE
isolation.tools.diskShrink.disable = TRUE
isolation.tools.diskWiper.disable = TRUE
isolation.tools.hgfsServerSet.disable = TRUE
isolation.tools.ghi.autologon.disable = TRUE
isolation.tools.ghi.launchmenu.change = TRUE
isolation.tools.memSchedFakeSampleStats.disable = TRUE
isolation.tools.getCreds.disable = TRUE
# === LOGGING ===
log.rotateSize = 2048000
log.keepOld = 10
tools.setinfo.sizeLimit = 1048576
tools.guestlib.enableHostInfo = FALSE
# === PERFORMANCE ===
disk.EnableUUID = TRUE
# === CONSOLE ===
RemoteDisplay.maxConnections = 1
mks.enable3d = FALSE
# === BOOT SECURITY ===
bios.bootDeviceClasses = "allow:hd"
10. PowerCLI — Alle Einstellungen automatisiert setzen
Die folgenden PowerCLI-Skripte setzen alle beschriebenen Parameter automatisiert — ideal für die Anwendung auf neue VMs oder die nachträgliche Härtung bestehender VMs.
-
Einzelne VM härten:
# Verbindung herstellen Connect-VIServer -Server vcenter.firma.local # VM auswählen $vm = Get-VM -Name "MeineVM" # Advanced Parameters setzen $settings = @{ "isolation.tools.copy.disable" = "TRUE" "isolation.tools.paste.disable" = "TRUE" "isolation.tools.dnd.disable" = "TRUE" "isolation.tools.setGUIOptions.enable" = "FALSE" "isolation.tools.diskShrink.disable" = "TRUE" "isolation.tools.diskWiper.disable" = "TRUE" "isolation.tools.hgfsServerSet.disable" = "TRUE" "log.rotateSize" = "2048000" "log.keepOld" = "10" "tools.setinfo.sizeLimit" = "1048576" "tools.guestlib.enableHostInfo" = "FALSE" "disk.EnableUUID" = "TRUE" "RemoteDisplay.maxConnections" = "1" "mks.enable3d" = "FALSE" } $spec = New-Object VMware.Vim.VirtualMachineConfigSpec $spec.ExtraConfig = @() foreach ($key in $settings.Keys) { $opt = New-Object VMware.Vim.OptionValue $opt.Key = $key $opt.Value = $settings[$key] $spec.ExtraConfig += $opt } $vm.ExtensionData.ReconfigVM($spec) -
Alle VMs in einem Cluster härten:
# Alle VMs im Cluster "Produktion" härten $vms = Get-Cluster "Produktion" | Get-VM foreach ($vm in $vms) { Write-Host "Härte VM: $($vm.Name)" -ForegroundColor Cyan # ... (gleicher Code wie oben für jede VM) } -
Controller ändern (neue VM):
# PVSCSI Controller setzen Get-VM "MeineVM" | Get-ScsiController | Set-ScsiController -Type ParaVirtual # Netzwerkadapter auf VMXNET3 ändern Get-VM "MeineVM" | Get-NetworkAdapter | Set-NetworkAdapter -Type Vmxnet3 -Confirm:$false
11. Checkliste — Neue VM in vSphere
Verwenden Sie diese Checkliste bei jeder neuen VM-Erstellung:
- ☐ VM Hardware Version auf die neueste setzen (21 für vSphere 8.0 U2+)
- ☐ SCSI Controller auf PVSCSI ändern
- ☐ Netzwerkadapter auf VMXNET3 ändern
- ☐ CPU: Cores per Socket korrekt konfigurieren (nicht multiple Sockets)
- ☐ CPU Hot-Add deaktiviert lassen (vNUMA-Schutz)
- ☐ Memory Hot-Add deaktiviert lassen (vNUMA-Schutz)
- ☐ Memory Reservation auf 100% setzen (Produktions-VMs)
- ☐ Thick Provision Eager Zeroed für Produktions-Disks
- ☐ disk.EnableUUID = TRUE setzen
- ☐ Floppy, Serial, Parallel Ports entfernen
- ☐ CD/DVD Drive nach Installation entfernen oder trennen
- ☐ UEFI Secure Boot aktivieren (wenn OS unterstützt)
- ☐ vTPM hinzufügen (Windows Server 2022/2025)
- ☐ Isolation-Parameter setzen (Copy/Paste/DnD deaktivieren)
- ☐ Log-Rotation konfigurieren
- ☐ tools.setinfo.sizeLimit auf 1048576 setzen
- ☐ VMware Tools installieren und aktuell halten
- ☐ Encrypted vMotion auf „Required“ setzen
- ☐ Snapshot-Policy definieren (keine Dauer-Snapshots!)
VM-Umgebung prüfen lassen?
Wir auditieren Ihre vSphere-Infrastruktur nach dem VMware Security Configuration Guide und optimieren Performance und Sicherheit Ihrer VMs — schnell und ohne Downtime.
Jetzt Kontakt aufnehmen →