rebelfalls
VMware Employee
VMware Employee

RE: vCenter failed to assign a vSphere enterprise plus license to the hosts on the cluster

tldr; I would like to know why my vcenter did not apply the vSphere 7 DLF license to the nodes and enable DRS on the cluster automatically.

---

My vCenter 7.0 failed to assign a vSphere enterprise plus license to the hosts on the cluster and because of this the vxrail manager failed to enable DRS.

Error: "Automatic DRS is not configured on cluster VxRail-Automation. To continue the upgrade, migrate the virtual machines currently on host 123 to an alternate host with adequate capacity."

I then found that all of the nodes were still on the vSphere 7 Standard licenses and DRS was not enabled on the cluster. I also found that the vSphere 7 Enterprise Plus DLF license was in the vCenter. However, none of the nodes were assigned to it. 
To confirm the vSphere 7 Enterprise Plus DLF license in vCenter was valid, I manually assigned the license to the nodes and then enabled DRS on the cluster. The upgrade then continued and eventually completed. 

The LCM upgrade eventually disabled DRS on the cluster (after all nodes had been upgraded), migrated the nodes back to the original vSphere 7 Standard licenses, and removed the temporary vSphere 7 Enterprise Plus DLF license from the vCenter before completing the upgrade.
Based on some of the errors below, the closest relevant kb I can find is: https://kb.vmware.com/s/article/2148897 .
This KB's resolution is to check time skew between the vCSA and PSC. Since this cluster is 7.0, the PSC is embedded. I confirmed that the vCSA, VxRail Manager, and ESXi nodes all match in NTP settings and time.

vCenter's license.log then shows some DRS license errors on the nodes.

2021-01-10T13:45:53 invocation-vmomi-executor-2 operationID=1123ERROR server.core.oldmanagement.vmomi.LicenseAssignmentManagerMoImpl Feature: drs is not licensable in license entity host-xxxxxx
com.vmware.cis.license.vpx.server.core.oldmanagement.LicenseAssignmentManagerException$NotEnoughLicensesFeatureUnavailable: Feature: drs is not licensable in license entity host-xxxxx
at com.vmware.cis.license.vpx.server.core.oldmanagement.impl.LicenseAssignmentManagerImpl.updateFeatureInUseInt(LicenseAssignmentManagerImpl.java:674)
at com.vmware.cis.license.vpx.server.core.oldmanagement.impl.LicenseAssignmentManagerImpl.updateEntitiesPropertiesInt(LicenseAssignmentManagerImpl.java:713)
at com.vmware.cis.license.vpx.server.core.oldmanagement.impl.LicenseAssignmentManagerBaseImpl.updateEntitiesProperties(LicenseAssignmentManagerBaseImpl.java:233)
at com.vmware.cis.license.vpx.server.core.oldmanagement.vmomi.LicenseAssignmentManagerMoImpl.updateEntitiesProperties(LicenseAssignmentManagerMoImpl.java:256)
at com.vmware.cis.license.vpx.server.core.oldmanagement.vmomi.BaseLicenseAssignmentManagerWrapperMoImpl.updateEntitiesProperties(BaseLicenseAssignmentManagerWrapperMoImpl.java:113)
at com.vmware.cis.license.vpx.server.core.oldmanagement.vmomi.ConcurrentLicenseAssignmentManagerWrapperMoImpl.updateEntitiesProperties(ConcurrentLicenseAssignmentManagerWrapperMoImpl.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vmware.vim.vmomi.server.impl.InvocationTask.run(InvocationTask.java:78)
at com.vmware.vim.vmomi.server.common.impl.RunnableWrapper$1.run(RunnableWrapper.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

The vCenter's license.log later shows the nodes still on the vSphere 7 Standard license.

The vCenter's vpxd.log shows DRS not able to apply to the nodes, due to their licenses:

info vpxd[16450] [Originator@6876 sub=drmLogger opID=36e90fbb] DRS automation level of cluster [vim.ClusterComputeResource:domain-c9,VxRail-Automation] is fullyAutomated
info vpxd[16450] [Originator@6876 sub=Vsan opID=36e90fbb] VSAN currently enabled: true; VSAN requested enabled: false
info vpxd[16450] [Originator@6876 sub=Vsan opID=36e90fbb] VSAN newly-requested to enable: false; to disable: false; HA currently enabled: true; HA requested to disable: false
info vpxd[16450] [Originator@6876 sub=Vsan opID=36e90fbb] VSAN newly-requested to enable: false; to disable: false; DPM currently enabled: false; DPM requested to disable: false DPM requested to enable: false
info vpxd[16450] [Originator@6876 sub=licenseServiceProxy opID=36e90fbb] Authenticating to LS old API for stubAdapter: [N5Vmomi19LazySoapStubAdapterE:0x00007f211c6448f0]
 info vpxd[16450] [Originator@6876 sub=licenseServiceProxy opID=36e90fbb] Authenticated to LS old API for stubAdapter: [N5Vmomi19LazySoapStubAdapterE:0x00007f211c6448f0]
info vpxd[16450] [Originator@6876 sub=vpxLro opID=36e90fbb] [VpxLRO] – FINISH task-748
info vpxd[16450] [Originator@6876 sub=Default opID=36e90fbb] [VpxLRO] – ERROR task-748 – domain-c9 – vim.ComputeResource.reconfigureEx: vmodl.fault.NotEnoughLicenses:

--> Result:

--> (vmodl.fault.NotEnoughLicenses) {

--> faultCause = (vmodl.MethodFault) null,

--> faultMessage = (vmodl.LocalizableMessage) [

--> (vmodl.LocalizableMessage) {

--> key = "com.vmware.vim.vc.license.error.featureUnavailable",

--> arg = (vmodl.KeyAnyValue) [

--> (vmodl.KeyAnyValue)

 

{ --> key = "entity", --> *value = "host-40"* --> }

--> msg = "Received SOAP response fault from [<cs p:00007f211c537000, SsoCustomConnectionSpec:phesbv-svv00008.bvcsnet.local:443>]: updateEntitiesProperties

--> Arg spec:

--> (vim.cluster.ConfigSpecEx) {

--> vmSwapPlacement = <unset>,

--> spbmEnabled = <unset>,

--> defaultHardwareVersionKey = <unset>,

--> desiredSoftwareSpec = (vim.DesiredSoftwareSpec) null,

--> maximumHardwareVersionKey = <unset>,

--> dasConfig = (vim.cluster.DasConfigInfo) null,

--> dasVmConfigSpec = <unset>,

--> drsConfig = (vim.cluster.DrsConfigInfo)

{ --> enabled = true, --> enableVmBehaviorOverrides = <unset>, --> defaultVmBehavior = "fullyAutomated", --> vmotionRate = <unset>, --> scaleDescendantsShares = <unset>, --> option = <unset> --> }

 

0 Kudos
0 Replies