Managed Object - VimClusterVsanVcStretchedClusterSystem(vim.cluster.VsanVcStretchedClusterSystem)

See also
ClusterComputeResource, ClusterRuntimeInfo, HostSystem, Task, VimClusterVSANPreferredFaultDomainInfo, VimClusterVSANStretchedClusterCapability, VimClusterVSANStretchedClusterFaultDomainConfig, VimClusterVSANWitnessHostInfo, VsanHostDiskMapping, VsanHostVirtualApplianceInfo, VSANSharedWitnessCompatibilityResult, VsanVcStretchedClusterConfigSpec
Since
vSphere API 6.0


Managed Object Description

vSAN stretched Cluster is a specific configuration implemented in environments where disaster/downtime avoidance is a key requirement. vSAN stretched Clusters with Witness Host refers to a deployment where a user sets up a vSAN cluster with 2 active/active sites with numbers of ESXi hosts between the two sites. The sites are connected via a high bandwidth/low latency link. The third site hosting the vSAN Witness Host is connected to both of the active/active data-sites. This connectivity can be via low bandwidth/high latency links. Each site is configured as a vSAN Fault Domain. The nomenclature used to describe a vSAN stretched Cluster configuration is X+Y+Z, where X is the number of ESXi hosts at data site A, Y is the number of ESXi hosts at data site B, and Z is the number of witness hosts at site C. Data sites are where virtual machines are deployed. The maximum configuration is 15+15+1 (31 nodes).
vSAN Remote Office / Branch Office Deployment, aka ROBO cluster, is a specific deployment of vSAN stretched cluster. A two-node vSAN cluster, and a vSphere vSAN witness host appliance as witness, forms a vSAN ROBO cluster. Copies of vSAN objects that make up a virtual machine are typically stored in two physical nodes, if one of the physical nodes is offline, it is still possible for virtual machines to run using the files located on another physical node. In the case where the hosts in a two-node cluster are unable to communicate across the network, the witness serves as a "tie-breaker" to achieve a quorum and enables the cluster to restart virtual machines impacted by an outage. Details to deploy a vSAN stretched cluster, please reference to API VSANVcConvertToStretchedCluster, and for ROBO cluster, please assign witness appliance to parameter 'witnessHost', and each physical host stands for a Fault Domain.
VsanVcStretchedClusterSystem is used to configure and manage vSAN stretched cluster. The ManagedEntity can be accessed through MOID of vsan-stretched-cluster-system, through vSAN service at vCenter server side.

Properties

Name Type Description
None

Methods

Methods defined in this Managed Object
QuerySharedWitnessClusterInfo, QuerySharedWitnessCompatibility, VSANIsWitnessVirtualAppliance, VSANVcAddWitnessHost, VsanVcAddWitnessHostForClusters, VSANVcConvertToStretchedCluster, VSANVcGetPreferredFaultDomain, VSANVcGetWitnessHosts, VSANVcIsWitnessHost, VSANVcRemoveWitnessHost, VsanVcReplaceWitnessHostForClusters, VSANVcRetrieveStretchedClusterVcCapability, VSANVcSetPreferredFaultDomain

QuerySharedWitnessClusterInfo(queryWitnessHostClusterInfo)

Query cluster runtime information for each cluster associated to given witness host.
Required Privileges
System.Read
Since
vSAN API vSAN 7.0U1

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
witnessHost PManagedObjectReference
to a HostSystem

Witness host managed entity.

Since vSAN API vSAN 7.0U1
skipComponentsCount* Pxsd:boolean

Skip setting in the result the number of components for each cluster on the given witness host. This can fail if the host is disconnected, set to true to avoid failure and retrieve other information in the result.

Since vSAN API vSAN 7.0U1
*Need not be set PRequired privilege - see tooltip for details

Return Value

Type Description
ClusterRuntimeInfo[]List of ClusterRuntimeInfo to present each cluster's information.

Faults

Type Description
NotSupportedThrown if this API is not supported on current platform.
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



QuerySharedWitnessCompatibility(querySharedWitnessCompatibility)

Query whether a given host could be used as shared witness for a group of specified ROBO clusters. Result data would contain compatibility check result for both sharedWitnessHost and roboClusters. For sharedWitnessHost, it will check following items. 1) Check whether given host is a witness host. 2) Check whether this witness host has shared witness capability. 3) Check whether clusters count would exceed per shared witness host's limit. For roboClusters, it will check following items. 1) For a vSAN not enabled cluster, check whether it could be a candidate of ROBO cluster (cluster which has 2 hosts). 2) For a vSAN enabled cluster, check whether it is a ROBO cluster (stretched cluster which has 2 hosts). 3) For a ROBO cluster, check whether its component limit exceeds current shared witness host's component count limitation for individual cluster.
Required Privileges
System.Read
Since
vSAN API vSAN 7.0U1

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
sharedWitnessHost PManagedObjectReference
to a HostSystem

