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 不允许将现有 NSX Edge 节点替换为新节点。

  • 现有的自动部署 NSX Edge 将保留在硬件版本 13 中。从 NSX 4.0.1.1 开始,如果重新部署 NSX Edge 虚拟机,则会使用与 ESXi 主机版本兼容的已升级硬件版本自动部署新的 NSX Edge 虚拟机。知识库文章 2007240 中列出了与 ESXi 主机兼容的虚拟机硬件版本。

过程

  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 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 配置为使用 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 VIB。有关 del nsx 的更多详细信息,请参见NSX 安装指南

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

  • 重新部署 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.