You can replace an NSX Edge if, for example, it has become inoperable, or if you need to change hardware. After you install a new NSX Edge and create a new transport node, you can modify the edge cluster to replace the old transport node with the new transport node.

About this task

Note:

Removing a tier-1 edge cluster will cause the tier-1 distributed router (DR) instance to be out of service briefly.

Procedure

  1. If the NSX Edge you want to replace is still operating, you can put it in to maintenance mode to minimize downtime. If high availability is enabled on the associated logical routers, entering maintenance mode will cause the logical routers to use a different edge cluster member. You do not need to do this if the NSX Edge is inoperable.
    1. Get the fabric node ID of the failed fabric node.
      https://192.168.110.201/api/v1/fabric/nodes
      ...
            "resource_type": "EdgeNode",
            "id": "a0f4fa74-e77c-11e5-8701-005056aeed61",
            "display_name": "edgenode-02a",
      
      ...
    2. Put the failed NSX Edge node into maintenance mode.
      POST https://192.168.110.201/api/v1/fabric/nodes/a0f4fa74-e77c-11e5-8701-005056aeed61?action=enter_maintenance_mode
  2. Install a new NSX Edge.

    See the NSX-T Installation Guide for information and instructions about these steps.

  3. Join the new NSX Edge with the management plane with the join management-plane command.

    See the NSX-T Installation Guide for information and instructions about these steps.

  4. Configure the NSX Edge as a transport node.

    See the NSX-T Installation Guide for information and instructions about these steps.

    You can get the transport node configuration of the failed NSX Edge appliance from the API, and use this information to create the new transport node.

    1. Get the fabric node ID of the new fabric node.
      https://192.168.110.201/api/v1/fabric/nodes
      ...
            "resource_type": "EdgeNode",
            "id": "d61c8d86-f4b8-11e5-b1b2-005056ae3c10",
            "display_name": "edgenode-03a",
      
      ...
    2. Get the transport node ID of the failed transport node.
      GET https://192.168.110.201/api/v1/transport-nodes
      ... 
         {
            "resource_type": "TransportNode",
            "description": "",
            "id": "73cb00c9-70d0-4808-abfe-a12a43251133",
            "display_name": "TN-edgenode-01a",
      ...
    3. Get the transport node configuration of the failed transport node.
      GET https://192.168.110.201/api/v1/transport-nodes/73cb00c9-70d0-4808-abfe-a12a43251133
      {
        "resource_type": "TransportNode",
        "description": "",
        "id": "73cb00c9-70d0-4808-abfe-a12a43251133",
        "display_name": "TN-edgenode-01a",
        "tags": [],
        "transport_zone_endpoints": [
        ...
        ],
        "host_switches": [
        ...
        ],
        "node_id": "a0f4fa74-e77c-11e5-8701-005056aeed61",
        "_create_time": 1457696199196,
        "_last_modified_user": "admin",
        "_last_modified_time": 1457696225606,
        "_create_user": "admin",
        "_revision": 2
      }
    4. Create the new transport node with POST /api/v1/transport-nodes.

      In the request body, provide the following information for the new transport node:

      • description for the new transport node (optional)

      • display_name for the new transport node

      • node_id of the fabric node used to create the new transport node

      In the request body, copy the following information from the failed transport node:

      • transport_zone_endpoints

      • host_switches

      • tags (optional)

      POST https://192.168.110.201/api/v1/transport-nodes
      {
        "description": "",
        "display_name": "TN-edgenode-03a",
        "tags": [
        ...
        ],
        "transport_zone_endpoints": [
        ...
        ],
        "host_switches": [
        ...
        ],
        "node_id": "d61c8d86-f4b8-11e5-b1b2-005056ae3c10"
      }
  5. Edit the edge cluster to replace the failed transport node with the new transport node.
    1. Get the ID of the new transport node and the failed transport node. The id field contains the transport node ID.
      GET https://192.168.110.201/api/v1/transport-nodes
      ... 
         {
            "resource_type": "TransportNode",
            "description": "",
            "id": "73cb00c9-70d0-4808-abfe-a12a43251133",
            "display_name": "TN-edgenode-01a",
      ...
          {
            "resource_type": "TransportNode",
            "description": "",
            "id": "890f0e3c-aa81-46aa-843b-8ac25fe30bd3",
            "display_name": "TN-edgenode-03a",
      
    2. Get the ID of the edge cluster. The id field contains the edge cluster ID. Get the members of the edge cluster from the members array.
      GET https://192.168.110.201/api/v1/edge-clusters
      ....
          {
            "resource_type": "EdgeCluster",
            "description": "",
            "id": "9a302df7-0833-4237-af1f-4d826c25ad78",
            "display_name": "Edge-Cluster-1",
      ...
            "members": [
              {
                "member_index": 0,
                "transport_node_id": "73cb00c9-70d0-4808-abfe-a12a43251133"
              },
              {
                "member_index": 1,
                "transport_node_id": "e5d17b14-cdeb-4e63-b798-b23a0757463b"
              }
            ],
    3. Edit the edge cluster to replace the failed transport node with the new transport node. The member_index must match the index of the failed transport node.
      Caution:

      If the NSX Edge is still operating, this is a disruptive action. This will move all the logical router ports from the failed transport node to the new transport node.

      In this example, the transport node TN-edgenode-01a (73cb00c9-70d0-4808-abfe-a12a43251133) has failed, and is replaced by transport node TN-edgenode-03a (890f0e3c-aa81-46aa-843b-8ac25fe30bd3) in edge cluster Edge-Cluster-1 (9a302df7-0833-4237-af1f-4d826c25ad78).

      POST http://192.168.110.201/api/v1/edge-clusters/9a302df7-0833-4237-af1f-4d826c25ad78?action=replace_transport_node
      {
          "member_index": 0,
          "transport_node_id" : "890f0e3c-aa81-46aa-843b-8ac25fe30bd3"
      }
  6. (Optional) : Delete the failed transport node and NSX Edge node.