A host entity which would be used as a shared witness host.

Since vSAN API vSAN 7.0U1
roboClusters PManagedObjectReference[]
to a ClusterComputeResource[]

A list of ROBO clusters which would use sharedWitnessHost as their witness.

Since vSAN API vSAN 7.0U1
PRequired privilege - see tooltip for details

Return Value

Type Description
VSANSharedWitnessCompatibilityResultSharedWitnessCompatibilityResult to present compatibility check result of given shared witness host and robo cluster list.

Faults

Type Description
NotSupportedThrown if this API is not supported on current platform.
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VSANIsWitnessVirtualAppliance(isWitnessVirtualAppliance)

Return whether the host is a virtual appliance witness host for stretched cluster Witness host can be a VM deployed from vSAN witness server OVF, the VM added to vCenter datacenter as a ESXi host, and has no difference with other ESXi host in a stretched cluster, but the VM host can only used as witness host, UI need to know if the witness host is a virtual appliance, using this API can tell the host is a virtual appliance or not.
Required Privileges
None
Since
vSphere API 6.5

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
hosts PManagedObjectReference[]
to a HostSystem[]

Since vSphere API 6.5
P Required privilege: hosts

Return Value

Type Description
VsanHostVirtualApplianceInfo[]dictionary of hosts' MO id and if the host is a virtual appliance

Faults

Type Description
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VSANVcAddWitnessHost(addWitnessHost)

Add a host as witness host to vSAN cluster to re-enable vSAN stretched cluster. It is expected to be used in following scenarios: 1. Stretched cluster is disabled by vim.cluster.VsanVcStretchedClusterSystem#VSANVcRemoveWitnessHost; 2. Replace original witness host with a new one, this should happen when old witness host is out of service, such as host is down or removed from vCenter inventory; This function doesn't change existing Fault Domain configuration, and please be sure the old witness host was gone or out of service, because replacing witness host will reduce redundancy. Relative to API vim.cluster.VsanVcStretchedClusterSystem#VSANVcConvertToStretchedCluster , it only takes care of witness host reconfiguration, vSAN cluster must already be configured for stretched cluster.
Required Privileges
None

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster PManagedObjectReference
to a ClusterComputeResource

The target vSAN cluster to add/replace witness host;

Since vSphere API 6.0
witnessHost PManagedObjectReference
to a HostSystem

The witness host to be added into vSAN cluster. This host must be connected and managed by the same vCenter server, and cannot be a part of target cluster;

Since vSphere API 6.0
preferredFd Pxsd:string

The name of preferred Fault Domain;

Since vSphere API 6.0
diskMapping* PVsanHostDiskMapping

The diskMapping to be created on witness host. If disk claim is configured as auto-mode on witness host, this parameter is not required.

Since vSphere API 6.0
metadataMode* Pxsd:boolean

True to indicate the host runs as metadata host instead of normal witness host. This is currently reserved by VMware internally to represent a different cluster type other than stretched cluster. Leave this unset for vSAN stretched cluster.

Since vSphere API 6.0
*Need not be set PRequired privilege - see tooltip for details

Return Value

Type Description
ManagedObjectReference
to a Task
vim.Task

Faults

Type Description
InvalidArgument
InvalidStateThrown if any host in target cluster is not connected to vCenter server;
NotEnoughLicenses
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VsanVcAddWitnessHostForClusters(addWitnessHostForClusters)

This API is used to convert a batch of traditional vSAN clusters into vSAN stretched clusters sharing the same witness host.

Relative to API vim.cluster.VsanVcStretchedClusterSystem#VSANVcConvertToStretchedCluster , it takes care of witness host reconfiguration, and the stretched cluster system in each cluster may be configured:

  1. Configure vSAN cluster into two sites through the specified vSAN Fault Domain setting;
  2. Setup preferred Fault Domain through the specified preferredFault Domain setting;

Clusters that are already working in stretched mode are not supported. If the configuration of one or more clusters fails, the remaining successful operations will not be rolled back because this is a batch operation for multiple clusters.

Required Privileges
None
Since
vSAN API vSAN 7.0U1

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
configSpec PVsanVcStretchedClusterConfigSpec

The mapping between target witness host config and target clusters's config(configSpec.clusters), to decide how to configure target clusters to work in stretched mode.

Since vSAN API vSAN 7.0U1
P Required privilege: configSpec

