Folder Create Cluster Ex

Folder Create Cluster Ex

Creates a new cluster compute resource in this folder.

Any % (percent) character used in this name parameter must be escaped, unless it is used to start an escape sequence. Clients may also escape any other characters in this name parameter.

Required privileges: Host.Inventory.CreateCluster

Request
URI
POST
https://{vcenter-host}/sdk/vim25/{release}/Folder/{moId}/CreateClusterEx
COPY
Path Parameters
string
moId
Required

The unique identifier for the managed object to which the method attaches; the serialized managed object reference for a request has the form moType/moId, in this case Folder/{moId}.

string
release
Required

The vSphere release schema. The current specification covers vSphere 8.0.2.0 APIs.


Request Body
CreateClusterExRequestType of type(s) application/json
Required
{
    "name": "string",
    "spec": {
        "systemVMsConfig": {
            "allowedDatastores": [
                {
                    "_typeName": "string",
                    "operation": "string",
                    "removeKey": {
                        "_typeName": "string"
                    },
                    "datastore": {
                        "type": "string",
                        "value": "string"
                    }
                }
            ],
            "notAllowedDatastores": [
                {
                    "_typeName": "string",
                    "operation": "string",
                    "removeKey": {
                        "_typeName": "string"
                    },
                    "datastore": {
                        "type": "string",
                        "value": "string"
                    }
                }
            ],
            "dsTagCategoriesToExclude": [
                {
                    "_typeName": "string",
                    "operation": "string",
                    "removeKey": {
                        "_typeName": "string"
                    },
                    "category": "string"
                }
            ],
            "deploymentMode": "string"
        },
        "dasConfig": {
            "enabled": false,
            "vmMonitoring": "string",
            "hostMonitoring": "string",
            "vmComponentProtecting": "string",
            "failoverLevel": 0,
            "admissionControlPolicy": {
                "resourceReductionToToleratePercent": 0,
                "pMemAdmissionControlEnabled": false
            },
            "admissionControlEnabled": false,
            "defaultVmSettings": {
                "restartPriority": "string",
                "restartPriorityTimeout": 0,
                "isolationResponse": "string",
                "vmToolsMonitoringSettings": {
                    "enabled": false,
                    "vmMonitoring": "string",
                    "clusterSettings": false,
                    "failureInterval": 0,
                    "minUpTime": 0,
                    "maxFailures": 0,
                    "maxFailureWindow": 0
                },
                "vmComponentProtectionSettings": {
                    "vmStorageProtectionForAPD": "string",
                    "enableAPDTimeoutForHosts": false,
                    "vmTerminateDelayForAPDSec": 0,
                    "vmReactionOnAPDCleared": "string",
                    "vmStorageProtectionForPDL": "string"
                }
            },
            "option": [
                {
                    "_typeName": "string",
                    "key": "string",
                    "value": {
                        "_typeName": "string"
                    }
                }
            ],
            "heartbeatDatastore": [
                {
                    "_typeName": "string",
                    "type": "string",
                    "value": "string"
                }
            ],
            "hBDatastoreCandidatePolicy": "string"
        },
        "dasVmConfigSpec": [
            {
                "_typeName": "string",
                "operation": "string",
                "removeKey": {
                    "_typeName": "string"
                },
                "info": {
                    "key": {
                        "type": "string",
                        "value": "string"
                    },
                    "restartPriority": "string",
                    "powerOffOnIsolation": false,
                    "dasSettings": {
                        "restartPriority": "string",
                        "restartPriorityTimeout": 0,
                        "isolationResponse": "string",
                        "vmToolsMonitoringSettings": {
                            "enabled": false,
                            "vmMonitoring": "string",
                            "clusterSettings": false,
                            "failureInterval": 0,
                            "minUpTime": 0,
                            "maxFailures": 0,
                            "maxFailureWindow": 0
                        },
                        "vmComponentProtectionSettings": {
                            "vmStorageProtectionForAPD": "string",
                            "enableAPDTimeoutForHosts": false,
                            "vmTerminateDelayForAPDSec": 0,
                            "vmReactionOnAPDCleared": "string",
                            "vmStorageProtectionForPDL": "string"
                        }
                    }
                }
            }
        ],
        "drsConfig": {
            "enabled": false,
            "enableVmBehaviorOverrides": false,
            "defaultVmBehavior": "string",
            "vmotionRate": 0,
            "scaleDescendantsShares": "string",
            "option": [
                {
                    "_typeName": "string",
                    "key": "string",
                    "value": {
                        "_typeName": "string"
                    }
                }
            ]
        },
        "drsVmConfigSpec": [
            {
                "_typeName": "string",
                "operation": "string",
                "removeKey": {
                    "_typeName": "string"
                },
                "info": {
                    "key": {
                        "type": "string",
                        "value": "string"
                    },
                    "enabled": false,
                    "behavior": "string"
                }
            }
        ],
        "rulesSpec": [
            {
                "_typeName": "string",
                "operation": "string",
                "removeKey": {
                    "_typeName": "string"
                },
                "info": {
                    "key": 0,
                    "status": "string",
                    "enabled": false,
                    "name": "string",
                    "mandatory": false,
                    "userCreated": false,
                    "inCompliance": false,
                    "ruleUuid": "string"
                }
            }
        ],
        "orchestration": {
            "defaultVmReadiness": {
                "readyCondition": "string",
                "postReadyDelay": 0
            }
        },
        "vmOrchestrationSpec": [
            {
                "_typeName": "string",
                "operation": "string",
                "removeKey": {
                    "_typeName": "string"
                },
                "info": {
                    "vm": {
                        "type": "string",
                        "value": "string"
                    },
                    "vmReadiness": {
                        "readyCondition": "string",
                        "postReadyDelay": 0
                    }
                }
            }
        ],
        "dpmConfig": {
            "enabled": false,
            "defaultDpmBehavior": "string",
            "hostPowerActionRate": 0,
            "option": [
                {
                    "_typeName": "string",
                    "key": "string",
                    "value": {
                        "_typeName": "string"
                    }
                }
            ]
        },
        "dpmHostConfigSpec": [
            {
                "_typeName": "string",
                "operation": "string",
                "removeKey": {
                    "_typeName": "string"
                },
                "info": {
                    "key": {
                        "type": "string",
                        "value": "string"
                    },
                    "enabled": false,
                    "behavior": "string"
                }
            }
        ],
        "vsanConfig": {
            "enabled": false,
            "defaultConfig": {
                "uuid": "string",
                "autoClaimStorage": false,
                "checksumEnabled": false
            },
            "vsanEsaEnabled": false
        },
        "vsanHostConfigSpec": [
            {
                "_typeName": "string",
                "enabled": false,
                "hostSystem": {
                    "type": "string",
                    "value": "string"
                },
                "clusterInfo": {
                    "uuid": "string",
                    "nodeUuid": "string"
                },
                "storageInfo": {
                    "autoClaimStorage": false,
                    "diskMapping": [
                        {
                            "_typeName": "string",
                            "ssd": {
                                "capacity": {
                                    "blockSize": 0,
                                    "block": 0
                                },
                                "devicePath": "string",
                                "ssd": false,
                                "localDisk": false,
                                "physicalLocation": [
                                    "string"
                                ],
                                "emulatedDIXDIFEnabled": false,
                                "vsanDiskInfo": {
                                    "vsanUuid": "string",
                                    "formatVersion": 0
                                },
                                "scsiDiskType": "string"
                            },
                            "nonSsd": [
                                {
                                    "_typeName": "string",
                                    "deviceName": "string",
                                    "deviceType": "string",
                                    "key": "string",
                                    "uuid": "string",
                                    "descriptor": [
                                        {
                                            "_typeName": "string",
                                            "quality": "string",
                                            "id": "string"
                                        }
                                    ],
                                    "canonicalName": "string",
                                    "displayName": "string",
                                    "lunType": "string",
                                    "vendor": "string",
                                    "model": "string",
                                    "revision": "string",
                                    "scsiLevel": 0,
                                    "serialNumber": "string",
                                    "durableName": {
                                        "namespace": "string",
                                        "namespaceId": 0,
                                        "data": [
                                            0
                                        ]
                                    },
                                    "alternateName": [
                                        {
                                            "_typeName": "string",
                                            "namespace": "string",
                                            "namespaceId": 0,
                                            "data": [
                                                0
                                            ]
                                        }
                                    ],
                                    "standardInquiry": [
                                        0
                                    ],
                                    "queueDepth": 0,
                                    "operationalState": [
                                        "string"
                                    ],
                                    "capabilities": {
                                        "updateDisplayNameSupported": false
                                    },
                                    "vStorageSupport": "string",
                                    "protocolEndpoint": false,
                                    "perenniallyReserved": false,
                                    "clusteredVmdkSupported": false,
                                    "applicationProtocol": "string",
                                    "dispersedNs": false,
                                    "capacity": {
                                        "blockSize": 0,
                                        "block": 0
                                    },
                                    "devicePath": "string",
                                    "ssd": false,
                                    "localDisk": false,
                                    "physicalLocation": [
                                        "string"
                                    ],
                                    "emulatedDIXDIFEnabled": false,
                                    "vsanDiskInfo": {
                                        "vsanUuid": "string",
                                        "formatVersion": 0
                                    },
                                    "scsiDiskType": "string"
                                }
                            ]
                        }
                    ],
                    "diskMapInfo": [
                        {
                            "_typeName": "string",
                            "mapping": {
                                "ssd": {
                                    "capacity": {
                                        "blockSize": 0,
                                        "block": 0
                                    },
                                    "devicePath": "string",
                                    "ssd": false,
                                    "localDisk": false,
                                    "physicalLocation": [
                                        "string"
                                    ],
                                    "emulatedDIXDIFEnabled": false,
                                    "vsanDiskInfo": {
                                        "vsanUuid": "string",
                                        "formatVersion": 0
                                    },
                                    "scsiDiskType": "string"
                                },
                                "nonSsd": [
                                    {
                                        "_typeName": "string",
                                        "deviceName": "string",
                                        "deviceType": "string",
                                        "key": "string",
                                        "uuid": "string",
                                        "descriptor": [
                                            {
                                                "_typeName": "string",
                                                "quality": "string",
                                                "id": "string"
                                            }
                                        ],
                                        "canonicalName": "string",
                                        "displayName": "string",
                                        "lunType": "string",
                                        "vendor": "string",
                                        "model": "string",
                                        "revision": "string",
                                        "scsiLevel": 0,
                                        "serialNumber": "string",
                                        "durableName": {
                                            "namespace": "string",
                                            "namespaceId": 0,
                                            "data": [
                                                0
                                            ]
                                        },
                                        "alternateName": [
                                            {
                                                "_typeName": "string",
                                                "namespace": "string",
                                                "namespaceId": 0,
                                                "data": [
                                                    0
                                                ]
                                            }
                                        ],
                                        "standardInquiry": [
                                            0
                                        ],
                                        "queueDepth": 0,
                                        "operationalState": [
                                            "string"
                                        ],
                                        "capabilities": {
                                            "updateDisplayNameSupported": false
                                        },
                                        "vStorageSupport": "string",
                                        "protocolEndpoint": false,
                                        "perenniallyReserved": false,
                                        "clusteredVmdkSupported": false,
                                        "applicationProtocol": "string",
                                        "dispersedNs": false,
                                        "capacity": {
                                            "blockSize": 0,
                                            "block": 0
                                        },
                                        "devicePath": "string",
                                        "ssd": false,
                                        "localDisk": false,
                                        "physicalLocation": [
                                            "string"
                                        ],
                                        "emulatedDIXDIFEnabled": false,
                                        "vsanDiskInfo": {
                                            "vsanUuid": "string",
                                            "formatVersion": 0
                                        },
                                        "scsiDiskType": "string"
                                    }
                                ]
                            },
                            "mounted": false
                        }
                    ],
                    "checksumEnabled": false
                },
                "networkInfo": {
                    "port": [
                        {
                            "_typeName": "string",
                            "ipConfig": {
                                "upstreamIpAddress": "string",
                                "downstreamIpAddress": "string"
                            },
                            "device": "string"
                        }
                    ]
                },
                "faultDomainInfo": {
                    "name": "string"
                },
                "vsanEsaEnabled": false
            }
        ],
        "groupSpec": [
            {
                "_typeName": "string",
                "operation": "string",
                "removeKey": {
                    "_typeName": "string"
                },
                "info": {
                    "name": "string",
                    "userCreated": false,
                    "uniqueID": "string"
                }
            }
        ],
        "infraUpdateHaConfig": {
            "enabled": false,
            "behavior": "string",
            "moderateRemediation": "string",
            "severeRemediation": "string",
            "providers": [
                "string"
            ]
        },
        "proactiveDrsConfig": {
            "enabled": false
        },
        "inHciWorkflow": false,
        "cryptoConfig": {
            "cryptoMode": "string"
        }
    }
}
string
name
Required

