# Managed Object - VsanVcClusterConfigSystem(vim.cluster.VsanVcClusterConfigSystem)

See also
  ClusterComputeResource, ClusterComputeResourceValidationResultBase, Task, VimVsanReconfigSpec, VirtualMachine, VsanConfigInfoEx, VsanHostDrsStats, VsanRuntimeStatsHostMap, VsanVcLifecycleCheckResult, VsanVcLifecycleCheckSpec
Since
  vSphere API 6.0

## Managed Object Description

This managed object type provides a comprehensive way to manage vSAN cluster configuration in below areas:

- Enable or disable vSAN
- Enable or disable Autoclaim mode for disk group
- Enable or disable data efficiency feature
- Configure vSAN iSCSI target feature
- Manage disk groups
- Manage fault domains
- Retrieve vSAN generic configuration
- Retrieve data efficiency configuration

In this class, ReconfigureEx enhances the legacy API ReconfigureComputeResource_Task. Legacy API ReconfigureComputeResource_Task is deprecated.
The ManagedEntity can be accessed with MOID of 'vsan-cluster-config-system', through vSAN service at vCenter server side.

Properties

Name | Type | Description
--- | --- | ---
None

Methods

Methods defined in this Managed Object
RunLifecycleCheck, VsanClusterGetConfig, VsanClusterGetRuntimeStats, VsanClusterReconfig, VsanEncryptedClusterRekey_Task, VsanQueryClusterDrsStats, VsanValidateConfigSpec

# RunLifecycleCheck(runLifecycleCheck)

Run checks for lifecycle operations on a given vSAN cluster. The specification indicates the lifecycle operation for which checks will be performed. The result contains an overall status of the checks, a list of the checks run, and vSAN cluster configurations details related to the checks. The overall status of the checks in the result represents the highest severity status of all the results of the individual checks. For example, if all tests pass, the highest severity status is green. If a test results in yellow status and another in red status, the overall status will be red. The list of checks contains a description of the check, its result status and in case of failure, a localized error message. The vSAN cluster configuration details contains information like witness host and fault domains information for stretched clusters, or no witness host information to indicate single-site cluster.

Required Privileges
  System.Read
Since
  vSAN API 7.3

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VsanVcClusterConfigSystem used to make the method call.
cluster P | ManagedObjectReference to a ClusterComputeResource | Cluster on which to perform lifecycle checks and return configuration information. Since vSAN API 7.3
vsanLifecycleCheckSpec P | VsanVcLifecycleCheckSpec | Specification for the lifecycle checks. Since vSAN API 7.3

P Required privilege - see tooltip for details

Return Value

Type | Description
--- | ---
VsanVcLifecycleCheckResult | Lifecycle checks and configuration results.

Faults

Type | Description
--- | ---
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFault | Thrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="RunLifecycleCheck" type="vsan:RunLifecycleCheckRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="RunLifecycleCheckResponse"> <complexType> <sequence> <element name="returnval" type="vsan:VsanVcLifecycleCheckResult"/> </sequence> </complexType> </element>

# VsanClusterGetConfig(getConfigInfoEx)

Get configInfoEx for a vSAN cluster
We can get vSAN configuration information through this method. Currently users can only get generic cluster configuration and data efficiency configuration through this API.
This API cannot retrieve fault domain configuration and disk group configuration. Disk group configuration can be retrieved through QueryDiskMappings. Fault domain configuration can be retrieved through Config.

Required Privileges
  None

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VsanVcClusterConfigSystem used to make the method call.
cluster P | ManagedObjectReference to a ClusterComputeResource | The target vCenter cluster Since vSphere API 6.0

P Required privilege: cluster

Return Value

Type | Description
--- | ---
VsanConfigInfoEx | The configuration spec for the vCenter cluster ConfigInfoEx inherits from VsanClusterConfigInfo. It appends data efficiency configuration.

Faults

Type | Description
--- | ---
InvalidState |
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFault |

Events

Type
None

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanClusterGetConfig" type="vsan:VsanClusterGetConfigRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanClusterGetConfigResponse"> <complexType> <sequence> <element name="returnval" type="vsan:VsanConfigInfoEx"/> </sequence> </complexType> </element>

# VsanClusterGetRuntimeStats(getRuntimeStats)

Get vSAN runtime stats of all hosts reside in specified cluster. This API is used to retrieve vSAN runtime stats from all hosts reside in specified vSAN cluster. It bases on specified stats type list, to retrieve expected vSAN runtime stats. If host is out of reach, such as disconnected from vCenter, its stats will be ignored and unset.