Return Value

Type Description
ManagedObjectReference
to a Task
vim.Task

Faults

Type Description
InvalidArgument
NotEnoughLicenses
NotSupportedThrown if this API is not supported on current platform.
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VSANVcConvertToStretchedCluster(convertToStretchedCluster)

This API is used to convert a traditional vSAN cluster to vSAN stretched cluster. It will help to:
  1. Configure vSAN cluster into two sites through vSAN Fault Domain setting;
  2. Add witness host and configure unicast communication at cluster wide;
  3. Setup preferred Fault Domain;
  4. Create vSAN disk group on witness host if auto-claim is not enabled on witness host;

Relative to API vim.cluster.VsanVcStretchedClusterSystem#VSANVcAddWitnessHost, it not only takes care of setting up witness host, but also help on vSAN sites configuration, to guarantee the vSAN cluster works in stretched mode. vSAN cluster already works in stretched mode, is not supported by this API.
Required Privileges
None

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster PManagedObjectReference
to a ClusterComputeResource

The target cluster to be converted; It is expected to enable vSAN, but not a vSAN stretched cluster;

Since vSphere API 6.0
faultDomainConfig PVimClusterVSANStretchedClusterFaultDomainConfig

The mapping between Fault Domain and vSAN hosts reside in target cluster, to decide how to configure vSAN cluster into two sites;

Since vSphere API 6.0
witnessHost PManagedObjectReference
to a HostSystem

The witness host to be added into vSAN cluster. This host must be connected and managed by the same vCenter server, and cannot be a part of target cluster;

Since vSphere API 6.0
preferredFd Pxsd:string

The name of preferred Fault Domain;

Since vSphere API 6.0
diskMapping* PVsanHostDiskMapping

The diskMapping to be created on witness host. If disk claim is configured as auto-mode on witness host, this parameter is not required.

Since vSphere API 6.0
*Need not be set PRequired privilege - see tooltip for details

Return Value

Type Description
ManagedObjectReference
to a Task
vim.Task

Faults

Type Description
InvalidArgumentThrown if below issues exist:
  1. target cluster doesn't enable vSAN;
  2. witness host resides in target cluster;
  3. neither IPv4 nor IPv6 is properly configured for vSAN traffic on all hosts in target cluster;
  4. target cluster is already a vSAN stretched cluster;
  5. both diskMapping and storagePoolSpec are specified;
InvalidStateThrown if any host in target cluster is not connected to vCenter server;
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VSANVcGetPreferredFaultDomain(getPreferredFaultDomain)

Query configuration of preferred Fault Domain of specified cluster. If call this API against vSAN service of version 6.5 and before, additional privilege Host.Inventory.EditCluster is required, please be noted.
Required Privileges
None

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster PManagedObjectReference
to a ClusterComputeResource

Target cluster to query.

Since vSphere API 6.0
P Required privilege: cluster

Return Value

Type Description
VimClusterVSANPreferredFaultDomainInfoVSANPreferredFaultDomainInfo which contains preferred Fault Domain's user friendly name and UUID. If specified cluster is not vSAN stretched cluster, both fields will be unset.

Faults

Type Description
InvalidStateThrown if any host in target cluster is not connected to vCenter server;
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VSANVcGetWitnessHosts(getWitnessHosts)

Query witness host configuration of specified cluster.
Required Privileges
None

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster PManagedObjectReference
to a ClusterComputeResource

The target cluster to query;

Since vSphere API 6.0
P Required privilege: cluster

Return Value

Type Description
VimClusterVSANWitnessHostInfo[]VSANWitnessHostInfo[] which contains witness host's UUID, ManagedEntity instance, preferred Fault Domain's user friendly name and UUID, IP address of unicast agent, and name of the Fault Domain that witness host resides in. If specified cluster in vSAN stretched cluster, all fields above will be set to actual setting, otherwise all fields will be unset.

Faults

Type Description
InvalidStateThrown if any host in target cluster is not connected to vCenter server;
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VSANVcIsWitnessHost(isWitnessHost)

Check whether specified host is a witness host.
Required Privileges
None

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
host PManagedObjectReference
to a HostSystem

The target host to check.

Since vSphere API 6.0
P Required privilege: host

Return Value

Type Description
xsd:booleantrue is host is a witness host, false is host is not a witness host.

Faults

Type Description
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VSANVcRemoveWitnessHost(removeWitnessHost)

Remove witness host from the vSAN stretched cluster to disable vSAN stretched cluster. Detailed changes will happen on target cluster:
  1. vSAN on witness host will be disabled;
  2. Unicast agent setting will be removed from all data hosts in specified vSAN stretched cluster;

