ESXi TPS Status ermitteln

Tranparent Page Sharing (TPS) ist eine Technik zur gemeinsamen Verwendung von Speicherinhalten, indem identische Pages nur einmalig abgelegt werden.

Seit Update 2b wurde TPS von VMware per Default deaktiviert, da es in seltenen Fällen zu Sicherheitsverletzungen zwischen VMs kommen konnte. Wie es sich zeigte, ist aber bei ESXi Servern mit höherer Build Nummer unter Umständen TPS noch aktiv. Das liegt daran, daß VMware TPS offensichtlich nur bei Neuinstallation abschaltet.

TPS Status

Wie kann man nun ermitteln, welchen TPS Status die ESX Server eines Clusters haben?

Hierfür kann man mittels PowerCLI einen oneliner ausführen.

# Connect-VIServer <myVC>
# Get-VMHost –State Connected | Get-AdvancedSetting –Name Mem.ShareScanGHz | Format-Table –Property Entity,Name,Value -AutoSize
# Disconnect-VIServer

Werte >0 deuten auf ein aktiviertes TPS.

TPS deaktivieren

# Connect-VIServer <YourvCenter>
# Get-VMHost –State Connected | Get-AdvancedSetting –Name Mem.ShareScanGHz | Set-AdvancedSetting –Value 0

Status erneut testen

# Get-VMHost –State Connected | Get-AdvancedSetting –Name Mem.ShareScanGHz | Format-Table –Property Entity,Name,Value -AutoSize
# Disconnect-VIServer

Links

Unmount Datastore nicht möglich

Das Entfernen eines Datenspeiches vom ESX Cluster muss einer genauen Prozedur folgen, andernfalls drohen sehr unangenehme Effekte infolge PDL oder APD.

Unmount des Datastores nicht möglich

Obwohl ich die Abfolge der Schritte genau eingehalten hatte, ließ sich ein Datastore nicht entfernen und brachte die Meldung:

The resource ‚Datastore Name: VMFS uuid: [uuid]‘ is in use. Cannot remove datastore ‚Datastore Name: VMFS uuid: [uuid]‘ because file system is busy. Correct the problem and retry the operation.

Hierfür gibt es typischerweise zwei mögliche Fehlerquellen:

  • vsantrace Files
  • Coredump Files

„Unmount Datastore nicht möglich“ weiterlesen

VMs mit spezifischem NIC suchen

In größeren VMware Umgebungen kann die Suche nach bestimmten VM-Eigenschaften sehr mühsam werden. Natürlich kann man in die Einstellungen jeder VM gehen und nachsehen, aber das ist zeitaufwendig und stupide. Hier ist – wie so oft – PowerCLI der Freund und Helfer.

Zunächst stellt man eine Verbindung mit vCenter oder einem bestimmten ESX Host her.

Connect-VIserver <Servername>

Welche VMs haben einen e1000 Netzwerk Adapter?

Get-vm | ?{Get-networkadapter $_ | where-object {$_.type -like "e1000" }}

 

Welche VMs haben einen VMXNET Netzwerk Adapter ?

Analog funktioniert die Abfrage nach einem VMXNET Adapter. Im Resultat werden VMs mit VMXNET2 und VMXNET3 Adapter gelistet.

Get-vm | ?{Get-networkadapter $_ | where-object {$_.type -like "VMX*" }}