Required Privileges
  None
Since
  vSAN API 6.6

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VsanVcClusterConfigSystem used to make the method call.
cluster P | ManagedObjectReference to a ClusterComputeResource | The target vCenter cluster Since vSAN API 6.6
stats* P | xsd:string[] | List of vSAN runtime stats type. Supported vSAN runtime stats types are declared in VsanHostStatsType. If this parameter is omitted, all supported runtime stats will be collected and returned. Since vSAN API 6.6

*Need not be set P Required privilege - see tooltip for details

Return Value

Type | Description
--- | ---
VsanRuntimeStatsHostMap[] | vim.vsan.RuntimeStatsHostMap[] List of vSAN runtime stats, each item contains owner host and its stats. If specified cluster is empty, or vSAN is disabled on it, an empty list will be returned.

Faults

Type | Description
--- | ---
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanClusterGetRuntimeStats" type="vsan:VsanClusterGetRuntimeStatsRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanClusterGetRuntimeStatsResponse"> <complexType> <sequence> <element name="returnval" type="vsan:VsanRuntimeStatsHostMap" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

# VsanClusterReconfig(reconfigureEx)

Reconfigure a vSAN cluster. This method is used to set vSAN specific configuration, the method can be used to modify all vSAN related configuration. From vSAN 6.2, this API is the replacement of ReconfigureComputeResource_Task in order to support more configurations such as deduplication and compression, fault domain, disk mapping configuration in the cluster. The legacy API ReconfigureComputeResource_Task is deprecated because new API provide everything that legacy API has. To modify generic vSAN cluster setting such as vSAN enablement and autoclaim enablement, vsanClusterConfig needs to be setup. To modify vSAN cluster specific features such as deduplication and compression enablement, dataEfficiencyConfig needs to be setup. Currently for vSAN 6.2, deduplication and and compression need to be enable/disable together. To enable/disable deduplication and compression on a vSAN cluster, disk convert process (PerformVsanUpgradeEx for description about disk convert process) will be invoked. This is only supported for all-flash disk groups. To modify vSAN cluster fault domain configuration, faultDomainsSpec needs to be setup. To modify vSAN cluster disk groups reconfiguration, diskMappingSpec needs to be setup. To modify vSAN iSCSI target service configuration, vim.vsan.ReconfigSpecs#iscsiSpec needs to be setup.

Reconfiguring vSAN cluster requires Host.Inventory.EditCluster privilege on the cluster, extra privileges may be required depending on what is being changed:

- Cryptographer.ManageEncryptionPolicy and Cryptographer.ManageKeys if changing data encryption configuration.

Required Privileges
  None

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VsanVcClusterConfigSystem used to make the method call.
cluster P | ManagedObjectReference to a ClusterComputeResource | The target VC cluster. Since vSphere API 6.0
vsanReconfigSpec P | VimVsanReconfigSpec | The configure spec for vSAN cluster. Since vSphere API 6.0

P Required privilege - see tooltip for details

Return Value

Type | Description
--- | ---
ManagedObjectReference to a Task | vim.Task

Faults

Type | Description
--- | ---
InvalidState | Thrown if the vSAN is not enabled in current cluster.
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFault | when turn on data efficiency feature on a cluster which has hybrid disk group.

Events

Type
None

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanClusterReconfig" type="vsan:VsanClusterReconfigRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanClusterReconfigResponse"> <complexType> <sequence> <element name="returnval" type="vsan:ManagedObjectReference"/> </sequence> </complexType> </element>

# VsanEncryptedClusterRekey_Task(rekeyEncryptedCluster)

Regenerate the key(s) used by vSAN encryption for the given cluster. When the key(s) used for vSAN encryption is compromised, this API can be used to renew the key(s). As described in VsanHostEncryptionInfo, vSAN uses Key Encryption Key (KEK) to wrap the Data Encryption Key (DEK). Generally a user will only need to renew the KEK and use new KEK to rewrap the DEK, when KEK is compromised, or on regular basis. This is referred to as "shallow rekey". If user suspects that DEK is also compromised, both KEK and DEK will be renewed. Correspondingly this is called "deep rekey". And as a consequence of DEK change, the data on vSAN datastore will be re-encrypted with the new DEK, so this will be a slow process.
This API does not support switching to a different KMS cluster. When there is a need to switch to a different KMS cluster, call vim.cluster.VsanVcClusterConfigSystem#VsanClusterReconfig and specify a different KMS cluster in the configuration kmsProviderId.