Original Fault Domains for both two sites will be kept, and vSAN is still enabled on all data hosts.
Required Privileges
None

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster PManagedObjectReference
to a ClusterComputeResource

The target cluster to disable;

Since vSphere API 6.0
witnessHost* PManagedObjectReference
to a HostSystem

Witness host to remove;

Since vSphere API 6.0
witnessAddress* Pxsd:string

The IP address of witness host used as unicast agent.

Since vSphere API 6.0
*Need not be set PRequired privilege - see tooltip for details

Return Value

Type Description
ManagedObjectReference
to a Task
vim.Task

Faults

Type Description
InvalidArgumentThrown if below issues exist:
  1. target cluster doesn't enable vSAN;
  2. witness host is specified but doesn't match the in-use configuration;
  3. target cluster is not vSAN stretched cluster;
InvalidStateThrown if any host in target cluster is not connected to vCenter server;
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VsanVcReplaceWitnessHostForClusters(replaceWitnessHostForClusters)

Replace witness host for all specified vSAN stretched clusters.

In other word, It is used to configure multiple robo clusters for a given witness host.

Each cluster in config is expected to be used in following scenario: Replace original witness host with a new one, and then the old witness host will no longer serve the target cluster. In this scenario, the preferredFdName and faultDomainConfig are optional parameters. If there is no specified preferredFdName/faultDomainConfig, target cluster will use the previous configuration to configure itself.

Relative to API vim.cluster.VsanVcStretchedClusterSystem#VSANVcAddWitnessHost, it takes care of witness host reconfiguration, and the stretched cluster system in each cluster may be reconfigured. Clusters that are working in normal mode(no-stretched) are not supported.

If the configuration of one or more clusters fails, the remaining successful operations will not be rolled back because this is a batch operation for multiple clusters.

Required Privileges
None
Since
vSAN API vSAN 7.0U1

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
configSpec PVsanVcStretchedClusterConfigSpec

The mapping between target witness host config and target clusters's config(configSpec.clusters), to decide how to reconfigure target stretched clusters with new witness host.

Since vSAN API vSAN 7.0U1
P Required privilege: configSpec

Return Value

Type Description
ManagedObjectReference
to a Task
vim.Task

Faults

Type Description
InvalidArgument
NotEnoughLicenses
NotSupportedThrown if this API is not supported on current platform.
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VSANVcRetrieveStretchedClusterVcCapability(retrieveStretchedClusterVcCapability)

Query hosts' capabilities of supporting vSAN stretched cluster, which reside in specified cluster, to decide whether specified cluster supports vSAN stretched cluster feature. It could be used for any cluster, but only when all hosts reside in target cluster can support vSAN stretched cluster, it can be converted to vSAN stretched cluster.
Required Privileges
None

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster PManagedObjectReference
to a ClusterComputeResource

The target cluster to query;

Since vSphere API 6.0
verifyAllConnected* Pxsd:boolean

Whether to ignore disconnected hosts. If it is set to true, vim.fault.InvalidState will be met if any host in target cluster is disconnected; if it is set to false, disconnected hosts will be ignored. Default value is false. But a cluster with disconnected hosts cannot be converted to vSAN stretched cluster;

Since vSphere API 6.0
*Need not be set PRequired privilege - see tooltip for details

Return Value

Type Description
VimClusterVSANStretchedClusterCapability[]List of VSANStretchedClusterCapability, to present whether each host can support vSAN stretched cluster.

Faults

Type Description
InvalidStateThrown if any host in target cluster is not connected to vCenter server and verifyAllConnected is set to true;
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition



VSANVcSetPreferredFaultDomain(setPreferredFaultDomain)

Set preferred Fault Domain for a vSAN stretched cluster. This API could set/reconfigure preferred Fault Domain setting.
Required Privileges
None

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster PManagedObjectReference
to a ClusterComputeResource

Target vSAN stretched cluster;

Since vSphere API 6.0
preferredFd Pxsd:string

The user friendly name of preferred Fault Domain;

Since vSphere API 6.0
witnessHost* PManagedObjectReference
to a HostSystem

The witness host to apply preferred Fault Domain setting; if it is not specified, will take the in-use witness host configured at cluster side.

Since vSphere API 6.0
*Need not be set PRequired privilege - see tooltip for details

Return Value

Type Description
ManagedObjectReference
to a Task
vim.Task

Faults

Type Description
InvalidStateThrown if any host in target cluster is not connected to vCenter server;
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
VsanFaultThrown if any unexpected runtime fault is met.

Events

Type
None

Show WSDL type definition