Name for the new cluster.

spec
Required

The ClusterConfigSpecEx data object provides a set of update specifications for complete cluster configuration.

You can configure a cluster when you create a new cluster (the CreateClusterEx method) or when you reconfigure an existing cluster (the ReconfigureComputeResource_Task method).

All fields are optional. If you set the modify parameter to true when you call ReconfigureComputeResource_Task, an unset property has no effect on the existing property value in the cluster configuration on the Server. If you set the modify parameter to false when you reconfigure a cluster, the cluster configuration is reverted to the default values, then the new configuration values are applied.

Use the properties defined for this object to configure the following services:

  • HA (High Availability) - provides failover protection for virtual machines running in a cluster of ESX Server hosts. The virtual machines are located in a Datastore, which provides shared storage for the cluster. When a failure occurs that affects a protected virtual machine, HA will restart the virtual machine on another host. When HA detects a host failure, either the host has failed or it may be isolated from the network. The HA agent on an isolated host will power off or shutdown the virtual machines running on that host so that they can be restarted elsewhere. See ClusterDasVmSettingsIsolationResponseEnum for information about how a host handles network isolation.

    When it chooses a failover host, HA selects a host that is compatible with the virtual machine and that can support resource allocation for that virtual machine so that service level guarantees remain intact. HA does not consider hosts that are in maintenance mode, standby mode, or which are disconnected from the vCenter Server. When a host powers on or becomes available again, HA is reenabled on that host, so it becomes available for failover again. VMware recommends that you configure hosts and virtual machines so that all virtual machines can run on all hosts in the cluster. This will maximize the chances of restarting a VM after a failure.

    HA also restarts a virtual machine after a guest operating system failure. In this case, the virtual machine health monitoring service detects the guest failure, and HA restarts the virtual machine on the same host. The service monitors heartbeats from the VmTools service and optionally heartbeats that are generated by a third-party application monitor. See ClusterVmToolsMonitoringSettings and ClusterDasConfigInfo.vmMonitoring.

    To enable HA for a cluster, set the ClusterDasConfigInfo.enabled property to true and the ClusterDasConfigInfo.hostMonitoring property to enabled. (The vSphere API uses the substring "das" in object, property, and method names for HA.1)

  • DRS (Distributed Resource Scheduling) - provides automatic initial virtual machine placement on any of the hosts in the cluster. DRS also makes automatic resource relocation and optimization decisions as hosts or virtual machines are added or removed from the cluster. You can also configure DRS for manual control, so that it only makes recommendations that you can review and carry out.

    To enable DRS for a cluster, set the ClusterDrsConfigInfo.enabled property to true.

  • DPM (Distributed Power Management) - supports optimized power consumption on the cluster. When virtual machines in a DRS cluster require fewer resources, DPM consolidates workloads onto fewer servers while maintaining quality of service guarantees and powers off the rest to reduce power consumption. When more resources are required, DPM brings the powered-down hosts online.

    To enable DPM for a cluster, set the ClusterDpmConfigInfo.enabled property to true.

  • VSAN - aggregrates hosts' local disks to present a single shared datastore to the cluster.

    To enable VSAN for a cluster, set the enabled property to true for vsanConfig.

  • InfraUpdateHA (Infrastructure update HA) - supports automatic migration of virtual machines to hosts with low risk of a catastrophic failure. Similar to DRS, you can also configure InfraUpdateHA for manual control to only makes recommendations that you can review and carry out. The health state of the hosts are propagated to HA to enable restarting of virtual machines in healthy hosts as possible.

    To enable InfraUpdateHA for a cluster, set the ClusterInfraUpdateHaConfigInfo.enabled property to true.

  • ProactiveDRS (Proactive Distributed Resources Scheduling) - supports virtual machine load balancing decisions that take predicted resource demand information into account.

    To enable ProactiveDRS for a cluster, set the ClusterProactiveDrsConfigInfo.enabled property to true.

