È possibile estendere un cluster vSAN (ESA o OSA) nel dominio di gestione o nel dominio del carico di lavoro VI utilizzando una specifica JSON e l'API VMware Cloud Foundation.

Prerequisiti

  • Verificare che vCenter Server sia operativo.
  • Verificare di aver completato la cartella di lavoro di pianificazione e preparazione con l'opzione di distribuzione del dominio di gestione o del dominio del carico di lavoro VI inclusa.
  • Verificare che l'ambiente soddisfi i requisiti elencati nella scheda Elenco di controllo prerequisiti nella Cartella di lavoro di pianificazione e preparazione.
  • Creare un pool di reti per la zona di disponibilità 2.
  • Eseguire il commissioning degli host per la zona di disponibilità 2. Vedere Commissioning degli host.
  • Assicurarsi di disporre di un numero sufficiente di host in modo che sia presente un numero uguale di host in ogni zona di disponibilità. Questo per garantire che siano disponibili risorse sufficienti nel caso in cui una zona di disponibilità diventi completamente inattiva.
  • Distribuire e configurare un host witness vSAN. Vedere Distribuzione e configurazione dell'host witness vSAN.
  • Se si estende un cluster in un dominio del carico di lavoro VI, è necessario che il cluster vSphere di gestione predefinito sia stato esteso.
Nota: Non è possibile estendere un cluster nei casi seguenti:
  • Il cluster è un cluster vSAN Max.
  • Nel cluster è montato un datastore remoto vSAN.
  • Il cluster condivide un criterio di storage vSAN con tutti gli altri cluster.
  • Il cluster include host supportati da DPU.

