VMware Cloud Foundation 内の vSAN クラスタのストレッチ
JSON 仕様と API を使用して、管理ドメインまたは VI ワークロード ドメイン内の vSAN クラスタ(ESA または OSA)をストレッチできます。
- vCenter Server が動作していることを確認します。
- 管理ドメインまたは VI ワークロード ドメインの展開オプションが含まれた『プランニングおよび準備ガイド』が完成していることを確認します。
- 環境が『プランニングおよび準備ガイド』の「前提条件チェックリスト」シートに記載されている要件を満たしていることを確認します。
- アベイラビリティ ゾーン 2 のネットワーク プールを作成します。
- アベイラビリティ ゾーン 2 のホストをコミッショニングします。ホストのコミッショニング を参照してください。
- 各アベイラビリティ ゾーンのホストが同数になるように、十分な数のホストがあることを確認します。これは、1 つのアベイラビリティ ゾーンが完全に停止した場合に十分なリソースが確保されるようにするためです。
- vSAN 監視ホストを展開および構成します。vSAN Witness(監視)ホストの展開および構成を参照してください。
- VI ワークロード ドメイン内のクラスタをストレッチする場合は、デフォルトの管理 vSphere クラスタがストレッチされている必要があります。
次の場合はクラスタをストレッチできません。
- クラスタが vSAN Max クラスタである。
- クラスタに vSAN リモート データストアがマウントされている。
- クラスタが vSAN ストレージ ポリシーを他のクラスタと共有している。
- クラスタに DPU でバッキングされたホストが含まれている。
- テキスト エディタで JSON 仕様を作成します。次の例は、単一の vSphere Distributed Switch を持つ環境を対象としています。複数の vSphere Distributed Switch がある場合は、JSON 仕様の作成の詳細について『VMware Cloud Foundation API リファレンス ガイド』を参照してください。アベイラビリティ ゾーン 2 に追加する ESXi ホストは、アベイラビリティ ゾーン 1 の既存のホストと同じ vmnic-vSphere Distributed Switch マッピングを使用する必要があります。{ "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 } }JSON ファイルの値の例を、実際の環境に適した値に置き換えます。
- ナビゲーション ペインで、の順にクリックします。
- JSON 仕様の各 ESXi ホストの一意の ID を取得して置き換えます。
- ホスト管理用の APIセクションを展開し、GET /v1/hostsを展開します。
- ステータステキスト ボックスに、UNASSIGNED_USEABLEと入力して、実行をクリックします。
- 応答セクションで、PageOfHostをクリックし、各ホストのid要素をコピーして、JSON 仕様のそれぞれの値を置き換えます。ESXi ホスト値ESXi ホスト 1ESXi ホスト 1 の IDESXi ホスト 2ESXi ホスト 2 の IDESXi ホスト 3ESXi ホスト 3 の IDESXi ホスト 4ESXi ホスト 4 の ID
- JSON 仕様のライセンス キーの値を有効なキーに置き換えます。
- 管理クラスタの一意の ID を取得します。
- クラスタ管理用の APIセクションを展開し、GET /v1/clusterを展開します。
- 実行をクリックします。
- 応答セクションで、PageOfClusterをクリックし、管理クラスタのid要素をコピーします。以降の手順では、クラスタ ID が必要になります。
- JSON 仕様ファイルを検証します。
- クラスタ管理用の APIセクションを展開し、POST /v1/clusters/{id}/validationsを展開します。
- 値テキスト ボックスに、手順 5 で取得した管理クラスタの一意の ID を入力します。
- clusterUpdateSpecテキスト ボックスに、次のように入力します。{ "clusterUpdateSpec": }
- JSON 仕様を貼り付けます。例:{ "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 } }JSON ファイルの値の例を、実際の環境に適した値に置き換えます。
- 実行をクリックします。
- 確認ダイアログ ボックスで続行をクリックします。
- 応答セクションで、結果セクションを展開し、応答がSUCCEEDEDであることを確認します。
- JSON 仕様を使用してクラスタをストレッチします。
- クラスタ管理用の APIセクションを展開し、PATCH /v1/clusters/{id}を展開します。
- 管理クラスタの一意のIDを値テキスト ボックスに貼り付けます。
- clusterUpdateSpecテキスト ボックスに JSON 仕様を貼り付けます。例:{ "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 } }JSON ファイルの値の例を、実際の環境に適した値に置き換えます。
- 実行をクリックします。
- 確認ダイアログ ボックスで続行をクリックします。
アベイラビリティ ゾーン 2 の を構成します。