vSphere Cluster Services (vCLS) is a new feature in vSphere 7.0 Update 1. This feature ensures cluster services such as vSphere DRS and vSphere HA are all available to maintain the resources and health of the workloads running in the clusters.
In vSphere 7.0 Update 1, VMware has released a platform/framework to facilitate them to run independently of the vCenter Server instance availability. In this release, vCenter Server is still required for running cluster services such as vSphere DRS, vSphere HA, etc.
Note: vSphere DRS depends on the health of the vSphere Cluster Services starting with vSphere 7.0 Update 1.
In vSphere 8.0 U3, VMware has released a newer version of vCLS known as Embedded vCLS, which will be used when both vCenter and ESXi are updated to 8.0 U3. The original version of vCLS (prior to 8.0 U3) will be referred to as External vCLS.
vCenter 9.0 deprecates vCLS, and the service will be removed in a future vCenter release.
vCenter 9.0 also deprecates the requirement for vCLS to be active on clusters and recommends vCLS to be switched to retreat mode to avoid the redundant usage of resources. Deactivating vCLS does not impact the operation of vSphere DRS and vSphere HA services. For more information, see KB 316514. This update overrides any statements in the below article regarding the dependency of vSphere DRS and vSphere HA on vCLS for vCenter versions 9.0 and above.
VMware vCenter Server 7.0.x
VMware vCenter Server 8.0.x
ESXi 7.0.x
ESXi 8.0.x
vCLS is a mandatory feature which is deployed on each vSphere cluster when vCenter Server is upgraded to Update 1 or after a fresh deployment of vSphere 7.0 Update 1. The ESXi hosts can be of any older version which is compatible with vCenter server 7.0 Update 1. For more information, see the vSphere Cluster Services (vCLS) section of the vSphere Resource Management Guide.
As explained in the documentation, there will be 1 to 3 vCLS VMs running on each vSphere cluster depending on the size of the cluster. vSphere DRS in a DRS enabled cluster will depend on the availability of at least 1 vCLS VM. Unlike your workload/application VMs, vCLS VMs should be treated like system VMs. Do not perform any operations on these VMs unless guided by VMware support or explicitly listed as supported operation in any documentation.
On vSphere versions prior to vSphere 9.0, there is no way to disable vCLS on a vSphere cluster, and still have vSphere DRS remain functional on that cluster.
vCLS can be disabled on a cluster by following the Retreat Mode steps below. On vSphere versions prior to vSphere 9.0, being in Retreat Mode will impact some of the cluster services for that cluster.
Note:- Starting vSphere 9.0, vCLS can be disabled on a vSphere cluster without any impact to vSphere DRS or vSphere HA functionality and without impacting any cluster services for that cluster. This update overrides any statements in the below article regarding the dependency of vSphere DRS and vSphere HA on vCLS for vCenter versions 9.0 and above.
Reference: How to Disable vCLS on a Cluster via Retreat Mode
This feature has two revisions. The first, introduced in vSphere 7.0 Update 1, is known as "External vCLS". It will be deprecated in future versions of vSphere. The second, introduced in vSphere 8.0 Update 3, is known as "Embedded vCLS". These versions serve the same overall purpose, but have different runtimes, leading to differences in behaviors and supported operations.
Memory | 128 MB |
Memory Reservation | 100 MB |
Swap Size | 256 MB |
CPU | 1 |
CPU Reservation | 100 MHz |
Hard Disk | 2 GB |
Ethernet Adapter | 0 (It is a No NIC VM) |
VMDK Size | ~245 MB (thin disk) |
Storage Space | ~480 MB (thin disk) |
vm.config.extraConfig["HDCS.agent"] = "true"
This is the most reliable way to identify a general vCLS VM. A previous version of this article also included using the VM's "ManagedByInfo
" to identify it as vCLS. This was not incorrect, but it only works for External vCLS, as Embedded vCLS uses a different value. For more extensive information on identifying vCLS VMs and differentiating their type, refer to Script Identification for Embedded vCLS has Changed Identifiers Including ManagedByInfo.