The HA, DRS, and DPM services are integrated with the FT (Fault Tolerance) and EVC (Enhanced vMotion Compatibility) services. Use the CreateSecondaryVM_Task method to establish fault tolerance for a virtual machine. Use the vSphere Client to configure EVC. The HA, DRS, DPM, FT, and EVC services interact under the following circumstances.

  • To determine initial placement of a virtual machine, DRS checks to see if the HA admission control policy on a potential host supports the addition of the powered on virtual machine. With the default setting, DRS will not power on more than four FT virtual machines per host. You can use the configuration editor in the vSphere Client to set the HA advanced option das.maxFtVmsPerHost to the desired number or to zero to disable.

  • When a host fails, HA determines placement within the cluster when it restarts the virtual machines. If there is insufficient capacity, and DPM has put one or more compatible hosts into standby, HA relies on DPM to bring more capacity online.

  • To use FT in a cluster, the cluster must be HA-enabled.

  • You can disable HA in a cluster while there are FT virtual machines registered on hosts in the cluster. While HA is disabled, powered on FT virtual machines will continue to run, but HA will not restart any virtual machines after a failure. When HA is disabled, you cannot use the following FT operations:

  • In a cluster using DRS and HA with admission control turned on (ClusterDasConfigInfo.admissionControlEnabled), the vCenter Server might not migrate virtual machines from hosts entering maintenance mode. This is because resources are reserved to maintain the failover level. You must use vMotion to manually migrate the virtual machines off the hosts.

    When admission control is disabled, failover resource constraints are not passed on to DRS and DPM. The constraints are not enforced.

    • DRS determines virtual machine placement and status (maintenance mode, standby mode) regardless of the impact this might have on failover requirements.
    • DPM powers off hosts (places them in standby mode) even if doing so violates failover requirements. If there is insufficient capacity when a failover occurs, DPM will attempt to bring more capacity online in order to correct the situation.
  • You must enable EVC in a cluster to enable DRS to manage FT primary and secondary virtual machine pairs in the cluster. For information about EVC clusters, see EVCMode.

    If EVC is disabled, vCenter automatically creates overrides to disable DRS for FT primary/secondary pairs in the cluster. vCenter will still use DRS to place a secondary virtual machine when it powers on. Attempts to remove the overrides or to enable DRS operations will fail.

  • EVC clusters support load balancing of powered on FT primary and secondary virtual machines. DRS behavior is governed by the overrides defined for the primary virtual machine. The secondary inherits DRS behavior from its primary. If you do not configure a DRS override for an FT virtual machine, DRS uses the cluster default (defaultVmBehavior).

1High Availability was previously called Distributed Availability Services.

Authentication
This operation uses the following authentication methods.
Responses
200

A new ClusterComputeResource instance.

Returns MoRefClusterComputeResource of type(s) application/json
This response body class contains all of the following: MoRefComputeResource
{
    "_typeName": "string",
    "type": "string",
    "value": "string"
}

500

DuplicateName: if an entity with that name already exists.

InvalidArgument: if the cluster configuration specification parameter is invalid.

InvalidName: if the name is not a valid entity name.

NotSupported: if the cluster is being added to a folder whose childType property value does not contain "ComputeResource" or "ClusterComputeResource".

Returns VimFault of type(s) application/json
This response body class contains all of the following: MethodFault
{
    "_typeName": "string",
    "faultCause": "MethodFault Object",
    "faultMessage": [
        {
            "_typeName": "string",
            "key": "string",
            "arg": [
                {
                    "_typeName": "string",
                    "key": "string",
                    "value": {
                        "_typeName": "string"
                    }
                }
            ],
            "message": "string"
        }
    ]
}