Converting Two-Host vSAN Clusters to ROBO Cluster
You can convert two-host vSAN clusters to ROBO clusters with a single shared witness.
Here is an example for converting in batches, one or more regular two-host vSAN clusters to Remote Office/Branch Office (ROBO) clusters with a single shared witness.
def convertToRoboClusterInBatch(si, vscs, witness, clusterRefs): """ Convert multiple two-node vsan clusters to robo clusters that share the same witness in batch. Requirements: 1. The candidate cluster must be a two-node cluster with vsan enable. 2. There is no network isolation between witness and the multiple clusters given. """ checkCompatibility(si, vscs, clusterRefs, witness) for cluster in clusterRefs: if len(vscs.GetWitnessHosts(cluster)) != 0: msg = "ERROR: cluster %s is not a regular vSAN cluster" % cluster.name sys.exit(msg) print("Converting normal vSAN clusters(2 nodes) '%s' to robo clusters" \ " with shared witness %s" % \ ([cluster.name for cluster in clusterRefs], witness.name)) spec = vim.vsan.VsanVcStretchedClusterConfigSpec( witnessHost = witness, clusters = [vim.cluster.VsanStretchedClusterConfig( cluster = cluster, preferredFdName= 'fd1', faultDomainConfig= vim.cluster.VSANStretchedClusterFaultDomainConfig( firstFdName = 'fd1', firstFdHosts = [cluster.host[0]], secondFdName = 'fd2', secondFdHosts = [cluster.host[1]], ), ) for cluster in clusterRefs] ) addWitnessTask = vscs.AddWitnessHostForClusters(spec) vsanapiutils.WaitForTasks([addWitnessTask], si)