I spent a lot of time in the lab over the past few days. I had quite a bit of success but I did run into one issue in which the story does not have a very happy ending.
The majority of my work involved networking in which I decommissioned all legacy vSwitches in the vSphere 5 cluster and converted all remaining VMkernel port groups to the existing vNetwork Distributed Switch (vDS) where I was already running the majority of the VMs on Static binding port groups. In the process, some critical infrastructure VMs were also moved to the vDS including the vCenter, SQL, and Active Directory domain controller servers. Because of this, I elected to implement Ephemeral – no binding for the port binding configuration of the VM port group which all VMs were connected to, including some powered off VMs I used for cloning to new virtual machines. This decision was made in case there was a complete outage in the lab. Static binding presents issues where in some circumstances, VMs can’t power on when the vCenter Server (Control Plane of the vDS) is down or unavailable. Configuring the port group for Ephemeral – no binding works around this issue by allowing VMs to power on and claim their vDS ports when the vCenter Server is down. There’s a good blog article on this subject by Eric Gray which you can find here.
Everything was working well with the new networking configuration until the following day when I tried deploying new virtual machines by cloning powered off VMs which were bound to the Ephemeral port group. After the cloning process completed, the VM powered on for the first time and Guest Customization was then supposed to run. This is where the problems came up. The VMs would essentially hang just after guest customization was invoked by the vCenter Server. While watching the remote console of the VM, it was evident that Guest Customization wasn’t starting. At this point, the VM can’t be powered off – an error is displayed:
Cannot power Off vm_name on host_name in datacenter_name: The attempted operation cannot be performed in the current state (Powered on).
DRS also starts producing occasional errors on the host:
Unable to apply DRS resource settings on host host_name in datacenter_name. The operation is not allowed in the current state.. This can significantly reduce the effectiveness of DRS.
VMware KB 1004667 speaks to a similar circumstance where a blocking task on a VM (in this case a VMware Tools installation) prevents any other changes to it. This speaks to why the VM can’t be powered off until the VMware Tools installation or Guest Customization process either ends or times out.
Finally, the following error in the cluster Events is what put me on to the suspicion of Ephemeral binding as the source of the issues:
Error message on vm_name on host_name in datacenter_name: Failed to connect virtual device Ethernet0.
Error Stack:
Failed to connect virtual device Ethernet0.
Unable to get networkName or devName for ethernet0
Unable to get dvs.portId for ethernet0
I searched the entire vSphere 5 document library for issues or limitations related to the use of Ephemeral – no binding but came up empty. This reinforced my assumption that Ephemeral binding across the board for all VMs was a supported configuration. Perhaps it is for running virtual machines but in my case it fails when used in conjunction with cloning and guest customization. In the interim, I’ve moved off Ephemeral binding back to Static binding. Cloning problem solved.













