Zum Inhalt springen
← IT-Wissen Infrastruktur · Praxis-Wissen

vSphere VM erstellen — Die Einstellungen, die niemand kennt

Eine VM in vSphere anzulegen dauert 2 Minuten — sie richtig zu konfigurieren dauert 20. Dieser Artikel zeigt die versteckten Einstellungen, die den Unterschied zwischen einer „funktioniert irgendwie“-VM und einer produktionsreifen, sicheren und performanten virtuellen Maschine ausmachen. Basierend auf vSphere 7/8 und dem offiziellen VMware Security Configuration Guide.

Steckbrief
PlattformVMware vSphere 7.x / 8.x
KomponenteESXi + vCenter
VM HardwareVersion 19–21
KategorieHardening & Performance
SchwierigkeitFortgeschritten
Zeitaufwand15–20 Min pro VM
ReferenzVMware SCG 8.0
vSphere VM Konfiguration 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 = 2 auf 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-Writer erlaubt 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 unter VM 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 = FALSE

    Verhindert 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 = TRUE

    HGFS ermöglicht Dateiübertragung zwischen Host und Guest. In Produktionsumgebungen nicht benötigt und ein Sicherheitsrisiko.

  • PCI/PCIe Passthrough einschränken:
    pciPassthru.use64bitMMIO = FALSE

    DirectPath 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 = 1

    Begrenzt 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 = 10

    Ohne 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 = 1048576

    VMware 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 = FALSE

    Verhindert, 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 →