您可以在單一叢集中設定 NSX Manager、主機傳輸節點和 NSX Edge 虛擬機器。叢集中的每台主機都提供為 NSX-T 設定的兩個實體 NIC。

重要: 請從 NSX-T 2.4.2 或 2.5 版開始,部署完全折疊的單一 vSphere 叢集拓撲。

此程序中參考的拓撲使用:

  • 用叢集中的主機進行設定的 vSAN。
  • 每個主機至少有兩個實體 NIC。
  • vMotion 和管理 VMkernel 介面。
圖 1. 拓撲:管理主機與 NSX Edge 和客體虛擬機器通訊的單一 N-VDS 交換器

必要條件

  • 所有主機都必須是 vSphere 叢集的一部分。
  • 每個主機都會啟用兩個實體 NIC 卡。
  • 將所有主機登錄至 vCenter Server
  • vCenter Server 上確認共用儲存區可供主機使用。
  • 主機 TEP IP 與 NSX Edge TEP IP 必須位於不同的 VLAN 區段中。來自主機工作負載的南北向流量會封裝在 GENEVE 中,並傳送至來源 IP 為主機 TEP、目的地 IP 為 NSX Edge TEP 的 NSX Edge 節點。由於這些 TEP 必須屬於不同的 VLAN 或子網路,因此必須透過架頂式 (TOR) 交換器路由流量。在此圖例中,用於主機的傳輸 VLAN 為 VLAN 200;用於 NSX Edge 的則為 VLAN 600。為主機 TEP 和 NSX Edge TEP 設定個別 VLAN 的原因是,TEP 僅能從實體網路介面卡 (而非從內部連接埠群組) 接收流量或傳送流量至其中。

