若要確保可設定狀態的應用程式的穩定性,負載平衡器會實作將所有相關連線導向至相同伺服器的持續性。支援不同類型的持續性以因應不同類型的應用程式需求。

某些應用程式會保持伺服器狀態,例如,購物車。此類狀態可能基於用戶端,並由用戶端 IP 位址或根據每個 HTTP 工作階段進行識別。當應用程式處理同一個用戶端或 HTTP 工作階段的後續相關連線時,可能會存取或修改此狀態。

來源 IP 持續性設定檔會根據來源 IP 位址對工作階段進行追蹤。當用戶端要求與支援來源位址持續性的虛擬伺服器進行連線時,負載平衡器會先檢查此用戶端之前是否進行過連線,如果是,則會將此用戶端返回至相同的伺服器。如果不是,則負載平衡器會根據集區負載平衡演算法選取伺服器集區成員。來源 IP 持續性設定檔由第 4 層和第 7 層虛擬伺服器使用。

如果規則持續性、Cookie 持續性和伺服器保持運作皆已設定,則負載平衡器會遵循規則持續性 > Cookie 持續性 > 伺服器保持運作的優先順序。

Cookie 持續性設定檔提供 3 種模式:
  • Cookie 插入 - 負載平衡器會在對用戶端的伺服器回應中,插入其自己的 Cookie 與集區成員資訊 (可能編碼或不編碼)。然後用戶端會在後續要求中 (包含 NSX Cookie) 轉送收到的 Cookie,而負載平衡器將使用該資訊來提供集區成員持續性。傳送至集區成員時,系統會從用戶端要求中去除 NSX Cookie。
  • Cookie 首碼 - 負載平衡器會在對用戶端的伺服器回應中附加集區成員資訊 (可能編碼或不編碼)。然後用戶端會在後續要求中 (具有 NSX 前置附加的資訊) 轉送收到的 HTTP Cookie,而負載平衡器將使用該資訊來提供集區成員持續性。傳送至集區成員時,系統會從用戶端要求中去除 NSX Cookie 首碼。
  • Cookie 重新寫入 - 負載平衡器會在對用戶端的伺服器回應中,將伺服器 Cookie 值取代為集區成員資訊 (可能編碼或不編碼)。然後用戶端會在後續要求中 (具有 NSX 前置附加的資訊) 轉送收到的 HTTP Cookie,而負載平衡器將使用該資訊來提供集區成員持續性。傳送至集區成員時,系統會在用戶端要求中取代原始伺服器 Cookie。
Cookie 持續性僅適用於 L7 虛擬伺服器。請注意, 支援 Cookie 名稱中存在空格。

一般持續性設定檔會根據 HTTP 標頭、Cookie 或 HTTP 要求中的 URL 來支援持續性。因此,如果工作階段識別碼是 URL 的一部分,此設定檔就會支援應用程式工作階段持續性。此設定檔不會直接與虛擬伺服器相關聯。請在設定要求轉送和回應重新寫入的負載平衡器規則時指定此設定檔。

一般持續性設定檔圖。