To run either shallow rekey or deep rekey for an encrypted vSAN cluster, both Cryptographer.ManageKeys privilege and Host.Inventory.EditCluster privilege are required on the cluster. If it is a shallow rekey, alternatively, caller with Vsan.Cluster.ShallowRekey privilege on the cluster will also be allowed.

Required Privileges
  None
Since
  vSAN API 6.6

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VsanVcClusterConfigSystem used to make the method call.
encryptedCluster P | ManagedObjectReference to a ClusterComputeResource | The target VC cluster Since vSAN API 6.6
deepRekey* P | xsd:boolean | True to perform a deep rekey. Its default value is false when not provided, which means shallow rekey is performed Since vSAN API 6.6
allowReducedRedundancy* P | xsd:boolean | This optional parameter is only applicable for deep rekey when it needs to migrate data across cluster for changing vSAN disk format. The default value is 'false' if not specified See allowReducedRedundancy, vim.vsan.host.DecommissionMode.ObjectAction#ensureObjectAccessibility, and vim.vsan.host.DecommissionMode.ObjectAction#evacuateAllData. Since vSAN API 6.6

*Need not be set P Required privilege - see tooltip for details

Return Value

Type | Description
--- | ---
ManagedObjectReference to a Task |

Faults

Type | Description
--- | ---
InvalidState | Thrown if the vSAN is not enabled or encryption is not enabled on the cluster.
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFault |

Events

Type
None

# VsanQueryClusterDrsStats(queryClusterDrsStats)

To support integration between vSAN and DRS, we are expected to report runtime stats of vSAN member hosts and VMs locate in specified vSAN cluster from storage perspective. Per request from DRS service, below stats are requested:

- 1. capacity contributed to vSAN datastore per host;
- 2. capacity usage to vSAN datastore per host;
- 3. total size per vSAN VM;
- 4. valid data percentage on every host per vSAN VM;

This API is used to retrieve runtime stats requested by DRS.

Required Privileges
  None
Since
  vSAN API VMC M5

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VsanVcClusterConfigSystem used to make the method call.
cluster P | ManagedObjectReference to a ClusterComputeResource | The target vSAN cluster; Since vSAN API VMC M5
vms* P | ManagedObjectReference[] to a VirtualMachine[] | Specified VM list of which runtime stats should be reported. If omitted return stats of all vSAN VMs locate in specified vSAN cluster; Since vSAN API VMC M5

*Need not be set P Required privilege - see tooltip for details

Return Value

Type | Description
--- | ---
VsanHostDrsStats[] | List of VsanHostDrsStats, in which stats should be parsed by the order of returned DrsStats.

Faults

Type | Description
--- | ---
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanQueryClusterDrsStats" type="vsan:VsanQueryClusterDrsStatsRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanQueryClusterDrsStatsResponse"> <complexType> <sequence> <element name="returnval" type="vsan:VsanHostDrsStats" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

# VsanValidateConfigSpec(validateConfigSpec)

Validate the vSAN cluster reconfig spec to figure out whether user spec can be supported by target cluster. This API cannot predict the runtime failure, but only check the spec based on software capability. If target cluster cannot support the spec, it returns the detailed config issues.

Required Privileges
  None
Since
  vSAN API vSAN 7.0U1

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VsanVcClusterConfigSystem used to make the method call.
cluster P | ManagedObjectReference to a ClusterComputeResource | The target VC cluster to apply reconfig spec Since vSAN API vSAN 7.0U1
vsanReconfigSpec P | VimVsanReconfigSpec | The configure spec to be validated Since vSAN API vSAN 7.0U1

P Required privilege - see tooltip for details

Return Value

Type | Description
--- | ---
ClusterComputeResourceValidationResultBase[] | A list of different validation results. The result returned are of two types. 1. If the spec enables vSAN2, then result for every precheck is returned using vim.vsan.ClusterConfigPrecheckItem. This includes prechecks of all possible statuses as in VsanHealthStatusType 2. If the spec does not enable vSAN2, then the result for prechecks are returned using ClusterComputeResourceValidationResultBase. Here, only the the prechecks which fail the validation are returned. The field info contains the precheck failure reason.

Faults

Type | Description
--- | ---
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanValidateConfigSpec" type="vsan:VsanValidateConfigSpecRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VsanValidateConfigSpecResponse"> <complexType> <sequence> <element name="returnval" type="vsan:ClusterComputeResourceValidationResultBase" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>