程序

  1. 在 vSS 或 vDS 上準備四個具有 vmnic0 的 ESXi 主機,vmnic1 可供使用。
  2. 在主機 1 上,安裝 vCenter Server、設定 vSS/vDS 連接埠群組,然後在主機上所建立的連接埠群組上安裝 NSX Manager
  3. 準備 ESXi 主機 1、2、3 和 4 以作為傳輸節點。
    1. 使用指定的整併原則建立 VLAN 傳輸區域和覆疊傳輸區域。請參閱建立傳輸區域
    2. 為主機的通道端點 IP 位址建立 IP 集區或 DHCP。請參閱為通道端點 IP 位址建立 IP 集區
    3. 為 Edge 節點的通道端點 IP 位址建立 IP 集區或 DHCP。請參閱為通道端點 IP 位址建立 IP 集區
    4. 使用具名整併原則來建立上行設定檔。請參閱建立上行設定檔
      備註: 為了以最佳方式利用上行中的可用頻寬, VMware 建議使用整併原則,將負載分散到主機所有可用的上行之間。
    5. 設定 Network I/O Control 設定檔,以管理主機上的流量。請參閱設定 Network I/O Control 設定檔
      備註: VMware 建議配置 100 份額 (Shares) 給管理流量。
    6. 藉由套用傳輸節點設定檔,將主機設定為傳輸節點。在此步驟中,傳輸節點設定檔僅會將 vmnic1 (未使用的實體 NIC) 移轉到 N-VDS 交換器。將傳輸節點設定檔套用至叢集主機後,系統會建立 N-VDS 交換器,並將 vmnic1 連線至 N-VDS 交換器。請參閱新增傳輸節點設定檔
    所有主機上的 vmnic1 都會新增至 N-VDS 交換器。因此,在兩個實體 NIC 中,有一個會移轉至 N-VDS 交換器。vmnic0 介面仍會連線至 vSS 或 vDS 交換器,以確定主機的連線可供使用。
  4. NSX Manager UI 中,為 NSX ManagervCenter ServerNSX Edge 建立 VLAN 支援的區段。請務必為每個由 VLAN 支援的區段選取正確的整併原則。請勿以 VLAN 主幹邏輯交換器為目標。在 NSX Manager UI 中建立目標區段時,請在輸入 VLAN 清單欄位中輸入單一 VLAN 值。
  5. 在主機 2、主機 3 和主機 4 上,您必須同時從 VSS/VDS 將 vmk0 介面卡和 vmnic0 移轉到 N-VDS 交換器。更新每台主機上的 NSX-T 組態。移轉時確保
    • vmk0 對應至 Edge 管理區段
    • vmnic0 對應至作用中上行,uplink-1
  6. 在 vCenter Server 中,移至主機 2、主機 3 和主機 4,並確認 vmk0 介面卡已連線至 N-VDS 上的 vmnic0 實體 NIC 並可連線。
  7. 在 NSX Manager UI 中,移至主機 2、主機 3 和主機 4,並確認兩個 pNIC 均位於 N-VDS 交換器上。
  8. 在主機 2 和主機 3 上,從 NSX Manager UI 安裝 NSX Manager,並將 NSX Manager 連結至區段。等待約 10 分鐘讓叢集形成,並確認叢集已形成。
  9. 關閉第一個 NSX Manager 節點的電源。等待約 10 分鐘。
  10. NSX Manager 和 vCenter Server 重新連結至先前建立的邏輯交換器。在主機 4 上,開啟 NSX Manager 的電源。等待約 10 分鐘,以確認叢集處於穩定狀態。在第一個 NSX Manager 電源關閉的情況下,執行冷 vMotion 以將 NSX ManagervCenter Server 從主機 1 移轉到主機 4。

    如需 vMotion 限制的相關資訊,請參閱 https://kb.vmware.com/s/article/56991

  11. NSX Manager UI 中,移至主機 1,將 vmk0 和 vmnic0 同時從 VSS 移轉至 N-VDS 交換器。
  12. 用於安裝的網路對應欄位中,確認 vmk0 介面卡已對應至 N-VDS 交換器上的 Edge 管理區段
  13. 在主機 1 上,從 NSX Manager UI 安裝 NSX Edge 虛擬機器。
  14. NSX Edge 虛擬機器加入管理平面。
  15. 若要建立南北向流量連線,請使用外部路由器來設定 NSX Edge 虛擬機器。
  16. 確認 NSX Edge 虛擬機器與外部路由器之間的南北向流量連線。
  17. 萬一發生停電而造成整個叢集重新開機的情形,則 NSX-T 管理元件可能不會啟動以及與 N-VDS 通訊。若要避免發生此情況,請執行下列步驟:
    注意: 任何未正確執行的 API 命令都會導致與 NSX Manager 的連線發生中斷。
    備註: 在單一叢集組態中,管理元件作為虛擬機器託管於 N-VDS 交換器上。由於安全考慮,管理元件依預設連線的 N-VDS 連接埠會初始化為封鎖的連接埠。如果發生電力故障而導致四個主機全都需要重新開機,則管理虛擬機器連接埠將會初始化為己封鎖狀態。若要避免循環相依性,建議在 N-VDS 上建立已解除封鎖狀態的連接埠。已解除封鎖的連接埠可確保叢集重新開機時,NSX-T 管理元件可與 N-VDS 通訊以恢復正常功能。
    在子工作結束時,移轉命令會採用:
    • NSX Manager 所在主機節點的 UUID。
    • NSX Manager 虛擬機器的 UUID,並將其移轉至處於已解除封鎖狀態的靜態邏輯連接埠。
    如果所有主機均已關閉電源或均已開啟電源,或者 NSX Manager 虛擬機器移至另一台主機,則在 NSX Manager 恢復運作後,則該虛擬機器會連結至已解除封鎖的連接埠,從而防止與 NSX-T 管理元件的連線發生中斷。
    1. NSX Manager UI 中,移至管理程式模式 > 網路 > 邏輯交換器索引標籤 (3.0 及更新版本)。搜尋區段計算虛擬機器區段。選取概觀索引標籤,找到並複製 UUID。此範例中使用的 UUID 為 c3fd8e1b-5b89-478e-abb5-d55603f04452
    2. 為每個 NSX Manager 建立 JSON 裝載。
      • 在 JSON 裝載中,建立具有初始化狀態 UNBLOCKED_VLAN 狀態的邏輯連接埠,方法是將 logical_switch_id 的值取代為先前所建立 Edge 管理區段的 UUID。
      • 在每個 NSX Manager 的裝載中,attachment_type_iddisplay_name 值將會不同。
      重要: 重複此步驟以建立總計四個 JSON 檔案,三個用於 NSX Manager,一個用於 vCenter Server Appliance (VCSA)。
      port1.json
      {
      "admin_state": "UP",
      "attachment": {
      "attachment_type": "VIF",
      "id": "nsxmgr-port-147"
      },
      "display_name": "NSX Manager Node 147 Port",
      "init_state": "UNBLOCKED_VLAN",
      "logical_switch_id": "c3fd8e1b-5b89-478e-abb5-d55603f04452"
      }
      其中,
      • admin_state:這是連接埠的狀態。它必須為啟動。
      • attachment_type:必須設定為 VIF。所有虛擬機器都使用 VIF 識別碼連線至 NSX-T 交換器連接埠。
      • id:這是 VIF 識別碼。每個 NSX Manager 必須是唯一的。如果您有三個 NSX Manager,則會有三個裝載,而每個裝載皆必須有不同的 VIF 識別碼。若要產生唯一的 UUID,請登入 NSX Manager 的根殼層,然後執行 /usr/bin/uuidgen 以產生唯一的 UUID。
      • display_name:必須是唯一的,才能 NSX 讓管理員識別它與其他 NSX Manager 顯示名稱。
      • init_state:將值設定為 UNBLOCKED_VLAN 時,NSX 會取消封鎖 NSX Manager 的連接埠,即使 NSX Manager 無法使用也是如此。
      • logical_switch_id:這是 Edge 管理區段的邏輯交換器識別碼。
    3. 如果已部署三個 NSX Manager,則您需要建立三個裝載,用於 NSX Manager 的每個邏輯連接埠各一個。例如,port1.json、port2.json、port3.json。

      執行下列命令以建立裝載。

      curl -X POST -k -u '<username>:<password>' -H 'Content-Type:application/json' -d @port1.json https://nsxmgr/api/v1/logical-ports

      curl -X POST -k -u '<username>:<password>' -H 'Content-Type:application/json' -d @port2.json https://nsxmgr/api/v1/logical-ports

      curl -X POST -k -u '<username>:<password>' -H 'Content-Type:application/json' -d @port3.json https://nsxmgr/api/v1/logical-ports

      建立邏輯連接埠 API 執行的範例。

      root@nsx-mgr-147:/var/CollapsedCluster# curl -X POST -k -u 
      '<username>:<password>' -H 'Content-Type:application/json' -d @port1.json https://localhost/api/v1/logical-ports
      {
        "logical_switch_id" : "c3fd8e1b-5b89-478e-abb5-d55603f04452",
        "attachment" : {
          "attachment_type" : "VIF",
          "id" : "nsxmgr-port-147"
        },
        "admin_state" : "UP",
        "address_bindings" : [ ],
        "switching_profile_ids" : [ {
          "key" : "SwitchSecuritySwitchingProfile",
          "value" : "fbc4fb17-83d9-4b53-a286-ccdf04301888"
        }, {
          "key" : "SpoofGuardSwitchingProfile",
          "value" : "fad98876-d7ff-11e4-b9d6-1681e6b88ec1"
        }, {
          "key" : "IpDiscoverySwitchingProfile",
          "value" : "0c403bc9-7773-4680-a5cc-847ed0f9f52e"
        }, {
          "key" : "MacManagementSwitchingProfile",
          "value" : "1e7101c8-cfef-415a-9c8c-ce3d8dd078fb"
        }, {
          "key" : "PortMirroringSwitchingProfile",
          "value" : "93b4b7e8-f116-415d-a50c-3364611b5d09"
        }, {
          "key" : "QosSwitchingProfile",
          "value" : "f313290b-eba8-4262-bd93-fab5026e9495"
        } ],
        "init_state" : "UNBLOCKED_VLAN",
        "ignore_address_bindings" : [ ],
        "resource_type" : "LogicalPort",
        "id" : "02e0d76f-83fa-4839-a525-855b47ecb647",
        "display_name" : "NSX Manager Node 147 Port",
        "_create_user" : "admin",
        "_create_time" : 1574716624192,
        "_last_modified_user" : "admin",
        "_last_modified_time" : 1574716624192,
        "_system_owned" : false,
        "_protection" : "NOT_PROTECTED",
        "_revision" : 0
    4. 確認已建立邏輯連接埠。
    5. 找出每個 NSX Manager 的虛擬機器執行個體識別碼。您可以從詳細目錄 → 虛擬機器中擷取執行個體識別碼,選取 NSX Manager 虛擬機器,接著選取概觀索引標籤,然後複製執行個體識別碼。或者,從 vCenter Server 的受管理物件瀏覽器 (MOB) 搜尋執行個體識別碼。新增 :4000 至識別碼,以取得 NSX Manager 虛擬機器的 VNIC 硬體索引。
      例如,如果虛擬機器的執行個體 UUID 為 503c9e2b-0abf-a91c-319c-1d2487245c08,則其 VNIC 索引為 503c9e2b-0abf-a91c-319c-1d2487245c08:4000。這三個 NSX Manager VNIC 索引為:

      mgr1 vnic: 503c9e2b-0abf-a91c-319c-1d2487245c08:4000

      mgr2 vnic: 503c76d4-3f7f-ed5e-2878-cffc24df5a88:4000

      mgr3 vnic: 503cafd5-692e-d054-6463-230662590758:4000

    6. 找出主控 NSX Manager 的傳輸節點識別碼。如果您有三個 NSX Manager,而每個都主控於不同的傳輸節點,請記下傳輸節點識別碼。例如,這三個傳輸節點識別碼為:
      tn1: 12d19875-90ed-4c78-a6bb-a3b1dfe0d5ea
      tn2: 4b6e182e-0ee3-403f-926a-fb7c8408a9b7
      tn3: d7cec2c9-b776-4829-beea-1258d8b8d59b
    7. 在將 NSX Manager 移轉到新建立的連接埠時,請擷取將用作裝載的傳輸節點組態。
      例如,
      curl -k -u '<user>:<password' https://nsxmgr/api/v1/transport-nodes/12d19875-90ed-4c78-a6bb-a3b1dfe0d5ea > tn1.json
      curl -k -u '<user>:<password' https://nsxmgr/api/v1/transport-nodes/4b6e182e-0ee3-403f-926a-fb7c8408a9b7 > tn2.json
      curl -k -u '<user>:<password' https://nsxmgr/api/v1/transport-nodes/d7cec2c9-b776-4829-beea-1258d8b8d59b > tn3.json
    8. NSX Manager 從先前的連接埠移轉至 Edge 管理區段上新建立的取消封鎖邏輯連接埠。VIF-ID 值是先前為 NSX Manager 所建立連接埠的連結識別碼。
      需要下列參數才能移轉 NSX Manager
      • 傳輸節點識別碼
      • 傳輸節點組態
      • NSX Manager VNIC 硬體索引
      • NSX Manager VIF 識別碼
      用於將 NSX Manager 移轉至新建立之解除封鎖連接埠的 API 命令為:
      /api/v1/transport-nodes/<TN-ID>?vnic=<VNIC-ID>&vnic_migration_dest=<VIF-ID>

      例如,

      root@nsx-mgr-147:/var/CollapsedCluster# curl -k -X PUT -u 'admin:VMware1!VMware1!' -H 'Content-Type:application/json' -d @<tn1>.json 'https://localhost/api/v1/transport-nodes/11161331-11f8-45c7-8747-34e7218b687f?vnic=5028d756-d36f-719e-3db5-7ae24aa1d6f3:4000&vnic_migration_dest=nsxmgr-port-147'
    9. 確保靜態建立的邏輯連接埠已開啟
    10. 針對叢集中的每個 NSX Manager,重複上述步驟。