障害ドメインは、NSX Edge クラスタ内の NSX Edge ノードの論理的なグループです。障害ドメインは、自動配置アルゴリズムを補完し、障害が複数の NSX Edge ノードに影響を与える場合にサービスの可用性を保証します。

障害ドメインでは、Tier-1 SR のアクティブ インスタンスとスタンバイ インスタンス、またはサブクラスタのメンバーは、常に異なる障害ドメインで実行されます。障害ドメインがない場合、Tier-1 SR は同じラック内の NSX Edge ノードに自動的に配置される場合があります。その場合、rack1 に障害が発生すると、この Tier-1 SR のアクティブ インスタンスとスタンバイ インスタンスの両方も失敗します。

障害ドメインが構成されていない場合:

図 1.

- 4 つの Edge ノード(EdgeNode1、EdgeNode2、EdgeNode3、EdgeNode4)で構成される Edge クラスタでは、A/S モードの新しい Tier-1 ゲートウェイは、これら 4 つの Edge ノードのうち 2 つに自動的に配置されます。

- ただし、Tier-1 A/S が Rack1 に展開され、Tier-2 A/S が Rack2 に展開されている場合、高可用性は実現できません。Rack1 に障害が発生すると、EdgeNode1 と EdgeNode2 の Tier-1 A/S は同じ障害ドメイン内に存在するため、失われます。

障害ドメインが構成されている場合:

図 2.

- EdgeNode1 と EdgeNode2 は障害ドメイン 1 の一部として構成されていますが、EdgeNode3 と EdgeNode4 は障害ドメイン 2 にあります。新しい Tier-1 SR が作成され、その Tier-1 のアクティブ インスタンスが EdgeNode1 でホストされている場合、スタンバイ Tier-1 SR は障害ドメイン 2(EdgeNode3 または EdgeNode4)でインスタンス化されます。

- Edge クラスタで障害ドメインを構成した後、新しい Tier-1 アクティブ/スタンバイ SR が異なる障害ドメインに正しく配置されます。

手順

  1. API を使用して、ステートフル A-A クラスタに追加する各 Edge ノードの障害ドメインを作成します。たとえば、FailureDomain1 に FD1-EdgeNode1 と FD1-EdgeNode2 を含め、FailureDomain2 に FD2-EdgeNode3 と FD2-EdgeNode4 を含めます。両方の障害ドメインの Edge ノードに対して、パラメータ preferred_active_edge_services を true に設定します。preferred_active_edge_services は、Tier-1 ゲートウェイがプリエンプティブ フェイルオーバー モードで作成されている場合にのみ役立ちます。
    POST /api/v1/failure-domains
    {
    "display_name": "FD1-EdgeNode1",
    "preferred_active_edge_services": "true"
    "display_name": "FD1-EdgeNode2",
    "preferred_active_edge_services": "true"
    }
    
    POST /api/v1/failure-domains
    {
    "display_name": "FD2-EdgeNode3",
    "preferred_active_edge_services": "true"
    "display_name": "FD2-EdgeNode4",
    "preferred_active_edge_services": "true"
    }
  2. API を使用して、各 Edge ノードをサイトの障害ドメインと関連付けます。最初に GET /api/v1/transport-nodes/<transport-node-id> API を呼び出して、Edge ノードに関するデータを取得します。GET API の結果を PUT /api/v1/transport-nodes/<transport-node-id> API の入力として使用し、追加のプロパティ failure_domain_id を適切に設定します。次はその例です。
    GET /api/v1/transport-nodes/<transport-node-id>
    Response:
    {
        "resource_type": "TransportNode",
        "description": "Updated NSX configured Test Transport Node",
        "id": "77816de2-39c3-436c-b891-54d31f580961",
        ...
    }
    PUT /api/v1/transport-nodes/<transport-node-id>
    {
        "resource_type": "TransportNode",
        "description": "Updated NSX configured Test Transport Node",
        "id": "77816de2-39c3-436c-b891-54d31f580961",
        ...
        "failure_domain_id": "<UUID>",
    }
    
  3. API を使用して、障害ドメインに基づいてノードを割り当てるように Edge クラスタを構成します。最初に GET /api/v1/edge-clusters/<edge-cluster-id> API を呼び出して、Edge クラスタに関するデータを取得します。GET API の結果を PUT /api/v1/edge-clusters/<edge-cluster-id> API の入力として使用し、追加のプロパティ allocation_rules を適切に設定します。次はその例です。
    GET /api/v1/edge-clusters/<edge-cluster-id>
    Response:
    {
        "_revision": 0,
        "id": "bf8d4daf-93f6-4c23-af38-63f6d372e14e",
        "resource_type": "EdgeCluster",
        ...
    }
    PUT /api/v1/edge-clusters/<edge-cluster-id>
    {
        "_revision": 0,
        "id": "bf8d4daf-93f6-4c23-af38-63f6d372e14e",
        "resource_type": "EdgeCluster",
        ...
        "allocation_rules": [
            {
                "action": 
                    {
                     "enabled": true,
                     "action_type": "AllocationBasedOnFailureDomain"
                    }
            }
        ],
    }

結果

NSX Edge ノードは、さまざまな障害ドメインを参照します。これで、これらを使用してクラスタを作成し、A-A ステートフル HA モードで Tier-0 ゲートウェイを構成できるようになりました。