# Managed Object - VimClusterVsanVcStretchedClusterSystem(vim.cluster.VsanVcStretchedClusterSystem)

See also
  ClusterComputeResource, HostSystem, Task, VimClusterVSANPreferredFaultDomainInfo, VimClusterVSANStretchedClusterCapability, VimClusterVSANStretchedClusterFaultDomainConfig, VimClusterVSANWitnessHostInfo, VsanHostDiskMapping, VsanHostVirtualApplianceInfo
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
VSANIsWitnessVirtualAppliance, VSANVcAddWitnessHost, VSANVcConvertToStretchedCluster, VSANVcGetPreferredFaultDomain, VSANVcGetWitnessHosts, VSANVcIsWitnessHost, VSANVcRemoveWitnessHost, VSANVcRetrieveStretchedClusterVcCapability, VSANVcSetPreferredFaultDomain

# 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.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
System.Read | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read
Since
  vSphere API 6.5

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
hosts | ManagedObjectReference[] to a HostSystem[] |

Return Value

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

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="VSANIsWitnessVirtualAppliance" type="vsan:VSANIsWitnessVirtualApplianceRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VSANIsWitnessVirtualApplianceResponse"> <complexType> <sequence> <element name="returnval" type="vsan:VsanHostVirtualApplianceInfo" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

# 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.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
Host.Inventory.AddHostToCluster | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster | ManagedObjectReference to a ClusterComputeResource | The target vSAN cluster to add/replace witness host;
witnessHost | ManagedObjectReference 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;
preferredFd | xsd:string | The name of preferred Fault Domain;
diskMapping* | VsanHostDiskMapping | 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

Return Value

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

Faults

Type | Description
--- | ---
InvalidArgument |
InvalidState | Thrown if any host in target cluster is not connected to vCenter server;
NotEnoughLicenses |
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="VSANVcAddWitnessHost" type="vsan:VSANVcAddWitnessHostRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VSANVcAddWitnessHostResponse"> <complexType> <sequence> <element name="returnval" type="vsan:ManagedObjectReference"/> </sequence> </complexType> </element>

# 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.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
Host.Inventory.EditCluster | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster | ManagedObjectReference to a ClusterComputeResource | The target cluster to be converted; It is expected to enable vSAN, but not a vSAN stretched cluster;
faultDomainConfig | VimClusterVSANStretchedClusterFaultDomainConfig | The mapping between Fault Domain and vSAN hosts reside in target cluster, to decide how to configure vSAN cluster into two sites;
witnessHost | ManagedObjectReference 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;
preferredFd | xsd:string | The name of preferred Fault Domain;
diskMapping* | VsanHostDiskMapping | 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

Return Value

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

Faults

Type | Description
--- | ---
InvalidArgument | Thrown if below issues exist: target cluster doesn't enable vSAN; witness host resides in target cluster; neither IPv4 nor IPv6 is properly configured for vSAN traffic on all hosts in target cluster; target cluster is already a vSAN stretched cluster;
InvalidState | Thrown if any host in target cluster is not connected to vCenter server;
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="VSANVcConvertToStretchedCluster" type="vsan:VSANVcConvertToStretchedClusterRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VSANVcConvertToStretchedClusterResponse"> <complexType> <sequence> <element name="returnval" type="vsan:ManagedObjectReference"/> </sequence> </complexType> </element>

# 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.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
System.Read | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster | ManagedObjectReference to a ClusterComputeResource | Target cluster to query.

Return Value

Type | Description
--- | ---
VimClusterVSANPreferredFaultDomainInfo | VSANPreferredFaultDomainInfo 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
--- | ---
InvalidState | Thrown if any host in target cluster is not connected to vCenter server;
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="VSANVcGetPreferredFaultDomain" type="vsan:VSANVcGetPreferredFaultDomainRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VSANVcGetPreferredFaultDomainResponse"> <complexType> <sequence> <element name="returnval" type="vsan:VimClusterVSANPreferredFaultDomainInfo" minOccurs="0"/> </sequence> </complexType> </element>