程序

  1. 使用管理員權限來登入 NSX Manager
  2. 選取網路 > 負載平衡 > 設定檔 > 持續性 > 新增持續性設定檔
  3. 選取來源 IP 以新增來源 IP 持續性設定檔,然後輸入設定檔詳細資料。
    也可以接受預設的來源 IP 設定檔設定。
    選項 說明
    名稱與說明 輸入來源 IP 持續性設定檔的名稱和說明。
    共用持續性 切換按鈕以共用持續性,讓與此設定檔相關聯的所有虛擬伺服器均可共用持續性資料表。

    如果在關聯到虛擬伺服器的來源 IP 持續性設定檔中未啟用持續性共用,則與此設定檔相關聯的每個虛擬伺服器都將維護私用持續性資料表。

    持續性項目逾時 輸入持續性到期時間 (以秒為單位)。

    負載平衡器持續性資料表維護用於記錄用戶端要求導向至相同伺服器的項目。

    針對來自新用戶端 IP 的第一個連線,系統會根據負載平衡演算法,將其負載平衡至集區成員。NSX 會將該持續性項目儲存在 LB 持續性資料表上,該資料表可透過 CLI 命令在主控 T1-LB 主動的 Edge 節點上進行檢視:get load-balancer <LB-UUID> persistence-tables

    • 從該用戶端連至 VIP 的連線存在時,系統會保留持續性項目。
    • 從該用戶端至 VIP 之間沒有更多連線時,持續性項目會開始「持續性項目逾時」值中指定的計時器倒數。如果在計時器到期之前並未進行從該用戶端至 VIP 的新連線,則該用戶端 IP 的持續性項目即會刪除。如果該用戶端在項目刪除之後返回,則系統會根據負載平衡演算法再次將其重新平衡至集區成員。
    填滿時清除項目

    較大逾時值可能會導致持續性資料表在流量過大的情況下快速填滿。啟用此選項時,系統會刪除最舊的項目以接受最新項目。

    此選項停用時,如果來源 IP 持續性資料表已滿,則會拒絕新的用戶端連線。

    HA 持續性鏡像 切換按鈕,將持續性項目同步至 HA 對等項。HA 持續性鏡像啟用時,在發生負載平衡器容錯移轉的情形下,用戶端 IP 持續性會保持不變。
    標籤 輸入標籤使搜尋更輕鬆。

    您可以指定標籤,以設定標籤範圍。

  4. 選取 Cookie 持續性設定檔,然後輸入設定檔詳細資料。Cookie 持續性僅適用於 L7 虛擬伺服器。請注意,支援 Cookie 名稱中存在空格。
    選項 說明
    名稱與說明 輸入 Cookie 持續性設定檔的名稱和說明。
    共用持續性 開啟按鈕,以在關聯到相同集區成員的多個虛擬伺服器之間共用持續性。

    Cookie 持續性設定檔將以 <name>.<profile-id>.<pool-id> 格式插入 Cookie。

    如果共用的持續性在與虛擬伺服器相關聯的 Cookie 持續性設定檔中未啟用,則會使用每個虛擬伺服器的私用 Cookie 持續性,並由集區成員限定。負載平衡器將以 <name>.<virtual_server_id>.<pool_id> 格式插入 Cookie。

    Cookie 模式 從下拉式功能表中選取模式。
    • 插入 - 新增唯一的 Cookie 以識別工作階段。
    • 首碼 - 附加至現有的 HTTP Cookie 資訊。
    • 重新寫入 - 重新寫入現有的 HTTP Cookie 資訊。
    Cookie 名稱 輸入 Cookie 名稱。支援 Cookie 名稱中存在空格。
    Cookie 網域 輸入網域名稱。

    僅在插入模式中,才可以設定 HTTP Cookie 網域。

    Cookie 後援 切換按鈕,以在 Cookie 指向處於 [已停用] 或 [關閉] 狀態的伺服器時拒絕用戶端要求。

    如果 Cookie 指向處於 [已停用] 或 [關閉] 狀態的伺服器,則選取新的伺服器來處理用戶端要求。

    Cookie 路徑 輸入 Cookie URL 路徑。

    僅在插入模式中,才可以設定 HTTP Cookie 路徑。

    Cookie 竄改 切換按鈕以停用加密。

    停用竄改時,Cookie 伺服器 IP 位址和連接埠資訊會以純文字顯示。加密 Cookie 伺服器 IP 位址和連接埠資訊。

    Cookie 類型 從下拉式功能表中選取 Cookie 類型。

    工作階段 Cookie - 不會儲存。將在瀏覽器關閉後遺失。

    持續性 Cookie - 由瀏覽器儲存。不會在瀏覽器關閉後遺失。

    HttpOnly 旗標 此選項啟用時,系統會防止在瀏覽器中執行的指令碼存取 Cookie。

    HttpOnly 旗標僅適用於插入模式。

    安全旗標 此選項啟用時,系統會使網頁瀏覽器僅透過 HTTPS 傳送 Cookie。

    安全旗標僅適用於插入模式。

    閒置時間上限 輸入 Cookie 到期之前 Cookie 類型可閒置的時間 (以秒為單位)。
    Cookie 存留期上限 針對工作階段 Cookie 類型,輸入 Cookie 可供使用的時間 (以秒為單位)。
    標籤 輸入標籤使搜尋更輕鬆。

    您可以指定標籤,以設定標籤範圍。

  5. 選取一般以新增一般持續性設定檔,然後輸入設定檔詳細資料。
    選項 說明
    名稱與說明 輸入來源 IP 持續性設定檔的名稱和說明。
    共用持續性 切換按鈕以在虛擬伺服器之間共用設定檔。
    持續性項目逾時 輸入持續性到期時間 (以秒為單位)。

    負載平衡器持續性資料表維護用於記錄用戶端要求導向至相同伺服器的項目。

    針對來自新用戶端 IP 的第一個連線,系統會根據負載平衡演算法,將其負載平衡至集區成員。NSX 會將該持續性項目儲存在 LB 持續性資料表上,該資料表可透過 CLI 命令在主控 T1-LB 主動的 Edge 節點上進行檢視:get load-balancer <LB-UUID> persistence-tables

    • 從該用戶端連至 VIP 的連線存在時,系統會保留持續性項目。
    • 從該用戶端至 VIP 之間沒有更多連線時,持續性項目會開始「持續性項目逾時」值中指定的計時器倒數。如果在計時器到期之前並未進行從該用戶端至 VIP 的新連線,則該用戶端 IP 的持續性項目即會刪除。如果該用戶端在項目刪除之後返回,則系統會根據負載平衡演算法再次將其重新平衡至集區成員。
    HA 持續性鏡像 切換按鈕,將持續性項目同步至 HA 對等項。
    標籤 輸入標籤使搜尋更輕鬆。

    您可以指定標籤,以設定標籤範圍。