vSphere 6.5 features that are exciting to me

Well yesterday VMware announced vSphere 6.5 and VSAN 6.5  both are huge leaps forward in technology.   They address some major challenges my customers face and I wanted to share a few features that I think are awesome:

vSphere 6.5

  • High Availability in vCenter Appliance – if you wanted a reason to switch to the appliance this has to be it… for years I have asked for high availability for vCenter.   Now we have it.   I look forward to testing and blogging about failure scenarios with this new version.  This has to be my #1 ask for the platform for the last three years!  – We are not talking about VMware HA we are talking about active / standby appliances.
  • VM EncryptionNotice this is a feature of vSphere not VSAN – this is huge the hypervisor can encrypt virtual machines at rest and while being vMotioned.   This is a huge enabler for public cloud allowing you to ensure your data is secure with your encryption keys.   This is going to make a lot of compliance folks happen and enable some serious hybrid cloud.
  • Integrated Containers – Docker compatible interface for containers in vSphere allowing you to spawn stateless containers while enforcing security, compliance and monitoring using vSphere tools (NSX etc..) – this allows you to run traditional and next generation applications side by side.

VSAN 6.5

  • iSCSI support – VSAN will be able to be a iSCSI target for physical workloads – a.k.a SQL failover clustering and Oracle RAC.   This is huge VSAN can now be a iSCSI server that has easy policy based management and scaleable performance.

There are a lot more annoucements but these features are just awesome.    You can read more about vSphere 6.5 here and VSAN 6.5 here.

vRO scriptable task to return top level folder of a VM

Every so often you have nested folders in a vCenter and want to return only the top level folder.  Here is a function to return the top level folder only:


Latency-sensitivity features of ESXi

In ESXi 5.5 there was a latency sensitive feature added to the web client.  This feature applies to individual virtual machines.  It was specifically added for latency sensitive applications.  VMware full recommendations for latency sensitive applications can be found here.   There are four settings exposed in the web client for latency sensitivity each denotes a maximum latency in micro-seconds for CPU scheduling:

  • Low
  • Normal – Latency sensitive features are disabled and the normal setting for all virtual machines by default
  • Medium
  • High – Feature is enabled

This left me with question related to the low and medium setting.   Official documentation does not even mention them as options.  I have requested they be documented in the future but what I can tell you is this:

  • Low = worse than normal shares think of it as limits for latency sensitivity
  • Medium = Not disabled and not fully enabled

End result don’t use Low or Medium you should be either normal or high today.

What does Enabled do?


Enabled latency sensitivity essentially gives exclusive access to physical resources, bypassing all virtualization layers and tunes network virtualization layer.   Due to the bypass access to CPU the number of virtual CPU’s should not exceed the number of physical cores + 2 for VMkernel threads.   The lack of CPU scheduling from the virtualization layer reduces latency on CPU operations even more than just CPU reservation can. The effects you can see in esxtop are 100% run for each vCPU of a VM.


Enabling the feature creates and automatic reservation for the full virtual machine memory.


Network frames will not be coalesced when enabled.

Design Guidance:

Don’t use this feature unless you really need the latency sensitivity.  You should design clusters around latency sensitivity instead of using commodity clusters.   The latency sensitive settings will not play with with others.

Rarely used ESXCLI commands

I have had this for a while figured I would share.   It’s a list of some commands that have used:

How to get ESX version

nroot@vmh1:~] esxcli system version get
Product: VMware ESXi
Version: 6.0.0
Build: Releasebuild-3825889
Update: 2
Patch: 37

How to get host uuid

[root@vmh1:~] esxcli system uuid get

How to get hostname and domain

[root@vmh1:~] esxcli system hostname get
Domain Name: griffiths.local
Fully Qualified Domain Name: vmh1.griffiths.local
Host Name: vmh1

How to get current load

[root@vmh1:~] esxcli system process stats load get
Load1Minute: 0.13
Load15Minutes: 0.15
Load5Minutes: 0.15

Count of running processes

[root@vmh1:~] esxcli system process stats running get
Running Processes: 667

Boot device information

[root@vmh1:~] esxcli system boot device get
Boot Filesystem UUID: c1341d71-f540cf9f-60c5-9b28cab78741
Boot NIC:
Stateless Boot NIC:

List of loaded modules

[root@vmh1:~] esxcli system module list
Name Is Loaded Is Enabled
—————————– ——— ———-
vmkernel true true
chardevs true true
user true true

Info on a specific module

[root@vmh1:~] esxcli system module get -m vmkernel
Module: vmkernel
Module File:
Version: Version Releasebuild-3825889
Build Type:
Provided Namespaces:
Required Namespaces:
Containing VIB: unknown
VIB Acceptance Level: unknown

Log rotation and syslog settings

[root@vmh1:~] esxcli system syslog config get
Default Network Retry Timeout: 180
Dropped Log File Rotation Size: 100
Dropped Log File Rotations: 10
Enforce SSLCertificates: false
Local Log Output: /scratch/log
Local Log Output Is Configured: false
Local Log Output Is Persistent: true
Local Logging Default Rotation Size: 1024
Local Logging Default Rotations: 8
Log To Unique Subdirectory: false
Message Queue Drop Mark: 90
Remote Host: udp://log.griffiths.local:514

CPU Infomation

[root@vmh1:~] esxcli hardware cpu global get
CPU Packages: 1
CPU Cores: 4
CPU Threads: 4
Hyperthreading Active: false
Hyperthreading Supported: false
Hyperthreading Enabled: true
HV Support: 3
HV Replay Capable: true
HV Replay Disabled Reasons:

[root@vmh1:~] esxcli hardware cpu list
Id: 0
Package Id: 0
Family: 6
Model: 23
Type: 0
Stepping: 10
Brand: GenuineIntel
Core Speed: 2000070668
Bus Speed: 333345099
APIC ID: 0x0
Node: 0
L2 Cache Size: 6291456
L2 Cache Associativity: 24
L2 Cache Line Size: 64
L2 Cache CPU Count: 2
L3 Cache Size: -1
L3 Cache Associativity: -1
L3 Cache Line Size: -1
L3 Cache CPU Count: 2

Memory and Numa information

[root@vmh1:~] esxcli hardware memory get
Physical Memory: 34358984704 Bytes
Reliable Memory: 0 Bytes
NUMA Node Count: 1

Dump bios information and settings

[root@vmh1:~] smbiosDump
Dumping live SMBIOS data!
BIOS Info: #1
Size: 0x00018
Vendor: “Hewlett-Packard”
Version: “786F4 v01.32”
Date: “10/15/2008”
Start Address: 0xe0000
ROM Size: 1024 kB


Getting more out of vRealize Automation Day two operations

I was recently invited to do a webcast on day two operations by VMware.   You can read my blog post here:

Getting More Out of vRealize Automation: Day 2 Operations

And watch the Webcast here:


Let me know if you have any questions.

How to operationalize NSX

I was recently invited to join Rene Van Den Bedem to discuss how to operationlize NSX and best practices.  It was a good Webcast you can view it here:




Video’s on how to use vRealize Orchestrator

A few weeks ago I presented on Automation at the Louisville VMUG.   During the session I mentioned that using vRealize Orchestrator is really a good skill to learn.  It allows you to become the orchestrator of external services.   It’s a critical skill going forward.  I didn’t want to bore the group by watching how to video’s but promised to post them.   Here they are:

Part 1

Part 2