# VSANVcGetWitnessHosts(getWitnessHosts)

Query witness host configuration of specified cluster.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
System.Read | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster | ManagedObjectReference to a ClusterComputeResource | The target cluster to query;

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
--- | ---
InvalidState | Thrown if any host in target cluster is not connected to vCenter server;
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="VSANVcGetWitnessHosts" type="vsan:VSANVcGetWitnessHostsRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VSANVcGetWitnessHostsResponse"> <complexType> <sequence> <element name="returnval" type="vsan:VimClusterVSANWitnessHostInfo" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

# VSANVcIsWitnessHost(isWitnessHost)

Check whether specified host is a witness host.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
System.Read | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
host | ManagedObjectReference to a HostSystem | The target host to check.

Return Value

Type | Description
--- | ---
xsd:boolean | true is host is a witness host, false is host is not a witness host.

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="VSANVcIsWitnessHost" type="vsan:VSANVcIsWitnessHostRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VSANVcIsWitnessHostResponse"> <complexType> <sequence> <element name="returnval" type="xsd:boolean"/> </sequence> </complexType> </element>

# 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.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
Host.Inventory.RemoveHostFromCluster | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster | ManagedObjectReference to a ClusterComputeResource | The target cluster to disable;
witnessHost* | ManagedObjectReference to a HostSystem | Witness host to remove; Since vSphere API 6.0
witnessAddress* | xsd:string | The IP address of witness host used as unicast agent. Since vSphere API 6.0

*Need not be set

Return Value

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

Faults

Type | Description
--- | ---
InvalidArgument | Thrown if below issues exist: target cluster doesn't enable vSAN; witness host is specified but doesn't match the in-use configuration; target cluster is not vSAN stretched cluster;
InvalidState | Thrown if any host in target cluster is not connected to vCenter server;
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="VSANVcRemoveWitnessHost" type="vsan:VSANVcRemoveWitnessHostRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VSANVcRemoveWitnessHostResponse"> <complexType> <sequence> <element name="returnval" type="vsan:ManagedObjectReference"/> </sequence> </complexType> </element>

# 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.

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
System.Read | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster | ManagedObjectReference to a ClusterComputeResource | The target cluster to query;
verifyAllConnected* | xsd: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

Return Value

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

Faults

Type | Description
--- | ---
InvalidState | Thrown if any host in target cluster is not connected to vCenter server and verifyAllConnected is set to true;
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="VSANVcRetrieveStretchedClusterVcCapability" type="vsan:VSANVcRetrieveStretchedClusterVcCapabilityRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VSANVcRetrieveStretchedClusterVcCapabilityResponse"> <complexType> <sequence> <element name="returnval" type="vsan:VimClusterVSANStretchedClusterCapability" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

# VSANVcSetPreferredFaultDomain(setPreferredFaultDomain)

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

Combined Privileges Required (on vSphere ManagedEntity):

Privileges | Required on
--- | ---
Host.Inventory.EditCluster | ClusterComputeResource

* The RootFolder entity in above table refers to the vCenter server itself in the vCenter UI
* The ClusterComputeResource entity in above table refers to the cluster which is being operated on

* The Required Privileges section below is not used, please ignore.

Required Privileges
  System.Read

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VimClusterVsanVcStretchedClusterSystem used to make the method call.
cluster | ManagedObjectReference to a ClusterComputeResource | Target vSAN stretched cluster;
preferredFd | xsd:string | The user friendly name of preferred Fault Domain;
witnessHost* | ManagedObjectReference 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

Return Value

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

Faults

Type | Description
--- | ---
InvalidState | Thrown if any host in target cluster is not connected to vCenter server;
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="VSANVcSetPreferredFaultDomain" type="vsan:VSANVcSetPreferredFaultDomainRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsan="urn:vsan" name="VSANVcSetPreferredFaultDomainResponse"> <complexType> <sequence> <element name="returnval" type="vsan:ManagedObjectReference"/> </sequence> </complexType> </element>