NSX Edge 虚拟机失效或需要更改其在数据中心中的放置位置时,您想要重新部署该虚拟机。例如,当 NSX Edge 必须移动到另一个数据存储或计算资源时,请重新部署 NSX Edge 节点。也可以将节点移动到另一个网络。不过,可能还有其他原因需要重新部署,具体取决于您的网络要求。

您只能使用 NSX Edge 虚拟机设备重新部署现有的 NSX Edge 节点(物理服务器或 NSX Edge 虚拟机设备)。

前提条件

  • 虽然您可以更改 NSX Edge 传输节点负载的某些配置,但不要在现有 NSX Edge 节点(将由新节点重新部署)上更改这些配置:
    • 故障域
    • 传输节点连接
    • 物理网卡配置
    • 逻辑路由器
    • 负载均衡器分配
  • 如果现有 NSX Edge 节点是物理服务器或通过 vSphere Client 手动部署的虚拟机,请确保 NSX Edge 节点和 NSX Manager 之间的连接已断开。如果连接处于“已启动”状态,则 NSX-T 不允许将现有 NSX Edge 节点替换为新节点。

过程

  1. (物理服务器或通过 vSphere Client 部署的 NSX Edge)打开 SSH 会话并连接到 NSX Edge 控制台。
  2. 通过在 CLI 控制台运行 get logical-routers 命令验证在 NSX Edge 节点上配置的逻辑路由。
  3. 关闭 NSX Edge 节点电源。
  4. 运行以下 API 命令,确认已从 NSX Manager 断开 NSX Edge 节点的连接。
    GET api/v1/transport-nodes/<edgenode>/state
     "node_deployment_state": 
            {"state": MPA_Disconnected"}

    node_deployment_state 值为 MPA 已断开连接,这表示您可以继续重新部署 NSX Edge 节点。

    注: 如果 node_deployment_state节点就绪NSX Manager 将显示错误 78006 - 管理器与 Edge 节点的连接必须已断开。否则,不允许替换/重新部署硬件
  5. 或者,从 Edge 传输节点页面中查看 NSX Edge 节点和 NSX Manager 之间的连接状态。断开连接的 NSX Edge 节点将显示以下系统消息:配置错误,Edge 虚拟机 MPA 连接已断开
  6. 如果 NSX Edge 节点是自动部署的节点,请运行 GET /<NSX-Manager-IPaddress>/api/v1/transport-nodes/<edgenode>。复制此 API 的输出负载。
    "resource_type": "EdgeNode",
    	        "id": "9f34c0ea-4aac-4b7f-a02c-62f306f96649",
    	        "display_name": "Edge_TN2",
    	        "description": "EN",
    	        "external_id": "9f34c0ea-4aac-4b7f-a02c-62f306f96649",
    	        "ip_addresses": [
    	            "10.170.94.240"
    	        ],
    	        "_create_user": "admin",
    	        "_create_time": 1600106319056,
    	        "_last_modified_user": "admin",
    	        "_last_modified_time": 1600106907312,
    	        "_system_owned": false,
    	        "_protection": "NOT_PROTECTED",
    	        "_revision": 2
    	    },
    	    "is_overridden": false,
    	    "failure_domain_id": "4fc1e3b0-1cd4-4339-86c8-f76baddbaafb",
    	    "resource_type": "TransportNode",
    	    "id": "9f34c0ea-4aac-4b7f-a02c-62f306f96649",
    	    "display_name": "Edge_TN2",
    	    "_create_user": "admin",
    	    "_create_time": 1600106319399,
    	    "_last_modified_user": "admin",
    	    "_last_modified_time": 1600106907401,
    	    "_system_owned": false,
    	    "_protection": "NOT_PROTECTED",
    	    "_revision": 1
    	}
  7. 您可以从以下重新部署方案中进行选择:
    选项 操作

    使用 NSX Edge 虚拟机节点(通过 NSX Manager API 部署)重新部署现有 NSX Edge 节点(物理服务器或手动部署的节点)

    运行 API 命令 /api/v1/transport-nodes/<transport-node-id>?action=redeploy 以执行以下操作:
    • 将负载粘贴到重新部署 API 的正文中。
    • 验证 deployment_config 部分是否引用要在其中重新部署节点的计算管理器、数据存储和网络详细信息。确保这些值与 node_settings 部分中使用的值一致。

    • deployment_config 部分中添加登录密码。

    NSX Manager 会根据 deployment_config 部分中提供的详细信息重新部署 NSX Edge 节点。

    更改现有 NSX Edge 节点的放置位置

    运行 API 命令 /api/v1/transport-nodes/<transport-node-id>?action=redeploy 以执行以下操作:
    • 将负载粘贴到重新部署 API 的正文中。
    • deployment_config 部分中,引用新的计算管理器、数据存储、网络、CPU、内存或延迟敏感度详细信息。
    POST https://<manager-ip>/api/v1/transport-nodes/<transport-node-id>?action=redeploy 示例
    	{
    	    "node_id": "9f34c0ea-4aac-4b7f-a02c-62f306f96649",
    	    "host_switch_spec": {
    	        "host_switches": [
    	            {
    	                "host_switch_name": "nsxvswitch_overlay",
    	                "host_switch_id": "c0a4a83e-c8b8-4324-a4d7-dbbc07b30b53",
    	                "host_switch_type": "NVDS",
    	                "host_switch_mode": "STANDARD",
    	                "host_switch_profile_ids": [
    	                    {
    	                        "key": "UplinkHostSwitchProfile",
    	                        "value": "f9a2a2fa-b49d-498f-abaf-2fdc81917716"
    	                    },
    	                    {
    	                        "key": "LldpHostSwitchProfile",
    	                        "value": "9e0b4d2d-d155-4b4b-8947-fbfe5b79f7cb"
    	                    }
    	                ],
    	                "pnics": [
    	                    {
    	                        "device_name": "fp-eth0",
    	                        "uplink_name": "uplink1"
    	                    }
    	                ],
    	                "is_migrate_pnics": false,
    	                "ip_assignment_spec": {
    	                    "ip_pool_id": "647d9b0d-0143-4903-91f5-930d9ab011e8",
    	                    "resource_type": "StaticIpPoolSpec"
    	                },
    	                "cpu_config": [],
    	                "transport_zone_endpoints": [
    	                    {
    	                        "transport_zone_id": "0b33b078-6438-4d9b-a1ec-33211fd36822",
    	                        "transport_zone_profile_ids": [
    	                            {
    	                                "resource_type": "BfdHealthMonitoringProfile",
    	                                "profile_id": "52035bb3-ab02-4a08-9884-18631312e50a"
    	                            }
    	                        ]
    	                    },
    	                    {
    	                        "transport_zone_id": "a0133574-48de-4e3a-9407-7db1a68bae41",
    	                        "transport_zone_profile_ids": [
    	                            {
    	                                "resource_type": "BfdHealthMonitoringProfile",
    	                                "profile_id": "52035bb3-ab02-4a08-9884-18631312e50a"
    	                            }
    	                        ]
    	                    }
    	                ],
    	                "vmk_install_migration": [],
    	                "pnics_uninstall_migration": [],
    	                "vmk_uninstall_migration": [],
    	                "not_ready": false
    	            }
    	        ],
    	        "resource_type": "StandardHostSwitchSpec"
    	    },
    	    "transport_zone_endpoints": [],
    	    "maintenance_mode": "DISABLED",
    	    "node_deployment_info": {
    	        "deployment_type": "VIRTUAL_MACHINE",
    	        "deployment_config": {
    	            "vm_deployment_config": {
    	                "vc_id": "cc82da39-b119-4869-a7fe-a54621cb4d3d",
    	                "compute_id": "domain-c9",
    	                "storage_id": "datastore-14",
    	                "host_id": "host-12",
    	                "compute_folder_id": "group-v5",
    	                "management_network_id": "network-16",
    	                "hostname": "EdgeSmallFactor",
    	                "data_network_ids": [
    	                    "5638c577-e142-4a50-aed3-a7079dc3b08c",
    	                    "5638c577-e142-4a50-aed3-a7079dc3b08c",
    	                    "5638c577-e142-4a50-aed3-a7079dc3b08c"
    	                ],
    	                "search_domains": [
    	                    "eng.vmware.com",
    	                    "vmware.com"
    	                ],
    	                "enable_ssh": true,
    	                "allow_ssh_root_login": true,
    	                "reservation_info": {
    	                    "memory_reservation": {
    	                        "reservation_percentage": 100
    	                    },
    	                    "cpu_reservation": {
    	                        "reservation_in_shares": "HIGH_PRIORITY",
    	                        "reservation_in_mhz": 0
    	                    }
    	                },
    	                "resource_allocation": {
    	                    "cpu_count": 4,
    	                    "memory_allocation_in_mb": 8192
    	                },
    	                "placement_type": "VsphereDeploymentConfig"
    	            },
    	            "form_factor": "MEDIUM",
    	            "node_user_settings": {
    	                 "cli_username": "admin",
                            "root_password":"Admin!23Admin", 
                            "cli_password":"Admin!23Admin" 
    	            }
    	        },
    	        "node_settings": {
    	            "hostname": "EdgeSmallFactor",
    	            "search_domains": [
    	                "eng.vmware.com",
    	                "vmware.com"
    	            ],
    	            "enable_ssh": true,
    	            "allow_ssh_root_login": true
    	        },
    	        "resource_type": "EdgeNode",
    	        "id": "9f34c0ea-4aac-4b7f-a02c-62f306f96649",
    	        "display_name": "Edge_TN2",
    	        "description": "EN",
    	        "external_id": "9f34c0ea-4aac-4b7f-a02c-62f306f96649",
    	        "ip_addresses": [
    	            "10.170.94.240"
    	        ],
    	        "_create_user": "admin",
    	        "_create_time": 1600106319056,
    	        "_last_modified_user": "admin",
    	        "_last_modified_time": 1600106907312,
    	        "_system_owned": false,
    	        "_protection": "NOT_PROTECTED",
    	        "_revision": 2
    	    },
    	    "is_overridden": false,
    	    "failure_domain_id": "4fc1e3b0-1cd4-4339-86c8-f76baddbaafb",
    	    "resource_type": "TransportNode",
    	    "id": "9f34c0ea-4aac-4b7f-a02c-62f306f96649",
    	    "display_name": "Edge_TN2",
    	    "_create_user": "admin",
    	    "_create_time": 1600106319399,
    	    "_last_modified_user": "admin",
    	    "_last_modified_time": 1600106907401,
    	    "_system_owned": false,
    	    "_protection": "NOT_PROTECTED",
    	    "_revision": 1
    	}
    
    注: 如果旧节点是通过 NSX Manager UI 部署的 NSX Edge 虚拟机节点,则不需要在 API 负载的 node_user_settings 部分中提供登录凭据。
    有关负载的详细信息,请参见 NSX-T Data Center API 指南
  8. NSX Manager 中,确认新 NSX Edge 节点的配置状态
  9. 或者,通过运行 API 命令 Get api/v1/transport-nodes/<node-id>/state 来确认新准备的 NSX Edge 传输节点的状态。
  10. 通过运行 get logical-routers CLI 命令,验证是否已将逻辑路由器配置迁移到新的 NSX Edge 节点。
  11. 确认 TEP 地址在替换的 NSX Edge 节点上保持不变。
  12. 确认 NSX Edge 集群状态是否为“已启动”。API 为 GET api/v1/edge-clusters/<cluster>。如果将 NSX-T 配置为使用 NSX 联合,请验证站点间状态是否为“已启动”。
  13. 检查 NSX Edge 传输节点和集群状态 API 以验证状态是否为“已启动”。
  14. 故障排除错误消息:
    • (78006) NSX Manager 与 Edge 节点的连接必须已断开。否则,不允许更换硬件:确保 NSX Edge 节点未连接到 NSX Manager。

    • (16064) 缺少部署配置:在重新部署 API 的过程中,输入 deployment_config 部分的详细信息。

    • (16066) 缺少登录密码:提供登录凭据。

    • (15019) 节点上的资源不足,无法分配给负载均衡器池:新 NSX Edge 节点的规格可能小于旧 NSX Edge 节点的规格。新规格的资源可能不足,无法分配给负载均衡器池。

