NSX Edge 虛擬機器變得失效或在資料中心的放置需要變更時,您可以重新部署它。例如,當 NSX Edge 必須移至另一個資料存放區或計算資源時,請重新部署 NSX Edge 節點。您也可以將節點移至另一個網路。不過,根據您的網路需求,可能有其他需要重新部署的原因。

您只能使用 NSX Edge 虛擬機器應用裝置來重新部署現有的 NSX Edge 節點 (實體伺服器或 NSX Edge 虛擬機器應用裝置)。

必要條件

  • 雖然您可以變更 NSX Edge 傳輸節點裝載的部分組態,但請勿在應由新節點重新部署的現有 NSX Edge 節點上變更這些組態:
    • 失敗網域
    • 傳輸節點連線
    • 實體 NIC 組態
    • 邏輯路由器
    • 負載平衡器配置
  • 如果現有 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 Edge 節點已與 NSX Manager 中斷連線。
    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. 透過執行 CLI 命令 get logical-routers,確認邏輯路由器組態已移轉至新的 NSX Edge 節點。
  11. 確認已取代 NSX Edge 節點上的 TEP 位址保持不變。
  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.