Procedura

  1. Creare una specifica JSON in un editor di testo.
    L'esempio seguente è relativo a un ambiente con un singolo vSphere Distributed Switch. Se si dispone di più vSphere Distributed Switch, vedere la Guida di riferimento per l'API di VMware Cloud Foundation per informazioni dettagliate sulla creazione di una specifica JSON.
    Nota: Gli host ESXi che si stanno aggiungendo alla zona di disponibilità 2 devono utilizzare la stessa mappatura da vmnic a vSphere Distributed Switch degli host esistenti nella zona di disponibilità 1.
    {
     "clusterStretchSpec": {
      "hostSpecs": [
       {
        "hostname": "sfo02-w01-esx01.sfo.rainpole.io",
        "hostNetworkSpec": {
         "networkProfileName": "sfo-w01-az2-nsx-np01",
         "vmNics": [
          {
           "id": "vmnic0",
           "uplink": "uplink1",
           "vdsName": "sfo-w01-cl01-vds01"
          },
          {
           "id": "vmnic1",
           "uplink": "uplink2",
           "vdsName": "sfo-w01-cl01-vds01"
          }
         ]
        },
        "id": "<ESXi host 1 ID>",
        "licenseKey": "<license key>"
       },
       {
        "hostname": "sfo02-w01-esx02.sfo.rainpole.io",
        "hostNetworkSpec": {
         "networkProfileName": "sfo-w01-az2-nsx-np01",
         "vmNics": [
          {
           "id": "vmnic0",
           "uplink": "uplink1",
           "vdsName": "sfo-w01-cl01-vds01"
          },
          {
           "id": "vmnic1",
           "uplink": "uplink2",
           "vdsName": "sfo-w01-cl01-vds01"
          }
         ]
        },
        "id": "<ESXi host 2 ID>",
        "licenseKey": "<license key>"
       },
       {
        "hostname": "sfo02-w01-esx03.sfo.rainpole.io",
        "hostNetworkSpec": {
         "networkProfileName": "sfo-w01-az2-nsx-np01",
         "vmNics": [
          {
           "id": "vmnic0",
           "uplink": "uplink1",
           "vdsName": "sfo-w01-cl01-vds01"
          },
          {
           "id": "vmnic1",
           "uplink": "uplink2",
           "vdsName": "sfo-w01-cl01-vds01"
          }
         ]
        },
        "id": "<ESXi host 3 ID>",
        "licenseKey": "<license key>"
       },
       {
        "hostname": "sfo02-w01-esx04.sfo.rainpole.io",
        "hostNetworkSpec": {
         "networkProfileName": "sfo-w01-az2-nsx-np01",
         "vmNics": [
          {
           "id": "vmnic0",
           "uplink": "uplink1",
           "vdsName": "sfo-w01-cl01-vds01"
          },
          {
           "id": "vmnic1",
           "uplink": "uplink2",
           "vdsName": "sfo-w01-cl01-vds01"
          }
         ]
        },
        "id": "<ESXi host 4 ID>",
        "licenseKey": "<license key>"
       }
      ],
      "isEdgeClusterConfiguredForMultiAZ": <true, if the cluster hosts an NSX Edge cluster; false, if the cluster does not host an NSX Edge cluster>,
      "networkSpec": {
       "networkProfiles": [
        {
         "isDefault": false,
         "name": "sfo-w01-az2-nsx-np01",
         "nsxtHostSwitchConfigs": [
          {
           "ipAddressPoolName": "sfo-w01-az2-host-ip-pool01",
           "uplinkProfileName": "sfo-w01-az2-host-uplink-profile01",
           "vdsName": "sfo-w01-cl01-vds01",
           "vdsUplinkToNsxUplink": [
            {
             "nsxUplinkName": "uplink-1",
             "vdsUplinkName": "uplink1"
            },
            {
             "nsxUplinkName": "uplink-2",
             "vdsUplinkName": "uplink2"
            }
           ]
          }
         ]
        }
       ],
       "nsxClusterSpec": {
        "ipAddressPoolsSpec": [
         {
          "description": "WLD01 AZ2 Host TEP Pool",
          "name": "sfo-w01-az2-host-ip-pool01",
          "subnets": [
           {
            "cidr": "172.16.44.0/24",
            "gateway": "172.16.44.253",
            "ipAddressPoolRanges": [
             {
              "end": "172.16.44.200",
              "start": "172.16.44.10"
             }
            ]
           }
          ]
         }
        ],
        "uplinkProfiles": [
         {
          "name": "sfo-w01-az2-host-uplink-profile01",
          "teamings": [
           {
            "activeUplinks": [
             "uplink-1",
             "uplink-2"
            ],
            "name": "DEFAULT",
            "policy": "LOADBALANCE_SRCID",
            "standByUplinks": []
           }
          ],
          "transportVlan": 1644
         }
        ]
       }
      },
      "witnessSpec": {
       "fqdn": "sfo-w01-cl01-vsw01.sfo.rainpole.io",
       "vsanCidr": "172.17.11.0/24",
       "vsanIp": "172.17.11.219"
      },
      "witnessTrafficSharedWithVsanTraffic": false
     }
    }
    Nota: Sostituire i valori di esempio nel file JSON con i valori corretti per l'ambiente in uso.
  2. Nel riquadro di navigazione fare clic su Centro sviluppatori > Esplora API.
  3. Recuperare e sostituire gli ID univoci per ogni host ESXi nella specifica JSON.
    1. Espandere la sezione API per la gestione degli host ed espandere GET /v1/hosts.
    2. Nella casella di testo Stato immettere UNASSIGNED_USEABLE e fare clic su Esegui.
    3. Nella sezione Risposta fare clic su PageOfHost, copiare l'elemento id di ciascun host e sostituire il rispettivo valore nella specifica JSON.

      Host ESXi

      Valore

      Host ESXi 1

      ID host ESXi 1

      Host ESXi 2

      ID host ESXi 2

      Host ESXi 3

      ID host ESXi 3

      Host ESXi 4

      ID host ESXi 4
  4. Sostituire il valore della chiave di licenza nella specifica JSON con chiavi valide.
  5. Recuperare l'ID univoco per il cluster di gestione.
    1. Espandere la sezione API per la gestione dei cluster ed espandere GET /v1/cluster.
    2. Fare clic su Esegui.
    3. Nella sezione Risposta fare clic su PageOfCluster e copiare l'elemento id del cluster di gestione.
      Per i passaggi successivi sarà necessario l'ID cluster.
  6. Convalidare il file della specifica JSON.
    1. Espandere la sezione API per la gestione dei cluster ed espandere POST /v1/clusters/{id}/validations.
    2. Nella casella di testo Valore immettere l'ID univoco per il cluster di gestione recuperato nel passaggio 5.
    3. Nella casella di testo clusterUpdateSpec digitare
      {
      "clusterUpdateSpec": 
      }
    4. Incollare la specifica JSON.
      Ad esempio:
      {
      "clusterUpdateSpec": {
       "clusterStretchSpec": {
        "hostSpecs": [
         {
          "hostname": "sfo02-w01-esx01.sfo.rainpole.io",
          "hostNetworkSpec": {
           "networkProfileName": "sfo-w01-az2-nsx-np01",
           "vmNics": [
            {
             "id": "vmnic0",
             "uplink": "uplink1",
             "vdsName": "sfo-w01-cl01-vds01"
            },
            {
             "id": "vmnic1",
             "uplink": "uplink2",
             "vdsName": "sfo-w01-cl01-vds01"
            }
           ]
          },
          "id": "<ESXi host 1 ID>",
          "licenseKey": "<license key>"
         },
         {
          "hostname": "sfo02-w01-esx02.sfo.rainpole.io",
          "hostNetworkSpec": {
           "networkProfileName": "sfo-w01-az2-nsx-np01",
           "vmNics": [
            {
             "id": "vmnic0",
             "uplink": "uplink1",
             "vdsName": "sfo-w01-cl01-vds01"
            },
            {
             "id": "vmnic1",
             "uplink": "uplink2",
             "vdsName": "sfo-w01-cl01-vds01"
            }
           ]
          },
          "id": "<ESXi host 2 ID>",
          "licenseKey": "<license key>"
         },
         {
          "hostname": "sfo02-w01-esx03.sfo.rainpole.io",
          "hostNetworkSpec": {
           "networkProfileName": "sfo-w01-az2-nsx-np01",
           "vmNics": [
            {
             "id": "vmnic0",
             "uplink": "uplink1",
             "vdsName": "sfo-w01-cl01-vds01"
            },
            {
             "id": "vmnic1",
             "uplink": "uplink2",
             "vdsName": "sfo-w01-cl01-vds01"
            }
           ]
          },
          "id": "<ESXi host 3 ID>",
          "licenseKey": "<license key>"
         },
         {
          "hostname": "sfo02-w01-esx04.sfo.rainpole.io",
          "hostNetworkSpec": {
           "networkProfileName": "sfo-w01-az2-nsx-np01",
           "vmNics": [
            {
             "id": "vmnic0",
             "uplink": "uplink1",
             "vdsName": "sfo-w01-cl01-vds01"
            },
            {
             "id": "vmnic1",
             "uplink": "uplink2",
             "vdsName": "sfo-w01-cl01-vds01"
            }
           ]
          },
          "id": "<ESXi host 4 ID>",
          "licenseKey": "<license key>"
         }
        ],
        "isEdgeClusterConfiguredForMultiAZ": <true, if the cluster hosts an NSX Edge cluster; false, if the cluster does not host an NSX Edge cluster>,
        "networkSpec": {
         "networkProfiles": [
          {
           "isDefault": false,
           "name": "sfo-w01-az2-nsx-np01",
           "nsxtHostSwitchConfigs": [
            {
             "ipAddressPoolName": "sfo-w01-az2-host-ip-pool01",
             "uplinkProfileName": "sfo-w01-az2-host-uplink-profile01",
             "vdsName": "sfo-w01-cl01-vds01",
             "vdsUplinkToNsxUplink": [
              {
               "nsxUplinkName": "uplink-1",
               "vdsUplinkName": "uplink1"
              },
              {
               "nsxUplinkName": "uplink-2",
               "vdsUplinkName": "uplink2"
              }
             ]
            }
           ]
          }
         ],
         "nsxClusterSpec": {
          "ipAddressPoolsSpec": [
           {
            "description": "WLD01 AZ2 Host TEP Pool",
            "name": "sfo-w01-az2-host-ip-pool01",
            "subnets": [
             {
              "cidr": "172.16.44.0/24",
              "gateway": "172.16.44.253",
              "ipAddressPoolRanges": [
               {
                "end": "172.16.44.200",
                "start": "172.16.44.10"
               }
              ]
             }
            ]
           }
          ],
          "uplinkProfiles": [
           {
            "name": "sfo-w01-az2-host-uplink-profile01",
            "teamings": [
             {
              "activeUplinks": [
               "uplink-1",
               "uplink-2"
              ],
              "name": "DEFAULT",
              "policy": "LOADBALANCE_SRCID",
              "standByUplinks": []
             }
            ],
            "transportVlan": 1644
           }
          ]
         }
        },
        "witnessSpec": {
         "fqdn": "sfo-w01-cl01-vsw01.sfo.rainpole.io",
         "vsanCidr": "172.17.11.0/24",
         "vsanIp": "172.17.11.219"
        },
        "witnessTrafficSharedWithVsanTraffic": false
       }
      }
      Nota: Sostituire i valori di esempio nel file JSON con i valori corretti per l'ambiente in uso.
    5. Fare clic su Esegui.
    6. Nella finestra di dialogo di conferma, fare clic su Continua.
    7. Nella sezione Risposta, espandere la sezione risultato e verifica che la risposta sia SUCCEEDED.
  7. Estendere il cluster con la specifica JSON.
    1. Espandere la sezione API per la gestione dei cluster ed espandere PATCH /v1/clusters/{id}.
    2. Incollare l'ID univoco del cluster di gestione nella casella di testo Valore.
    3. Nella casella di testo clusterUpdateSpec incollare la specifica JSON.
      Ad esempio:
      {
       "clusterStretchSpec": {
        "hostSpecs": [
         {
          "hostname": "sfo02-w01-esx01.sfo.rainpole.io",
          "hostNetworkSpec": {
           "networkProfileName": "sfo-w01-az2-nsx-np01",
           "vmNics": [
            {
             "id": "vmnic0",
             "uplink": "uplink1",
             "vdsName": "sfo-w01-cl01-vds01"
            },
            {
             "id": "vmnic1",
             "uplink": "uplink2",
             "vdsName": "sfo-w01-cl01-vds01"
            }
           ]
          },
          "id": "<ESXi host 1 ID>",
          "licenseKey": "<license key>"
         },
         {
          "hostname": "sfo02-w01-esx02.sfo.rainpole.io",
          "hostNetworkSpec": {
           "networkProfileName": "sfo-w01-az2-nsx-np01",
           "vmNics": [
            {
             "id": "vmnic0",
             "uplink": "uplink1",
             "vdsName": "sfo-w01-cl01-vds01"
            },
            {
             "id": "vmnic1",
             "uplink": "uplink2",
             "vdsName": "sfo-w01-cl01-vds01"
            }
           ]
          },
          "id": "<ESXi host 2 ID>",
          "licenseKey": "<license key>"
         },
         {
          "hostname": "sfo02-w01-esx03.sfo.rainpole.io",
          "hostNetworkSpec": {
           "networkProfileName": "sfo-w01-az2-nsx-np01",
           "vmNics": [
            {
             "id": "vmnic0",
             "uplink": "uplink1",
             "vdsName": "sfo-w01-cl01-vds01"
            },
            {
             "id": "vmnic1",
             "uplink": "uplink2",
             "vdsName": "sfo-w01-cl01-vds01"
            }
           ]
          },
          "id": "<ESXi host 3 ID>",
          "licenseKey": "<license key>"
         },
         {
          "hostname": "sfo02-w01-esx04.sfo.rainpole.io",
          "hostNetworkSpec": {
           "networkProfileName": "sfo-w01-az2-nsx-np01",
           "vmNics": [
            {
             "id": "vmnic0",
             "uplink": "uplink1",
             "vdsName": "sfo-w01-cl01-vds01"
            },
            {
             "id": "vmnic1",
             "uplink": "uplink2",
             "vdsName": "sfo-w01-cl01-vds01"
            }
           ]
          },
          "id": "<ESXi host 4 ID>",
          "licenseKey": "<license key>"
         }
        ],
        "isEdgeClusterConfiguredForMultiAZ": <true, if the cluster hosts an NSX Edge cluster; false, if the cluster does not host an NSX Edge cluster>,
        "networkSpec": {
         "networkProfiles": [
          {
           "isDefault": false,
           "name": "sfo-w01-az2-nsx-np01",
           "nsxtHostSwitchConfigs": [
            {
             "ipAddressPoolName": "sfo-w01-az2-host-ip-pool01",
             "uplinkProfileName": "sfo-w01-az2-host-uplink-profile01",
             "vdsName": "sfo-w01-cl01-vds01",
             "vdsUplinkToNsxUplink": [
              {
               "nsxUplinkName": "uplink-1",
               "vdsUplinkName": "uplink1"
              },
              {
               "nsxUplinkName": "uplink-2",
               "vdsUplinkName": "uplink2"
              }
             ]
            }
           ]
          }
         ],
         "nsxClusterSpec": {
          "ipAddressPoolsSpec": [
           {
            "description": "WLD01 AZ2 Host TEP Pool",
            "name": "sfo-w01-az2-host-ip-pool01",
            "subnets": [
             {
              "cidr": "172.16.44.0/24",
              "gateway": "172.16.44.253",
              "ipAddressPoolRanges": [
               {
                "end": "172.16.44.200",
                "start": "172.16.44.10"
               }
              ]
             }
            ]
           }
          ],
          "uplinkProfiles": [
           {
            "name": "sfo-w01-az2-host-uplink-profile01",
            "teamings": [
             {
              "activeUplinks": [
               "uplink-1",
               "uplink-2"
              ],
              "name": "DEFAULT",
              "policy": "LOADBALANCE_SRCID",
              "standByUplinks": []
             }
            ],
            "transportVlan": 1644
           }
          ]
         }
        },
        "witnessSpec": {
         "fqdn": "sfo-w01-cl01-vsw01.sfo.rainpole.io",
         "vsanCidr": "172.17.11.0/24",
         "vsanIp": "172.17.11.219"
        },
        "witnessTrafficSharedWithVsanTraffic": false
       }
      }
      Nota: Sostituire i valori di esempio nel file JSON con i valori corretti per l'ambiente in uso.
    4. Fare clic su Esegui.
    5. Nella finestra di dialogo di conferma, fare clic su Continua.

Operazioni successive

Configurare NSX per la zona di disponibilità 2.