下一步做什么

  • 如果要启动替换的物理服务器或手动部署的 NSX Edge 虚拟机设备以作为网络的一部分,请确保该节点与网络断开连接。然后,运行 del nsx 以完全删除节点上的 NSX-T VIB。有关 del nsx 的更多详细信息,请参见NSX-T Data Center 安装指南

    在主机上运行 del nsx 后,将释放逻辑路由器、VTEP IP 地址和上行链路 IP 地址的旧条目。现在,您可以将替换的物理服务器准备为新的 NSX-T 传输节点。

  • 重新部署 NSX Edge 虚拟机设备后,一些安全参数会设置为其默认值。请根据您的环境重新配置这些参数。
    • set auth-policy minimum-password-length <password-length-arg>

      设置密码必须具有的最少字符数。可设置的最小值为 8

      例如,nsx> set auth-policy minimum-password-length 12

    • set user <node-username> password-expiration <password-expiration-arg>

      设置用户密码在密码更改后的有效天数。

      其中,<username> 是用户的用户名,

      <password-expiration> 是更改后密码的有效天数 (1 - 9999)

      例如,nsx> set user audit password-expiration 120

    • set auth-policy cli max-auth-failures <auth-failures-arg>

      设置在锁定帐户之前允许的失败 CLI 身份验证尝试次数。如果设置为 0,则将禁用帐户锁定。

      其中,<auth-failures> 是触发锁定的身份验证失败次数

      例如,nsx> set auth-policy cli max-auth-failures 5

    • set banner

      设置安全横幅或每日消息。

      例如,nsx> set banner

      输入文本消息。以“Ctrl-D”结尾

    • reset dataplane hugepage

      将与巨大页面相关的引导时间选项重置为出厂默认设置。

      例如

      nsx-edge-1> reset dataplane hugepage

      0000:0b:00.0 already bound to driver vfio-pci, skipping
      0000:1b:00.0 already bound to driver vfio-pci, skipping
      0000:13:00.0 already bound to driver vfio-pci, skipping
      INFO: Config was written to: /config/vmware/edge/config.json
      Generating grub configuration file ...
      Found linux image: /vmlinuz-3.14.17-nn4-server
      Found initrd image: //initrd.img-3.14.17-nn4-server
      File descriptor 4 (/tmp/ffinvYglp (deleted)) leaked on lvs invocation. Parent PID 32203: /bin/sh
      done
      INFO: Updated grub. Please reboot to take effect.