5.1 版
Document Number GC40-0897-01
注意 |
---|
使用本資訊及其支援的產品之前, 請先閱讀附錄 E, 注意事項下的一般資訊。 |
第二版(2003 年 11 月)
(C) Copyright International Business Machines Corporation 2003. All rights reserved.
Note to U.S. government Users -- Documentation related ...
本書將說明如何規劃、安裝、配置、使用及疑難排解 IBM(R) WebSphere(R) Application Server Load Balancer for AIX(R)、HP-UX、Linux、Solaris 和 Windows(R) 作業系統。 本產品先前稱做 Edge Server Network Dispatcher、SecureWay(R) Network Dispatcher、eNetwork Dispatcher 和 Interactive Network Dispatcher。
Load Balancer 管理手冊是針對熟悉作業系統及熟悉提供網際網路服務的有經驗網路及系統管理員而撰寫的。不需要之前使用 Load Balancer 的經驗。
本書不支援先前版次的 Load Balancer。
造訪 Edge Components InfoCenter (ecinfocenter) 網站以取得最新詳細資訊,讓您瞭解如何使用 Load Balancer for Edge Component,來發揮伺服器的最大效能。其中也包含了配置範例及內容。
Edge Components InfoCenter 網站鏈結到本書的最新版本(以 HTML 和 PDF 格式表示)。
如果需要有關 Load Balancer 最近的更新內容與用法提示,請造訪下列網站支援頁面, 然後按一下 Search for Load Balancer hints and tips。 您可以從 Edge Components InfoCenter 鏈結到這個網站。
如果要存取這些以及相關的網頁,請到列示於相關的文件及網站的 URL。
協助工具特性協助殘障使用者,如行動不便者或視障者,來順利使用軟體產品。 這些是 Load Balancer 中的主要協助工具特性:
您的回應對我們十分重要,因為它有助於我們提供最正確且高品質的資訊。 如果您對本書或其他 Edge 元件文件有任何意見:
本篇提供 Load Balancer 及其元件的概觀、可用配置特性的高階說明、軟硬體需求的清單,以及安裝指示。它含有下列各章:
本章將提供 Load Balancer 的概觀,其中包含下列段落:
如果需要每一個 Load Balancer 元件提供的配置特性的高階清單,協助您規劃要使用哪些特性來管理您的網路,請參閱管理您的網路:決定要使用哪些 Load Balancer 特性。
Load Balancer 是一種軟體解決方案,用於將外來的用戶端要求分送給各個伺服器。 它會將 TCP/IP 階段作業要求引導給伺服器群組內不同的伺服器,藉此來提升伺服器的效能;在這種方式中,可以平衡所有伺服器之間的要求。 這種平衡負載將不會影響到使用者及其他應用程式。Load Balancer 對如下各種應用程式相當有用: E-mail 伺服器、全球資訊網 (World Wide Web) 伺服器、分散式平行資料庫查詢, 以及其他 TCP/IP 應用程式。
當搭配 Web 伺服器使用時,Load Balancer 可以對尖峰需求的問題, 提供強大、有彈性及可調整的解決方案,使您的站台發揮最大的效能。如果需求量過大,到站訪客無法順利進入時,可用 Load Balancer 自動尋找最佳伺服器來處理進入的要求,進而提高客戶的滿意度以及您的利潤。
Load Balancer 是由以下五種元件組成,它們可單獨使用,或一起使用而提供更好的平衡負載效果:
在 HTTP 通訊協定方面,您也可用 配送器之內容型遞送特性,根據用戶端要求的內容來平衡負載。 所選擇的伺服器是 URL 符合所指定之規則的結果。
有關配送器、CBR、網站選取器、Cisco CSS 控制器及 Nortel Alteon 控制器等元件的進一步資訊,請參閱Load Balancer 有哪些元件?。
連上全球網際網路的使用者及網路的數目激增,這種快速成長導致規模不足的問題, 進而限制了存取受歡迎站台的使用者數目。
目前,網路管理者可以各顯神通,以五花八門的手法,努力擴大存取數目。這些方法中, 有一些容許使用者在最初選用的伺服器較慢或未回應時,可以隨機選擇不同的伺服器。 這種方法既費事,又麻煩,效率極差。另一種方法就是標準的循環法, 網域名稱伺服器輪流選取伺服器來處理要求。 這種方法有進步,但是,仍然沒有效率,因為它盲目地轉遞要求, 完全不考慮伺服器的工作負荷。此外,即使伺服器發生故障,要求仍會繼續傳送進來。
因為需要功能更強大的解決方案,所以產生了 Load Balancer。 比早期解決方案及競爭對手的解決方案功能來得更強。
隨著用戶端要求數目的增加,您可以動態地新增伺服器,如此每天可在數十甚至數百台的伺服器上,提供數千萬個要求的支援。
平衡負載可藉著將標準環繞式方法常見的熱點減至最少,確保每一組伺服器發揮其硬體的最大作用。
Load Balancer 是使用標準的 TCP/IP 通訊協定。您可以將它新增到現存的網路中, 而不必更動網路設備,易於安裝及配置。
使用簡單 mac 層次轉送方法時,配送器元件只會觀察用戶端到伺服器的入埠資料流量。 毋需查看伺服器至用戶端的離埠資料流量。與其他應用程式相較下, 將大大地減少對應用程式的影響,因而可以改善網路的效能。
配送器、Cisco CSS 控制器及 Nortel Alteon 控制器元件提供內建的高可用性,以便在主要伺服器機器發生故障時, 能隨時利用備妥的備份機器,來接管平衡負載的工作。當其中一個伺服器發生故障時, 其他伺服器將繼續服務要求。這將消除任何作為單一故障點的伺服器,因而使得站台高度可用。
如果需要詳細資訊,請參閱何謂高可用性?。
搭配 Caching Proxy 時,CBR 元件即能根據所要求的內容,將 HTTP 和 HTTPS (SSL) 要求 Proxy 到特定伺服器。 比方說,如果有一個要求在 URL 的目錄部分包含字串 '/cgi-bin/',而且伺服器名稱為本端伺服器,CBR 便可以將要求引導至特別配置來處理 CGI 要求的一組伺服器中的最佳伺服器。
配送器元件亦具備內容型遞送能力,但它不需安裝 Caching Proxy。 由於配送器元件的內容型遞送作業是在收到封包時於核心程式中執行, 因此其所提供的內容型遞送快於 CBR 元件。配送器元件會針對 HTTP(使用「內容」類型規則)及 HTTPS(使用 SSL 階段作業 ID 親緣性)來執行內容型遞送。
配送器元件具備內建的高可用性特性,可從網路消除作為單一故障點的配送器。 這種特性必需使用第二台配送器機器,來監視主要機器,並在主要機器發生故障時,隨時接管平衡負載的作業。配送器還具備共同高可用性,容許兩台機器同為彼此的主要及次要(備用)機器。請參閱配置高可用性。
使用兩層配置且配送器機器正平衡負載多重伺服器(具有 CBR 或網站選取器)的資料傳輸時, 您可以針對 Load Balancer 的這些元件達到某種層次的高可用性。
控制器具有高可用性特性,可消除作為單一故障點的控制器。 機器上的控制器可以配置成主要控制器,不同機器上的控制器則可以配置成備份控制器。 備份控制器會監視主要控制器,並等待萬一主要控制器發生故障時,接管提供伺服器加權值給交換器的作業。請參閱高可用性,以取得進一步資訊。
Load Balancer for IBM WebSphere Application Server 5.1 版包含了若干新的特性。它也包括 5.0.1 版和 5.0.2 版所有的新特性和更正過的更新內容。以下是其中最重要的新特性。
這項特性適用於所有的 Load Balancer 元件。
Load Balancer 現在可在 HP-UX 作業系統上執行。請參閱HP-UX 的基本需求,以取得進一步資訊。
這項特性適用於所有的 Load Balancer 元件。
除了支援在 Linux for Intel(TM)(32 位元模式)上執行 Load Balancer 之外,Load Balancer 現在也可以在 Linux for S/390(31 位元模式)和 Linux for Power PC(64 位元模式)上執行。相關資訊,請參閱Linux 的基本需求。
這項特性適用於所有的 Load Balancer 元件。
除了 AIX 5.1 之外,Load Balancer 現在也可以在 AIX 5.2(32 位元或 64 位元模式)上執行。請參閱AIX 的基本需求,以取得進一步資訊。
這項特性適用於所有的 Load Balancer 元件。
除了 Solaris 8 之外,Load Balancer 現在也可以在 Solaris 9(32 位元或 64 位元模式)上執行。請參閱Solaris 的基本需求,以取得進一步資訊。
這項特性適用於所有的 Load Balancer 元件。
除了 Windows 2000 之外,Load Balancer 現在也可以在 Windows Server 2003 上執行。請參閱Windows 2000 和 Windows Server 2003 的基本需求,以取得進一步資訊。
這個特性適用於配送器元件。
藉由這個增強功能,現在可以支援在同一個叢集上同時配置 FTP 埠和萬用字元埠。如果需要詳細資訊,請參閱使用萬用字元埠來引導未配置埠的資料傳輸及用來處理 FTP 資料傳輸的萬用字元埠。
Load Balancer for IBM WebSphere Application Server 5.0 版包含了若干新的特性。其中最重要的新特性如下。
Cisco CSS 控制器(原先稱為 Cisco Consultant)是一種 Load Balancer 元件,會計算 Cisco CSS 交換器所平衡負載的伺服器的加權值。Cisco CSS 交換器是支援 SNMP 的硬體型 Load Balancer。 控制器會使用較強的應用程式及系統意識,來增強 Cisco CSS 交換器的伺服器平衡負載功能。
如果需要詳細資訊,請參閱快速入門配置、規劃 Cisco CSS 控制器元件及配置 Cisco CSS 控制器元件。
這項特性是 Load Balancer 的新元件。
Nortel Alteon 控制器計算 Nortel Alteon Web 交換器所平衡負載的伺服器的加權值。Nortel Alteon Web 交換器交換器是具有 SNMP 介面的硬體型 Load Balancer,可供您提取連線資訊及設定加權值。Nortel Alteon 控制器是新的 Load Balancer 元件,可監視由 Alteon 交換器平衡負載的伺服器,並提供適當的加權值以確定準確的平衡負載。控制器會使用較強的應用程式及系統意識,來增強 Nortel Alteon 交換器的伺服器平衡負載功能。
如果需要詳細資訊,請參閱快速入門配置、規劃 Nortel Alteon 控制器元件及配置 Nortel Alteon 控制器元件。
這項特性適用於 Cisco CSS 控制器及 Nortel Alteon 控制器等元件。
Load Balancer 支援 Cisco CSS 控制器元件及 Nortel Alteon 控制器元件的高可用性。客戶現已可在備份伺服器中安裝控制器,以便在主要控制器失敗時加以接管。
如果是 Cisco CSS 控制器,請參閱高可用性以取得進一步資訊。
如果是 Nortel Alteon 控制器,請參閱高可用性以取得進一步資訊。
這個特性適用於 CBR 元件。
CBR 現已支援透過親緣性的 WAS 格式,將 Web 應用程式要求平衡負載至 WAS(版本 5)伺服器。CBR 有能力將 WAS HTTP 外掛程式配置檔自動對映到 CBR 配置,以便執行您的 WAS 配置之平衡負載。
請參閱平衡負載 WebSphere Application Server (WAS),以取得進一步資訊。
這個特性適用於配送器及 CBR 元件。
每秒連線數規則的增強功能可讓客戶指定 "upserversonrule" 選項。 藉由指定這個選項,您可以確定如果伺服器集中有一個或多個伺服器已關閉, 剩餘的伺服器將不會超載。
相關資訊,請參閱使用基於每秒連線數的規則。
這個特性適用於 CBR 元件。
CBR 主動 Cookie 親緣性之前的實作,把用戶端到伺服器的連線建立在要求的叢集和埠之基礎。 這可能會變成有多重規則與不同伺服器集的配置問題。增強功能將容許單一叢集及埠中的多重親緣性,並容許用戶端基於要求本文,維護可能有很多不同伺服器的親緣性。
請參閱主動 Cookie 親緣性,以取得進一步資訊。
這個特性適用於配送器元件。
Load Balancer 現在提供 Linux 平台上的 SNMP 支援。相關資訊,請參閱SNMP 指令及通訊協定。
這項特性適用於 Load Balancer 的所有元件。
Load Balancer 除了透過 RMI(遠端方法呼叫)支援遠端管理之外,也支援「遠端 Web 型管理」。 即使防火牆存在,Web 型管理也會提供 Load Balancer 的安全、鑑別的遠端管理。相關資訊,請參閱Web 型管理。
這項特性適用於 Load Balancer 的所有元件。
現在可以從 GUI 樹狀結構中的「主機」節點存取指令行(「傳送指令」)。 如果需要詳細資訊,請參閱第 *** 頁。
這個特性適用於配送器元件。
為了判定 Load Balancer 的問題,我們提供了一個工具 (lbpd), 可快速且輕鬆地收集重要的資訊,供客戶將此資訊傳送給 IBM 服務中心。相關資訊,請參閱收集疑難排解資訊。
這項特性適用於配送器、CBR 及網站選取器等元件。
除了「輕裝備」SSL 警告器外,Load Balancer 現在新提供「重裝備」HTTPS 警告器的支援。HTTPS 警告器會開啟完整 SSL 連線,可以使用伺服器建立完整 SSL socket。 (相反地,輕裝備 SSL 警告器不會使用伺服器來建立完整的 SSL socket。)
有關 HTTPS 警告器的進一步資訊,請參閱警告器列示。
這項特性套用於所有的 Load Balancer 元件。
Load Balancer 目前新提供監視 LDAP 伺服器狀況的 LDAP 警告器。
請參閱警告器列示,以取得進一步資訊。
這項特性套用於所有的 Load Balancer 元件。
警告器目前有能力在標示伺服器當機之前重試連線。
這個特性適用於配送器元件。
配送器目前有能力來傳送 TCP 重設到當機伺服器。TCP 重設導致立即關閉連線。
請參閱傳送 TCP 重設到當機伺服器(只適用於配送器元件),以取得進一步資訊。
下列特性已從 Load Balancer 中移除
本章將提供 Load Balancer 各項元件的概觀,其中包含下列各節:
如果需要每一個 Load Balancer 元件提供的配置特性的高階清單,協助您規劃要使用哪些特性來管理您的網路,請參閱管理您的網路:決定要使用哪些 Load Balancer 特性。
Load Balancer 共有五項元件:配送器、內容型遞送 (CBR)、網站選取器、Cisco CSS 控制器及 Nortel Alteon 控制器。Load Balancer 會依據您的站台配置,來提供您個別或搭配使用這些元件的彈性。本章將分別提供這些元件的概觀。
配送器元件會透過平衡負載及管理軟體的獨特組合, 來平衡您的伺服器之間的資料傳輸。配送器也可以偵測出發生故障的伺服器,並在轉送資料時繞過該伺服器。配送器可支援 HTTP、FTP、SSL、SMTP、NNTP、IMAP、POP3、Telnet 及任何其他 TCP 或無狀態 UDP 型的應用程式。
所有傳給配送器機器的用戶端要求,都會依據某些動態設定的加權值,被引導至「最佳」伺服器。在處理配置期間,您可以使用加權值的預設值,或變更這些值。
配送器元件是穩定且有效管理大規模、可調整之伺服器網路的關鍵。透過配送器,您可以將許多個別的伺服器鏈結起來,使之形同單一的虛擬伺服器。因此,您的站台將以單一 IP 位址出現在全世界面前。配送器功能在不受網域名稱伺服器的影響下運作;所有要求都將傳送至配送器機器的 IP 位址。
配送器可為叢集伺服器帶來平衡資料傳輸負載的獨特優點,因而能夠穩定且有效地管理您的站台。
『圖 1.』顯示使用「乙太網路」配置的站台之實體呈現。 您可在不變更網路設備下,安裝配送器機器。在用戶端要求經由配送器引導至最佳的伺服器之後,回應會利用 MAC 轉送方法直接從伺服器傳送至用戶端,而不會透過配送器。
『圖 2.』說明所有伺服器均位在區域網路中的站台。配送器元件可用來轉送要求,而度量伺服器則可用來提供系統負載資訊給配送器機器。
在這個範例中,度量伺服器常駐程式會安裝在每一個後端伺服器上。您可以將度量伺服器搭配配送器元件或任何其他 Load Balancer 元件來使用。
配送器中的廣域支援可讓您使用本端伺服器及遠端伺服器(不同子網路上的伺服器)。『圖 3.』所示的配置中,某一本端配送器(配送器 1)可當作所有要求的進入點。它會將這些要求在自己的本端伺服器間(伺服器 A、伺服器 B、伺服器 C)分送,並分送給遠端配送器(配送器 2),而後者將平衡負載給其本端伺服器(伺服器 G、伺服器 H、伺服器 I)。
當使用配送器的 NAT 轉送方法或使用 GRE 支援時,不須在遠端站台(伺服器 D、伺服器 E 及伺服器 F 所在之處)使用配送器,同樣可達成配送器廣域支援。如果需要詳細資訊,請參閱配送器的 NAT/NAPT(nat 轉送方法)及GRE(同屬遞送封裝)支援。
CBR 可搭配 Caching Proxy 將用戶端要求轉遞至指定的 HTTP 或 HTTPS (SSL) 伺服器。它可讓您處理快取詳細資料, 以低網路頻寬需求,即可獲得較快的速度來擷取 Web 文件。CBR 以及 Caching Proxy 會用指定的規則類型來檢查 HTTP 要求。
CBR 可讓您指定一組伺服器,以根據符合要求內容的正規表示式來處理要求。因為 CBR 可讓您針對每種類型的要求來指定多重伺服器,所以可將要求平衡負載,以獲得最佳的用戶端回應。伺服器群組中如果有伺服器發生故障,CBR 也會偵測到, 並停止將要求遞送至該伺服器。CBR 元件所使用的平衡負載演算法,與配送器元件所使用的證明演算法相同。
當 Caching Proxy 收到要求時,會用定義於 CBR 元件中的規則來加以檢查。如果找到符合的項目,就會選擇與該規則相關的其中一個伺服器來處理要求。然後 Caching Proxy 會執行其一般的處理程序,以將要求 Proxy 至所選擇的伺服器。
除了高可用性、SNMP 子代理程式、廣域及少數其他配置指令之外,CBR 的功能皆與配送器相同。
須先執行 Caching Proxy,之後 CBR 才可平衡負載用戶端要求。
『圖 4.』顯示站台的邏輯表示法,其中是以 CBR 來從本端伺服器 Proxy 一些內容。CBR 元件會使用 Caching Proxy,根據 URL 的內容,將用戶端要求(HTTP 或 HTTPS)轉送給伺服器。
網站選取器可作為名稱伺服器,搭配網域名稱系統中的其他名稱伺服器,以所收集的測量值與加權值,來平衡負載一組伺服器。您可以建立站台配置,藉以依據用戶端要求所使用的網域名稱,來平衡負載一組伺服器間的資料傳輸。
用戶端會向其網路中的名稱伺服器送出解析網域名稱的要求。名稱伺服器會將這個要求轉送給網站選取器機器。網站選取器接著便將網域名稱解析成 IP 位址,而這個位址屬於站台名稱下所配置的某一伺服器。網站選取器會將選定伺服器的 IP 位址傳回給名稱伺服器。名稱伺服器傳回 IP 位址給用戶端。
度量伺服器是 Load Balancer 的系統監視元件,必須安裝至您配置中每個已平衡負載的伺服器上。透過度量伺服器,網站選取器即可監視伺服器的活動層次,偵測伺服器何時負載最小,以及偵測失敗的伺服器。資料流量可測量伺服器的工作負荷。藉由自訂系統度量 Script 檔,您即可控制用於量測負載的測量類型。您可以配置網站選取器來配合您的環境, 您應考慮的因素如下:存取率、使用者總數及存取類型(例如,短查詢、長時間執行的查詢,或密集載入 CPU)。
圖 5. 使用網站選取器及度量伺服器來管理本端與遠端伺服器的站台範例
『圖 5.』所示為使用網站選取器元件來回答要求的站台。伺服器 1、伺服器 2 及伺服器 3 為本端站台。伺服器 4、伺服器 5 及伺服器 6 則為遠端站台。
如果某一用戶端向用戶端名稱伺服器送出網域名稱解析要求。用戶端名稱伺服器會透過 DNS 將要求轉送給網站選取器機器(路徑 1)。網站選取器接著會將網域名稱解析成其中一個伺服器的 IP 位址。之後,網站選取器會將選定伺服器的 IP 位址傳回給用戶端名稱伺服器。名稱伺服器再將 IP 位址傳回給用戶端。
在用戶端收到伺服器的 IP 位址後,用戶端即會把應用程式要求直接遞送到所選定的伺服器(路徑 2)。
Cisco CSS 控制器搭配 Cisco 的 CSS 11000 系列交換器,即可構成完整的解決方案。這種合併解決方案將 CSS 11000 系列強大的封包轉送及內容遞送功能, 與 Load Balancer 用以決定服務 (後端伺服器應用程式或資料庫) 可用性與負載資訊的精密自覺演算法相結合。Cisco CSS 控制器功能會利用 Load Balancer 的加權值計算演算法、標準及自訂的警告器,以及度量伺服器,來決定服務的度量、狀況及負載。藉助這些資訊,Cisco CSS 控制器即可產生服務加權值,傳給 Cisco CSS 交換器以進行最佳服務選取、負載最佳化及容錯。
Cisco CSS 控制器會追蹤許多基準,包含:
當 Cisco CSS 交換器(不具 Cisco CSS 控制器)要判定內容提供服務的狀況時,它會使用內容要求的回應時間或其他網路基準。待 Cisco CSS 控制器就位後,這些活動即會從 Cisco CSS 交換器卸載至 Cisco CSS 控制器。Cisco CSS 控制器會影響服務的加權值或提供內容的能力, 並在服務重新獲得或喪失可用性時,視需要啟動或暫停服務。
Cisco CSS 控制器:
圖 6. 使用 Cisco CSS 控制器及度量伺服器來管理本端服務的站台範例
Cisco CSS 控制器搭配使用 Cisco CSS 交換器時,可提供「集兩者之優點」的解決方案,同時兼納全線速的內容交換與精密的應用程式意識、容錯及服務負載最佳化。Cisco CSS 控制器是 Cisco CSS 交換器與 IBM WebSphere Application Server 之間的整體補充解決方案的一部分。
Nortel Alteon 控制器聯合 Nortel Alteon 系列 Web 交換器來提供一種補充解決方案, 它會將交換器的封包轉送速度及功能與 Load Balancer 的精密自覺演算法結合一起,來決定伺服器加權值。
Nortel Alteon 控制器可讓您開發自訂的警告器,以更具智慧、應用程式自覺的方式,針對用於部署服務程式的應用程式,進行可用性與負載的評估。
度量伺服器則可提供系統負載資訊(例如 CPU 及記憶體使用率資訊)和組織架構,供您開發自訂的系統負載測量方式。
Nortel Alteon 控制器會收集許多類型的度量資料,來決定 Nortel Alteon Web 交換器所平衡負載的伺服器的加權值,包括:
Nortel Alteon 控制器使用 SNMP 與交換器通訊。配置、狀態及連結資訊是從交換器擷取而來的。一旦控制器算出伺服器加權值,就會在交換器上設定它們。交換器使用控制器所設定的加權值, 選取最佳的伺服器來處理服務的用戶端要求。
圖 7. 使用 Nortel Alteon 控制器來管理本端伺服器的站台範例
您可以用瀏覽器、遠端 GUI 或遠端指令行介面,來管理這個控制器。
結合 Nortel Alteon 系列 Web 交換器的 Nortel Alteon 控制器,可提供「集兩者之優點」的解決方案, 同時兼納全線速的封包交換與精密的應用程式意識、容錯及伺服器負載最佳化。Nortel Alteon 控制器是 Nortel Alteon 系列的 Web 交換器與 IBM WebSphere 之間的補充解決方案的一部分。
本章將列出 Load Balancer 元件的配置特性,使您可以決定要使用哪些特性來管理網路:
如果需要每一個 Load Balancer 元件提供的配置特性的高階清單,協助您規劃要使用哪些特性來管理您的網路,請參閱管理您的網路:決定要使用哪些 Load Balancer 特性。
如果要使各個伺服器的平衡負載作業最佳化並確保選用「正確」的伺服器,請參閱:
配送器可支援伺服器之間 HTTP、FTP、SSL、SMTP、NNTP、IMAP、POP3、Telnet 及任何其他 TCP 或無狀態 UDP 型應用程式的平衡負載。
_ 如果要從不同於 Load Balancer 所在的機器來執行 Load Balancer 配置,請參閱Load Balancer 的遠端管理。
_ 如果要在要平衡負載之 Web 伺服器所處的同一機器上執行配送器,請參閱使用並列伺服器。
平衡負載 SSL (HTTPS) 資料傳輸時:
_ 如果要確定用戶端使用相同的 SSL 伺服器進行多重連線,請參閱Load Balancer 的親緣性特性如何運作。
_ 如果要確定用戶端使用相同的伺服器進行 HTTP 和 SSL 資料傳輸,請參閱跨埠親緣性。
_ 如果要確定用戶端使用相同的伺服器進行多重連線,請參閱Load Balancer 的親緣性特性如何運作。
_ 如果要確定一群用戶端使用相同的伺服器進行多重連線,請參閱親緣性位址遮罩 (stickymask)。
_ 如果要從您的配置中移除某一伺服器(例如,為了進行維護)而不干擾用戶端資料傳輸,請參閱靜止伺服器連線處理。
要將用戶端引導至不同的伺服器組以取得相同 web 位址,您可以在配送器配置中新增「規則」。 如果需要詳細資訊,請參閱配置規則型平衡負載。
_ 如果要根據用戶端來源 IP 位址來引導用戶端到不同的伺服器組,請參閱根據用戶端 IP 位址來使用規則。
_ 如果要根據用戶端埠來引導用戶端到不同的伺服器組,請參閱根據用戶端埠來使用規則。
_ 如果要根據一天的時間來引導用戶端到不同的伺服器組,請參閱根據一天的時間來使用規則。
_ 如果要根據網路封包中的「服務類型」(TOS) 位元來引導用戶端到伺服器,請參閱依據服務類型 (TOS) 使用規則。
_ 如果要根據站台資料傳輸來引導用戶端到不同的伺服器組:
_ 使用每秒連線數時,請參閱使用基於每秒連線數的規則。
_ 使用作用中連線總數時,請參閱使用基於作用中連線總數的規則。
_ 保留及共用不同 Web 位址的頻寬時,請參閱使用基於保留頻寬及共用頻寬的規則。
_ 確定已正確測量伺服器組的資料傳輸,請參閱規則的伺服器評估選項。
_ 如果要將超出的資料傳輸引導至預設的伺服器組(例如,會回應「站台忙線」的伺服器),請參閱使用永遠為真的規則。
_ 如果要置換用戶端親緣性以確定用戶端不會「滯留」於超溢伺服器,請參閱埠親緣性置換。
如果要確定 SSL 用戶端會返回相同的 SSL 伺服器(根據用戶端要求中的 SSL ID)
_ 請參閱第 *** 頁。
如果要根據比對用戶端要求之 URL 內容的規則,將 HTTP 用戶端引導至不同的伺服器組,請參閱配送器之內容型遞送(cbr 轉送方法)和根據要求內容來使用規則以取得進一步資訊。
_ 如果要分辨特定的 URL 及其服務應用程式,請參閱伺服器分割:配置成實體伺服器(IP 位址)的邏輯伺服器。
_ 如果要確定用戶端在多重連線中,使用 Web 伺服器所建立的 Cookie 來要求類似的內容時,會傳回相同的伺服器,請參閱被動 Cookie 親緣性。
_ 如果要將 Web 資料傳輸平衡負載到 caching-proxy 伺服器,使唯一的內容可快取到各個伺服器(藉由消除多重機器上冗餘的內容快取,進而增加站台的大小),請參閱URI 親緣性。
使用配送器的 cbr 轉送方法時,其優點在於它對用戶端要求的回應速度,將比 CBR 元件來得快。 另外,配送器的 cbr 轉送不需要安裝及使用 Caching Proxy。
如果您的網路含有完整的安全 SSL(用戶端到伺服器)資料傳輸時,使用 CBR 元件(搭配 Caching Proxy)的優點是它可以處理所需的加密/解密,以便進行內容型遞送。 對完整的安全連線而言,配送器的 cbr 轉送僅能配置有 SSL ID 親緣性,因為它無法處理加密/解密,藉以在用戶端要求的 URL 上,執行真正的內容型遞送。
_ 如果要用配送器的廣域特性來平衡負載遠端伺服器,請參閱配置廣域配送器支援及GRE(同屬遞送封裝)支援。
_ 如果要用配送器的 nat 轉送方法來平衡負載遠端伺服器,請參閱配送器的 NAT/NAPT(nat 轉送方法)。
_ 如果要將某一 Web 位址平衡負載給同一機器上的多個伺服器常駐程式,而每一常駐程式負責接收唯一的埠,請參閱配送器的 NAT/NAPT(nat 轉送方法)。
_ 如果要將配送器資料傳輸放到不同於用戶端資料傳輸的網路上(藉由減少外部網路的競爭來增進效能),請參閱使用專用網路配置。
_ 如果要將多重 Web 位址合併成單一配置,請參閱使用萬用字元叢集來結合伺服器配置。
_ 如果要平衡負載防火牆,請參閱使用萬用字元叢集來平衡防火牆的資料流量。
_ 如果要引導所有目的地埠的資料傳輸,請參閱使用萬用字元埠來引導未配置埠的資料傳輸。
_ 如果要偵測可能的「拒絕服務」攻擊,請參閱拒絕服務攻擊偵測。
_ 如果要分析伺服器資料傳輸量,請參閱使用二進位記載功能來分析伺服器統計值。
_ 如果要在伺服器被標註為開機中或當機時產生警示,請參閱使用 Script 產生警示或記錄伺服器失敗。
CBR 可整合平衡負載與 WebSphere Application Server 的 Caching Proxy,以便將用戶端要求 Proxy 到指定的 HTTP 或 HTTPS (SSL) 伺服器。 如果要使用 CBR,必須在同一伺服器上安裝及配置 Caching Proxy。 有關如何配置 Caching Proxy 以使用 CBR 的詳細資訊,請參閱步驟 1. 配置 Caching Proxy 以使用 CBR。
透過 CBR 元件(或配送器元件的 cbr 轉送方法),您便可為您的用戶端提供下列好處:
_ 將不同內容類型的要求平衡負載到伺服器組。(請參閱平衡負載不同類型內容的要求。)
_ 以最佳方式從 Web 伺服器中區分站台的內容,來增進回應時間。(請參閱分割您站台的內容以加快回應時間。)
_ 藉由將多重伺服器分派給每種類型的內容,來確保伺服器故障時,用戶端的資料傳輸不致中斷。(請參閱提供備份的 Web 伺服器內容。)
如果您的網路需要完整的安全 SSL 資料傳輸(用戶端到伺服器)時,使用 CBR 元件(搭配 Caching Proxy)的優點是,它可以處理 SSL 加密/解密,以便進行內容型遞送。
對完整的安全 SSL 連線而言,配送器的 cbr 轉送僅能配置有 SSL ID 親緣性,因為它無法處理加密/解密,藉以在用戶端要求的 URL 上,執行真正的內容型遞送。
對 HTTP 資料傳輸而言,使用配送器的 cbr 轉送方法時,其優點在於它對用戶端要求的回應速度,將比 CBR 元件來得快。 另外,配送器的 cbr 轉送不需要安裝及使用 Caching Proxy。
_ 如果要從不同於 Load Balancer 所在的機器來執行 Load Balancer 配置,請參閱Load Balancer 的遠端管理。
_ CBR 可在正進行平衡負載之伺服器的相同機器上執行。 請參閱使用並列伺服器,以取得進一步資訊。
_ 如果要藉多重 Caching Proxy 程序來增進 CPU 使用率,請參閱使用多重 Caching Proxy 程序來增進 CPU 使用率。
如果要允許進行內容型遞送 SSL 資料傳輸:
_ 兩端皆使用安全連線(用戶端對 Proxy 以及 Proxy 對用戶端),請參閱平衡負載完全安全 (SSL) 連線。
_ 僅在用戶端對 Proxy 端使用安全連線,請參閱平衡負載 SSL 中的 client-to-proxy 和 HTTP 中的 proxy-to-serve。
_ 如果要分辨特定的 URL 及其服務應用程式,請參閱伺服器分割:配置成實體伺服器(IP 位址)的邏輯伺服器。
要將用戶端引導至不同的伺服器組以取得相同 web 位址,您可以在 CBR 配置中新增「規則」。 如果需要詳細資訊,請參閱配置規則型平衡負載。
_ 如果要根據所要求 URL 的內容來引導用戶端到不同的伺服器組,請參閱根據要求內容來使用規則。
_ 如果要根據用戶端來源 IP 位址來引導用戶端到不同的伺服器組,請參閱根據用戶端 IP 位址來使用規則。
_ 如果要根據一天的時間來引導用戶端到不同的伺服器組,請參閱根據一天的時間來使用規則。
_ 如果要根據站台資料傳輸來引導用戶端到不同的伺服器組:
使用每秒連線數時,請參閱使用基於每秒連線數的規則。
使用作用中連線總數時,請參閱使用基於作用中連線總數的規則。
_ 如果要將超出的資料傳輸引導至預設的伺服器組(例如,會回應「站台忙線」的伺服器),請參閱使用永遠為真的規則。
_ 如果要置換用戶端親緣性以確定用戶端不會「滯留」於超溢伺服器,請參閱埠親緣性置換。
_ 如果要確定用戶端會返回相同的伺服器來進行多重連線,請參閱Load Balancer 的親緣性特性如何運作。
_ 如果要從您的配置中移除某一伺服器(例如,為了進行維護)而不干擾用戶端資料傳輸,請參閱靜止伺服器連線處理。
_ 如果要確定用戶端在多重連線中,不依賴 Web 伺服器所建立的 Cookie 來要求類似的內容時,會回到相同的伺服器,請參閱主動 Cookie 親緣性。
_ 如果要確定用戶端在多重連線中,使用 Web 伺服器所建立的 Cookie 來要求類似的內容時,會回到相同的伺服器,請參閱被動 Cookie 親緣性。
_ 如果要將 Web 資料傳輸平衡負載到 caching-proxy 伺服器,使唯一的內容可快取到各個伺服器(藉由消除多重機器上冗餘的內容快取,進而增加站台的大小),請參閱URI 親緣性。
_ 如果要用配送器以具有 CBR 的兩層配置,在您的網路中移除單一故障點限制,請參閱何謂高可用性?。
_ 如果要分析伺服器資料傳輸量,請參閱使用二進位記載功能來分析伺服器統計值。
_ 如果要在伺服器被標註為開機中或當機時產生警示,請參閱使用 Script 產生警示或記錄伺服器失敗。
網站選取器會針對一組伺服器來平衡負載名稱服務要求。
_ 如果要從不同於 Load Balancer 所在的機器來執行 Load Balancer 配置,請參閱Load Balancer 的遠端管理。
_ 網站選取器可在正進行平衡負載之伺服器的相同機器上執行,而不須執行額外的配置步驟。
_ 假設母項名稱伺服器及正常 DNS 復原方法的正確配置皆已齊備,即可透過「網域名稱系統」(DNS) 方法以多重備援網站選取器來提供高可用性。 正常 DNS 復原方法的範例有:重新傳輸查詢及重試區域轉送。
_ 如果要用配送器以具有網站選取器的兩層配置,在您的網路中移除單一故障點限制,請參閱何謂高可用性?。
_ 如果要確定用戶端使用相同的伺服器進行多重名稱伺服器要求,請參閱Load Balancer 的親緣性特性如何運作。
_ 如果要確定使用標準 DNS 方法來設定「存活時間」(TTL) 的主從親緣性,請參閱TTL 注意事項。
要將用戶端要求引導至不同的伺服器組以進行網域名稱解析,您可以在網站選取器配置中新增「規則」。如果需要詳細資訊,請參閱配置規則型平衡負載。
_ 如果要根據用戶端來源 IP 位址來引導用戶端到不同的伺服器組,請參閱根據用戶端 IP 位址來使用規則。
_ 如果要根據一天的時間來引導用戶端到不同的伺服器組,請參閱根據一天的時間來使用規則。
_ 如果要根據伺服器組的度量負載值來引導用戶端到不同的伺服器組,請參閱:
_ 如果要將超出的資料傳輸引導至預設的伺服器組(例如,會回應「站台忙線」的伺服器),請參閱使用永遠為真的規則。
網站選取器同時可在區域網路 (LAN) 或廣域網路 (WAN) 中執行。
在 WAN 環境下:
_ 如果要使用加權環繞式選取方法,來平衡負載用戶端名稱伺服器要求,其間不需要額外的配置步驟。
_ 如果要考慮用戶端名稱伺服器與提供所要求的應用程式之伺服器(目的地伺服器)的網路接近性,請參閱使用「網路接近」特性。
_ 如果要在伺服器被標註為開機中或當機時產生警示,請參閱使用 Script 產生警示或記錄伺服器失敗。
Cisco CSS 控制器會使用較大的應用程式及系統意識,來增強 Cisco 交換器的伺服器平衡負載功能。 控制器使用更多的應用程式靈敏度式及系統靈敏度式度量,來動態計算伺服器加權值。 加權值是使用 SNMP 來提供給交換器。 交換器處理用戶端要求時,使用加權值會導致伺服器負載最佳化並改善容錯。
如果要使各個伺服器的平衡負載作業最佳化並確保選用「正確」的伺服器,請參閱:
_ 如果要從不同於 Load Balancer 所在的機器來執行 Load Balancer 配置,請參閱Load Balancer 的遠端管理。
_ Cisco CSS 控制器可在正進行平衡負載之伺服器的相同機器上執行,而不須執行額外的配置步驟。
_ 如果要移除您網路中的單一故障點限制,Cisco CSS 交換器及 Cisco CSS 控制器皆須具備高可用性功能。 對於交換器而言,透過使用 CSS 備援通訊協定,可提供高可用性功能。對 Cisco CSS 控制器而言,則使用了專屬通訊協定,來達成兩個控制器的快速待命配置。
有關配置高可用性的進一步資訊,請參閱高可用性。
_ 如果要分析伺服器資料傳輸量,請參閱使用二進位記載功能來分析伺服器統計值。
_ 如果要在伺服器被標註為開機中或當機時產生警示,請參閱使用 Script 產生警示或記錄伺服器失敗。
Nortel Alteon 控制器會使用較大的應用程式及系統意識,來增強 Nortel Alteon 交換器的伺服器平衡負載功能。 控制器使用更多的應用程式靈敏度式及系統靈敏度式度量,來動態計算伺服器加權值。 加權值是使用 SNMP 來提供給交換器。 交換器處理用戶端要求時,使用加權值會導致伺服器負載最佳化並改善容錯。
如果要使各個伺服器的平衡負載作業最佳化並確保選用「正確」的伺服器,請參閱:
_ 如果要從不同於 Load Balancer 所在的機器來執行 Load Balancer 配置,請參閱Load Balancer 的遠端管理。
_ Nortel Alteon 控制器可在正進行平衡負載之伺服器的相同機器上執行,而不須執行額外的配置步驟。
_ 如果要移除您網路中的單一故障點限制,Nortel Alteon Web 交換器及 Nortel Alteon 控制器皆須具備高可用性功能。 對交換器而言,透過使用備援通訊協定來連接伺服器並提供服務,可提供高可用性功能。Nortel Alteon 控制器使用容許兩個控制器的快速待命配置的專屬通訊協定來提供高可用性。
有關配置高可用性的進一步資訊,請參閱高可用性。
_ 如果要分析伺服器資料傳輸量,請參閱使用二進位記載功能來分析伺服器統計值。
_ 如果要在伺服器被標註為開機中或當機時產生警示,請參閱使用 Script 產生警示或記錄伺服器失敗。
本章將說明在 AIX、HP-UX、Linux、Solaris 和 Windows 2000 上,Load Balancer 的軟硬體基本需求以及安裝作業(使用系統套裝工具)。
重要事項:如果需要軟硬體需求的最新資訊, 請鏈結下列網頁:http://www.ibm.com/software/webservers/appserv/doc/latest/prereq.html。
有關使用 Product Setup Program 的安裝指示,請參閱 Edge Components 的概念、規劃與安裝文件。
註:
由於某些位在 Load Balancer 機器上的應用程式可能會需要其他版本的 Java,所以當您升級時,機器上必須安裝正確版本的 Java。如果安裝了多個版本,為確定 Load Balancer 元件使用的是版本正確的 Java,請執行下列動作:
針對您所升級之 Load Balancer 各個元件,編輯其 Script 檔。 各元件的 Script 檔包括:
例如:在 Windows 作業系統中,如果 Java 1.4 係安裝在 C:\Program Files\IBM\Java14\jre\bin 中,請在 Script 檔中變更以下內容:
『表 1.』所列為 Load Balancer 的 installp 影像。
管理(含訊息) | ibmlb.admin.rte ibmlb.msg.language.admin |
基本程式 | ibmlb.base.rte |
裝置驅動程式 | ibmlb.lb.driver |
授權 | ibmlb.lb.license |
Load Balancer 元件(含訊息) | ibmlb.component.rte ibmlb.msg.language.lb |
說明文件(含訊息) | ibmlb.doc.rte ibmlb.msg.language.doc |
度量伺服器 | ibmlb.ms.rte |
其中的 component 可以是:disp(配送器)、cbr (CBR)、ss(網站選取器)、cco(Cisco CSS 控制器)或是 nal(Nortel Alteon 控制器)。選擇性地選取要安裝的元件。
其中的 language 可以是:
如果您已安裝較舊的版本,您應該先解除安裝 該版本,再安裝現行版本。首先,確定所有的執行器與伺服器皆已停止。 然後,如果要解除安裝整個產品,請輸入 installp -u ibmlb (或之前的名稱,例如,"ibmnd")。如果要解除安裝特定的檔案集,請明確列示那些檔案而非指定套裝軟體名稱。
當您安裝產品時,您可以選擇安裝下列任一項或全部:
請遵循下列步驟來安裝 Load Balancer for AIX:
使用 SMIT:
當指令完成時,請按完成,然後從「跳出」功能表中選取跳出 Smit 或按 F12。 如果使用 SMITTY, 請按 F10,以跳出程式。
使用指令行:
如果從 CD 中進行安裝,您必須輸入下列指令來裝載 CD:
mkdir /cdrom mount -v cdrfs -p -r /dev/cd0 /cdrom
請參閱下表來決定要輸入哪些指令,以安裝所需的 AIX 版 Load Balancer 套件:
管理(含訊息) | installp -acXgd device ibmlb.admin.rte ibmlb.msg.language.admin |
基本程式 | installp -acXgd device ibmlb.base.rte |
裝置驅動程式 | installp -acXgd device ibmlb.lb.driver |
授權 | installp -acXgd device ibmlb.lb.license |
Load Balancer 元件(含訊息)。 包括:配送器、CBR、網站選取器、Cisco CSS 控制器及 Nortel Alteon 控制器 | installp -acXgd device ibmlb.component.rte ibmlb.msg.language.lb |
文件(含訊息) | installp -acXgd device ibmlb.doc.rte ibmlb.msg.language.lb |
度量伺服器 | installp -acXgd device ibmlb.ms.rte |
其中 device 是:
確定摘要中的結果直欄中,您所安裝的(套用)之 Load Balancer 的每一組件都包含 SUCCESS。除非已順利地引用您想要安裝的所有部分, 否則請勿繼續。
installp -ld device
其中 device 是:
如果要卸載 CD 時,請輸入:
unmount /cdrom
lslpp -h | grep ibmlb
如果您安裝了完整的產品,這個指令會傳回下列內容:
ibmlb.admin.rte ibmlb.base.rte ibmlb.doc.rte ibmlb.ms.rte ibmlb.msg.language.admin.rte ibmlb.msg.language.doc ibmlb.msg.language.lb.rte ibmlb.lb.driver ibmlb.lb.license ibmlb.<component>.rte
Load Balancer 的安裝路徑包括:
如果要使用「遠端方法呼叫」(RMI) 來遠端管理 Load Balancer, 您需要在用戶端上安裝管理、基本程式、元件以及授權套件。如果需要 RMI 的相關資訊,請參閱遠端方法呼叫 (RMI)。
您需要最新版的修正套件,也就是 HP-UX 11i Quality Pack (GOLDQPK11i)。您可在下列 HP Support Plus 網站上取得詳細資訊,以及如何取得最新 Quality Pack 的下載指示:http://www.software.hp.com/SUPPORT_PLUS/qpk.html。
本節說明如何使用產品 CD,在 HP-UX 上安裝 Load Balancer。
在開始安裝程序之前,請確定您具有可安裝軟體的 Root 權限。
如果您已安裝較舊的版本,您應該先解除安裝舊的版本,再安裝現行版本。 首先,請確定您已停止執行器及伺服器。 接著,如果要解除安裝 Load Balancer,請參閱解除安裝套件的指示。
『表 3.』列出了 Load Balancer 的安裝套件名稱,
以及利用系統的套件安裝工具來安裝這些套件所需的次序。
表 3. Load Balancer 的 HP-UX 套件安裝詳細資料
套件說明 | HP-UX 套件名稱 |
基本程式 | ibmlb.base |
管理 | ibmlb.admin |
Load Balancer 授權 | ibmlb.lic |
Load Balancer 元件 | ibmlb.component |
說明文件 | ibmlb.lang |
度量伺服器 | ibmlb.ms |
註:
|
以下程序詳述了完成這項作業必要的步驟。
su - root 密碼:password
發出安裝指令
swinstall -s /source package_name
其中 source 是套件位置的目錄,package_name 則是套件的名稱。
比方說,如果您是從 CD 的根目錄進行安裝,則下列指令會安裝 Load Balancer 的基本套件 (ibmlb.base)
swinstall -s /lb ibmlb.base
發出 swlist 指令來列出您已安裝的所有套件。例如:
swlist -l fileset ibmlb
您可以使用 swremove 指令來解除安裝套件。 移除這些套件的次序應該和安裝的次序相反。比方說,發出下列指令:
swremove ibmlb
如果要解除安裝個別套件(例如:Cisco CSS 控制器)
swremove ibmlb.cco
下表列出 Linux 支援的系統。如果需要軟硬體需求的更新內容和其他資訊,
請參閱以下網頁:http://www.ibm.com/software/webservers/appserv/doc/latest/prereq.html。
作業系統 | Linux for Intel(32 位元模式) | Linux for S/390(31 位元模式) | Linux for PowerPC(64 位元模式) |
---|---|---|---|
Red Hat Enterprise Linux Advanced Server 2.1(2.4 核心程式) | x |
|
|
SuSE Linux Enterprise Server 8.0(2.4 核心程式) |
| x | x |
SuSE Linux Enterprise Server 8.0 SP2a(2.4 核心程式) | x |
|
|
UnitedLinux 1.0 | x | x | x |
UnitedLinux 1.0 SP2a | x |
|
|
本節說明如何使用產品 CD,在 Linux 上安裝 Load Balancer。
在開始安裝程序之前,請確定您具有可安裝軟體的 Root 權限。
如果您已安裝較舊的版本,您應該先解除安裝 該版本,再安裝現行版本。首先,確定所有的執行器與伺服器皆已停止。 然後,如果要解除安裝整個產品,請輸入 rpm -e pkgname。 當解除安裝時,請反轉安裝套裝軟體時所用的次序, 以確定管理套裝軟體是最後一個要解除安裝的套裝軟體。
要安裝 Load Balancer 時,請進行下列動作:
安裝影像檔的格式為 eLBLX-version:tar.z。
下列是 RPM 可安裝套裝軟體的列示。
其中 --
應該從 RPM 檔常駐的同一目錄中發出安裝套裝軟體的指令。請發出下列指令, 安裝每一個套裝軟體:rpm -i package.rpm。
rpm -i --nodeps package.rpm
rpm -qa | grep ibmlb
如果安裝整個產品,應會產生一個報表,如下所示:
如果要使用「遠端方法呼叫」(RMI) 來遠端管理 Load Balancer, 您需要在用戶端上安裝管理、基本程式、元件以及授權套件。如果需要 RMI 的相關資訊,請參閱遠端方法呼叫 (RMI)。
對於 Solaris 8,如果您使用 Edge Components 安裝精靈,則鏈結器的層次必須是 109147-16 以上,且 C++ 共用程式庫的層次必須是 108434-8 以上。
為了取得最一致的操作方式,請自位於 http://sunsolve.sun.com 的 Sun Microsystems 下載並套用最新 Solaris 修補程式。
本段將說明如何使用產品光碟片在 Solaris 上安裝 Load Balancer。
在開始安裝程序之前,請確定您具有可安裝軟體的 Root 權限。
如果您已安裝較舊的版本,則在安裝現行版本之前,必須先解除舊版的安裝。首先,請確定您已停止所有的執行器與伺服器。接著,如果要解除安裝 Load Balancer,請輸入 pkgrm pkgname。
要安裝 Load Balancer 時,請進行下列動作:
在指令提示中,輸入 pkgadd -d pathname, 其中 pathname 是光碟機的裝置名稱,或是套裝軟體所在之硬碟機上的目錄;例如,pkgadd -d /cdrom/cdrom0/。
將列出套裝軟體,以供您安裝。包括:
其中的變數 lang 會換成下列其中一個語言特定代碼: deDE、esES、frFR、itIT、jaJP、koKR、ptBR、zhCN、zhTW。如果是英文,變數 lang 則會換成 doc。
如果您要安裝所有的套裝軟體,請直接輸入 『all』,並按 Return 鍵。 如果只想安裝部分元件,請輸入對應於所要安裝之套裝軟體的名稱(以空格或逗點隔開),然後按 Return 鍵。 程式可能會提示您變更現存目錄或檔案上的許可權。 直接按 Return 鍵,或回答 『Yes』。您必須安裝必備套裝軟體(因為它是按字母順序來安裝,而不是以必備條件順序來安裝)。 如果輸入 『all』,就只要在每個提示下回答 『yes』,如此便可順利完成安裝。
所有的套件都和共同套件 ibmlbadm 相關。這個共同套件必須和任何其他套件一起安裝。
比方說,如果您只要安裝配送器元件(含說明文件)以及度量伺服器,您必須安裝:ibmlbadm、ibmlbbase、ibmlblic、ibmdisp、ibmlbms 和 ibmlbdoc。
如果要使用「遠端方法呼叫」(RMI) 來遠端管理 Load Balancer, 您需要在用戶端上安裝管理、基本程式、元件以及授權套件。如果需要 RMI 的相關資訊,請參閱遠端方法呼叫 (RMI)。
Load Balancer 元件位於 /opt/ibm/edge/lb/servers 安裝目錄中。
您必須下載 Developer Kit 安裝套裝軟體或 Runtime Environment 安裝套裝軟體,之後才能執行 InstallShield 程式。 (如果需要執行多個版本之 Java 的相關資訊,請參閱附註『3.』。)
本節說明如何使用產品 CD 將 Load Balancer 安裝在 Windows 2000 或 Windows Server 2003 上。
您可以選擇所要安裝的套裝軟體。
包括:
如果要使用「遠端方法呼叫」(RMI) 來遠端管理 Load Balancer, 您需要在用戶端上安裝管理、基本程式、元件以及授權套件。如果需要 RMI 的相關資訊,請參閱遠端方法呼叫 (RMI)。
限制:Windows 版的 Load Balancer 無法和 IBM Firewall 安裝在同一部機器上。
在開始安裝之前,請確定您已用「管理者」身分或以具有管理專用權的使用者身分登入。
如果您已安裝較舊的版本,您應該先解除安裝 該版本,再安裝現行版本。如果要使用新增/移除程式來進行解除安裝,請執行下列步驟:
要安裝 Load Balancer 時,請進行下列動作:
E:\setup
Load Balancer 的安裝路徑包括:
本篇提供快速入門配置的相關資訊、規劃注意事項,以及說明配置 Load Balancer 配送器元件的方法。 它含有下列各章:
此快速入門範例將示範如何以配送器元件的 mac 轉送方法,來配置三個本端附加的工作站,以便平衡負載兩個 Web 伺服器之間的 Web 資料傳輸。 對平衡任何其他的 TCP 或沒有狀態的 UDP 應用程式資料傳輸而言,配置基本上相同。
mac 轉送方法是預設的轉送方法,其中配送器會將送入的要求平衡負載至伺服器,伺服器再將回應直接傳回給用戶端。有關配送器之 MAC 轉送方法的進一步資訊,請參閱配送器的 MAC 層次遞送(mac 轉送方法)。
如果要進行快速入門範例,則需要三個工作站及四個 IP 位址。其中一個工作站要用來當作配送器;另外兩個則用來當作 Web 伺服器。 每一個 Web 伺服器都需要一個 IP 位址。 配送器工作站需要兩個位址:非轉送的位址 (NFA),以及您提供給用戶端以存取網站的叢集位址(將會平衡負載的位址)。
工作站 | 名稱 | IP 位址 |
---|---|---|
1 | server1.intersplash.com | 9.47.47.101 |
2 | server2.intersplash.com | 9.47.47.102 |
3 | server3.intersplash.com | 9.47.47.103 |
網路遮罩 = 255.255.255.0 |
每一個工作站都只包含一個標準的乙太網路介面卡。
Name= www.Intersplash.com IP=9.47.47.104
新增 www.intersplash.com 的別名到 server2.intersplash.com 和 server3.intersplash.com 上的迴圈介面。
ifconfig lo0 alias www.Intersplash.com netmask 255.255.255.0
ifconfig lo0:1 plumb www.Intersplash.com netmask 255.255.255.0 up
您現在已完成兩部 Web 伺服器工作站上所有必要的配置步驟。
藉由配送器,您可以利用指令行、配置精靈或圖形式使用者介面 (GUI) 來建立配置。
如果您打算使用指令行,請遵循下列步驟:
dscontrol executor start
dscontrol cluster add www.Intersplash.com
dscontrol port add www.Intersplash.com:80
dscontrol server add www.Intersplash.com:80:server2.intersplash.com
dscontrol server add www.Intersplash.com:80:server3.intersplash.com
dscontrol executor configure www.Intersplash.com
dscontrol manager start
配送器現在將根據伺服器的效能來執行平衡負載。
dscontrol advisor start http 80
配送器現在會確定用戶端要求並沒有傳送到失敗的 Web 伺服器。
您現在已經完成使用本端連接伺服器的基本配置。
測試配置是否可運作。
如果需要使用配送器 GUI 的相關資訊,請參閱GUI及附錄 A, GUI:一般指示。
如果需要使用配置精靈的相關資訊,請參閱使用配置精靈來配置。
可配置 Load Balancer 來支援您站台的方法有許多種。如果您對所有您的客戶將連接的站台, 僅具有一個主機名稱,則您可以定義伺服器的單一叢集。對於其中每一個伺服器,請配置 Load Balancer 藉以通訊的埠。請參閱『圖 9.』。
本例中的配送器元件,有一個叢集是在 www.productworks.com 所定義。 這個叢集有兩個埠:HTTP 的埠 80 和 SSL 的埠 443。當用戶端對 http://www.productworks.com(埠 80)發出要求時所連接的伺服器,與用戶端對 https://www.productworks.com(埠 443)發出要求時所連接的伺服器不同。
如果您有一個非常大的站台,它具有許多專門用於每一個支援的通訊協定的伺服器,則其他配置 Load Balancer 的方法可能較合適。在這個情況下, 您可能想要對每一個具有單一埠,但有多個伺服器的通訊協定來定義叢集, 如『圖 10.』中所示一般。
對於本例中的配送器元件,我們定義了兩個叢集:埠 80 (HTTP) 的 www.productworks.com 以及埠 443 (SSL) 的 www.testworks.com。
如果您的站台主控數個公司或部門的內容,且它們都以不同 URL 進入您的站台,則可能需要使用第三種方法來配置 Load Balancer。 這時,您最好先為每一公司或部門定義一叢集,然後定義任何您想要在該 URL 中接收連線的埠,如『圖 11.』中所示。
圖 11. 配置有兩個叢集且每個叢集都有 2 個埠的配送器範例
對本例中的配送器元件而言,我們定義了兩個叢集,且各叢集在 www.productworks.com 和 www.testworks.com 等站台分別具有埠 80 (HTTP) 以及埠 23 (Telnet)。
本章將說明在安裝與配置配送器元件之前,網路規劃者應該考慮的事項。
本章包括下列各節:
平台基本需求:
管理程式的使用是選用性的。不過,如果未使用管理程式,將依據目前的伺服器加權值, 使用已加權的循環排程方式來執行平衡負載,而且無法使用警告器。
配送器也提供了不會交換通訊協定特定資訊的警告器,如負責報告 DB2(R) 伺服器狀況的 DB2 警告器,以及負責報告伺服器是否回應連通測試的連通測試警告器。如果需要警告器的完整清單,請參閱警告器列示。
您也可選擇撰寫自己的警告器(請參閱建立自訂(可自訂的)警告器)。
警告器的使用是選用性的,不過建議您使用。
配送器的三個主要功能 (執行器、管理程式及警告器) 會互動, 以平衡及配送伺服器之間的進入要求。除了平衡負載相關要求外,執行器還會監視新連線、作用中連線及已完成連線的數目。 執行器還會執行已完成或重設連線的記憶體回收,並提供此類資訊給管理程式。
管理程式會收集來自執行器、警告器及系統監視程式(諸如度量伺服器)的資訊。 依據管理程式所收到的資訊,它將調整伺服器機器在每一個埠上的加權值, 並提供執行器在平衡新連線時所使用的新加權值。
警告器會監視指定埠上的每一部伺服器,來判斷伺服器的回應時間及可用性,再將這個資訊提供給管理程式。警告器也會監視伺服器在開機中或已關機。 在沒有管理程式及警告器的情況下,執行器將依據目前的伺服器加權值,執行循環排程。
透過配送器,您可以從埠層次所指定的下列三種轉送方法中擇一使用:MAC 轉送、NAT/NAPT 轉送或 CBR(內容型遞送)轉送。
使用配送器的 MAC 轉送方法(預設轉送方法)時,配送器會將外來要求平衡載入到選取的伺服器,而此伺服器會將回應直接傳回給用戶端,其間不再涉及配送器。 在這種轉送方法下,配送器只會查看入埠的用戶端到伺服器流程。 毋需查看伺服器至用戶端的離埠資料流量。如此可大幅減少對應用程式的影響,進而改善網路的效能。
使用 dscontrol port add cluster:port method value 指令來新增埠時,即可選取此種轉送方法。 預設的轉送方法值是 mac。您只能在新增埠時,才可指定 method 參數。新增埠之後,您就不能再變更轉送方法的設定。 相關資訊,請參閱dscontrol port -- 配置埠。
使用配送器的網址轉換 (NAT) 或網址埠轉換 (NAPT) 功能,來移除要放在本端附加網路中經平衡負載之伺服器的限制。 當您想將伺服器設放在遠端位置時,可使用 NAT 轉送方法技術而非使用 GRE/WAN 封裝技術。 您還可使用 NAPT 特性,來存取常駐於各個經平衡負載之伺服器機器上的多個伺服器常駐程式,而各個常駐程式分別負責接收一個唯一的埠。
您可以用兩種不同的方法來配置具有多重常駐程式的伺服器:
這個應用程式可與較高層次的應用程式通訊協定配合使用,如 HTTP、SSL、IMAP、POP3、NNTP、SMTP、Telnet 等。
限制:
配送器機器需要用到三個 IP 位址 - nfa、叢集,以及傳回位址。如果要實作 NAT/NAPT,請執行下列動作(另請參閱配置配送器之 nat 或 cbr 轉送方法的範例步驟):
dscontrol server add cluster:port:server mapport value returnaddress rtrnaddress router rtraddress
將用戶端要求的目的地埠號(用於配送器)對映至配送器用來對用戶端要求進行平衡負載的伺服器埠號。mapport 可讓 Load Balancer 在某埠上接收用戶端要求, 並將之傳輸到伺服器機器不同的埠。透過 mapport, 您即可將用戶端要求平衡負載至有多個伺服器常駐程式執行的伺服器機器。mapport 的預設值是用戶端要求的目的地埠號。
傳回位址是您在配送器機器上所配置的一個唯一的位址或主機名稱。將用戶端的要求平衡負載至伺服器時,配送器會用傳回位址作為其來源位址。 如此可確保伺服器將封包傳回給配送器機器,而不是將封包直接傳給用戶端。 (配送器會接著將 IP 封包轉送給用戶端。)在新增伺服器時,您必須指定傳回位址值。 除非您移除了伺服器並再次加以新增,否則不可修改傳回位址。 傳回位址不得與叢集、伺服器或 NFA 位址相同。
遠端伺服器的路由器位址。如果這是本端連結的伺服器,請輸入伺服器位址。
配送器元件可讓您針對 HTTP(使用「內容」類型規則)及 HTTPS(使用 SSL 階段作業 ID 親緣性)來執行內容型遞送,而不需使用 Caching Proxy。 對 HTTP 和 HTTPS 資料傳輸而言,配送器元件的 cbr 轉送方法所提供的內容型遞送,比需要 Caching Proxy 的 CBR 元件更快。
如果是 HTTP:配送器之內容型遞送 的伺服器選取是以 URL 或 HTTP 標頭的內容為依據。 它是使用「內容」類型規則來配置。 配置內容規則時,請為此規則指定搜尋字串 "pattern" 以及一組伺服器。 處理新的外來要求時,此規則會將所指定的字串,與用戶端的 URL 或用戶端要求中所指定的 HTTP 標頭加以比較。
如果配送器在用戶端要求中找到這個字串,配送器即會轉送該要求給規則中所列的伺服器之一。 配送器接著會將來自伺服器的回應資料,傳回給用戶端("cbr" 轉送方法)。
如果配送器未在用戶端要求中找到該字串,配送器將不會選取規則所列的伺服器。
如果是 HTTPS (SSL):配送器的內容型遞送是根據用戶端要求的 SSL ID 階段作業欄位來進行平衡負載。 透過 SSL,用戶端要求可包含前一階段作業的 SSL 階段作業 ID,而伺服器則可保有其先前 SSL 連線的快取。 配送器的 SSL ID 階段作業親緣性,可讓用戶端及伺服器透過先前與伺服器之連線的安全參數,來建立新的連線。 由於可消除 SSL 安全性參數的重新協商過程,諸如共用金鑰與加密演算法,伺服器將可節省 CPU 處理週期,而用戶端亦可較快取得回應。 為了能夠啟動 SSL 階段作業 ID 親緣性:指定給埠的 protocol 類型必須是 SSL 且埠 stickytime 設成非零值。超過 stickytime 時,用戶端可能會被送到與之前不同的伺服器。
配送器機器需要用到三個 IP 位址 - nfa、叢集,以及傳回位址。如果要實作 配送器之內容型遞送(另請參閱配置配送器之 nat 或 cbr 轉送方法的範例步驟):
dscontrol server add cluster:port:server mapport value returnaddress rtrnaddress router rtraddress
dscontrol rule 125.22.22.03:80:contentRule1 type content pattern pattern
其中的 pattern 可指定擬用於內容類型規則的型樣。有關內容規則類型的進一步資訊,請參閱根據要求內容來使用規則。 如果需要 pattern 之有效表示式的進一步資訊,請參閱附錄 B, 內容規則(型樣)語法。
圖 12. 配送器其 nat 或 cbr 轉送方法的使用範例
配送器機器至少需要用到三個 IP 位址。 對『圖 12.』而言,以下是配置配送器之 nat 或 cbr 轉送方法時,變動最少的必要步驟:
1.啟動執行器 dscontrol executor start 2.定義用戶端閘道 dscontrol executor set clientgateway 1.2.3.5 附註:如果子網路沒有區域路由器,您必須 配置機器來執行 IP 轉送,並使用它做為 clientgateway。請參考作業系統的說明文件, 來決定如何啟用 IP 轉送。 3.定義叢集位址 dscontrol cluster add 1.2.3.44 4.配置叢集位址 dscontrol executor configure 1.2.3.44 5.定義具有 nat 或 cbr 方法的埠 dscontrol port add 1.2.3.44:80 method nat 或 dscontrol port add 1.2.3.44:80 method cbr protocol http 6.在 Load Balancer 上配置別名回覆位址(使用乙太網路卡 0) dscontrol executor configure 10.10.10.99 或使用 ifconfig/dsconfig 指令: AIX:ifconfig en0 alias 10.10.10.99 netmask 255.255.255.0 HP-UX:ifconfig lan0:1 10.10.10.99 netmask 255.255.255.0 up Linux:ifconfig eth0:1 10.10.10.99 netmask 255.255.255.0 up Solaris 8:ifconfig hme0 addif 10.10.10.99 netmask 255.255.255.0 up Windows:dsconfig en0 alias 10.10.10.99 netmask 255.255.255.0 7.定義後端伺服器 dscontrol server add 1.2.3.4:80:192.10.10.10 router 10.10.10.6 returnaddress 10.10.10.99
用戶端閘道 (1.2.3.5) 是 Load Balancer 與用戶端之間的路由器 1 位址。 路由器 (10.10.10.6) 是 Load Balancer 與後端伺服器之間的路由器 2 位址。 如果您不確定 clientgateway 或路由器 2 位址,您可以使用 traceroute 程式及用戶端(或伺服器)位址來判定路由器位址。 根據您所用的作業系統,此程式的實際語法可能會有所不同。 有關此程式的進一步資訊,請參閱您的作業系統說明文件。
如果伺服器和 Load Balancer 位於同一個子網路上(也就是說,沒有利用 traceroute 傳回的路由器),請輸入伺服器位址做為路由器位址。 路由器位址就是在步驟 7 中,於 Load Balancer 機器的 "server add" 指令所使用的位址。
透過伺服器分割,您可以進一步分辨特定 URL 及其特定的應用程式。 例如,某一 Web 伺服器可服務 JSP 頁面、HTML 頁面、GIF 檔案、資料庫要求等等。 Load Balancer 現在提供了分割能力,可將一個特定叢集與埠的伺服器分割成數個邏輯伺服器。 如此即可讓您通告機器上的特定服務進行偵測,是 servlet 引擎執行速度較快,還是資料庫要求執行速度較快,或是根本不執行。
伺服器分割可讓 Load Balancer 進行偵測,例如偵測 HTML 服務正快速服務頁面,但資料庫連線已中斷之情形。 如此可讓您在分送負載時是根據較精細的服務程式特定的工作負荷,而非單靠整個伺服器的加權值。
伺服器分割如果搭配 HTTP 和 HTTPS 警告器將非常有用。 比方說,如果您有一部 HTML 伺服器負責處理 HTML、GIF 和 JSP 頁面, 且您在埠 80 定義(藉由新增)此伺服器一次, 您只會收到一個代表整個 HTTP 伺服器的負載值。這可能會誤導, 因為伺服器上可能並沒有 GIF 服務程式在運作。配送器雖仍會轉送 GIF 頁面給伺服器,但用戶端將會看到逾時或失敗。
如果您在該埠定義該伺服器三次(例如,ServerHTML、ServerGIF、ServerJSP), 並針對各個邏輯伺服器使用不同的字串來定義伺服器的 advisorrequest 參數, 您就可以在該伺服器上查詢特定服務的狀況。ServerHTML、ServerGIF 和 ServerJSP 代表三個邏輯伺服器,它們是從同一個實體伺服器分割而來。對 ServerJSP 而言,您可以定義 advisorrequest 字串, 來查詢機器上負責處理 JSP 頁面的服務程式。對 ServerGIF 而言,您可以定義 advisorrequest 字串,來查詢 GIF 服務程式。 對 ServerHTML 而言,您可以定義 advisorrequest 來查詢 HTML 服務程式。 因此,如果用戶端未自 advisorrequest 取得回應來查詢 GIF 服務程式時, 配送器會將該邏輯伺服器 (ServerGIF) 標示為當機, 而另兩個邏輯伺服器則可能依然正常運行。配送器雖不再轉送 GIF 給實體伺服器,但它仍可以傳送 JSP 和 HTML 要求給伺服器。
有關 advisorrequest 參數的進一步資訊,請參閱使用要求/回應 (URL) 選項,配置 HTTP 警告器。
在配送器配置中,您可以用 cluster:port:server 體系來代表實體伺服器或邏輯伺服器。這個伺服器可以是機器(實體伺服器)的唯一 IP 位址,格式為代號名稱或帶點十進位數。 或者,如果您定義該伺服器用來代表分割過的伺服器,您就必須在 dscontrol server add 指令的 address 參數中, 提供實體伺服器的可解析的伺服器位址。請參閱dscontrol server -- 配置伺服器,以取得進一步資訊。
以下範例即把實體伺服器分割成邏輯伺服器,以便處理不同類型的要求。
Cluster: 1.1.1.1 Port: 80 Server: A (IP address 1.1.1.2) HTML server Server: B (IP address 1.1.1.2) GIF server Server: C (IP address 1.1.1.3) HTML server Server: D (IP address 1.1.1.3) JSP server Server: E (IP address 1.1.1.4) GIF server Server: F (IP address 1.1.1.4) JSP server Rule1: /*.htm Server: A Server: C Rule2: /*.jsp Server: D Server: F Rule3: /*.gif Server: B Server: E
本例中,伺服器 1.1.1.2 被分割為 2 個邏輯伺服器:"A"(處理 HTML 要求)及 "B"(處理 GIF 要求)。 伺服器 1.1.1.3 被分割成 2 個邏輯伺服器:"C"(處理 HTML 要求)及 "D"(處理 JSP 要求)。 伺服器 1.1.1.4 被分割成 2 個邏輯伺服器:"E"(處理 GIF 要求)及 "F"(處理 JSP 要求)。
高可用性特性包括第二台配送器機器的使用。第一台配送器機器像是在單一配送器配置時,會執行所有用戶端資料傳輸的平衡負載。第二台配送器機器監視第一台配送器機器的「狀況」;如果偵測到第一台配送器機器故障,則會接管平衡負載的作業。
這兩台機器均會指定一個特定的角色,不是主要,就是備份。主要機器會在有連線的情況下,將連線資料傳送給備份機器。當主要機器為使用中(正在執行平衡負載中)時,備份機器則為備用狀態;它會持續更新,並在必要時準備接管作業。
這兩台機器間的通訊階段作業就是活動訊號。活動訊號可容許每台機器去監視另一台機器的狀況。
如果備份機器偵測到使用中的機器發生故障, 它將接管它的工作並開始平衡負載。這時,這兩台機器的狀態將會互換: 備份機器變成現行, 而主要機器則變成備用狀態。
在高可用性配置中,主要及備份機器都必須位在同一個子網路中,且具有相同的配置。
關於配置高可用性的資訊,請參閱高可用性。
共同高可用性特性包括使用兩台配送器機器。這兩台機器會主動執行用戶端資料傳輸的平衡負載,且互為彼此的備份。在簡單高可用性配置中,只有一台機器會執行平衡負載。在共同高可用性配置中,這兩台機器都會平衡用戶端資料傳輸部分的資料流量。
如果是共同高可用性,會依據叢集位址將用戶端資料傳輸分派給每台配送器機器。每個叢集都可用其主要配送器的 NFA(非轉送的位址)予以配置。主要配送器機器一般會執行該叢集的平衡負載。發生失敗事件時,另一台機器會執行自己叢集及失敗配送器之叢集的平衡負載。
含共用「叢集組 A」及共用「叢集組 B」之共同高可用性配置的圖例,請參閱『圖 14.』。每個配送器都可主動為其主要叢集遞送封包。 如果任一配送器發生故障且無法再主動為其主要叢集遞送封包,則另一個配送器即可接管而為其備份叢集遞送封包。
關於配置高可用性及共同高可用性的資訊,請參閱高可用性。
在遵循本章中的步驟之前,請參閱規劃配送器元件。本章將說明如何為 Load Balancer 的配送器元件建立基本配置。
作業 | 說明 | 相關資訊 |
---|---|---|
設定配送器機器。 |
設定您的平衡負載配置。
| 設定配送器機器 |
將機器設定為要執行平衡負載的功能。 | 設定迴圈裝置的別名、檢查是否有多餘的路徑,以及刪除任何多餘的路徑。 | 設定伺服器機器以進行平衡負載 |
配送器有四個基本配置方法:
這是配置配送器最直接的方法。指令參數值必須以英文字元輸入。唯一的例外是主機名稱(用於 cluster、server 和 highavailability 等指令中)及檔名(用於 file 指令中)。
如果要從指令行啟動配送器,請執行下列動作:
您可以使用精簡版的 dscontrol 指令參數,方法是鍵入代表參數的唯一字母。例如,要取得存檔指令的說明,您可以輸入 dscontrol he f 而非 dscontrol help file。
如果要啟動指令行介面:請發出 dscontrol 以接收 dscontrol 指令提示。
配置配送器的指令可以輸入到配置 Script 檔中,並且可以一起執行。請參閱範例 Load Balancer 配置檔。
dscontrol file appendload myscript
dscontrol file newload myscript
如果要將現行配置儲存到 Script 檔(例如:savescript)中,請執行下列指令:
dscontrol file save savescript
這個指令會將配置 Script 檔存入 ...ibm/edge/lb/servers/configurations/dispatcher 目錄中。
如果需要圖形式使用者介面 (GUI) 的一般指示與範例,請參閱圖 42。
如果要啟動 GUI,請遵循下列步驟
dsserver
如果要從 GUI 來配置配送器元件, 您必須先在樹狀結構中選取配送器。一旦連接到「主機」,即可啟動執行器及管理程式。您也可以建立含有埠及伺服器的叢集,並啟動管理程式的警告器。
GUI 可以用來執行任何您會以 dscontrol 指令來執行的作業。例如,在使用指令行來定義叢集時,您可輸入 dscontrol cluster add cluster 指令。如果要從 GUI 來定義叢集,您可在「執行器」上按一下右鍵,然後在蹦現功能表中,對新增叢集按一下左鍵。 在蹦現視窗中輸入叢集位址,然後按一下確定。
您可以利用主機蹦現功能表中所顯示的載入新配置(用來完全取代現行配置)以及附加到現行(R)配置(用來更新現行配置)選項,來載入預先存在的配送器配置檔。您應定期使用另存配置檔選項(也在主機蹦現功能表中)來儲存您的配送器。位於 GUI 頂端的檔案功能表可讓您將現行的主機連線儲存到檔案中,或是復置所有的 Load Balancer 元件之現存檔案中的連線。
您也可以從遠端執行配置指令。如果需要詳細資訊,請參閱遠端方法呼叫 (RMI)。
如果要從 GUI 執行指令:請高亮度顯示 GUI 樹狀結構中的「主機」節點,並從「主機」蹦現功能表中選取傳送指令....。在指令輸入欄位中,輸入要執行的指令,例如:executor report。指令的結果與歷程會在現行階段作業中執行,並出現在所提供的視窗中。
您可以藉由按一下 Load Balancer 視窗右上角的問號圖示,來存取說明。
使用 GUI 的相關資訊,請參閱附錄 A, GUI:一般指示。
如果您打算使用配置精靈,請遵循下列步驟:
dsserver
精靈會一步步地指引您處理建立配送器元件的基本配置。它將會問您有關您的網路的問題。並且會指引您設定配送器的叢集,以平衡一群伺服器之間的資料流量。
在設定配送器機器之前,您必須是 root 使用者(如果是 AIX、HP-UX、Linux 或 Solaris)或是 Windows 上的管理者。
只有在 AIX、HP-UX、Linux 和 Solaris 上,Load Balancer 可以有並列 伺服器。這僅表示 Load Balancer 可實際常駐在正進行平衡負載的伺服器機器上。
針對配送器機器,當您使用 mac 轉送方法時, 您至少需要兩個有效的 IP 位址。針對 cbr 或 nat 轉送方法, 您至少需要三個有效的 IP 位址:
這個 IP 位址是配送器機器的主要 IP 位址,稱為非轉送的位址 (NFA)。依預設, 這個位址和 hostname 指令所傳回的位址相同。這個位址是用來連接機器,以便進行管理作業,如經由 Telnet 來進行遠端配置, 或存取 SNMP 子代理程式。如果配送器機器可能已測得網路上其他機器是否在運行, 則您不需要進一步設定非轉送的位址。
叢集位址即是一個與主機名稱有關聯的位址(如 www.yourcompany.com)。用戶端將使用這個 IP 位址叢集,來連接叢集中的伺服器。這個位址是由配送器執行平衡負載。
將用戶端的要求平衡負載至伺服器時,配送器會用傳回位址作為其來源位址。如此可確保伺服器將封包傳回給配送器機器,而不是將封包直接傳給用戶端。(配送器會接著將 IP 封包轉送給用戶端。)在新增伺服器時,您必須指定傳回位址值。除非您移除了伺服器並再次加以新增,否則不可修改傳回位址。
只適用於 Solaris:
比方說,如果您計劃使用兩張 100Mbps 的乙太網路配接卡, ibmnd.conf 檔中應該要有指定 hme 裝置的一行。如果您計劃使用一張 10Mbps 的乙太網路配接卡,以及一張 100Mbps 的乙太網路配接卡,您在 ibmnd.conf 檔中會有兩行:一行指定 le 裝置,一行指定 hme 裝置。
ibmnd.conf 檔案可提供 Solaris autopush 指令的輸入,且必須 autopush 指令相容。
比方說,如果配置了叢集 X 和 Y 供 ibmnd.conf 所列之任何配接卡上的 CBR 元件使用,叢集 X 和 Y 會在 dscontrol executor start 或 dscontrol executor stop 等指令發出時取消配置。而這可能並非所要的結果。當在 goAliases Script 中配置了叢集 X 和 Y 後,這些叢集會在配送器執行器啟動或停止後自動重設配置。
限 Windows:針對 TCP/IP 通訊協定,請確定未啟用 IP 轉送。(請參閱 Windows TCP/IP 配置。)
『圖 15.』顯示設定一個具有單一叢集、兩個埠及三台伺服器的配送器之範例。
關於本程序中所使用的指令的解說,請參閱配送器及 CBR 的指令參照。
關於範例配置檔,請參閱範例 Load Balancer 配置檔。
AIX、HP-UX、Linux 或 Solaris:如果要啟動伺服器功能,請輸入 dsserver。
Windows:伺服器功能會當成服務自動啟動。
如果要啟動執行器功能時,請輸入 dscontrol executor start 指令。這時,您也可以變更不同的執行器設定。請參閱配送器及 CBR 的指令參照。
非轉送的位址是用來連接機器,以便進行管理作業, 像是使用 Telnet 或 SMTP 來連接這台機器。依預設, 這個位址是主機名稱。
如果要定義非轉送的位址時,請輸入 dscontrol executor set nfa IP_address 指令,或編輯範例配置檔。 IP_address 是符號式名稱或帶有點的十進位位址。
配送器會將傳給叢集位址的要求,平衡分配到對該叢集的埠所配置的伺服器。
叢集可以是符號式名稱、帶點十進位數位址,或是定義萬用字元叢集的特殊位址 0.0.0.0。 如果要定義叢集,請發出指令 dscontrol cluster add。如果要設定叢集選項,請發出指令 dscontrol cluster set 或用 GUI 來發出指令。萬用字元叢集可以用來找出多個符合的 IP 位址,以平衡進入之封包的資料流量。如果需要詳細資訊,請參閱使用萬用字元叢集來結合伺服器配置、使用萬用字元叢集來平衡防火牆的資料流量及將萬用字元叢集與 Caching Proxy 搭配使用來進行透通式 Proxy。
在定義了叢集之後,您通常必須將叢集位址配置 在配送器機器的其中一個網路介面卡上。要執行這項作業,請發出指令 dscontrol executor configure cluster_address。 這個指令將會尋找一個其現行位址屬於相同子網路的配接卡,來作為叢集位址。然後它會針對該叢集位址發出作業系統的配接卡配置指令,並使用所找到的配接卡以及該配接卡上所找到的現有位址之網路遮罩。例如:
dscontrol executor configure 204.67.172.72
在您不想要配置叢集位址的情況下,會以高可用性模式來將叢集加入備用的伺服器,或是將叢集加入廣域配送器,作為遠端伺服器。如果您以單機模式來使用範例 goIdle Script,您也不需執行 executor configure 指令。goIdle Script 的相關資訊,請參閱使用 Script。
在少數情況下,您可能會有一個叢集位址不符合現存位址的任何子網路。這時,請使用第二種形式的 executor configure 指令,並明確地提供介面名稱及網路遮罩。使用 dscontrol executor configure cluster_address interface_name netmask。
範例如下:
dscontrol executor configure 204.67.172.72 en0 255.255.0.0 (AIX) dscontrol executor configure 204.67.172.72 eth0:1 255.255.0.0 (Linux) dscontrol executor configure 204.67.172.72 le0 255.255.0.0 (Solaris 8) dscontrol executor configure 204.67.172.72 en1 255.255.0.0 (Windows)
如果要在 Windows 上使用第二種格式的 executor configure 指令,您必須決定所要使用的介面名稱。
如果在您的機器上只有一張乙太網路卡,則介面名稱會是 en1。同樣地,如果您只有一張「記號環」卡,則介面名稱會是 tr1。如果您有多張其中一種類型的卡,您便需要判斷卡的對映。 請使用下列步驟:
網路介面配接卡將列示在「網路卡」之下。請在每一個網路介面配接卡上按一下, 以判斷它是「乙太網路」或「記號環」介面。介面的類型列示在說明直欄中。由 dsconfig 所指派的名稱會對映到介面類型。 比方說,清單中的第一個「乙太網路」介面是被 dsconfig 指定為 en1, 第二個被指定為 en2,依此類推;第一個「記號環」介面則被指定為 tr1, 第二個被指定為 tr2,依此類推。
在您取得這個對映資訊後,您可以在網路介面上,建立叢集位址的別名。
executor configure 指令只會執行 ifconfig(或者,在 Windows 上為 dsconfig)指令,因此如果您願意,您還是可以使用 ifconfig (dsconfig) 指令。
配送器元件有提供 dsconfig 這個指令,讓您可用指令行來配置叢集別名。dsconfig 指令的語法與 UNIX(R) ifconfig 指令相同。
dsconfig en0 alias 204.67.172.72 netmask 255.255.0.0
如果要決定介面名稱,請使用與用在 executor configure 指令之第二種形式的相同技術。
如果您使用之連結特定的伺服器應用程式 所連結到的 IP 位址清單未包含伺服器的 IP,請使用 arp publish 指令而非 ifconfig,來動態地設定 Load Balancer 機器上的 IP 位址。例如:
arp -s <cluster> <Load Balancer MAC address> pub
如果要定義埠,可輸入 dscontrol port add cluster:port 指令、編輯範例配置檔、或使用 GUI。cluster 可以是符號式名稱, 也可以是帶點十進位數位址。Port 則是您將對該通訊協定使用的埠的號碼。這時,您也可以變更不同的埠設定。您必須定義並配置一個埠的所有伺服器。請參閱配送器及 CBR 的指令參照。
埠號 0(零)是用來指定萬用字元埠的。 不是要傳送到叢集上任何已定義之埠的資料傳輸,將接受這個埠。萬用字元埠將會用來配置所有埠的規則及伺服器。如果有多個埠具有相同的伺服器/規則配置,您也可以使用這項功能。一個埠上的資料傳輸會影響其他埠上平衡負載的決策。 使用萬用字元埠之時機的相關資訊,請參閱使用萬用字元埠來引導未配置埠的資料傳輸。
如果要定義平衡負載伺服器機器,可輸入 dscontrol server add cluster:port:server 指令,編輯範例配置檔,或使用 GUI。Cluster 和 server 可以是符號式名稱或帶點十進位數位址。Port 則是您將對該通訊協定使用的埠的號碼。您必須定義一個以上的伺服器給叢集上的一個埠,以執行平衡負載。
連結特定伺服器: 如果配送器元件是對連結特定伺服器進行平衡負載,則伺服器必須配置為可以連結叢集位址。既然配送器轉送封包時不會變更目的地 IP 位址,因此當封包到達伺服器時,仍會含有叢集位址作為目的地。如果伺服器配置為要連結到叢集位址以外的某一 IP 位址,這個伺服器將無法接受送往該叢集的封包/要求。
多重位址並列: 在並列配置中,並列伺服器機器的位址不必相同於非轉送的位址 (NFA)。如果您的機器已定義有多重 IP 位址,您即可使用另一個位址。對配送器元件而言,必須用 dscontrol server 指令將並列伺服器機器定義為 collocated。並置伺服器的相關資訊,請參閱使用並列伺服器。
有關 dscontrol server 指令語法的進一步資訊,請參閱dscontrol server -- 配置伺服器。
管理程式功能可增進平衡負載。如果要啟動管理程式,可輸入 dscontrol manager start 指令,編輯範例配置檔,或使用 GUI。
警告器可提供管理程式有關平衡負載伺服器機器回應要求的能力之詳細資訊。警告器是專用於某個通訊協定。比方說,如果要啟動 HTTP 警告器,請發出下列指令:
dscontrol advisor start http port如果需要警告器的清單以及其預設埠,請參閱配送器及 CBR 的指令參照。如果需要各種警告器的說明,請參閱警告器列示。
如果啟動警告器,您可以修改平衡負載決策中所含之警告器資訊的重要性比例。如果要設定叢集比例,請發出 dscontrol cluster set cluster proportions 指令。相關資訊,請參閱狀態資訊所給定的重要性比例。
如果伺服器是並列的(配送器常駐在其所平衡負載的同一機器上),或者使用的是 nat 或 cbr 轉送方法,請不要執行下列程序。
使用 mac 轉送方法時,配送器只能搭配後端伺服器使用,讓迴圈配接卡配置額外的 IP 位址,而後端伺服器絕不會就其回應 ARP(位址解析通訊協定)要求。請遵循本節所列的步驟,來設定平衡負載的伺服器機器。
要讓平衡負載的伺服器機器能夠運作,您必須將迴圈裝置(通常稱為 lo0)設定(或最好是別名)成叢集位址。使用 mac 轉送方法時,在將封包轉遞給 TCP 伺服器機器之前,配送器元件並不會變更 TCP/IP 封包中的目的地 IP 位址。藉著將迴圈裝置設定或設定別名成叢集位址,平衡負載伺服器機器會接受要送給該叢集位址的封包。
如果您的作業系統支援網路介面別名(如 AIX、HP-UX、Linux、Solaris 或 Windows),您應該將迴路裝置的別名設為叢集位址。使用支援別名之作業系統的優點是,您能夠配置經過平衡負載的伺服器機器,以服務多個叢集位址。
註:
echo 1 > /proc/sys/net/ipv4/conf/lo/hidden echo 1 > /proc/sys/net/ipv4/conf/all/hidden
如果您伺服器的作業系統不支援別名,則必須將迴圈裝置設定成叢集位址。
請將指令用於『表 6.』中所示的作業系統中,以設定或命名迴圈裝置的別名。
在部分作業系統上,可能已建立預設路徑,且需要予以移除。
Windows 範例:
作用中的路徑: 網址 網路遮罩 閘道位址 介面 度量單位 0.0.0.0 0.0.0.0 9.67.128.1 9.67.133.67 1 9.0.0.0 255.0.0.0 9.67.133.158 9.67.133.158 1 9.67.128.0 255.255.248.0 9.67.133.67 9.67.133.67 1 9.67.133.67 255.255.255.255 127.0.0.1 127.0.0.1 1 9.67.133.158 255.255.255.255 127.0.0.1 127.0.0.1 1 9.255.255.255 255.255.255.255 9.67.133.67 9.67.133.67 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 224.0.0.0 224.0.0.0 9.67.133.158 9.67.133.158 1 224.0.0.0 224.0.0.0 9.67.133.67 9.67.133.67 1 255.255.255.255 255.255.255.255 9.67.133.67 9.67.133.67 1
9.0.0.0 255.0.0.0 9.67.133.158 9.67.133.158 1
您必須刪除額外的路徑。請將指令用於『表 7.』中所示的作業系統中,以刪除額外路徑。
範例:如果要如步驟 2 之「現行路徑」範例表所示方式來刪除額外路徑,請輸入:
route delete 9.0.0.0 9.67.133.158
HP-UX
| route delete cluster_address cluster_address |
Windows | route delete network_address
cluster_address(在 MS-DOS 提示中)
|
如果您使用『圖 15.』所示的範例,並設定執行 AIX 的伺服器機器,則該指令會是:
route delete -net 204.0.0.0 204.67.172.72
要驗證後端伺服器是否已適當地配置,請在未執行 Load Balancer 且已取消配置 cluster 時,從相同子網路上的不同機器,執行下列步驟:
arp -d cluster
ping cluster
這時不應有任何回應。 如果連通測試出現回應,請確定您並未將叢集位址 ifconfig 成介面。 確定並無機器對此叢集位址具有已發佈的 arp 項目。
如果是版本 2.2.14 或更高版本的 Linux 核心程式,請確定 /proc/sys/net/ipv4/conf/lo/hidden 和 /proc/sys/net/ipv4/conf/all/hidden 中存有 "1"。
arp -a
在指令的輸出中,您應會看到伺服器的 MAC 位址。 發出指令:
arp -s cluster server_mac_address
arp -d cluster
只適用於 Linux:如果要設定迴圈裝置的別名,可能需有特定的修補程式(視 Linux 核心版本而定)。
修補程式可確保唯有具備 ARP 要求中所要求的 IP 位址之網路卡埠,才會傳送 ARP 回應。 如果無此修補程式,Linux 將在網路上發出迴圈別名的 ARP 回應。 此修補程式亦會更正 ARP 競爭條件,此條件常見於具有不同 IP 位址的多個網路卡埠同時出現於同一實體網路時。
重要事項:如果是 UnitedLinux,您可能不需要安裝此修補程式, 因為它可能已提供此修補程式。在 Intel 版的 UnitedLinux 中,從 UnitedLinux 1.0 SP2(R) 開始就已包含該修補程式。在 S390 和 PowerPC64 版的 UnitedLinux 中, UnitedLinux 1.0 SP2 目前尚未提供該修補程式,但可能在較新的 Service Pack 中有提供。
在下列情況下,您必須安裝修補程式:
您可以從 http://www.tldp.org/HOWTO/Kernel-HOWTO.html 取得編譯及修補 Linux 核心程式的指示。
如果要套用 2.4.4 核心修補程式(或更新版),請從 www.linuxvirtualserver.org/~julian#hidden 或 http://www.ssi.bg/~ja/ 取得迴路修補程式。請從迴路修補程式的網頁上, 鏈結到 ""hidden" device flag for Linux" 表格(該表格會列出可用的修補程式),然後選擇您核心程式版本對應的修補程式。
當您編譯核心程式時, 請使用位於 /usr/src/linux/arch/xxxx/defconfig 中的預設配置檔,其中 xxxx 代表系統架構(例如:i386、ia64、ppc64)。包裝於核心原始檔內的預設配置檔可能並不適用於您的系統。請根據以下說明來使用已安裝的核心配置檔:
# cd /usr/src/linux # zcat /proc/config.gz .config # make oldconfig
針對較新的 2.4.18 核心程式,現行的「Linux 虛擬伺服器」並未完全修補完成。請在修補核心原始檔之前,先針對現有的 hidden-2.4.5-1.diff 修補程式做以下修改:
- NET_IPV_CONF_ARPFILTER=13 + NET_IPV_CONF_ARPFILTER=13, + NET_IPV4_CONF_HIDDEN=14,
變更為:
NET_IPV4_CONF_ARPFILTER=13, - NET_IPV4_CONF_MEDIUM_ID=14, + NET_IPV4_CONF_MEDIUM_ID=14, + NET_IPV4_CONF_HIDDEN=15,
- ctl_table devinet_vars [14]; + ctl_table devinet_vars [15];
變更為:
- ctl_table devinet_vars [15]; + ctl_table devinet_vars [16];
本篇提供快速入門配置的相關資訊、規劃注意事項,以及說明配置 Load Balancer CBR 元件的方法。 它含有下列各章:
此快速入門範例將示範如何使用 CBR 與 Caching Proxy 來配置三個本端附加工作站,以便平衡負載兩個 Web 伺服器之間的 Web 資料傳輸。 (為求簡單,此範例所舉的伺服器皆位於相同的 LAN 區段上,因為 CBR 並不限制使用位於相同 LAN 區段上的伺服器)。
如果要進行快速入門範例,則需要三個工作站及四個 IP 位址。其中一個工作站要用來當作 CBR;另外兩個工作站則用來當作 Web 伺服器。 每一個 Web 伺服器都需要一個 IP 位址。CBR 工作站需要一個實際的位址,以及一個用於平衡負載的位址。
如果要使用 CBR,必須在同一伺服器上安裝 Caching Proxy。如果要對 CBR 配置 Caching Proxy,請參閱步驟 1. 配置 Caching Proxy 以使用 CBR。
工作站 | 名稱 | IP 位址 |
---|---|---|
1 | server1.mywebsite.com | 9.27.27.101 |
2 | server2.mywebsite.com | 9.27.27.102 |
3 | server3.mywebsite.com | 9.27.27.103 |
網路遮罩 = 255.255.255.0 |
每一個工作站都只包含一個標準的「乙太網路」網路介面卡。
Name= www.mywebsite.com IP=9.27.27.104
有了 CBR ,您就可以用指令行、配置精靈或圖形式使用者介面 (GUI) 來建立配置。 在本快速入門範例中,相關的配置步驟是以指令行來作示範。
從指令提示,遵循下列步驟:
cbrcontrol executor start
ibmproxy
cbrcontrol cluster add www.mywebsite.com
cbrcontrol port add www.mywebsite.com:80
cbrcontrol server add www.mywebsite.com:80:server2.mywebsite.com
cbrcontrol server add www.mywebsite.com:80:server3.mywebsite.com
cbrcontrol rule add www.mywebsite.com:80:memberRule type content pattern uri=*/member/*
cbrcontrol rule add www.mywebsite.com:80:guestRule type content pattern uri=*/guest/*
本例中,透過內容規則,用戶端對網站 www.mywebsite.com 的要求,會根據 URI 要求路徑中的目錄而送給不同的伺服器。相關資訊,請參閱附錄 B, 內容規則(型樣)語法。
cbrcontrol rule useserver www.mywebsite:80:memberRule server2.mywebsite.com
cbrcontrol rule useserver www.mywebsite:80:guestRule server3.mywebsite.com
CBR 現在將根據內容規則來執行平衡負載。 用戶端之 URL 要求如果內含 /member/,將會被導送給 server2.mywebsite.com。 而用戶端之 URL 要求如果內含 /guest/ 則會被導送給 server3.mywebsite.com。
cbrcontrol manager start
cbrcontrol advisor start http 80
CBR 現在會確定用戶端要求並沒有傳送到失敗的 Web 伺服器。
您現在已經完成使用本端連接伺服器的基本配置。
測試配置是否可運作。
cbrcontrol server report www.mywebsite.com:80:這兩個伺服器的連線總數直欄應加總為 『2』。
如果需要使用 CBR GUI 的相關資訊,請參閱GUI及參閱附錄 A, GUI:一般指示。
如果需要使用 CBR 精靈的相關資訊,請參閱配置精靈。
可配置 CBR 來支援您站台的方法有許多種。如果您對所有您的客戶將連接的站台, 僅具有一個主機名稱,則您可以定義伺服器的單一叢集。對於其中每一個伺服器,您都要配置 CBR 藉以通訊的埠。請參閱『圖 9.』。
本例中的 CBR 元件,有一個叢集是在 www.productworks.com 所定義。 這個叢集有兩個埠: HTTP 為埠 80,SSL 為埠 443。當用戶端對 http://www.productworks.com(埠 80)發出要求時所連接的伺服器,與用戶端對 https://www.productworks.com(埠 443)發出要求時所連接的伺服器不同。
如果您有一個非常大的站台,它具有許多專門用於每一個支援的通訊協定的伺服器,則其他配置 CBR 的方法較合適。在這個情況下, 您可能想要對每一個具有單一埠,但有多個伺服器的通訊協定來定義叢集, 如『圖 10.』中所示一般。
圖 18. 配置有兩個叢集且每個叢集都有一個埠之 CBR 範例
對於本例中的 CBR 元件,我們定義了兩個叢集:埠 80 (HTTP) 為 www.productworks.com,埠 443 (SSL) 為 www.testworks.com。
如果您的站台主控數個公司或部門的內容,且它們都以不同 URL 進入您的站台,則需使用第三種方法來配置 CBR。 這時,您最好先為每一公司或部門定義一叢集,然後定義任何您想要在該 URL 中接收連線的埠,如『圖 11.』中所示。
圖 19. 配置有兩個叢集且每個叢集都有 2 個埠 CBR 範例
對本例中的 CBR 元件而言,我們定義了兩個叢集,且各叢集在 www.productworks.com 和 www.testworks.com 等站台分別具有埠 80 (HTTP) 及埠 443 (SSL)。
本章將說明在安裝與配置具有 Caching Proxy 的 CBR 元件之前,網路規劃者應該考慮的事項。
本章包括下列各節:
CBR 元件會利用 Caching Proxy 來進行 Proxy 要求,讓您能夠平衡負載 HTTP 和 SSL 的資料傳輸。
透過 CBR,您可以平衡負載透過 CBR 配置檔(以 cbrcontrol 指令)所配置的伺服器,或是平衡負載來自 WAS 配置檔的伺服器。 有關平衡負載來自 WAS 配置檔之伺服器的進一步資訊,請參閱平衡負載 WebSphere Application Server (WAS)。
CBR 的元件結構與配送器極為相似。CBR 是由下列功能所組成:
管理程式的使用是選用性的。不過,如果未使用管理程式,將依據目前的伺服 器加權值,使用已加權的循環排程方式,來執行平衡負載及無可使用的警告器。
CBR 的三個主要功能(執行器、管理程式及警告器)會互動, 以平衡及配送伺服器之間的進入要求。 除了平衡負載要求外,執行器還會監視新連線及現行連線的數目, 並且會提供這個資訊給管理程式。
CBR 元件可讓您指定一組伺服器,以根據符合用戶端要求內容的正規表示式來處理要求。 CBR 可讓您分割您的站台,如此一來,不同的內容或應用程式服務就可以由不同組的伺服器來服務。此分割動作將會透通至存取您的站台的用戶端。
分割您的站台的其中一種方法,就是指派一些伺服器來專門處理 cgi 要求, 並指派另一組伺服器來處理所有其他的要求。 這樣可以停止計算密集的 cgi Script,以防止降低伺服器處理一般 HTML 資料傳輸的速度, 以讓用戶端獲得較佳的整體回應時間。 如果使用這個機制,您也可以指派功能更強大的工作站來應付一般的要求。 這樣可以提供用戶端較合適的回應時間,而不需花費來將您所有的伺服器升級。 您也可以指派功能更強大的工作站來應付 cgi 要求。
另一個分割站台的可能性,就是將正在存取需要註冊之呼叫的用戶端導向一組伺服器,並將其他所有的要求導向第二組伺服器。 這樣可以防止您站台上的任意瀏覽器用盡已確定註冊之用戶端所能使用的資源 。 如此也可以讓您使用功能更強大的工作站來服務這些已登錄的用戶端。
您當然也可以將上述方法合併使用,以獲得更大的彈性及更好的服務。
因為 CBR 可讓您針對每種類型的要求來指定多重伺服器,所以可將要求平衡負載,以獲得最佳的用戶端回應。 如果將多重伺服器分派給每種類型的內容, 則某個工作站或伺服器失敗時,您會受到保護。CBR 會辨識失敗狀況,並繼續將用戶端要求平衡地傳送到該組的其他伺服器中。
會透過其外掛程式介面,與 CBR 程序進行通訊。CBR 必須在本端機器上執行,這個作業才能運作。因為這些是兩個個別的程序, 所以多個 Caching Proxy 實例可以在執行中並使用單一 CBR 實例。 您可以配置這個設定,以便在 Caching Proxy 之間分離位址或功能, 或是使數個 Caching Proxy 處理用戶端資料傳輸,來改善機器的資源使用率。Proxy 實例可以監聽不同的埠,或連結到同一埠上的唯一 IP 位址, 取決於哪一個最適合於資料傳輸需求。
CBR 以及 Caching Proxy 會用指定的規則類型來檢查 HTTP 要求。 在執行時,Caching Proxy 會接收用戶端要求,並查詢 CBR 元件,以取得最佳伺服器。 根據此查詢,CBR 會將要求與一組按優先次序排列的規則比對。找到符合的規則後,就會從預先配置之伺服器組中選擇適當的伺服器。最後,CBR 會通知 Caching Proxy 所選擇的伺服器為何,而且會將要求 Proxy 到該伺服器。
一旦您將叢集定義為平衡負載,您必須確定對該叢集所做的所有要求, 都具有一個將會選擇伺服器的規則。 如果沒有找到符合特定要求的規則,用戶端就會從 Caching Proxy 接收一個錯誤頁面。 確定所有要求都會符合某個規則的最簡單方法,就是以極高的優先順序來建立一個「永遠為真」的規則。 請確定優先順序較低之規則所無法明確處理的所有要求,都能夠由此規則所使用的伺服器加以處理。 (備註:優先順序較低之規則會先被評估。)
如果需要詳細資訊,請參閱配置規則型平衡負載。
具備 Caching Proxy 的 CBR 可接收用戶端到 Proxy(client-to-proxy 端)的 SSL 傳輸,並支援從 Proxy 到 SSL 伺服器(proxy-to-server 端)的傳輸。 藉由在 CBR 配置中定義伺服器上的 SSL 埠以接收來自用戶端的 SSL 要求,您即能維護完全安全的站台,以 CBR 來平衡負載安全 (SSL) 伺服器。
除了 ibmproxy.conf 檔針對 CBR 進行其他的變更之外,還需要將另一個配置陳述式加入 ibmproxy.conf 檔中,才能讓 IBM Caching Proxy 在「Proxy 對伺服器」端啟用 SSL 加密。其格式須為:
proxy uri_pattern url_pattern address
其中的 uri_pattern 是要比對的型樣(例如:/secure/*),url_pattern 是置換 URL(例如:https://clusterA/secure/*),而 address 則是叢集位址(例如:clusterA)。
具備 Caching Proxy 的 CBR 還可接收來自用戶端的 SSL 傳輸,然後解密 SSL 要求,之後再將此要求 Proxy 到某一 HTTP 伺服器。 要使 CBR 支援 SSL 中的 client-to-proxy 和 HTTP 中的 proxy-to-server,有一選用性的關鍵字 mapport (在 cbrcontrol server 指令中)可以使用。 當您需要指出伺服器上的埠不同於用戶端的進入埠時,即可使用此關鍵字。 以下是利用 mapport 關鍵字來新增某埠的範例,其中用戶端的埠是 443 (SSL) 而伺服器的埠是 80 (HTTP):
cbrcontrol server add cluster:443 mapport 80
mapport 的埠號可以是任何正整數值。預設值是用戶端之進入埠的埠號值。
由於 CBR 須能將 HTTP 要求通告給埠 443 (SSL) 上所配置的伺服器,有一個特殊的警告器 ssl2http 因此產生。 此警告器是在埠 443(用戶端的進入埠)上啟動,並通告針對該埠所配置的伺服器。 如果配置了兩個叢集且各叢集都具有埠 443 以及用不同 mapport 所配置的伺服器,則單一實例的警告器可據以開啟適當的埠。 以下是此種配置的範例:
Executor Cluster1 Port:443 Server1 mapport 80 Server2 mapport 8080 Cluster2 Port:443 Server3 mapport 80 Server4 mapport 8080 Manager Advisor ssl2http 443
透過 CBR,您便能平衡負載放在叢集化 WAS(版本 5)伺服器上的 Web 應用程式要求。 『圖 20.』示範了一種配置設定,其中有一部高可用性的配送器機器會平衡負載第一層的 CBR(具備 Caching Proxy)以及第二層的 CBR WebSphere Application Server(以及 Web HTTP 伺服器)。
CBR 可用 WAS 形式的親緣性,同時讓有狀態與無狀態的要求被遞送到正確的 WAS 伺服器。 配置可藉由自動將 WAS HTTP 外掛程式配置檔 (具有 plugin-cfg.xml 的預設檔名) 對映至某一 CBR 配置來處理。 您可以用 cbrcontrol file newload 指令來載入 WAS HTTP 外掛程式配置檔。 這個指令會將 WAS 配置檔對映到 CBR 配置。 如果要儲存此配置檔,請使用 cbrcontrol file save 指令。
Load Balancer 載入了外掛程式配置檔並對映至 CBR 配置之後, 如果您需要變更 WAS 叢集配置,建議您最好重新載入已更新的 WAS HTTP 外掛程式配置檔。 以 newload 指令進行重新載入是更新 WAS 叢集配置的最佳方法,而不是用指令行或 GUI 將伺服器新增至 WAS 規則來更新配置。
作為從 WAS 叢集配置到 CBR 配置之對映作業的一部分,所有規則以及關聯於 WAS 外掛程式配置檔所建規則的伺服器,皆具有下列資訊以識別其來源:
位於後端 WAS 機器上的 WLMServlet 會執行伺服器當機偵測,並提供伺服器加權值資訊給 Load Balancer 的 WLMServlet Advisor。
只有「WLMServlet 警告器」可在已配置成屬於 WAS 叢集的伺服器上進行通告。 其間 WLMServlet 不須常駐在 WAS 機器上。 如果 WLMServlet 未出現,伺服器加權值將預設成 WAS 外掛程式配置檔中所指定的加權值。
在執行本章中的步驟之前,請參閱規劃內容型遞送元件。本章將說明如何為 Load Balancer 的 CBR 元件建立基本配置。
作業 | 說明 | 相關資訊 |
---|---|---|
設定 CBR 機器。 | 找出基本需求。 | 設定 CBR 機器 |
將機器設定為要執行平衡負載的功能。 | 設定您的平衡負載配置。 | 步驟 7. 定義已平衡負載的伺服器機器 |
如果要建立 Load Balancer 的 CBR 元件的基本配置,基本方法有四種:
如果要使用 CBR,須已安裝 Caching Proxy。
這是配置 CBR 的最直接的方法。指令參數值須以英文字元輸入。唯一的例外是主機名稱(例如,用於叢集與伺服器指令)及檔名。
如果要從指令行啟動 CBR,請執行下列動作:
您可以輸入縮寫版的 cbrcontrol 指令參數。只需要輸入參數的專用字母即可。例如,要取得存檔指令的說明,您可以輸入 cbrcontrol he f 而非 cbrcontrol help file。
如果要啟動指令行介面:請發出 cbrcontrol 以接收 cbrcontrol 指令提示。
如果要結束指令行介面:請發出 exit 或 quit。
註:
( ) 左括弧及右括弧
& '&' 符號
| 垂直線
! 驚嘆號
* 星號
作業系統的 Shell 可能會將這些字元解譯為特殊字元,並在 cbrcontrol 加以評估前將其轉換成替代文字。
上述清單中的特殊字元對 cbrcontrol rule add 指令而言皆屬選用字元,而且是在指定內容規則的型樣時才使用。比方說,僅當您使用 cbrcontrol>> 提示時,下列指令才有效。
rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern client=181.0.153.222&uri=/nipoek/*
如果要使這相同的指令在作業系統的提示下可以作用,須在型樣前後加上雙引號 (" "),如下所示:
cbrcontrol rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern "client=181.0.153.222&uri=/nipoek/*"
如果未使用引號,當規則存入 CBR 時,部分型樣將遭截斷。請注意,在使用 cbrcontrol>> 指令提示時,並不支援引號。
用於配置 CBR 的指令可以輸入到某一配置 Script 檔中,然後一起執行。
cbrcontrol file appendload myscript
cbrcontrol file newload myscript
如果要將現行配置儲存到 Script 檔(例如:savescript)中,請執行下列指令:
cbrcontrol file save savescript
這個指令會將配置 Script 檔存入 ...ibm/edge/lb/servers/configurations/cbr 目錄。
如果需要圖形式使用者介面 (GUI) 的一般指示與範例,請參閱圖 42。
如果要啟動 GUI,請遵循下列步驟
如果要從 GUI 來配置 CBR 元件,您必須先在樹狀結構中選取內容型遞送。一旦連接到「主機」,即可啟動管理程式。您也可以建立含有埠及伺服器的叢集,並啟動管理程式的警告器。
GUI 可以用來執行任何您會以 cbrcontrol 指令來執行的作業。例如,在使用指令行來定義叢集時,您會輸入 cbrcontrol cluster add cluster 指令。如果要從 GUI 來定義叢集,您可在執行器上按一下右鍵,然後在蹦現功能表中,對新增叢集按一下左鍵。在蹦現視窗中輸入叢集位址,然後按一下確定
您可以利用主機蹦現功能表中所顯示的載入新配置(用來完全取代現行配置)以及附加到現行配置(用來更新現行配置)選項, 來載入預先存在的 CBR 配置檔。您應定期使用另存配置檔選項(也在主機蹦現功能表中)來儲存您的 CBR。位於 GUI 頂端的檔案功能表可讓您將現行的主機連線存到檔案中,或是復置所有的 Load Balancer 元件之現存檔案中的連線。
您可以藉由按一下 Load Balancer 視窗右上角的問號圖示,來存取說明。
如果要從 GUI 執行指令:請高亮度顯示 GUI 樹狀結構中的「主機」節點,並從「主機」蹦現功能表中選取傳送指令...。在指令輸入欄位中,輸入要執行的指令,例如:executor report。您在現行階段作業中所執行的指令,其結果及歷程將出現在所提供的視窗中。
使用 GUI 的相關資訊,請參閱附錄 A, GUI:一般指示。
如果您打算使用配置精靈,請遵循下列步驟:
藉由發出 cbrwizard,從指令提示下啟動這個精靈。或者,從 GUI 中呈現的 CBR 元件功能表選取「配置精靈」。
如果是 AIX、HP-UX、Linux 或 Solaris:如果要啟動 Caching Proxy, 請輸入 ibmproxy
如果是 Windows:如果要啟動 Caching Proxy,請移至「服務」畫面:開始 > 設定(用於 Windows 2000)> 控制台 > 系統管理工具 > 服務
CBR 精靈會一步步地指引您如何建立 CBR 元件的基本配置。它會詢問您一些關於網路的問題, 並指引您設定一個叢集,使得 CBR 能夠平衡一群伺服器之間的資料流量。
在設定 CBR 機器之前,您必須是 root 使用者(如果是 AIX、HP-UX、Linux 或 Solaris)或是管理者(如果是 Windows)。
所要設定之伺服器的每一個叢集都必須要有一個 IP 位址。叢集位址是一個與主機名稱有關聯的位址(如 www.company.com)。用戶端將使用這個 IP 位址叢集,來連接叢集中的伺服器。特別的是,這個位址可在由用戶端提出的 URL 要求中找到。對同一叢集位址提出的所有要求都是由 CBR 來平衡負載。
只適用於 Solaris:在使用 CBR 元件前,須先修改 IPC(跨處理通訊)的系統預設值。共用記憶體區段的最大大小及號誌識別碼的數目皆須增加。如果要調整您的系統以支援 CBR,請編輯您系統上的 /etc/system 檔案,新增下列陳述式,然後重新啟動:
set shmsys:shminfo_shmmax=0x02000000 set semsys:seminfo_semmap=750 set semsys:seminfo_semmni=30 set semsys:seminfo_semmns=750 set semsys:seminfo_semmnu=30 set semsys:seminfo_semume=30
如果未將共用記憶體區段增加至上述之值,cbrcontrol executor start 指令將會失敗。
如果要使用 CBR,須已安裝 Caching Proxy。
您必須對 Caching Proxy 配置檔 (ibmproxy.conf) 進行下列修改:
確定送入的 URL 指引 CacheByIncomingUrl 是 "off"(預設值)。
在配置檔的對映規則區段中,對於每一個叢集,新增如下的對映規則:
Proxy /* http://cluster.domain.com/* cluster.domain.com
CBR 外掛程式有四個項目必須編輯:
以下是針對每一作業系統新增到配置檔中的特定內容。
圖 21. AIX、Linux 和 Solaris 的 CBR 配置檔
ServerInit /opt/ibm/edge/lb/servers/lib/libndcbr.so:ndServerInit PostAuth /opt/ibm/edge/lb/servers/lib/libndcbr.so:ndPostAuth PostExit /opt/ibm/edge/lb/servers/lib/libndcbr.so:ndPostExit ServerTerm /opt/ibm/edge/lb/servers/lib/libndcbr.so:ndServerTerm
ServerInit /opt/ibm/edge/lb/servers/lib/libndcbr.sl:ndServerInit PostAuth /opt/ibm/edge/lb/servers/lib/libndcbr.sl:ndPostAuth PostExit /opt/ibm/edge/lb/servers/lib/libndcbr.sl:ndPostExit ServerTerm /opt/ibm/edge/lb/servers/lib/libndcbr.sl:ndServerTerm
ServerInit C:\Program Files\IBM\edge\lb\servers\lib\libndcbr.dll:ndServerInit PostAuth C:\Program Files\IBM\edge\lb\servers\lib\libndcbr.dll:ndPostAuth PostExit C:\Program Files\IBM\edge\lb\servers\lib\libndcbr.dll:ndPostExit ServerTerm C:\Program Files\IBM\edge\lb\servers\lib\libndcbr.dll:ndServerTerm
如果要啟動 CBR 伺服器功能,請在指令行上輸入 cbrserver。
預設配置檔 (default.cfg) 會在啟動 cbrserver 時自動載入。如果使用者決定將 CBR 配置存入 default.cfg,則在下次啟動 cbrserver 時,系統會自動載入這個檔案中儲存的所有內容。
如果要啟動執行器功能時,請輸入 cbrcontrol executor start 指令。這時,您也可以變更不同的執行器設定。請參閱dscontrol executor -- 控制執行器。
CBR 會將針對叢集所傳送的要求,平衡分配到在該叢集的埠上所配置的對應伺服器。
這個叢集即為位於 URL 的主機部分中的符號名稱,而且應該符合 ibmproxy.conf 檔的 Proxy 陳述式中所使用的名稱。
如果要定義一個叢集,請發出下列指令:
cbrcontrol cluster add cluster
如果要設定叢集選項,請發出下列指令:
cbrcontrol cluster set cluster option value
如果需要詳細資訊,請參閱配送器及 CBR 的指令參照。
如果您正在執行配置為反向 Proxy 的 Caching Proxy,則在為多重網站進行平衡負載時,您至少須為 Load Balancer 方框的一個網路介面卡,新增各網站的叢集位址。如果不是,則可省略這個步驟。
如果是 AIX、HP-UX、Linux 或 Solaris:如果要將叢集位址加入網路介面中,
請使用 ifconfig 指令。對應於您的作業系統的指令如『表 9.』所示。
AIX | ifconfig interface_name alias cluster_address netmask netmask |
HP-UX | ifconfig lan0:1 cluster_address netmask netmask up |
Linux | ifconfig interface_name cluster_address netmask netmask up |
Solaris 8 和 Solaris 9 | ifconfig addif interface_name cluster_address netmask netmask up |
如果是 Windows 2000:如果要將叢集位址新增到網路介面中,請執行下列動作:
如果是 Windows 2003:如果要將叢集位址新增到網路介面中,請執行下列動作:
埠號是伺服器應用程式所監聽的埠。對於具有正執行 HTTP 資料傳輸的 Caching Proxy 的 CBR 而言,埠號通常是埠 80。
如果要定義您已在前一步驟中定義的叢集埠,請發出下列指令:
cbrcontrol port add cluster:port
如果要設定埠選項,請發出下列指令:
cbrcontrol port set cluster:port option value
如果需要詳細資訊,請參閱配送器及 CBR 的指令參照。
伺服器機器是執行您想要平衡負載之應用程式的機器。 server 是伺服器機器的符號式名稱或帶點十進位數位址。如果要在叢集及埠上定義伺服器,請發出下列指令:
cbrcontrol server add cluster:port:server
叢集上的每一個埠都必須定義一個以上的伺服器,以執行平衡負載。
這是利用 Caching Proxy 配置 CBR 時的關鍵步驟。規則可定義要如何分辨 URL 要求,並將它傳送至伺服器組中的一個適當的伺服器。CBR 所使用的這個特殊規則類型就叫做內容規則。如果要定義內容規則,請發出下列指令:
cbrcontrol rule add cluster:port:rule type content pattern pattern
值 pattern 是正規表示式,它將會與每一個用戶端要求中的 URL 作比較。有關如何配置型樣的進一步資訊,請參閱附錄 B, 內容規則(型樣)語法。
配送器中所定義的部分其他規則類型也可以用在 CBR 中。如果需要詳細資訊,請參閱配置規則型平衡負載。
當用戶端要求符合某個規則後,就會在該規則的伺服器群組中找尋最佳 的伺服器。規則的伺服器組是埠中所定義之伺服器的子集。如果要新增伺服器到規則的伺服器組,請發出下列指令:
cbrcontrol rule useserver cluster:port:rule server
管理程式功能可增進平衡負載。如果要啟動管理程式,請發出下列指令:
cbrcontrol manager start
警告器將提供管理程式有關平衡負載伺服器機器能夠回應要求的詳細資訊。警告器是專用於某個通訊協定。比方說,如果要啟動 HTTP 警告器,請發出下列指令:
cbrcontrol advisor start http port
如果啟動警告器,您可以修改平衡負載決策中所含之警告器資訊的重要性比例。如果要設定叢集比例,請發出 cbrcontrol cluster set cluster proportions 指令。相關資訊,請參閱狀態資訊所給定的重要性比例。
/opt/ibm/edge/lb/servers/lib
/opt/ibm/edge/lb/servers/lib
C:\Program Files\IBM\edge\lb\servers\lib
在新的環境中,啟動 Caching Proxy:從指令提示發出 ibmproxy
本篇提供快速入門配置的相關資訊、規劃注意事項,以及說明配置 Load Balancer 網站選取器元件的方法。 它含有下列各章:
此快速入門範例將說明如何利用網站選取器建立站台名稱配置,並根據用戶端要求所用的網域名稱,以網站選取器來平衡負載一組伺服器間的資料傳輸。
就此快速入門配置範例而言,您將需要下列項目:
在本快速入門範例中,該公司的站台網域是 mywebshop.com。 由於網站選取器將被平衡負載給此網域中一個以上的 URL 或站台,所以您將須定義子網域 (apps.mywebshop.com)。 網站選取器對 apps.mywebservice.com 子網域具有權限。 子網域 apps.mywebshop.com 會包含下列站台名稱:marketing.apps.mywebshop.com 和 developer.apps.mywebshop.com。
apps.mywebshop.com. IN NS siteselector.mywebshop.com
有了網站選取器,您就可以用指令行、配置精靈或圖形式使用者介面 (GUI) 來建立配置。 在本快速入門範例中,相關的配置步驟是以指令行來作示範。
從指令提示,遵循下列步驟:
sscontrol sitename add marketing.apps.mywebshop.com
sscontrol sitename add developer.apps.mywebshop.com
sscontrol server add marketing.apps.mywebshop.com:server1+server2
sscontrol server add developer.apps.mywebshop.com:server3+server4
sscontrol manager start
sscontrol advisor start http marketing.apps.mywebshop.com:80
sscontrol advisor start ftp developer.apps.mywebshop.com:21
網站選取器現在會確定用戶端要求並沒有傳送到失敗的伺服器。
sscontrol nameserver start
您的基本網站選取器配置現在已經完成。
測試配置是否可運作。
sscontrol server status marketing.apps.mywebshop.com:
sscontrol server status developer.apps.mywebshop.com:
各伺服器的點閱項目應加總為連通測試及應用程式要求
如果需要使用網站選取器 GUI 的相關資訊,請參閱GUI及附錄 A, GUI:一般指示。
如果需要使用網站選取器精靈的相關資訊,請參閱配置精靈。
本章將說明在安裝與配置網站選取器元件之前,網路規劃者應該考慮的事項。
本章包括下列各節:
網站選取器可與網域名稱伺服器搭配使用,以所收集的測量值與加權值,來平衡負載一組伺服器。 您可以建立站台配置,藉以依據用戶端要求所使用的網域名稱,來平衡負載一組伺服器間的資料傳輸。
在您的 DNS 環境中設定網站選取器的子網域時,網站選取器須對其本身的子網域具有權限。 例如(請參閱『圖 25.』),貴公司對 company.com 網域已具有權限。 在公司內部,另有一些子網域。 網站選取器將具有 siteload.company.com 的權限,而 DNS 伺服器則仍然保有 atlanta.company.com 和 boston.company.com 的權限。
為使公司的名稱伺服器可將網站選取器辨識為對 siteload 子網域具有權限,則必須在它的指名的資料檔中新增名稱伺服器項目。 比方說,在 AIX 上,名稱伺服器項目可能如下:
siteload.company.com. IN NS siteselector.company.com.
其中的 siteselector.company.com 是網站選取器機器的主機名稱。如果要供 DNS 伺服器使用,還須在任何其他已命名的資料庫檔案中製作相等的項目。
用戶端會向其網路中的名稱伺服器送出要求,為其解析網域名稱。名稱伺服器會將此要求轉送給網站選取器機器。網站選取器接著便將網域名稱解析成 IP 位址,而此位址屬於站台名稱下所配置的某一伺服器。 網站選取器會將選定伺服器的 IP 位址傳回給名稱伺服器。 名稱伺服器則會將 IP 位址傳回給用戶端。 (網站選取器擔當非遞迴(葉節點)名稱伺服器,如果它無法解析網域名稱要求即會傳回錯誤。)
請參閱『圖 5.』,其中所示的站台搭配使用了網站選取器與 DNS 系統,來平衡負載本端及遠端伺服器。
網站選取器是由下列功能所組成:
管理程式的使用是選用性的。不過,如果未使用管理程式,將依據目前的伺服 器加權值,使用已加權的循環排程方式,來執行平衡負載及無可使用的警告器。
透過度量伺服器,網站選取器即可監視伺服器的活動層次,偵測伺服器何時負載最小,以及偵測失效的伺服器。 資料流量可測量伺服器的工作負荷。系統網站選取器管理者可控制在測量負載時所用的測量類型。 您可以配置網站選取器來配合您的環境, 您應考慮的因素如下:存取率、使用者總數及存取類型(例如,短查詢、長時間執行的查詢,或密集載入 CPU)。
平衡負載則是以伺服器加權值為根據。 對網站選取器而言,管理程式會使用四種比例來決定相關的加權值:
CPU 及記憶體的值都是由度量伺服器提供。 因此,建議最好是搭配使用度量伺服器與網站選取器元件。
相關資訊,請參閱度量伺服器。
網站選取器 的四個主要功能(名稱伺服器、管理程式、度量伺服器及警告器) 會彼此互動,以平衡及解析各伺服器之間的進入要求。
使用 DNS 型平衡負載時,須停用名稱解析的快取功能。TTL(存活時間)值會決定 DNS 型平衡負載的效益。TTL 將決定另一個 nameserver 把已解析回應存入快取的時間長短。TTL 值愈小,愈可快速分辨伺服器或網路負載中的微妙變化。 不過,停用快取會使用戶端在進行每一個名稱解析要求時皆須聯繫具有權限之名稱伺服器,因而可能增加用戶端的潛伏期。 選擇 TTL 值時,須務必注意停用快取會對環境造成的影響。 另外還須注意 DNS 型平衡負載極可能會受用戶端的名稱解析快取所限制。
TTL 可用 sscontrol sitename [add | set] 指令來配置。相關資訊,請參閱sscontrol sitename -- 配置站台名稱。
所謂網路接近是指計算各伺服器距要求方用戶端的接近程度。 要決定網路接近,度量伺服器代理程式(須常駐於各個已平衡負載的伺服器上)會傳送一個 ping(連通測試)給用戶端 IP 位址, 並將回應時間傳回給網站選取器。網站選取器將會在平衡負載決策中使用此接近回應。網站選取器會合併網路接近回應值與來自管理程式的加權值,以便為伺服器建立合併的最終加權值。
將網路接近特性搭配網站選取器來使用是選用性的。
網站選取器提供有下列網路接近選項,可依據站台名稱來加以設定:
如果設成 yes,度量伺服器會連通測試用戶端以取得接近回應時間。 名稱伺服器將等待所有的度量伺服器回應或等待逾時時間發生。 然後,名稱伺服器會針對各個伺服器,將接近回應時間與管理程式所算的加權值合併起來,以便為各個伺服器建立「合併加權值」。 網站選取器將向用戶端提供伺服器 IP 位址與最佳的合併加權值。 (根據預期,大部分的用戶端名稱伺服器皆有 5 秒的逾時。 網站選取器會嘗試在超過此逾時時間之前回應。)
如果設成 no,系統將根據現行管理程式加權值來為用戶端提供名稱解析。 然後,度量伺服器會連通測試用戶端以取得接近回應時間。 名稱伺服器則會將接收自度量伺服器的回應時間存入快取。 當用戶端傳來第二個要求時,名稱伺服器將會合併現行管理程式加權值與放在快取中的各伺服器連通測試回應值,以取得具有最佳「合併加權值」的伺服器。網站選取器則會將此伺服器的 IP 位址傳回給用戶端,供其進行第二個要求。
網路接近選項可在 sscontrol sitename [add | set] 指令上設定。 相關資訊,請參閱網站選取器指令參照。
在遵循本章中的步驟之前,請參閱規劃網站選取器元件。 本章將說明如何為 Load Balancer 的網站選取器元件建立基本配置。
作業 | 說明 | 相關資訊 |
---|---|---|
設定網站選取器機器。 | 找出基本需求。 | 設定網站選取器機器 |
將機器設定為要執行平衡負載的功能。 | 設定您的平衡負載配置。 | 步驟 4. 定義平衡負載的伺服器機器 |
如果要針對 Load Balancer 的網站選取器元件建立基本配置,共有四種方法可供配置網站選取器元件:
這是配置網站選取器的最直接方法。指令參數值必須以英文字元輸入。 唯一的例外是主機名稱(例如,站台名稱與伺服器指令中所用者)及檔名。
如果要從指令行啟動網站選取器,請執行下列動作:
您可以輸入 sscontrol 指令參數的精簡版本。 只需要輸入參數的專用字母即可。比方說,如果要取得有關存檔指令的說明,您可以輸入 sscontrol he f 而非 sscontrol help file。
如果要啟動指令行介面:請發出 sscontrol 以接收 sscontrol 指令提示。
如果要結束指令行介面:請發出 exit 或 quit。
用於配置網站選取器的指令可以輸入到某一配置 Script 檔中,然後一起執行。
sscontrol file appendload myscript
sscontrol file newload myscript
如果要將現行配置儲存到 Script 檔(例如:savescript)中,請執行下列指令:
sscontrol file save savescript
此指令會將配置 Script 檔存入 ...ibm/edge/lb/servers/configurations/ss 目錄中。
如果需要 GUI 的一般指示與範例,請參閱圖 42。
如果要啟動 GUI,請遵循下列步驟
如果要從 GUI 來配置網站選取器元件,您必須先在樹狀結構中選取網站選取器。一旦連接到「主機」,即可啟動管理程式。 您也可以建立含有埠及伺服器的站台名稱,並啟動管理程式的警告器。
GUI 可以用來執行任何您會以 sscontrol 指令來執行的作業。 例如,使用指令行來定義站台名稱時,您會輸入 sscontrol sitename add sitename 指令。 如果要從 GUI 來定義站台名稱,您可在名稱伺服器上按一下右鍵,然後在蹦現功能表中,對新增站台名稱按一下左鍵。 在蹦現視窗中輸入站台名稱,然後按一下確定
您可以利用主機蹦現功能表中所顯示的載入新配置(用來完全取代現行配置)以及附加到現行配置(用來更新現行配置)選項, 來載入預先存在的網站選取器配置檔。您應定期使用另存配置檔選項(也在主機蹦現功能表中)將您的網站選取器配置存檔。 位於 GUI 頂端的檔案功能表,可讓您將現行的主機連線存檔,或是復置所有 Load Balancer 元件其現有檔案中的連線。
如果要從 GUI 執行指令:請高亮度顯示 GUI 樹狀結構中的「主機」節點,並從「主機」蹦現功能表中選取傳送指令....。 在指令輸入欄位中,輸入要執行的指令,例如:nameserver status。 您在現行階段作業中所執行的指令,其結果及歷程將出現在所提供的視窗中。
您可以藉由按一下 Load Balancer 視窗右上角的問號圖示,來存取說明。
使用 GUI 的相關資訊,請參閱附錄 A, GUI:一般指示。
如果您打算使用配置精靈,請遵循下列步驟:
ssserver
您可以發出 sswizard,從指令提示啟動這個精靈。 或者,從 GUI 中呈現的網站選取器元件功能表選取「配置精靈」。
網站選取器精靈會一步步地指引您如何建立網站選取器元件的基本配置。 它會詢問您一些關於網路的問題,並指引您設定站台名稱,使得網站選取器能夠平衡負載一組伺服器之間的資料傳輸。
在設定網站選取器機器之前,您必須是 root 使用者(如果是 AIX、HP-UX、Linux 或 Solaris)或是管理者(如果是 Windows)。
您將須用無法解析的 DNS 主機名稱,來作為您所設定之一組伺服器的站台名稱。這個站台名稱即為用戶端存取您的站台時所用的名稱(例如 www.yourcompany.com)。 網站選取器將會用 DNS 在此組伺服器之間,平衡負載這個站台名稱的資料傳輸。
如果要啟動網站選取器伺服器功能,請在指令行上輸入 ssserver。
如果要啟動名稱伺服器,請輸入 sscontrol nameserver start 指令。
選用性地,以 bindaddress 關鍵字啟動「名稱伺服器」,以便只連結到指定的位址。
網站選取器會將傳送給站台名稱的要求,平衡分配到針對其所配置的對應伺服器。
站台名稱是一種不可解析的主機名稱(用戶端會對其提出要求)。 站台名稱必須是完整的網域名稱(例如:www.dnsdownload.com)。 當用戶端要求此站台名稱時,所傳回的將是與站台名稱相關的 IP 位址之一。
如果要定義站台名稱,請發出下列指令:
sscontrol sitename add sitename
如果要設定站台名稱選項,請發出下列指令:
sscontrol sitename set sitename option value
如果需要詳細資訊,請參閱網站選取器指令參照。
伺服器機器是執行您想要平衡負載之應用程式的機器。 server 是伺服器機器的符號式名稱或帶點十進位數位址。如果要從步驟 3 的站台名稱上定義伺服器,請發出下列指令:
sscontrol server add sitename:server
您必須在站台名稱下定義一個以上的伺服器,才可執行平衡負載。
管理程式功能可增進平衡負載。在啟動管理程式功能之前,請確定所有已平衡負載的機器皆安裝了度量伺服器。
如果要啟動管理程式,請發出下列指令:
sscontrol manager start
警告器將提供管理程式有關平衡負載伺服器機器能夠回應要求的詳細資訊。 警告器是專用於某個通訊協定。Load Balancer 提供有許多警告器。 比方說,如果要啟動特定站台名稱的 HTTP 警告器,請發出下列指令:
sscontrol advisor start http sitename:port
有關如何使用系統度量及度量伺服器的詳細資訊,請參閱度量伺服器。
如果啟動警告器,您可以修改平衡負載決策中所內含之警告器(埠)資訊的重要性比例。 如果要設定站台名稱比例,請發出 sscontrol sitename set sitename proportions 指令。相關資訊,請參閱狀態資訊所給定的重要性比例。
建議您搭配使用度量伺服器與網站選取器元件。 有關如何在網站選取器所平衡負載之所有伺服器機器上設定度量伺服器的詳細資訊,請參閱度量伺服器。
本篇提供快速入門配置的相關資訊、規劃注意事項,以及說明配置 Load Balancer Cisco CSS 控制器元件的方法。 它含有下列各章:
此快速入門範例將說明如何使用 Cisco CSS 控制器元件來建立配置。Cisco CSS 控制器會提供伺服器加權資訊,以便在進行平衡負載決策時,輔助 Cisco CSS 交換器決定最佳的伺服器選項。
就此快速入門配置範例而言,您將需要下列項目:
開始配置此範例之前,確定已完成下列步驟:
透過 Cisco CSS 控制器,您可以用指令行或圖形式使用者介面 (GUI) 來建立配置。 在本快速入門範例中,相關的配置步驟是以指令行來作示範。
從指令提示,遵循下列步驟:
ccocontrol consultant add SwConsultant-1 address 9.17.32.50 community public
如此即會檢查 Cisco CSS 交換器的連通性,而且會驗證 SNMP 讀/寫團體名稱是否正確運作。
ccocontrol ownercontent add SwConsultant-1:OwnerContent-1 ownername OwnerName-1 contentrule ContentRule-1
這些值必須符合 Cisco CSS 交換器上的對應屬性。
Cisco CSS 控制器這時可透過 SNMP 與交換器通訊,並會從交換器取得所需的配置資訊。 經過此步驟後,您應該會在 Cisco CSS 控制器中看到相關資訊,指出 Cisco CSS 交換器上已配置哪些服務給指定的 ownercontent。
ccocontrol ownercontent metrics SwConsultant-1:OwnerContent-1 activeconn 45 connrate 45 http 10
此指令將會配置您要從服務收集哪些度量資訊及比例,以便用於加權值計算。 所有度量的合計比例須等於 100。
ccocontrol consultant start SwConsultant-1
透過此指令,所有的度量收集器將會啟動,服務加權值計算也會展開。Cisco CSS 控制器會將其服務加權值計算的結果透過 SNMP 傳給 Cisco CSS 交換器。
您現在已完成基本 Cisco CSS 控制器配置。
測試配置是否可運作。
如果需要使用 Cisco CSS 控制器 GUI 的相關資訊,請參閱GUI及附錄 A, GUI:一般指示。
本章將說明在安裝與配置 Cisco CSS 控制器元件之前,網路規劃者所應考慮的事項。
本章包含:
Cisco CSS 控制器可管理一組交換器顧問。每一顧問會決定由單一交換器所平衡負載之伺服器的加權值。 由顧問提供加權值的交換器則會經過配置來進行內容平衡負載。 顧問會透過 SNMP 通訊協定將計算出來的加權值傳給交換器。 當平衡負載演算法為加權環繞式時,交換器會用加權值來針對其所平衡負載的內容規則選取服務程式。 要決定加權值時,顧問會用到下列的一或多項資訊:
有關內容平衡負載的說明與如何配置交換器的詳細資訊,請參閱 Cisco Content Services Switch Getting Started Guide。
為使顧問取得所需資訊以決定服務加權值,您必須具有:
如『圖 27.』中所示,我們建議應將顧問連結到其為之提供加權值的交換器後側的網路。 要啟用控制器、交換器及服務程式之間的連通性,有些參數必須在交換器上配置,而有些則須在控制器上配置。
在『圖 27.』中:
如果需要配置 VLAN 及交換器 IP 路由的詳細資訊,請參閱 Cisco Content Services Switch Getting Started Guide。
您可以使用下列任何介面來管理 Cisco CSS 控制器:
如果要進行遠端管理,在『圖 28.』中:
詳細資訊,請參閱 Cisco Content Services Switch Getting Started Guide。
圖 28. 顧問範例(具有選用的高可用性友機),配置在交換器之後,而使用者介面在交換器前方
控制器高可用性可加強 Load Balancer 的容錯功能。 控制器高可用性的設計中心為封包轉送高可用性,其包括兩個同時執行的控制器,一個扮演主要角色,另一個則扮演次要角色。
每一個控制器都是以相同的交換器資訊來配置的,而且一次僅有一個作用中的控制器。這表示,如同高可用性邏輯所決定的一般,僅作用中控制器會利用新的加權值計算及更新交換器。
控制器高可用性使用簡單使用者資料圖通訊協定 (UDP) 封包,透過您配置的位址及埠, 與它的友機通訊。當資訊屬於高可用性(連繫資訊)時,這些封包會用來在控制器之間交換此資訊,並且決定友機控制器可用性(活動訊號)。如果備用控制器判定作用中控制器因為任何理由而發生故障, 則備用控制器將從故障的作用中控制器接管。然後,備用控制器將變成作用中控制器,而且開始以新的加權值計算及更新交換器。
除了友機可用性之外,您可以配置連繫目標以取得高可用性。 控制器高可用性會使用連繫資訊,來判定哪一個控制器是作用中, 哪一個是備用的。作用中控制器就是可以連通測試多個目標且可以從它的友機連繫的控制器。
請參閱高可用性,以取得進一步資訊。
如果顧問判定一個服務無法使用時,它會在交換器上暫停該服務,以防止交換器對要求進行平衡負載時會考慮使用此伺服器。 當服務再次可用時,顧問將在交換器上啟動服務,以便在對要求進行平衡負載時考慮使用它。
Cisco CSS 控制器會將登錄項目傳遞到下列日誌:
這些日誌位於下列目錄:
在每一種日誌中,您都可設定日誌大小與記載層次。請參閱使用 Load Balancer 日誌,以取得進一步資訊。
在遵循本章中的步驟之前,請參閱規劃 Cisco CSS 控制器元件。本章將說明如何為 Load Balancer 的 Cisco CSS 控制器元件建立基本配置。
開始本章所列的任何配置方法之前:
作業 | 說明 | 相關資訊 |
---|---|---|
設定 Cisco CSS 控制器機器 | 找出基本需求 | 設定 Cisco CSS 交換器之控制器機器 |
測試您的配置 | 確認配置是否可運作 | 測試您的配置 |
如果要建立 Load Balancer 的 Cisco CSS 控制器元件的基本配置,其方法有三種:
這是配置 Cisco CSS 控制器的最直接方法。本手冊中的程序是假設使用的是指令行。指令參數值必須以英文字元輸入。唯一的例外是主機名稱(例如,用於 consultant add 指令)及檔名。
如果要從指令行啟動 Cisco CSS 控制器,請執行下列動作:
註:
您可以輸入縮寫版的 ccocontrol 指令參數。 只需要輸入參數的專用字母即可。比方說,如果要取得有關存檔指令的說明, 您可以輸入 ccocontrol he f 而非 ccocontrol help file。
如果要啟動指令行介面:請發出 ccocontrol 以接收 ccocontrol 指令提示。
如果要結束指令行介面:請發出 exit 或 quit。
目前定義的配置可以儲存到 XML 檔。如此可讓您在稍後想要快速地重新建立配置時載入配置。
如果要執行 XML 檔(例如,myscript.xml)的內容,請使用下列指令之一:
ccocontrol file save XMLFilename
ccocontrol file load XMLFileName
唯有在您先前已完成存檔時,才可使用 load 指令。
XML 檔儲存在 ...ibm/edge/lb/servers/configurations/cco/ 目錄。
如果需要圖形式使用者介面 (GUI) 的一般指示與範例,請參閱圖 42。
如果要啟動 GUI,請遵循下列步驟
ccoserver.
如果要透過 GUI 來配置 Cisco CSS 控制器元件:
您可以使用 GUI 來執行任何您會以 ccocontrol 指令來執行的作業。例如:
如果要從 GUI 執行指令:
您在現行階段作業中所執行的指令的結果及歷程,將出現在「結果」方框中。
如果要存取說明,可按一下 Load Balancer 視窗右上角的問號圖示。
使用 GUI 的相關資訊,請參閱附錄 A, GUI:一般指示。
在設定 Cisco CSS 控制器機器之前,您必須是 root 使用者(針對 AIX、HP-UX、Linux 或 Solaris)或是管理者(針對 Windows)。
顧問 須能連結至 Cisco CSS 交換器並為 Cisco CSS 交換器管理者。
配置顧問時,您必須配置位址及 SNMP 團體名稱,使其符合 Cisco CSS 交換器上的對應屬性。
關於本程序中所使用的指令的解說,請參閱Cisco CSS 控制器的指令參照。
如果尚未執行 ccoserver,請以 root 身分輸入 ccoserver 來加以啟動。
輸入 ccocontrol 以啟動指令行介面。
您必須配置交換器位址與 SNMP 團體名稱。這些值必須符合 Cisco CSS 交換器上的對應屬性。
如果要新增顧問,請輸入:
consultant add switchConsultantID address switchIPAddress community communityName
所謂 ownercontent 是一擁有者的內容規則表示法,並且是在 Cisco CSS 交換器上所定義。擁有者名稱及內容規則名稱皆須符合交換器上所定義的內容。
如果要定義 ownercontent,請輸入:
ownercontent add switchConsultantID:ownercontentID ownername ownerName contentrule contentRuleName
定義好 ownercontent 之後,顧問便會藉由擷取交換器上所配置的服務程式,來完成配置。請比較交換器與顧問兩者的配置,以確定服務程式相符。
度量是決定服務加權值與相關比例(某一度量相較於另一度量的重要性)時所用的單位,它可以是連線資料度量、應用程式警告器度量及度量伺服器度量的任意組合。比例的合計必須始終為 100。
當 ownercontent 完成配置後,預設的度量將會定義為 activeconn 和 connrate。如果您想要額外的度量,還是不同於預設值的度量,請輸入:
ownercontent metrics switchConsultantID:ownercontentID metric1 proportion1 metric2 proportion2...metricN proportionN
如果要啟動顧問,請輸入:
consultant start switchConsultantID
如此即會啟動度量收集器,並開始進行加權計算。
如果系統度量已在步驟 5 中定義,即必須在服務程式機器上啟動度量伺服器。有關使用度量伺服器的資訊,請參閱度量伺服器。
如果要配置高可用性,請輸入:
highavailability add address IPaddress partneraddress IPaddress port 80 role primary
在高可用性的環境下,您可以配置多重交換器。為確定在某一交換器接管另一交換器時皆有加權資訊可用,須配置 Cisco CSS 控制器使其提供加權給所有交換器及其備份。
如果需要如何使用及配置控制器高可用性的詳細資訊,請參閱Cisco CSS 控制器及 Nortel Alteon 控制器的進階特性。
測試配置是否可運作。
本篇提供快速入門配置的相關資訊、規劃注意事項,以及說明配置 Load Balancer Nortel Alteon 控制器元件的方法。 它含有下列各章:
此快速入門範例將說明如何使用 Nortel Alteon 控制器元件來建立配置。Nortel Alteon 控制器提供伺服器加權值給 Nortel Alteon Web 交換器。這些加權值是用來選取交換器將對其進行平衡負載的服務的伺服器。
就此快速入門配置範例而言,您將需要下列項目:
開始配置此範例之前,確定已完成下列步驟:
透過 Nortel Alteon 控制器,您可以用指令行或圖形式使用者介面 (GUI) 來建立配置。 在本快速入門範例中,相關的配置步驟是以指令行來作示範。
從指令提示,遵循下列步驟:
nalcontrol consultant add Consultant-1 address 9.87.32.50
如此即會檢查與 Nortel Alteon Web 交換器的連通性,而且會驗證 SNMP 團體名稱是否正確運作。
nalcontrol service add Consultant-1:Service-1 vsid 1 vport 80
Nortel Alteon 控制器這時將透過 SNMP 與交換器通訊,並會從交換器取得所需的配置資訊。經此步驟之後,您應該會在 Nortel Alteon 控制器中看到相關資訊,指出 Nortel Alteon Web 交換器上已配置哪些伺服器給服務程式。
nalcontrol service metrics Consultant-1:Service-1 http 40 activeconn 30 connrate 30
此指令將會配置在加權值計算期間,您要從伺服器收集哪些度量資訊,以及那些度量的相對重要性。
nalcontrol consultant start Consultant-1
透過此指令,所有的度量收集器將會啟動,伺服器加權值計算也會展開。Nortel Alteon 控制器會將其伺服器加權值計算的結果透過 SNMP 傳給 Nortel Alteon Web 交換器。
您的基本 Nortel Alteon 控制器配置現在已經完成。
測試配置是否可運作。
如果需要使用 Nortel Alteon 控制器 GUI 的相關資訊,請參閱GUI及附錄 A, GUI:一般指示。
本章將說明在安裝與配置 Nortel Alteon 控制器元件之前,網路規劃者所應考慮的事項。
本章包含:
Nortel Alteon 控制器可管理一組交換器顧問。每一種顧問會決定由單一交換器所平衡負載之伺服器的加權值。 由顧問提供加權值的交換器則會經過配置來進行伺服器平衡負載。 顧問會透過 SNMP 通訊協定將計算出來的加權值傳給交換器。 交換器會用加權值來針對其所平衡負載的服務程式選取伺服器。 要決定加權值時,顧問會用到下列的一或多項資訊:
有關伺服器平衡負載的說明與如何配置交換器的詳細資訊,請參閱您的 Nortel Alteon Web OS Application Guide。
為使顧問取得所需資訊以決定伺服器加權值,您必須具有:
顧問可以連結至網路,且位於其負責提供加權值之交換器的前方或後方。 要啟用控制器、交換器及伺服器之間的連通性,有些參數必須在交換器上配置,有些則在控制器上配置。
在圖 30 中:
有關配置 VLAN 及交換器 IP 路由的詳細資訊,請參閱您的「Nortel Alteon Web OS Application Guide」或「指令參考手冊」。
在圖 31 中:
您可以使用下列任何介面來管理 Nortel Alteon 控制器:
在『圖 32.』中:
圖 32. 顧問位於交換器後方而使用者介面位於交換器前方的範例
當一顧問針對交換器所平衡負載且其負責提供服務的伺服器來計算加權值時,顧問會停用交換器的正常伺服器狀況檢查,以減少不必要的伺服器資料傳輸。 當顧問停止為服務程式提供加權值時,顧問會重新啟用狀況檢查。 伺服器狀況檢查間隔對應於 MIB 變數 slbNewCgRealServerPingInterval。
如果顧問判定一伺服器無法使用時,它會將伺服器的最大連線數設成零,以防止交換器對要求進行平衡負載時會考慮使用此伺服器。 當伺服器再度可供使用時,最大連線數即會復置為原始值。 伺服器最大連線數目值對應於 MIB 變數 slbNewCfgRealServerMaxCons。
當計算實際伺服器的加權值時,將設定伺服器的加權值。伺服器加權值對應於 MIB 變數 slbNewCfgRealServerWeight。
交換器可讓某些伺服器的配置作為其他伺服器的備份。 如果交換器決定一個具有備份的伺服器無法使用時,該交換器可能開始傳送要求給這部備份機器。 當顧問為具有備份之服務程式計算加權值時,它會同時計算備份與主要伺服器的加權值,以便在需要備份機器時,可提供加權值供伺服器選取。
備份伺服器的加權值可能會高於主伺服器的加權值。 這是因為並無要求會轉送給它,因此它會具有低負載,直到交換器決定加以使用。
如果要避免閒置伺服器資源,常規是指定給某個服務的伺服器將作為指定給不同服務的伺服器的備份。當實施如此的配置時,避免指定同一個實際伺服器給多個同時作用中的服務。 如果發生這種情況,伺服器所屬的每一個服務的顧問將改寫伺服器的加權值。
每一個實際伺服器都是以整數加以識別,而且都具有加權值及 IP 位址屬性。 兩個實際伺服器可能具有同一個 IP 位址。 在這種情況中,兩個實際伺服器會與同一實際伺服器機器產生關聯。識別為備份的實際伺服器應該僅配置成單一服務的備份。 如果相同的實體伺服器機器將為已指定給多個服務的伺服器備份, 您必須為每一個服務配置它們一次,並且給與伺服器每一個服務所專用的伺服器識別。這容許備份對於它們正要備份的每一個服務,具有已指定給它們的唯一加權值。
交換器上的伺服器可被配置為多個群組的一部分,而此交換器上的群組則可配置來服務多重服務程式。
由於可對多重服務配置相同的伺服器,所以將對伺服器是其一部分的每一個服務計算加權值。 因此,加權值可能會不正確,因為任何時候都不知道該加權值所適用的服務。
此外,如果顧問正在決定某一服務而非另一個的加權值,顧問未計算其加權值的服務很可能已停用伺服器狀況檢查功能。 這時,該交換器可能不會正確地平衡負載該服務程式。
由於有這些可能性,您必須確定未將實際伺服器指定給要進行平衡負載的多重服務。 這不表示同一伺服器機器無法服務多個服務的要求。 它表示具有唯一識別碼的實際伺服器必須在交換器上加以配置,然後伺服器機器就可以處理每一個服務的要求。
Nortel Alteon 控制器及 Nortel Alteon Web 交換器兩者皆具有高可用性功能。
您可以配置兩個控制器使其在快速待命配置下於不同的系統上執行。
當您配置兩個或以上的交換器作為虛擬 IP 介面路由器 (VIR),或作為虛擬 IP 伺服器路由器 (VSR) 時,這些交換器可互為彼此的備份。
一個顧問(受控制器管理)只為一個交換器提供加權值。 由於備份交換器可能隨時會接管主要機器,因此您必須配置控制器,使其對有可能成為主要機器的各個交換器皆設有一個顧問。 在此方式下,當某一伺服器成為主要機器時,即可確保其將會取得加權值。
此外,當控制器連結至 VIR 時,如果其與某一交換器斷線,將確保能與伺服器、交換器及備份控制器通訊。
有關交換器之高可用性的詳細資訊,請參閱您的「Nortel Alteon Web OS Application Guide」。
控制器高可用性可加強 Load Balancer 的容錯功能。 控制器高可用性的設計中心為傳統封包轉送高可用性,其包括兩個同時執行的控制器,一個扮演主要角色,另一個則扮演次要角色。
每一個控制器都是以相同的交換器資訊來配置的。 類似於傳統的高可用性,一次僅能有一個作用中的控制器。 這表示,如同高可用性邏輯所決定的一般,僅作用中控制器會利用新的加權值計算及更新交換器。
控制器高可用性使用簡單使用者資料圖通訊協定 (UDP) 封包,透過您配置的位址及埠, 與它的友機通訊。當資訊屬於高可用性(連繫資訊)時,這些封包會用來在控制器之間交換此資訊,並且決定友機控制器可用性(活動訊號)。如果備用控制器判定作用中控制器因為任何理由而發生故障, 則備用控制器將從故障的作用中控制器接管。然後,備用控制器將變成作用中控制器,而且開始以新的加權值計算及更新交換器。
除了友機可用性之外,您可以配置連繫目標以取得高可用性。 如同傳統高可用性一般,控制器高可用性會使用連繫資訊,來判定哪一個控制器是作用中, 哪一個是備用的。作用中控制器就是可以連通測試多個目標且可以從它的友機連繫的控制器。
請參閱高可用性,以取得進一步資訊。
在『圖 34.』中:
圖 34. Nortel Alteon 控制器及 Nortel Alteon Web 交換器高可用性的範例
為避免加權值的變更過於頻繁,您可以為顧問配置靈敏度臨界值。 靈敏度臨界值可指定當變更加權值之前,新加權值及舊加權值之間須發生的變更數。 請參閱靈敏度臨界值,以取得進一步資訊。
如果交換器太忙於更新加權值,您可以增加顧問休眠時間,來減少控制器與伺服器及交換器之間的資料傳輸。 休眠時間設定不同加權設定循環間的休眠秒數。
如果伺服器處理太多來自顧問的監視要求,您可以修改度量收集器的休眠時間。 詳細說明,請參閱加權值計算休眠時間。
Cisco CSS 控制器會將登錄項目傳遞到下列日誌:
這些日誌位於下列目錄:
在每一種日誌中,您都可設定日誌大小與記載層次。請參閱使用 Load Balancer 日誌,以取得進一步資訊。
在遵循本章中的步驟之前,請參閱規劃 Nortel Alteon 控制器元件。本章將說明如何為 Load Balancer 的 Nortel Alteon 控制器元件建立基本配置。
開始本章所列的任何配置方法之前,請確定已適當地配置您的 Nortel Alteon Web 交換器及所有伺服器機器。
表 12. Nortel Alteon 控制器元件的配置作業
作業 | 說明 | 相關資訊 |
---|---|---|
配置 Nortel Alteon Web 交換器及伺服器 | 配置交換器。 | 配置交換器,第 (SETSWITCH) 頁 |
設定 Nortel Alteon 控制器機器 | 配置控制器。 | 步驟 1. 啟動伺服器功能 |
測試您的配置 | 確認配置是否可運作 | 測試您的配置 |
如果要建立 Load Balancer 的 Nortel Alteon 控制器元件的基本配置,其方法有三種:
這是配置 Nortel Alteon 控制器的最直接方法。本手冊中的程序是假設使用的是指令行。
如果要從指令行啟動 Nortel Alteon 控制器,請執行下列動作:
註:
您可以使用縮寫版的 nalcontrol 指令參數,方法是輸入代表參數的唯一字母。例如,要取得存檔指令的說明,您可以輸入 nalcontrol he f 而非 nalcontrol help file。
如果要結束指令行介面:輸入 exit 或 quit。
註:
目前定義的配置可以儲存到 XML 檔。如此可讓您在稍後想要快速地重新建立配置時載入配置。
如果要執行 XML 檔(例如,myscript.xml)的內容,請使用下列指令:
nalcontrol file save XMLFilename
唯有在您先前已完成存檔時,才可使用 load 指令。
nalcontrol file load XMLFileName
唯有在您先前已完成存檔時,才可使用 load 指令。
XML 檔儲存在 ...ibm/edge/lb/servers/configurations/nal/ 目錄。
如果需要圖形式使用者介面 (GUI) 的範例,請參閱『圖 42.』。
啟動 GUI 的程序如下:
如果要透過 GUI 來配置 Nortel Alteon 控制器元件:
GUI 可以用來執行任何您會以 nalcontrol 指令來執行的作業。例如:
如果要從 GUI 執行指令:
您在現行階段作業中所執行的指令的結果及歷程,將出現在「結果」方框中。
如果要存取「說明」,可按一下 Load Balancer 視窗右上角的問號圖示。
使用 GUI 的相關資訊,請參閱附錄 A, GUI:一般指示。
關於本程序中所使用的指令的解說,請參閱Nortel Alteon 控制器的指令參照。
在設定 Nortel Alteon 控制器機器之前:
如果尚未執行 nalserver,請輸入 nalserver 作為根目錄來加以啟動。
如果要新增交換器顧問,請輸入:
consultant add switchconsultantID address switchIPAddress
如果要新增服務程式,請輸入:
service add switchConsultantID:serviceID vsid virtualServerID vport virtualPortNumber
服務是由虛擬伺服器識別碼 (VSID) 與虛擬埠 (VPORT) 號碼所識別, 這兩者皆與先前在交換器上所配置的虛擬伺服器有關聯。
度量是用來決定伺服器加權值的資訊。每一個度量都指定有一個比例,以指出它相對於其他度量的重要性。您可以配置任何度量組合:連線資料度量、應用程式警告器度量及度量伺服器度量。比例的合計必須始終為 100。
當服務程式完成配置後,預設的度量將會定義為 activeconn 和 connrate。如果您想要額外的度量,還是不同於預設值的度量,請輸入:
service metrics switchConsultantID:serviceID metricName 50 metricName2 50
如果要啟動顧問,請輸入:
consultant start switchConsultantID
如果要配置高可用性,請輸入:
highavailability add address IPaddress partneraddress IPaddress port 80 role primary
如果需要如何使用及配置控制器高可用性的詳細資訊,請參閱Cisco CSS 控制器及 Nortel Alteon 控制器的進階特性。
如果系統度量已在步驟 5 中定義,即必須在服務程式機器上啟動度量伺服器。有關使用度量伺服器的資訊,請參閱度量伺服器。
如果您修改了 Nortel Alteon Web 交換器上的配置,即可重新整理控制器配置。類型:
service refresh
我們建議在您重新整理配置之前,應該先停止顧問。在 refresh 指令更新配置後,重新啟動顧問。
測試配置是否可運作。
本篇提供 Load Balancer 可用功能及進階配置特性的相關資訊。它含有下列各章:
本章將說明如何配置平衡負載參數,以及如何設定 Load Balancer 的管理程式、警告器及度量伺服器等功能。
作業 | 說明 | 相關資訊 |
---|---|---|
可選擇是否要變更平衡負載設定 |
您可以變更下列平衡負載設定:
| 將 Load Balancer 所提供的平衡負載最佳化 |
在管理程式將伺服器標示為關閉/開啟時,使用 Script 來產生警示或記錄伺服器失敗 | Load Balancer 提供了使用者跳出程式,可在管理程式將伺服器標示為關閉/開啟時,觸發可由您自訂的 Script | 使用 Script 產生警示或記錄伺服器失敗 |
使用警告器 | 說明及列出警告器,藉以報告伺服器的特定狀態 | 警告器 |
使用 HTTP 警告器要求/回應 (URL) 選項 | 定義唯一的用戶端 HTTP URL 字串,專用於您想在機器上查詢的服務 | 使用要求/回應 (URL) 選項,配置 HTTP 警告器 |
使用自我警告器 | 提供 Load Balancer 雙層 WAN 配置中的後端伺服器負載狀態 | 在雙層 WAN 配置中使用自我警告器 |
建立自訂警告器 | 說明如何撰寫您自訂的警告器 | 建立自訂(可自訂的)警告器 |
使用度量伺服器代理程式 | 度量伺服器會提供系統負載資訊給 Load Balancer | 度量伺服器 |
使用工作量管理程式警告器 (WLM) | WLM 警告器會提供系統負載資訊給 Load Balancer | 工作量管理程式警告器 |
Load Balancer 的管理程式功能將依據下列設定,進行平衡負載:
您可以變更這些設定,使您的網路的平衡負載最佳化。
管理程式可以在它的加權決策中使用下列部分或所有的外部因素:
或者 --
CPU:每一個平衡負載伺服器機器上使用中 CPU 的百分比(從度量伺服器輸入)。僅限網站選取器,此比例出現代替作用中連線比例直欄。
或者 --
記憶體:每一個平衡負載伺服器上使用中記憶體的百分比(從度量伺服器輸入)。僅限網站選取器,此比例出現代替新連線比例直欄。
與每一個伺服器的現行加權及計算所需的其他資訊一起,管理程式將自執行器取得前兩個值(作用中連線及新連線)。這些值是依據執行器內部所產生及儲存的資訊而定。
您可在每個叢集(或站台名稱)的基礎上,變更這四個值的相對重要性比例。 將比例視為百分比;相對比例的和必須等於 100%。預設比例為 50/50/0/0, 這個比例會忽略警告器及系統資訊。在您的環境中,可能需要嘗試不同的比例,以發現提供最佳效能的組合。
在新增 WLM 警告器時,如果系統度量管理程式是 0,則管理程式會將此值增加為1。因為相對比例的總和必須為 100,最高值則減少 1。
現行連線的數目取決於用戶端的數目, 以及使用進行平衡負載作業的伺服器機器所提供之服務所需的時間長度。 如果用戶端連線是快速的(如使用 HTTP GET 來伺服的小 Web 網頁), 則現行連線的數目將相當少。如果用戶端連線是較慢的(如資料庫查詢), 則現行連線的數目將比較高。
您應避免將作用中及新連線的比例值設得太低。除非您已先分別將這兩個值至少設定為 20,否則您會停用平衡及平順負載。
如果要設定重要性比例值, 請使用 dscontrol cluster set cluster proportions 指令。請參閱dscontrol cluster -- 配置叢集,以取得進一步資訊。
加權是由管理程式函數依據執行器中的內部計數器、來自警告器的反饋信息以及來自系統監視程式(例如度量伺服器)的反饋信息所設定的。如果您要在執行管理程式時,以手動方式設定加權,請在 dscontrol 伺服器指令上,指定 fixedweight 選項。如果需要 fixedweight 選項的說明,請參閱管理程式固定加權。
加權將引用至埠上的所有伺服器中。對任何特殊埠而言,將依據它們彼此的相對加權, 在伺服器之間分送要求。比方說,如果有一個伺服器設定為加權 10,而另一個為 5,則設定為 10 的伺服器取得的要求數目應該是設定為 5 的伺服器的兩倍。
如果要指定適用於任何伺服器的最大加權界限,請使用 dscontrol port set port weightbound weight 指令。 這個指令將影響每個伺服器可取得的要求多寡。如果您將最大加權設定為 1, 則在靜止時,所有伺服器可具有加權 1,或在中斷連接時,可具有 -1。 當您增加這個數目時,伺服器的加權值的差異將增加。在最大加權為 2 時, 某個伺服器所取得的要求數目可以是另一個的兩倍。在最大加權為 10 時, 某個伺服器所取得的要求數目可以是另一個的十倍。預設最大加權為 20。
如果警告器發現伺服器已關閉,便會告訴管理程式, 而將伺服器的加權設定為零。因此,只要加權維持在零, 執行器就不會將任何其他的連線傳送到該伺服器。 如果在變更加權之前,該伺服器已有現行連線,則會讓它們正常地完成
如果沒有管理程式,警告器將無法執行且無法偵測伺服器是否已關閉。如果您選擇執行警告器,但不要管理程式去更新您為特定伺服器設定的加權,則在 dscontrol server 指令上使用 fixedweight 選項。例如:
dscontrol server set cluster:port:server fixedweight yes
將 fixedweight 設定為 yes 之後,使用 dscontrol server set weight 指令設定您所需要的加權值。 管理程式在執行時,伺服器加權值會維持固定,直到您發出另一個 dscontrol 伺服器指令將 fixedweight 設為 no 為止。 如果需要詳細資訊,請參閱dscontrol server -- 配置伺服器。
如果 TCP 重設為啟動的,則配送器在用戶端具有與伺服器(加權值為 0)的連線時,會傳送 TCP 重設到用戶端。如果伺服器配置為 0 或警告器將它標示為當機時,伺服器的加權值可能為 0。TCP 重設會導致立即關閉連線。 這項特性對長效的連線很有用,它加速了用戶端重建失敗連線的能力。如果要啟動 TCP 重設,請使用 dscontrol port add|set port reset yes 指令。重設的預設值為 no。
與 TCP 重設一起用來配置的有用特性是 advisor retry。 利用這項特性,警告器具有能力在將伺服器標示為當機之前重試連線。如此可以協助防止警告器貿然地將伺服器標示為當機,導致連線重設的問題。那只是因為警告器第一次嘗試失敗並不必然表示現存的連線也失敗。相關資訊,請參閱警告器重試。
為使整體效能最佳化,會限制管理程式與執行器的互動次數。 您可輸入 dscontrol manager interval 和 dscontrol manager refresh 指令,以變更此間隔。
管理程式間隔會指定管理程式多久將更新執行器在遞送連線時所使用的伺服器加權。 如果管理程式間隔太短,表示效能不佳,這是因為管理程式常常岔斷執行器所致。 如果管理程式間隔太高,表示執行器的遞送要求不是依據精確、最新的資訊而定。
比方說,如果要將管理程式間隔設定為 1 秒時,請輸入下列指令:
dscontrol manager interval 1
管理程式重新整理週期會指定管理程式隔多久將要求執行器提供狀態資訊。重新整理週期是依據間隔時間而定。
比方說,如果要將管理程式重新整理週期設定為 3 時,請輸入下列指令:
dscontrol manager refresh 3
這個指令將使得管理程式在要求執行器提供資訊之前,先等待 3 個間隔。
您還可使用其他的方法,最佳化您伺服器的平衡負載。為了保持高速運作,只有在加權發生了重大變更時,才會更新伺服器的加權。 當伺服器狀態僅有些許變更或沒有變更時, 持續地更新加權,將會產生不必要的額外執行時間。 當埠上所有伺服器總加權的百分比加權在變更後大於靈敏度臨界值時, 管理程式將會更新執行器用來分送連線的加權。例如, 假設總加權從 100 變更為 105。變更是 5%。如果預設的靈敏度臨界值是 5, 管理程式將不會更新執行器所使用的加權,因為百分比變更不在臨界值之上。不過, 如果總加權從 100 變更為 106,管理程式就會更新加權。 如果要將管理程式的靈敏度臨界值設定為預設值(例如 6)以外的值,請輸入下列指令:
dscontrol manager sensitivity 6
多數情況下,您可以不必更改這個值。
管理程式將以動態方式來計算伺服器加權。因此, 更新過的加權可能會與先前的加權有很大的不同。在大多數的情況下, 都將不會發生問題。然而,有時候可能會在平衡負載要求的方式上產生變動。 例如,一個伺服器可能會因為高加權所致, 而收到大多數的要求。管理程式將看到伺服器具有相當多的現行連線,使得伺服器的回應變得緩慢。 然後,它會將加權移至可用的伺服器,但在該處也會發生相同的效果, 造成資源的浪費。
如果要解決這個問題時,管理程式將使用平順指數。 平順指數將限制伺服器加權可變更的數量,因此可以有效地緩和在分送要求時所產生的變更。 較高的平順指數將使伺服器加權的變更不大。較低的指數將使伺服器加權的變更非常大。平順指數的預設值為 1.5。在 1.5 時,伺服器加權是相當動態的。指數 4 或 5 將使得加權更穩定。 比方說,如果要將平順指數設為 4 時,請輸入下列指令:
dscontrol manager smoothing 4
多數情況下,您可以不必更改這個值。
Load Balancer 提供使用者跳出程式,觸發您可自訂的 Script。 您可建立執行自動化動作的 Script,例如,當管理程式中斷連接伺服器,或單純記錄失敗事件時,對管理者的警示。您可自訂的範例 Script,位於 ...ibm/edge/lb/servers/samples 安裝目錄中。為了執行檔案,您必須將它們移至 ...ibm/edge/lb/servers/bin 目錄,並移除 "sample" 副檔名。下列為提供的範例 Script:
在使用 serverUp 和 serverDown Script 時,請考量以下事項:
警告器是 Load Balancer 內部的代理程式。其目的是要評估伺服器機器的狀況及資料流量。 它們會嘗試性地讓類用戶端與伺服器交換,以完成評估。 警告器可以 被考慮為應用程式伺服器的輕裝備用戶端。
此產品有提供數個特定通訊協定的警告器,可供最常用的通訊協定使用。 然而,將提供的所有警告器與 Load Balancer 的每一個元件一起使用是無意義的。(例如,您不會將 Telnet 警告器與 CBR 元件一起使用。)Load Balancer 亦支援讓使用者撰寫其自己之警告器的『自訂警告器』概念。
在 Linux 上使用連結特定伺服器應用程式的限制: 當使用連結特定應用程式(包括如 CBR 或網站選取器等的其他 Load Balancer 元件)平衡負載伺服器,且它們正連結到叢集 IP 位址時,Load Balancer 不支援警告器的使用。
在 HP-UX 和 Solaris 上,使用連結特定之伺服器應用程式的限制: 如果使用 arp punlish 代替 ifconfig alias 指令,則當使用連結特定應用程式(包括如 CBR 或網站選取器等的其他 Load Balancer 元件)平衡負載伺服器,且它們正連結到叢集 IP 位址時,Load Balancer 將 支援警告器的使用。 然而,在對連結特定伺服器應用程式使用警告器時,請勿在具有伺服器應用程式相同的機器上並列 Load Balancer。
-DND_ADV_SRC_ADDR=dotted-decimal_IP_address
警告器會定期開啟與每一個伺服器的 TCP 連線,並且將要求訊息傳送至伺服器。 訊息的內容會特別針對在伺服器上執行的通訊協定。 例如,HTTP 警告器將 HTTP 『HEAD』 要求傳送至伺服器。
警告器會傾聽來自伺服器的回應。在取得回應之後,警告器就會建立伺服器的指示。 為了要計算這個『資料流量』的值,大部分的警告器都會測量伺服器回應的時間, 然後使用這個值(以毫秒計)來作為資料流量。
之後,警告器便會將資料流量值報告給管理程式功能, 在管理程式報告中,此值會出現在『埠』直欄中。 然後管理程式會從其所有的來源,根據分配比例,計算集成加權值, 並且將這些加權值設定在執行器功能中。 「執行器」會使用這些加權值,為新進入的用戶端連線平衡負載。
如果警告器判定伺服器運作正常,就會報告一個非零值的正資料流量數給「管理程式」。 如果警告器判定伺服器並沒有在運作,就會傳回一個特殊的資料流量值 (-1)。 「管理程式」及「執行器」將不會再轉送任何進一步的連線給該伺服器,直到該伺服器恢復運作為止。
您可在所有叢集(群組警告器)之間,啟動特定埠的警告器。或者,您可選擇在相同埠但在不同叢集上執行不同的警告器(叢集/站台特定警告器)。比方說,如果您的 Load Balancer 具有三個已定義的叢集(clusterA、clusterB、clusterC),每一個都有埠 80,您可執行下列作業:
dscontrol advisor start http clusterA:80此指令將啟動 clusterA 埠 80 上的 HTTP 警告器。HTTP 警告器將通知連接於 clusterA 埠 80 上的所有伺服器。
dscontrol advisor start ADV_custom 80此指令將啟動 clusterB 和 clusterC 埠 80 上的 ADV_custom 警告器。您自訂的警告器將通知連接於 clusterB 和 clusterC 上的所有伺服器。(如果需要自訂警告器的進一步資訊,請參閱建立自訂(可自訂的)警告器。)
使用上述的群組警告器配置範例,您可以選擇只停止其中一個叢集或兩個叢集(clusterB 和 clusterC)上埠 80 的自訂警告器 ADV_custom。
dscontrol advisor stop ADV_custom clusterB:80
dscontrol advisor stop ADV_custom 80
警告器間隔會設定警告器隔多久將向它所監視的埠上的伺服器要求狀態資訊, 然後向管理程式報告結果。如果警告器間隔太短,表示效能不佳,這是因為警告器常常岔斷執行器所致。 如果警告器間隔太長,表示管理程式關於加權的決定不是依據精確、最新的資訊而定。
比方說,如果要對埠 80 的 HTTP 警告器,將間隔設定為 3 秒時,請輸入下列指令:
dscontrol advisor interval http 80 3
指定的警告器間隔如果小於管理程式間隔,則不具意義。預設的警告器間隔為 7 秒鐘。
請確定管理程式在其平衡負載決策中,並未使用逾時的資訊,管理程式將不使用其時間戳記比警告器報告逾時中的時間設定還早的警告器。警告器報告逾時應大於警告器輪詢間隔。如果逾時值較小,則管理程式將忽略邏輯上應該使用的報告。依預設,警告器報告不會逾時 -- 預設值是不設限。
比方說,如果要針對埠 80 的 HTTP 警告器,將警告器報告逾時設定為 30 秒時,請輸入下列指令:
dscontrol advisor timeout http 80 30
如果需要設定警告器報告逾時的進一步資訊,請參閱dscontrol advisor -- 控制警告器。
針對 Load Balancer,您可以設定警告器藉以偵測伺服器(服務程式)上特定埠失敗的逾時值。失敗伺服器逾時值(connecttimeout 和 receivetimeout)會判定報告連結或接收失敗之前,警告器的等待時間。
如果要最快偵測到失效的伺服器, 請將警告器的連接及接收逾時值設為最小值(1 秒鐘),並將警告器及管理程式的間隔時間設為最小值(1 秒鐘)。
比方說,如果要對埠 80 上的 HTTP 警告器,將 connecttimeout 和 receivetimeout 設定為 9 秒時,請輸入下列指令:
dscontrol advisor connecttimeout http 80 9 dscontrol advisor receivetimeout http 80 9
預設的連結及接收逾時為 3 乘以指定的警告器間隔時間值。
警告器有能力在將伺服器標示為當機之前重試連線。警告器在伺服器查詢失敗重試次數加上 1 之前,不會將伺服器標示為當機。重試的建議值應該大於 3。下列指令對埠 389 上的 LDAP 警告器設定重試值為 2:
dscontrol advisor retry ldap 389 2
HTTP 警告器的 URL 選項可供配送器及 CBR 元件使用。
在您已啟動 HTTP 警告器之後,可定義唯一的用戶端 HTTP URL 字串,專用於您想在伺服器上查詢的服務程式。 這樣可讓 HTTP 警告器評估伺服器內個別服務程式的狀況。您可使用具有相同實體 IP 位址的唯一伺服器名稱定義邏輯伺服器,以完成這項作業。請參閱伺服器分割:配置成實體伺服器(IP 位址)的邏輯伺服器,以取得進一步資訊。
對於 HTTP 埠之下每一個定義的邏輯伺服器,您可指定唯一的用戶端 HTTP URL 字串, 專用於您想在伺服器上查詢的服務程式。HTTP 警告器使用 advisorrequest 字串來查詢伺服器的狀況。預設值為 HEAD / HTTP/1.0。advisorresponse 字串是 HTTP 警告器掃描 HTTP 回應的警告器回應。 HTTP 警告器使用 advisorresponse 字串來比較從伺服器接收的實際回應。預設值是空值。
重要事項:如果在 HTTP URL 字串內包含空白:
server set cluster:port:server advisorrequest "head / http/2.0" server set cluster:port:server advisorresponse "HTTP 200 OK"
dscontrol server set cluster:port:server advisorrequest "\"head / http/2.0\"" dscontrol server set cluster:port:server advisorresponse "\"HTTP 200 OK\""
當您建立由 HTTP 警告器傳送至後端伺服器,以查看其是否正常運作的要求時,您可以輸入 HTTP 要求的開始,而 Load Balancer 則使用下列內容完成要求的結尾:
\r\nAccept: */*\r\nUser-Agent:IBM_Network_Dispatcher_HTTP_Advisor\r\n\r\n
如果您要在 Load Balancer 於要求尾端附加此字串之前,新增其他 HTTP 標頭欄位,您可在要求中併入自己的 \r\n 字串。下列範例說明您在 HTTP 主機標頭欄位中可能輸入以加入要求中的內容:
GET /pub/WWW/TheProject.html HTTP/1.0 \r\nHost: www.w3.org
請參閱dscontrol server -- 配置伺服器,以取得進一步資訊。
在配送器元件上有自我警告器可使用。
對於雙層 WAN(廣域網路)配置中的 Load Balancer,配送器提供會收集後端伺服器載入狀態資訊的自我警告器。
在這個範例中,自我警告器及度量伺服器常駐於由頂層 Load Balancer 所平衡負載的兩個配送器機器上。自我警告器特別測量後端伺服器的執行器層次上配送器每秒鐘連線速率。
自我警告器將結果寫入 dsloadstat 檔案。Load Balancer 亦提供一個被稱為 dsload 的外部度量。在每一部配送器機器上的度量伺服器代理程式會執行它呼叫外部度量 dsload 的配置。dsload Script 從 dsloadstat 檔擷取字串,並將之傳回度量伺服器代理程式。接著,每一個度量伺服器代理程式(來自每一個配送器)將載入狀態值傳回頂層 Load Balancer,用來判定哪一個配送器要轉送用戶端要求。
dsload 可執行檔常駐在 Load Balancer 的 ...ibm/edge/lb/ms/script 目錄。
如果需要在 WAN 配置中使用配送器的進一步資訊,請參閱配置廣域配送器支援。如果需要度量伺服器的進一步資訊,請參閱度量伺服器。
自訂(可自訂的)警告器是一小段 Java 程式碼, 它可以提供做為類別檔,並透過基本程式碼來呼叫。基本程式碼提供所有的管理服務程式,例如:啟動及關閉自訂警告器的實例、提供狀態及報告,以及在日誌檔中記錄歷程資訊。而且它也會將結果報告給管理程式元件。基本程式碼會周期性編碼警告器循環,在此循環中, 它會個別評估其配置中的所有伺服器。您可以開啟與伺服器機器的連線,以將它啟動。如果 Socket 開啟了,基本程式碼就會呼叫自訂警告器中的 『getLoad』 方法(功能)。然後自訂警告器就會執行任何用來評估伺服器狀況所必需的步驟。一般而言,它會將使用者定義的訊息傳送至伺服器,然後等待回應。(對 Socket 的存取權限會提供給自訂警告器。)基本程式碼會關閉與伺服器之間的 socket,並且將資料流量資訊報告給「管理程式」。
基本程式碼及自訂警告器的操作模式有一般及置換二種。 而操作模式的選擇則是在自訂警告器檔案中,用建構元方法及參數來指定。
在一般的模式中,自訂警告器會與伺服器交換資料, 而基本警告器程式碼會指定交換的時間,並計算資料流量值。 然後基本程式碼會將這個資料流量值報告給管理程式。 自訂警告器只需要傳回一個 0(成功時)或 -1(發生錯誤時)。 如果要指定一般模式,建構元中的置換旗號要設定為 false。
在置換模式中,基本程式碼不會執行任何時間測量工作。 自訂警告器程式碼會執行其特殊需求所必要的任何作業,然後傳回實際的資料流量號碼。 基本程式碼將會接受此號碼,並且將它報告給管理程式。 為獲得最佳結果,請將介於 10 和 1000 之間的資料流量號碼正常化, 10 代表快速伺服器,而 1000 代表慢速伺服器。 如果要指定置換模式,建構元中的置換旗號要設定為 true。
有了這項特性,您可以撰寫您自己的警告器,該警告器將提供您所需的伺服器的相關精確資訊。 Load Balancer 產品提供一個名為 ADV_sample.java 的範例自訂警告器。 安裝 Load Balancer 後,您可在 ...<install directory>/servers/samples/CustomAdvisors 安裝目錄,找到範例程式碼。
預設安裝目錄是:
Load Balancer 安裝目錄中提供了 WebSphere Application Server (WAS) 警告器專用的自訂警告器範例檔。
WebSphere Application Server 警告器的範例檔和 ADV_sample.java 檔位於相同的範例目錄中。
您的自訂警告器檔名必須使用『ADV_myadvisor.java』的格式。必須用大寫的前置符號『 ADV_』來作為開頭。所有後續的字元都必須是小寫字母。
根據 Java 慣例,定義在檔案內的類別名稱必須符合檔案的名稱。如果您要複製範例碼,請務必將檔案中所有的 『ADV_sample』 實例變更為您的新類別名稱。
自訂警告器是以 Java 語言來撰寫的。您必須取得並安裝適用您機器的 Java 1.4 編譯器。在編譯期間,會參考到下列檔案:
您的 classpath 在編譯期間必須同時指向自訂警告器及基礎類別檔。
如果是 Windows,範例編譯指令為:
javac -classpath install_dir\lb\servers\lib\ibmnd.jar:install_dir \lb\admin\lib\j2ee.jar ADV_fred.java
其中:
編譯的輸出結果是一個類別檔案,例如:
ADV_fred.class
啟動警告器之前,將類別檔複製到 ...ibm/edge/lb/servers/lib/CustomAdvisors 安裝目錄。
針對 AIX、HP-UX、Linux
如果要執行自訂警告器,您必須先將類別檔複製到正確的安裝目錄:
...ibm/edge/lb/servers/lib/CustomAdvisors/ADV_fred.class
配置該元件,啟動其管理程式功能,並發出指令,以啟動您的自訂警告器:
dscontrol advisor start fred 123
其中:
和所有的警告器一樣,自訂警告器會擴充警告器基礎(稱為 ADV_Base)的功能。 這是實際執行大部分警告器功能(例如,將資料流量回報管理程式, 以供管理程式的加權演算法使用)的警告器基礎。 警告器基礎也會執行 Socket 連線及關閉作業,並提供傳送和接收方法供警告器使用。 警告器本身僅可用來將資料傳送到和接收自所通告的伺服器上的埠。 警告器基礎內的 TCP 方法會適時計算資料流量。必要時, ADV_base 中建構元內的旗號,會以警告器傳回的新資料流量,來覆寫現存的資料流量。
以下是基礎類別方法:
Load Balancer 先查詢它所提供的本機警告器清單。 如果沒有找到指定的警告器,則 Load Balancer 會查詢客戶的自訂警告器清單。
/opt/ibm/edge/lb/servers/lib/CustomAdvisors/
C:\Program Files\IBM\edge\lb\servers\lib\CustomAdvisors
對範例警告器所列的程式,是包含在範例警告器中。 安裝之後,可在 ...ibm/edge/lb/servers/samples/CustomAdvisors 目錄中找到此範例警告器。
這項特性適用於所有的 Load Balancer 元件。
度量伺服器以系統特定度量表格,提供 Load Balancer 有關伺服器的載入資訊,並報告於伺服器的狀況上。Load Balancer 管理程式查詢常駐於每一個伺服器上的度量伺服器代理程式,並使用收集自代理程式的度量來為平衡負載程序指定加權。結果也會置於管理程式報告中。
如果要取得配置範例,請參閱圖 5。
度量伺服器和 WLM 警告器一樣,都是作為一個整體在伺服器系統上報告,而不是在個別通訊協定特定的伺服器常駐程式上報告。WLM 及度量伺服器都會將結果置入管理程式報告的系統直欄。但結果是,不支援同時執行 WLM 警告器及度量伺服器。
在平衡負載的所有伺服器上都必須安裝並執行度量伺服器代理程式。
以下為配置配送器的度量伺服器的步驟。 可使用類似的步驟來配置其他 Load Balancer 元件的度量伺服器。
port 為 RMI 埠,它是為所有要在上面執行的度量伺服器代理程式所選擇。設定於 metricserver.cmd 檔中的預設 RMI 埠是 10004。
systemMetric 是常駐在後端伺服器上之 Script 名稱,它應該在指定叢集(或站台名稱)下之配置中的每一個伺服器上執行。它為客戶提供了兩個 Script - cpuload 和 memload。或者,您可建立自訂系統度量 Script。script 含有一個應該傳回數值(範圍為 0-100)的指令。 此數值應該是代表載入測量,而非可用性值。
限制:在 Windows 平台上, 如果您「系統度量」script 名稱的副檔名不是 ".exe",您必須指定檔案的完整名稱(例如:"mysystemscript.bat")。 這是 Java 的限制。
客戶可以選用性地撰寫自訂的度量 Script 檔,其中定義度量伺服器將在伺服器機器上發出的指令。請確定任何自訂的 Script 是可執行檔,且位於 ...ibm/edge/lb/ms/script 目錄中。自訂 Script 必須傳回 0 到 100 之間的載入值。
要讓度量伺服器在本端主機以外的位址上執行,您需要編輯平衡負載伺服器機器上的 metricserver 檔案。 在 metricserver 檔中找到 "java" 之後,請插入以下字行:
-Djava.rmi.server.hostname=OTHER_ADDRESS
此外,在 metricserver 檔案中的 if 陳述式之前,新增下行:hostname OTHER_ADDRESS。
當您收集不同網域上的度量時,您必須將伺服器 Script(dsserver、cbrserver 等等)中的 java.rmi.server.hostname 明確地設定成要求度量之機器的完整網域名稱 (FQDN)。這是必要的,因為根據您的設定和作業系統,InetAddress.getLocalHost.getHostName() 可能不會傳回 FQDN。
WLM 是在 MVS 大型電腦上執行的程式碼。您可以查詢它來詢問 MVS 機器的負載量。
如果 OS/390 系統上配置了「MVS 工作量管理」,配送器就能接受 WLM 的容量資訊,並利用它來進行平衡負載程序。如果使用 WLM 警告器,配送器會根據配送器主機表, 定期透過每一個伺服器上的 WLM 埠來開啟連線,並接收所傳回的容量整數。 由於這些整數是代表仍可使用的容量數, 而配送器期望值代表每一台機器上的資料流量, 所以警告器會將容量整數轉化,並將其正常化為資料流量值(也就是, 大的容量整數,小的資料流量值,都代表情況較良好的伺服器)。 最後的資料流量結果會放在管理程式報告的「系統」直欄中。
WLM 警告器及其他配送器警告器之間,有幾項重要的差異:
WLM 代理程式和度量伺服器代理程式一樣,都是作為一個整體在伺服器系統上報告,而不是在個別通訊協定特定的伺服器常駐程式上報告。度量伺服器及 WLM 都會將其結果置入管理程式報告的系統直欄。但結果是,不支援同時執行 WLM 警告器及度量伺服器。
本章將說明如何配置平衡負載參數,以及如何設定 Load Balancer 以使用進階功能。
作業 | 說明 | 相關資訊 |
---|---|---|
將 Load Balancer 並列到其所平衡負載的機器上 | 設定已並列 Load Balancer 的機器。 | 使用並列伺服器 |
配置高可用性或共同高可用性 | 設定第二個配送器機器,以作為備份。 | 高可用性 |
配置規則型平衡負載 | 定義使用您的伺服器子集的條件。 | 配置規則型平衡負載 |
使用埠親緣性置換,提供一種機制,讓伺服器置換埠滯留特性 | 容許伺服器置換它的埠上的滯留時間設定。 | 埠親緣性置換 |
使用滯留(親緣性)特性,將叢集埠配置成滯留埠 | 容許用戶端要求引導到同一伺服器。 | Load Balancer 的親緣性特性如何運作 |
使用跨埠親緣性,在埠間擴充滯留(親緣性)特性 | 容許從不同埠收到的用戶端要求引導到同一伺服器。 | 跨埠親緣性 |
使用親緣性位址遮罩,指定共用 IP 子網路位址 | 容許從同一子網路收到的用戶端要求引導到同一伺服器。 | 親緣性位址遮罩 (stickymask) |
使用主動 Cookie 親緣性來平衡負載 CBR 的伺服器 | 一種規則選項,可讓階段作業維護特定伺服器的親緣性。 | 主動 Cookie 親緣性 |
使用被動 Cookie 親緣性,來針對配送器的內容型遞送及 CBR 元件,平衡負載伺服器。 | 一種規則選項,可讓階段作業根據 Cookie 名稱/Cookie 的值來維護特定伺服器的親緣性。 | 被動 Cookie 親緣性 |
使用 URI 親緣性對具有獨特內容的 Caching Proxy 伺服器進行平衡負載,而這種內容將快取到每一個個別的伺服器上 | 一種規則選項,可讓階段作業根據 URI 來維護特定伺服器的親緣性。 | URI 親緣性 |
配置廣域配送器支援 | 設定遠端配送器以透過廣域網路進行平衡負載。 或者,使用支援 GRE 的伺服器平台來平衡負載整個廣域網路(不具備遠端配送器)。 | 配置廣域配送器支援 |
使用明確的鏈結 | 避免在您的鏈結中省略配送器。 | 使用外顯鏈結 |
使用專用網路 | 配置配送器,以便對專用網路上的伺服器進行平衡負載。 | 使用專用網路配置 |
使用萬用字元叢集來組合通用伺服器配置 | 沒有明確地配置位址,將使用萬用字元叢集來進行平衡負載。 | 使用萬用字元叢集來結合伺服器配置 |
使用萬用字元叢集來平衡防火牆的資料流量 | 所有的資料傳輸在進行平衡負載作業後傳送至防火牆。 | 使用萬用字元叢集來平衡防火牆的資料流量 |
使用具有 Caching Proxy 的萬用字元叢集來進行透通式 Proxy | 允許使用配送器來啟動透通 Proxy。 | 將萬用字元叢集與 Caching Proxy 搭配使用來進行透通式 Proxy |
使用萬用字元埠來引導未配置的埠資料傳輸 | 處理沒有配置給任何特定埠的資料傳輸。 | 使用萬用字元埠來引導未配置埠的資料傳輸 |
使用「拒絕服務攻擊」服務程式來通報管理者(透過警示)有潛伏的攻擊 | 如果伺服器上出現顯著的半開啟 TCP 連線數量時,配送器即會分析相關的外來要求。 | 拒絕服務攻擊偵測 |
使用二進位記載功能來分析伺服器統計值 | 允許伺服器資訊保存在二進位檔中,並可從二進位檔中擷取。 | 使用二進位記載功能來分析伺服器統計值 |
Load Balancer 可常駐在與平衡負載要求之伺服器相同的機器上。 這點通常被稱為並列伺服器。並列特性適用於配送器及網站選取器元件。 雖然 CBR 也支援並列,但只在使用連結特定 Web 伺服器及連結特定 Caching Proxy 時才適用。
Linux:為能同時配置並列及高可用性,以 MAC 轉送方法來執行配送器元件時, 您必須安裝 Linux 核心修補程式。有關如何安裝修補程式的進一步資訊,請參閱安裝 Linux 核心修補程式(以便不顯示迴圈介面上的 arp 回應)。 不過,遵循這些指示時,請跳過為迴圈配接卡建立別名的步驟。 您應新增 ifconfig 指示,以便在 goStandby 高可用性 Script 檔中為迴圈配接卡建立別名, 而這個檔案會在配送器進入待機狀態時執行。
Solaris:進入點配送器並列時,您將無法配置 WAN 警告器。請參閱使用具有配送器廣域支援的遠端警告器。
在較早的版次中,並不需要指定與配置中非轉送的位址 (NFA) 相同的並列伺服器位址。該限制已解除。
如果要配置要並列的伺服器,dscontrol server 指令提供一個稱為 collocated 的選項 可被設定為 yes 或 no。 預設值是 no。伺服器的位址必須是機器上網路介面卡的有效 IP 位址。
您可以用下列其中一項方法來配置並列伺服器:
有關 dscontrol server 指令語法的進一步資訊,請參閱dscontrol server -- 配置伺服器。
如果在配送器機器上執行下列步驟,則配置配送器的 nat 轉送方法時,現在可對所有作業系統執行並列支援:
route add return_addr gw router
其中 router 是本端子網路路由器。
arp -s hostname ether_addr pub
使用本端 MAC 位址代替 ether_addr。如此可讓本端應用程式傳送資料傳輸到核心程式中的回覆位址。
CBR 支援不需要其他配置之所有平台上的並列。然而,您使用的 Web 伺服器及 Caching Proxy 必須是特定連結的。
高可用性功能(可使用 dscontrol highavailability 指令來配置)可供配送器元件使用(但不可供 CBR 或網站選取器元件使用)。
為了要改善配送器的可用性,配送器高可用性功能會使用下列的機制:
如果可能,建議與標準叢集資料傳輸相比的個別子網路之間,至少有一個活動訊號 (heartbeat) 配對。保留明顯的活動訊號 (heartbeat) 資料傳輸,將有助於防止在網路負載過大時的錯誤接收,也可改進錯誤替代後的完成復原時間。
dscontrol highavailability 的完整語法在dscontrol highavailability -- 控制高可用性 中。
如果要取得下面許多作業的完整討論,請參閱設定配送器機器。
只適用於 Windows 平台:此外, 請利用 dsconfig 指令來配置每一個非轉送的位址。 例如:
dsconfig en0 nfa_addr netmask netmask
dscontrol cluster set clusterA primaryhost NFAdispatcher1 dscontrol cluster set clusterB primaryhost NFAdispatcher2
dscontrol cluster set clusterB primaryhost NFAdispatcher2 dscontrol cluster set clusterA primaryhost NFAdispatcher1
dscontrol highavailability heartbeat add sourceaddress destinationaddress
Primary - highavailability heartbeat add 9.67.111.3 9.67.186.8 Backup - highavailability heartbeat add 9.67.186.8 9.67.111.3至少有一個活動訊號配對必須有配對的 NFA,來做為來源及目的地位址。
如果可能,建議與標準叢集資料傳輸相比的個別子網路之間,至少有一個活動訊號 (heartbeat) 配對。保留明顯的活動訊號 (heartbeat) 資料傳輸,將有助於防止在網路負載過大時的錯誤接收,也可改進錯誤替代後的完成復原時間。
設定執行器用來使高可用性活動訊號逾時的秒數。 範例:
dscontrol executor hatimeout 3
預設值為 2 秒。
dscontrol highavailability reach add 9.67.125.18連繫目標是建議的,但不是必要的。相關資訊,請參閱使用活動訊號及連繫目標的失敗偵測能力。
dscontrol highavailability backup add primary [auto | manual] port
dscontrol highavailability backup add backup [auto | manual] port
dscontrol highavailability backup add both [auto | manual] port
dscontrol highavailability status每一台機器應該具有正確的角色(備份、主要或兩者)、狀態及次狀態。 主要機器應該是現行的且是同步處理的; 而備份機器則應該在備用模式中,且應該在短時間內同步化。 策略必須是相同的。
註:
除了失敗偵測的基本準則(失去現行及備用配送器之間的連通性是透過活動訊號來偵測)之外,還有另一個偵測故障的機制,叫做連通性基準。 當您配置配送器時,可提供各配送器都應能連繫到之主機的清單,如此才能正確地工作。 這兩部高可用性的友機會透過活動訊號持續保持連繫, 且會互相更新它們各自可以連通測試到多少連繫目標。如果備用的機器比作用中的機器連通測試到更多的連繫目標, 則會發生失效接手。
作用中的配送器會傳送活動訊號,且備用的配送器應該每半秒就會收到該訊息。如果備用的配送器無法在 2 秒內收到活動訊號,則會開始進行失效接手。 所有的活動訊號都必須中斷,使得備用的配送器能夠進行接管。 換句話說,如果您配置了兩個活動訊號配對,這兩個活動訊號都必須中斷。要使高可用性環境處於穩定狀態並避免發生失效接手, 建議您新增多組活動訊號配對。
針對連繫目標,您應該為配送器機器使用的每一個子網路至少選擇一部主機。主機可以是路由器、IP 伺服器,或是其他類型的主機。 主機的可連繫性係透過連通測試到主機的連繫警告器來取得。如果活動訊號無法通過,或是備用的配送器比主要的配送器更能夠符合可連繫性的條件時,就會發生失效接手。 如果要依據所有可用的資訊來做決定, 則現行的配送器會規律地傳送可連繫性功能給備用的配送器。 於是配送器會比較這些功能與它本身的功能,並決定是否要切換。
將會配置兩台配送器機器:一為主要機器,另一則是備份機器。在啟動時,主要機器將傳送所有連線資料給備份機器,直到該機器同步化為止。主要機器會變成使用中, 換言之,它將開始平衡負載。同時,備份機器將監視主要機器的狀態, 換言之,它目前處於備用狀態中。
如果備份機器在任何時點測偵到主要機器失效, 它就會接管主要機器的平衡負載功能,並成為作用中的機器。在主要機器再次恢復作用後, 機器將依據使用者所配置的復原策略來回應。有兩種策略:
這兩台機器所設定的策略參數必須相同。
手動復原策略容許您使用 takeover 指令, 強迫將封包遞送給特定機器。在其他機器上執行維護作業時, 手動復原會很有用。自動復原策略是針對正常無人式作業而設計的。
對於共同高可用性的 配置,不會發生單一叢集的失敗。如果某台機器發生了問題,即使它僅影響一個叢集,則另一台機器也會接管這兩個叢集。
如果要使配送器能夠遞送封包,必須將每個叢集位址化名為網路介面裝置別名。
由於偵測到失效時,配送器機器將變更狀態,所以必須自動發出上述的指令。 配送器將會執行使用者所建立的 Script 來做到這一點。範例 Script 位在 ...ibm/edge/lb/servers/samples 目錄下,它必須先移至 ...ibm/edge/lb/servers/bin 目錄中才可執行。
可能會使用下列的範例 Script:
在 Windows 系統上:在配置設定中,如果網站選取器 要平衡負載兩部於高可用性環境中運作的配送器機器,則您需要在度量伺服器的 Microsoft 堆疊中新增別名。 應在 goActive Script 中新增別名。例如:
call netsh interface ip add address "Local Area Connection" addr=9.37.51.28 mask=255.255.240.0
在 goStandby 和 GoInOp 中,別名皆必須移除。例如:
call netsh interface ip delete address "Local Area Connection" addr=9.37.51.28
如果機器上有多重 NIC,則應在指令提示下發出下列指令 netsh interface ip show address,以先選取應該使用的介面。這個指令將傳回目前已配置介面的清單,並且會為「區域連線」編號(例如,「區域連線 2」),因此,您可決定您應該使用的介面。
重要事項:在 Linux for S/390 上執行配送器時 --
配送器會發出無預警的 ARP,將 IP 位址從某個配送器移到另一個。因此,這個機制會和基礎網路類型相關。當您執行 Linux for S/390 時,配送器本質上只能在可發出無預警的 ARP 並在本端介面上配置位址的那些介面上, 執行高可用性接管作業(完成 IP 位址移動)。 這個機制在點對點的介面(如 IUCV 和 CTC)上無法適當地運作,且在某些 QETH/QDIO 的配置中也無法適當地運作。
針對配送器原始的 IP 接管功能無法適當運作的那些介面和配置, 客戶可以在 go Script 中加入適當的指令,來手動移動這些位址。如此可確保那些網路拓蹼也能夠擁有高可用性的優點。
您可以使用規則型平衡負載,來調整封包要傳送到哪一個伺服器的時間及原因。Load Balancer 複查所有從最高優先順序到最低優先順序的規則,在找到為真的第一個規則上停止,然後在與這個規則關聯的伺服器之間,平衡負載其內容。它已經根據目的地及埠來平衡負載, 但是會使用規則來擴展您的功能以分送連接。
在配置規則時的大部分情況下,您應配置預設的永遠為真規則,以抓取無法執行其他較高優先順序規則的要求。當所有其他的伺服器都因用戶端要求而失敗時,這可以是「抱歉,站台目前已關閉,請稍後重試」回應。
當您基於某種理由,要使用您伺服器的子集時,應將規則型平衡負載搭配使用配送器和網站選取器。 您必須一律使用 CBR 元件的規則。
建議您最好在開始在配置中新增規則之前,先規劃您希望該規則遵循的邏輯。
所有的規則都有名稱、類型、優先順序,可能有開始範圍及結束範圍,以及一組伺服器。此外,CBR 元件的內容類型規則具有與其關聯的相符正規表示式型樣。(如果需要如何使用內容規則的範例與實務,以及內容規則的有效型樣語法,請參閱附錄 B, 內容規則(型樣)語法。)
規則的評估會依照優先順序的順序。換言之,優先順序 1(較低值)的規則將在優先順序 2(較高值)之前評估。將會使用最先滿足的規則。一旦有一個已經滿足的規則,將不會再評估其他規則。
對於要滿足的規則,必須符合兩個條件:
如果規則沒有與其相關的伺服器,則會滿足只需要符合條件 1 的規則。 在這個案例中,配送器將放下連接要求,網站選取器將傳回有錯誤之名稱伺服器要求,CBR 將讓 Caching Proxy 傳回錯誤頁面。
如果沒有滿足的規則,配送器將從埠上可用的完整伺服器中選取一個伺服器,網站選取器將從站台名稱上可用的完整伺服器中選取一個伺服器,且 CBR 將使得 Caching Proxy 傳回錯誤頁面。
只有配送器、CBR 或網站選取器元件才有提供這個規則類型。
如果您希望顯示客戶並且根據資源的來源位置配置資源, 則可能要根據用戶端 IP 位址來使用規則。
例如,您注意到您的網路正在從來自特定一組 IP 位址的用戶端, 取得許多未付費且不需要的資料傳輸。因此您使用 dscontrol rule 指令建立了規則,例如:
dscontrol rule add 9.67.131.153:80:ni type ip beginrange 9.0.0.0 endrange 9.255.255.255
這個 "ni" 規則會過濾掉來自 IBM 用戶端的所有連線。然後,您可將 IBM 人員可存取的伺服器新增到規則中。或者, 如果您不新增任何伺服器到規則中,來自 9.x.x.x 位址的要求將不會由您的任何伺服器伺服。
只有配送器元件才有提供這個規則類型。
如果您的用戶端使用的軟體在進行要求時會從 TCP/IP 要求特定的埠, 您可能會想要根據用戶端埠來使用規則。
例如,您可以建立一個規則,說明用戶端埠 10002 的任何要求都要使用一組特殊的快速伺 服器,因為您知道該埠的任何用戶端要求都是來自一群傑出的客戶。
只有配送器、CBR 或網站選取器元件才有提供這個規則類型。
基於容量規劃的理由,您可能希望根據一天的時間來使用規則。比方說,如果您的 Web 站台大部分是在每天的相同小時群組期間內使用, 您可能會想要對 HTTP 全日指派專屬的五個伺服器,然後,在尖峰期間新增另外五個伺服器。
您可能要根據一天的時間使用規則的另一個理由, 是當您想要關閉某些伺服器以便在每天晚上或深夜進行維護,所以您會設定規則, 以便在必要維護期間排除那些伺服器。
只有配送器元件才有提供這個規則類型。
您可能想要根據 IP 標頭中的「服務類型」(TOS) 欄位, 來使用規則。比方說,如果進來一個用戶端要求,它具有一個 TOS 值, 指出一般服務程式,則它可以遞送到一組伺服器。比方說,如果進來一個不同用戶端要求, 它具有一個不同 TOS 值,指出較高優先順序的服務程式,則它可以遞送到不同組的伺服器組。
TOS 規則可讓您使用 dscontrol rule 指令,充份配置 TOS 位元組中的每一個位元。 如果要取得您想要其在 TOS 位元組中符合的有效位元, 請使用 0 或 1。不然,將使用值 x。 下列是新增 TOS 規則的範例:
dscontrol rule add 9.67.131.153:80:tsr type service tos 0xx1010x
只有配送器及 CBR 元件才有提供這個規則類型。
如果您需要和其他的應用程式共用您的一些伺服器,則您最好使用基於埠上每秒連線數的規則。 例如,您可以設定兩個規則:
或者,您可能正在使用 Telnet 並且想要對 Telnet 保留五個伺服器中的兩個, 除非每秒連線數增加到特定層次以上。 如此,配送器便會在尖峰時間平衡五個伺服器的資料流量。
結合「連線」類型規則來設定規則評估選項 "upserversonrule":當使用連線類型規則並設定 upserversonrule 選項時, 如果伺服器集中的部分伺服器已關閉,則您可以確定剩餘的伺服器將不會超載。請參閱規則的伺服器評估選項,以取得進一步資訊。
只有配送器或 CBR 元件才有提供這個規則類型。
如果您的伺服器超出負荷並且開始丟出封包, 您可能想要根據埠上的作用中連線總數來使用規則。某些 Web 伺服器將繼續接受連線, 即使它們沒有足夠的緒可回應要求。結果,用戶端要求逾時, 並且也未對來到您的 Web 站台的客戶進行伺服。您可以根據作用中連線來使用規則, 以平衡伺服器儲存區內的容量。
例如,您根據經驗知道您的伺服器將在接受 250 個連線之後停止伺服。 您可用 dscontrol rule 指令或 cbrcontrol rule 指令來建立規則,例如:
dscontrol rule add 130.40.52.153:80:pool2 type active beginrange 250 endrange 500 或 cbrcontrol rule add 130.40.52.153:80:pool2 type active beginrange 250 endrange 500
然後將您目前的伺服器以及一些其他的伺服器新增到規則中,不然,這些伺服器會供其他的處理使用。
只有配送器元件才提供保留頻寬及共用頻寬的規則。
如果是頻寬規則,配送器計算頻寬作為以特定伺服器集傳送資料到用戶端的比率。配送器在伺服器、規則、埠、叢集及執行器層次追蹤容量。對每一個層次而言,都有一個位元組計數器欄位:每秒轉送的千位元組 (KB)。配送器以 60 秒鐘的間隔計算這些比率。您可從 GUI 或從指令行報告的輸出來檢視這些比率值。
保留頻寬規則可讓您控制伺服器組每秒所遞送的千位元組 (KB) 數。 在配置的整個過程中,為每一個伺服器集設定臨界值(配置指定的頻寬範圍), 您便可以控制及保證每一個叢集埠組合所使用的頻寬數量。
下列是新增 reservedbandwidth 規則的範例:
dscontrol rule add 9.67.131.153:80:rbw type reservedbandwidth beginrange 0 endrange 300
所指定的開始範圍及結束範圍皆是以每秒千位元組為單位。
配置共用頻寬規則之前,您必須在執行器或叢集層次,使用 dscontrol executor 或 dscontrol cluster 指令及 sharedbandwidth 選項,指定可以共用的頻寬之最大數量(每秒千位元組 (KB))。sharebandwidth 值不應超過可用的頻寬總數 (網路容量總計)。 使用 dscontrol 指令,以設定僅提供規則上限的共用頻寬。
下列是指令語法的範例:
dscontrol executor set sharedbandwidth size dscontrol cluster [add | set] 9.12.32.9 sharedbandwidth size
sharedbandwidth 的 size 是一整數值(每秒千位元組)。預設值是零。 如果這個值為 0,則頻寬無法共用。
在叢集層次共用頻寬可讓叢集使用的頻寬為最大。只要叢集使用的頻寬低於指定的數量,便會將這個規則評估為 True。如果使用的頻寬總數大於指定的數量,則這個規則將評估為 False。
執行器層次上的共用頻寬可讓整個配送器配置共用最大頻寬量。只要在執行器層次使用的頻寬低於指定的數量,便會將這個規則評估為 True。如果使用的頻寬總數大於其所定義的值,則這個規則將評估為 False。
以下是新增或設定 sharedbandwidth 規則的範例:
dscontrol rule add 9.20.30.4:80:shbw type sharedbandwidth sharelevel value dscontrol rule set 9.20.34.11:80:shrule sharelevel value
sharelevel 的 value 可以是 executor 或 cluster。 Sharelevel 在 sharebandwidth 規則中是必要的參數。
配送器可讓您使用保留頻寬規則,在您的配置內配置一組伺服器的指定頻寬。 藉由指定開始及結束範圍,您可控制由一組伺服器傳遞至用戶端的千位元組 (KB) 範圍。一旦規則不再評估為 True(超過結束範圍),將會評估下一個較低優先順序的規則。 如果下一個較低優先順序的規則是「永遠為真」規則,則會選取伺服器,並以「站台忙線」回應給用戶端。
例如:請考慮埠 2222 上三個伺服器的群組。如果將保留的頻寬設定為 300,則經過 60 秒的每秒最大千位元組 (KB) 將為 300。當超出這個比率時,便不再將規則評估為 True。如果這是唯一的規則,則配送器會選取三個伺服器的其中一個來處理要求。如果有一個較低優先順序的「永遠為真」規則,則可將要求重新導向至另一個伺服器,並以「站台忙線」來回答。
共用頻寬規則可對用戶端提供額外伺服器存取。 特別是在當成接著保留頻寬規則的較低優先順序規則使用時,即使已超出保留的頻寬,用戶端仍可存取伺服器。
例如:藉由使用接著保留頻寬規則的共用頻寬規則,您可讓用戶端在控制的方式下,增加對三個伺服器的存取。只要有可供使用的共用頻寬,規則都將評估為真,且會授與存取的權限。如果沒有可用的共用頻寬,則規則將不會為真,並會對下一個規則進行評估。如果接著的是「永遠為真」規則,則可依需要重新導向要求。
藉由說明於上述範例的使用保留及共用頻寬,在授與(或拒絕)對伺服器的存取時,可達到更佳的彈性及控制。特定埠上的伺服器可被限制於頻寬用法中,但是只要有其他的頻寬可供使用,其他的伺服器便可使用之。
只有網站選取器元件才有提供這個規則類型。
針對全部度量規則,選擇系統度量(cpuload、memload、或您可以自行設定系統度量 Script),且網站選取器會比較系統度量值(由常駐在每一個負載平衡的伺服器上之度量伺服器代理程式傳回)及您在規則中指定之開始和結束範圍。伺服器集內的所有伺服器之現行系統度量值,必須在範圍內,以供規則啟動。
下列是將全部度量規則新增至配置內容的範例:
sscontrol rule add dnsload.com:allrule1 type metricall metricname cpuload beginrange 0 endrange 100
只有網站選取器元件才有提供這個規則類型。
針對平均度量規則,選擇系統度量(cpuload、memload、或您可以自行設定系統度量 Script),且網站選取器會比較系統度量值(由常駐在每一個負載平衡的伺服器上之度量伺服器代理程式傳回)及您在規則中指定之開始和結束範圍。伺服器組內所有伺服器之現行系統度量的平均值,皆必須在範圍內才可讓規則生效。
下列是將平均度量規則新增至配置內容的範例:
sscontrol rule add dnsload.com:avgrule1 type metricavg metricname cpuload beginrange 0 endrange 100
可以建立「永遠為真」的規則。除非所有與這類規則相關的伺服器都當機, 否則將一直選取這類規則。因此它通常應該比其他的規則處於較低的優先順序。
您甚至可以有多個「永遠為真」的規則,每個規則都有相關的一組伺服器。 會選擇具有可用伺服器的第一個為真的規則。例如, 假設您有六個伺服器。您希望其中兩個伺服器來處理所有情況下的資料傳輸, 除非這兩個伺服器都當機。如果前兩個伺服器都當機, 您希望第二組伺服器可處理資料傳輸。如果這四個伺服器都當機, 您將使用最後兩個伺服器來處理資料傳輸。您可以設定三個「永遠為真」的規則。 如此一來,只要第一組伺服器中的某一個伺服器在開機中, 這一組伺服器將一直處於選擇的狀態。如果兩個伺服器都當機, 則會選擇第二組中的一個,依此類推。
另一個範例是,您可能希望「永遠為真」的規則可確保對於不符合任何設定規則的進入的用戶端, 將不進行伺服。您可以用 dscontrol rule 指令建立如下的規則:
dscontrol rule add 130.40.52.153:80:jamais type true priority 100
如此一來,您可以不新增任何伺服器到規則中,而使用戶端封包被捨棄,並且沒有回應。
您可以定義多個「永遠為真」的規則,而且從此以後只要變更它們的優先順序層次, 即可調整要執行的規則。
只有 CBR 元件或配送器元件(當使用配送器的 cbr 轉送方法時)才有提供這個規則類型。
您會想要使用內容類型規則來將要求傳送至各個伺服器群組,尤其是設定來處理站台的資料傳輸之子集的伺服器。 例如,您也許會使用一組伺服器來處理所有的 cgi-bin 要求, 用另一組來處理所有的串流音效要求,再用另外一組來處理所有的其他要求。 您可以將附有符合路徑之型樣的規則新增至 cgi-bin 目錄,而另一個規則符合檔案類型或您的串流音效檔案, 再另一個則為永遠為真的規則,以處理其他資料傳輸。 然後將適當的伺服器新增至每個規則。
重要事項:有關如何使用內容規則的範例與實務,以及內容規則的有效型樣語法, 請參閱附錄 B, 內容規則(型樣)語法。
透過埠親緣性置換,您可以置換特定伺服器的埠滯留。例如, 您將使用一個規則來限制每一個應用程式伺服器的連線數量, 且您具有一個溢位伺服器,它具有一個恆真規則,指出「稍後再嘗試該應用程式」。 埠具有 stickytime 值 25 分鐘,所以您不想要用戶端滯留在該伺服器上。 透過埠親緣性置換,您可以變更溢位伺服器,來置換一般與該埠關聯的親緣性。 下次用戶端要求這個叢集時, 它的資料流量會被平衡地配送到最可用的應用程式伺服器,而不是溢位伺服器。
請參閱dscontrol server -- 配置伺服器,以取得使用伺服器滯留 選項的埠親緣性置換的指令語法之詳細資訊。
您可以用 dscontrol rule add 指令,藉由編輯範例配置檔,或透過圖形式使用者介面 (GUI),來新增規則。 您可以對您所定義的每一個埠,新增一或多個規則。
這個處理有兩個步驟:新增規則,然後定義如果規則為真,要由哪一部伺服器提供服務。例如, 我們的系統管理者想要追蹤站台上每個部門的 Proxy 伺服器使用情況。他知道每一個部門的 IP 位址。他可以根據用戶端 IP 位址建立第一組規則, 以區隔每一部門的資料傳輸:
dscontrol rule add 130.40.52.153:80:div1 type ip b 9.1.0.0 e 9.1.255.255 dscontrol rule add 130.40.52.153:80:div2 type ip b 9.2.0.0 e 9.2.255.255 dscontrol rule add 130.40.52.153:80:div3 type ip b 9.3.0.0 e 9.3.255.255
接著,您可以將不同的伺服器新增至每一個規則,然後測量每個伺服器上的資 料流量,以便向使用服務的部門收取適當的費用。 例如:
dscontrol rule useserver 130.40.52.153:80:div1 207.72.33.45 dscontrol rule useserver 130.40.52.153:80:div2 207.72.33.63 dscontrol rule useserver 130.40.52.153:80:div3 207.72.33.47
只有配送器元件才有提供伺服器評估選項。
在 dscontrol rule 指令上有規則的伺服器評估選項。使用 evaluate 選項來選擇要在埠上所有伺服器之間評估規則的條件,或是只在規則內的伺服器之間評估規則的條件。(在 Load Balancer 的較早版本中,您可能只能測量埠上所有伺服器間的每一個規則條件。)
註:
以下為在保留的頻寬規則上新增及設定 evaluate 選項的範例:
dscontrol rule add 9.22.21.3:80:rbweval type reservedbandwidth evaluate level dscontrol rule set 9.22.21.3:80:rbweval evaluate level
evaluate 層次可以設為 port、rule 或 upserversonrule。預設值是 port。
測量規則內之伺服器間規則條件的選項,可讓您以下列性質配置兩個規則:
其結果是當資料傳輸超過第一個規則內伺服器的臨界值時,會將資料傳輸傳送到第二個規則內的「站台忙線」伺服器。當資料傳輸落於第一個規則內之伺服器的臨界值之下,新的資料傳輸會再一次傳送至第一個規則的伺服器。
使用說明於前述範例的兩個規則,如果您將第一個規則的 evalute 選項設定為 port(在埠上的所有伺服器間評估規則的條件),則當資料傳輸超出該規則的臨界值時,會將資料傳輸傳送到與第二個規則關聯的「站台忙線」伺服器。
第一個規則測量埠上所有的伺服器資料傳輸(包括「站台忙線」伺服器),以決定資料傳輸是否超過臨界值。 當與第一個規則連接之伺服器的擁塞減低時,在持續至「站台忙線」伺服器的資料傳輸可能會發生偶發的結果,因為埠上的資料傳輸仍超出第一個規則的臨界值。
如果是配送器及 CBR 元件:在您配置叢集的埠為滯留時,可啟用親緣性特性。將叢集埠配置成滯留,可將後續用戶端要求導向到相同伺服器。 在執行器、叢集或埠層次將 stickytime 設定為一些秒數,便可完成這項作業。如果將滯留時間設定為 0,即停用這項特性。
如果是網站選取器元件:在您配置站台名稱為滯留時,可啟用親緣性特性。配置站台名稱為滯留,可讓用戶端對多重名稱服務要求,使用相同的伺服器。在站台名稱上將 stickytime 設定為一些秒數,便可完成這項作業。如果將滯留時間設定為 0,即停用這項特性。
在停用親緣性特性時,Load Balancer 會在接收到來自用戶端的新 TCP 連線時, 立即挑選正確的伺服器,並將封包轉送到該伺服器。如果後續的連線是來自相同的用戶端,Load Balancer 會將之視為不相關的新連線,並在當時及時重新挑選正確的伺服器。
啟用親緣性特性時,如果是從相同用戶端接收到後續要求,則會將要求導向相同的伺服器。
經過一段時間後,用戶端會完成傳送異動,而親緣性記錄會移除。這就是「滯留時間」的意義。每個親緣性記錄都會存留 』stickytime『 設定的秒數。在滯留時間內接收到後續連線時,親緣性記錄仍為有效,而要求會送到相同的伺服器。如果未在滯留時間內接收到後續連線,則會去除該記錄;且會為那個時間之後所接收到的連線選取一個新的伺服器。
跨埠親緣性只適用於配送器元件的 MAC 和 NAT/NATP 轉送方法。
跨埠親緣性是已擴充來涵蓋多埠的滯留特性。 比方說,如果首先在某個埠收到用戶端要求,接著在另一個埠收到下一個要求, 則跨埠親緣性將容許配送器傳送用戶端要求到同一台伺服器。如果要使用這個特性,則埠必須:
有多個埠可以鏈結到相同的 crossport。 當後續的連線來自相同埠或共用埠上的相同用戶端時,將存取相同的伺服器。 下列是將多埠配置為與埠 10 具有跨埠親緣性的範例:
dscontrol port set cluster:20 crossport 10 dscontrol port set cluster:30 crossport 10 dscontrol port set cluster:40 crossport 10
在建立跨埠親緣性後,您便可彈性地修改埠的 stickytime 值。 不過,建議您最好將所有共用埠的 stickytime 值變更為同一值, 不然,可能會發生非預期的結果。
如果要移除跨埠親緣性,請將 crossport 值重設為它自己的埠號。 如果要取得 crossport 選項的指令語法的詳細資訊, 請參閱dscontrol port -- 配置埠。
親緣性位址遮罩只適用於配送器元件。
親緣性位址遮罩是滯留特性的加強,其作用在於根據共用子網路位址, 將用戶端分組。在 dscontrol port 指令上指定 stickymask 可讓您為 32 位元 IP 位址的共用高次序位元建立遮罩。如果配置這項特性,當用戶端要求先製作與埠的連線時,來自用戶端的所有後續要求,都有相同的子網路位址(代表該位址部分已被遮罩),且將被導向相同的伺服器。
比方說,如果您想要讓所有具有相同網路「類別 A」位址的進入用戶端要求被導向到同一伺服器,您可以將埠的 stickymask 值設定為 8(位元)。如果要將具有相同網路「類別 B」位址的用戶端要求建立成一個群組, 請將 stickymask 值設定為 16(位元)。如果要將具有相同網路「類別 C」位址的用戶端要求建立成一個群組, 請將 stickymask 值設定為 24(位元)。
為了獲致最佳的結果,當首次啟動 Load Balancer 時,請設定 stickymask 值。 如果您動態地變更 stickymask 值,結果將無法預期。
與跨埠親緣性互動:如果您打算啟用跨埠親緣性, 共用埠的 stickymask 值必須相同。相關資訊,請參閱跨埠親緣性。
如果要啟用親緣性位址遮罩,請發出如下的 dscontrol port 指令:
dscontrol port set cluster:port stickytime 10 stickymask 8
可能的 stickymask 值是 8、16、24 和 32。值 8 指定 IP 位址(網路「類別 A」位址)的前 8 個高次序位元將建立遮罩。值 16 指定 IP 位址(網路「類別 B」位址)的前 16 個高次序位元將建立遮罩。 值 24 指定 IP 位址(網路「類別 C」位址)的前 24 個高次序位元將建立遮罩。如果您指定值 32,將建立整個 IP 位址遮罩, 它將有效地停用親緣性位址遮罩特性。stickymask 的預設值是 32。
如果要取得 stickymask(親緣性位址遮罩特性)的指令語法的詳細資訊,請參閱dscontrol port -- 配置埠。
靜止處理適用於配送器及 CBR 元件。
如果因任何理由(更新、升級及服務程式等等)從 Load Balancer 配置移除伺服器,您可使用 dscontrol manager quiesce 指令。在將連線指定為滯留且滯留時間尚未到期時,quiesce 次指令可讓現有的連線僅完成(但不提供)及轉送由用戶端至靜止伺服器的後續新連線。quiesce 次指令不接受與伺服器連接的任何其他新連線。
如果您已設定滯留時間,且您要在滯留時間到期之前將新連線傳送至另一個伺服器(而非靜止的伺服器), 請使用靜止 "now" 選項。下列範例為使用 now 選項來靜止伺服器 9.40.25.67:
dscontrol manager quiesce 9.40.25.67 now
now 選項決定如何依下所示處理滯留連線:
這對靜止伺服器而言是較嚴謹且較為連貫的方式。例如,您可從容地靜止伺服器,然後等待直到資料傳輸數量最少的時候(或許在大清早),完整地從配置中移除伺服器。
您可在 dscontrol rule 指令上指定下列親緣性類型:
親緣性選項的預設值是 none。port 指令上的 stickytime 選項必須是 0(未啟用),以將 rule 指令上的親緣性選項設定為主動 Cookie、被動 Cookie 或 URI。在規則設定親緣性時,便無法在埠上啟用滯留時間。
主動 Cookie 親緣性特性只適用於 CBR 元件。
它提供使用戶端「滯留」於特定伺服器的方法。設定規則的滯留時間為一個正數,並設定親緣性為 『activecookie』,以啟用這項功能。您可在新增規則,或使用 rule set 指令時完成。如果需要指令語法的詳細資訊,請參閱dscontrol rule -- 配置規則。
一旦已啟用主動 Cookie 親緣性的規則,新的用戶端要求將使用標準 CBR 演算法進行平衡負載,而來自相同用戶端的連續要求,將被傳送到起始選擇的伺服器。所選擇的伺服器會以 Cookie 的形式保存在對用戶端的回應中。只要用戶端未來的要求含有 Cookie,而且每個要求都有在滯留時間間隔內到達, 用戶端就會維護與起始伺服器之間的親緣性。
主動 Cookie 親緣性是用於確定用戶端會在相同伺服器及相同期間,持續進行平衡負載。藉由傳送用戶端瀏覽器所要保存的 Cookie,以完成這項作業。Cookie 包含用來決策的 cluster:port:rule、所平衡負載的伺服器,以及親緣性不再有效時的逾時時間戳記。Cookie 的格式如下:IBMCBR=cluster:port:rule+server-time! cluster:port:rule 和 server 資訊已經過編碼,因此不會顯示 CBR 配置。
每當規則使主動 Cookie 親緣性開啟時,將會檢查由用戶端傳送的 Cookie。
然後這個新的 Cookie 會被插入要退回到用戶端的標頭中, 而且如果用戶端的瀏覽器配置為可接收 Cookie,就會傳回後續的要求。
Cookie 中之每一個親緣性實例的長度為 65 個位元組,並以驚嘆號結束。因此,一個 4096 個位元組的 Cookie,每一網域可保留將近 60 個個別的主動 Cookie 規則。如果 Cookie 已完全填滿,則將會去除所有到期的親緣性實例。如果所有的實例仍然有效,則會刪除最舊的實例,然後新增現行規則的新實例。
rule 指令的主動 Cookie 親緣性選項,在埠滯留時間為 0(未啟動)時,僅能設定為 activecookie。一旦規則上的主動 Cookie 親緣性為作用中時,便無法在埠上啟用滯留時間。
如果要啟動特定規則的主動 Cookie 親緣性,請使用 rule set 指令:
rule set cluster:port:rule stickytime 60 rule set cluster:port:rule affinity activecookie
使規則滯留通常會用來建立 CGI 或 servlet,以將用戶端狀態保存在伺服器上。Cookie ID 所識別的狀態(這些是伺服器 Cookie)。 用戶端狀態僅與選取的伺服器有關, 所以用戶端需要來自該伺服器的 Cookie,以便在要求之間維護該狀態。
主動 Cookie 親緣性有現行伺服器時間的到期預設值,加上滯留時間間隔,外加 24 小時。如果您的用戶端(指那些傳送要求到您的 CBR 機器的用戶端)在他們的系統上有不正確的時間(例如,他們的時間比伺服器時間早一天),那麼那些用戶端的系統會忽略來自 CBR 的 Cookie,因為系統會假設 Cookie 已經過期。如果要設定一個較長的有效時間,請修改 cbrserver Script。在 Script 檔中,編輯 javaw 指令行、在 LB_SERVER_KEYS 之後新增下列參數:-DCOOKIEEXPIREINTERVAL=X,其中 X 是要新增到有效時間的天數。
在 AIX、Solaris 和 Linux 上,cbrserver 檔係位於 /usr/bin 目錄中。
在 Windows 上,cbrserver 檔係位於 \winnt\system32 目錄中。
被動 Cookie 親緣性適用於配送器元件的內容型遞送 (cbr) 轉送方法,以及 CBR 元件。 如果需要如何配置配送器之 cbr 轉送方法的相關資訊,請參閱配送器之內容型遞送(cbr 轉送方法)。
被動 Cookie 親緣性提供使用戶端滯留於特定伺服器的方法。當您將規則的親緣性啟用為 "passivecookie" 時,被動 Cookie 親緣性即可讓您根據伺服器所產生的自我識別 Cookie,對同一部伺服器平衡負載具有親緣性的 Web 資料傳輸。您可於規則層次配置被動 Cookie 親緣性。
當規則啟動時,如果啟用了被動 Cookie 親緣性,Load Balancer 即會根據用戶端要求之 HTTP 標頭中的 Cookie 名稱來選擇伺服器。Load Balancer 會開始比較用戶端之 HTTP 標頭的 Cookie 名稱,和每一部伺服器所配置的 Cookie 值。
當 Load Balancer 第一次找到 Cookie 值包含用戶端 Cookie 名稱的伺服器時,Load Balancer 即會選擇該部伺服器來處理要求。
如果用戶端要求中找不到的 Cookie 名稱,或是 Cookie 名稱與伺服器之 Cookie 值的內容都不符,則系統會利用現有的伺服器選項或加權循環式技術來選擇伺服器。
要配置被動 Cookie 親緣性時:
在埠的滯留時間為 0(未啟用)時,僅可將 rule 指令的被動 Cookie 親緣性選項,設定為 passivecookie。一旦被動 Cookie 親緣性在規則上已是作用中時,您便無法在埠上啟用滯留時間。
URI 親緣性適用於配送器的 cbr 轉送方法及 CBR 元件。如果需要如何配置 cbr 轉送方法的相關資訊,請參閱配送器之內容型遞送(cbr 轉送方法)。
URI 親緣性可讓您將 Web 資料傳輸平衡負載至 Caching Proxy 伺服器,這些伺服器可在每一個個別伺服器上快取唯一的內容。因此, 您可以在多個機器上消除多餘之快取內容的方式,有效地增加站台快取的容量。在規則層次配置 URI 親緣性。一旦規則啟動,如果已啟用 URI 親緣性,且相同的一組伺服器開機中並產生回應,則 Load Balancer 將使用相同的 URI,將新進入的用戶端要求,轉送至相同的伺服器。
通常 Load Balancer 可將要求分送至提供相同內容的多個伺服器。當使用具有一組快取伺服器的 Load Balancer 時,經常存取的內容最後會變成所有伺服器上的快取。藉由在多重機器上複製相同的快取內容,即可支援極高的用戶端載入。這對高容體的網站特別有用。
然而,如果您的網站支援極為不同內容的用戶端資料的適量傳輸,而您希望在多重伺服器間散佈較大量的快取,則如果每一個快取伺服器內含唯一內容,且 Load Balancer 僅對具有該內容的快取伺服器分送要求時,您的站台便可有較佳的執行效能。
使用 URI 親緣性,Load Balancer 可讓您將快取內容分送至個別的伺服器,以消除多重機器上多餘的快取內容。使用 Caching Proxy 伺服器之不同內容伺服器站台的效能將因此增強功能而有所改進。它會將相同的要求傳送至相同的伺服器,藉此快取單一伺服器上的內容。快取的有效大小,也會因新增至儲存區的每一個新伺服器機器而變大。
要配置 URI 親緣性時:
在埠的滯留時間為 0(未啟用)時,僅可將 rule 指令的 URI 親緣性選項,設定為 URI。一旦 URI 親緣性在規則上已是作用中時,您便無法在埠上啟用滯留時間。
這項特性僅限用於配送器元件。
如果您不是使用配送器的廣域支援,且不是使用配送器的 nat 轉送方法,則配送器配置需要將配送器機器及其伺服器,全部都連接到相同的 LAN 區段(請參閱『圖 36.』)。用戶端的要求會進入配送器機器,且會被傳送到伺服器。並會將來自伺服器的回應直接傳回用戶端。
廣域配送器增強功能新增離線伺服器的支援,即為所知的遠端伺服器(請參閱圖 37)。 如果遠端站台不支援 GRE,且您不是使用配送器的 nat 轉送方法,則遠端站台必須包含一部遠端配送器機器(配送器 2) 以及其本端連接的伺服器(伺服器 G、伺服器 H 和伺服器 I)。所有的配送器機器必須在相同的作業系統上。 用戶端封包現在可以從網際網路到配送器機器,再從該處到地理上的遠端配送器機器,再到其本端環境連接的伺服器。
這項功能可以讓叢集位址在將資料流量分送到全球各地的伺服器時, 支援全球所有的用戶端要求。
最初接收封包的配送器機器仍然可以有與其相連的本端伺服器,並且可以在其本端伺服器和遠端伺服器之間分送資料流量。
廣域指令並不複雜。如果要配置廣域支援:
dscontrol server add cluster:port:server router address
如果需要路由器關鍵字的進一步資訊,請參閱dscontrol server -- 配置伺服器。
在進入點配送器上:大部分平台的警告器都不需特別的配置即可正常運作。
Linux
Solaris
arp -s <my_cluster_address> <my_mac_address> pub
在遠端配送器上:為每個遠端叢集位址執行下列的配置步驟。如果是遠端 Load Balancer 位置的高可用性配置,您必須同時在兩個機器上執行這些步驟。
AIX
ifconfig lo0 alias 9.67.34.123 netmask 255.255.255.255
Linux
ifconfig lo:1 9.67.34.123 netmask 255.255.255.255 up
Solaris
Windows
dscontrol executor configure 9.55.30.45
圖 38. 使用遠端 Load Balancer 的廣域範例配置
本例適用於『圖 38.』中說明的配置。
以下將說明如何配置配送器機器,以支援埠 80 上的叢集位址 xebec。 將 LB1 定義為『進入點』 Load Balancer。假設一條乙太網路連線。請注意:LB1 已定義 5 個伺服器:三個本端伺服器(ServerA、ServerB、ServerC),兩個遠端伺服器(LB2 和 LB3)。 遠端 LB2 和 LB3 上,每一個都定義了三個本端伺服器。
請在第一個配送器 (LB1) 的主控台上,執行下列步驟:
dscontrol executor start
dscontrol executor set nfa LB1
dscontrol cluster add xebec
dscontrol port add xebec:80
dscontrol executor configure LB1 並且將 xebec 配置為 clusteraddr。
dscontrol executor configure xebec
在第二個配送器 (LB2) 的主控台:
dscontrol executor start
dscontrol executor set nfa LB2
dscontrol cluster add xebec
dscontrol port add xebec:80
dscontrol executor configure LB2
在第三個配送器 (LB3) 的主控台:
dscontrol executor start
dscontrol executor set nfa LB3
dscontrol cluster add xebec
dscontrol port add xebec:80
dscontrol executor configure LB3
「同屬遞送封裝」(GRE) 是在 RFC 1701 和 RFC 1702 中指定的網際網路通訊協定。利用 GRE,Load Balancer 可將用戶端 IP 封包封裝在 IP/GRE 封包內,並將它們轉送至像是 OS/390 這類 支援 GRE 的伺服器平台上。GRE 支援可讓配送器元件平衡負載封包至與一個 MAC 位址關聯的多重伺服器位址。
Load Balancer 將 GRE 當成其 WAN 特性的一部分。這可讓 Load Balancer 對可解開 GRE 封包的伺服器系統,直接提供廣域平衡負載。如果遠端伺服器支援封裝的 GRE 封包,則在遠端站台上便不需要安裝 Load Balancer。Load Balancer 使用設定為十進位值 3735928559 的 GRE 金鑰欄位,封裝 WAN 封包。
針對這個範例『圖 39.』,如果要新增支援 GRE 的遠端 ServerD,請在 Load Balancer 配置內定義它,做法就像在 cluster:port:server 體系中定義 WAN 伺服器一樣:
dscontrol server add cluster:port:ServerD router Router1
Linux 有原生的能力來解析 GRE,這個 GRE 容許 Load Balancer 平衡負載到 Linux/390 伺服器影像中,許多伺服器影像在此共用 MAC 位址。這允許進入點 Load Balancer 直接平衡負載到 Linux WAN 伺服器,不需要透過 Load Balancer 在遠端網站上傳送。這也同時容許進入點 Load Balancer 的警告器直接與遠端伺服器運作。
在進入點 Load Balancer 上,依照對 WAN 的說明來配置。
如果要配置每一個 Linux 後端伺服器,則以 root 身分發出下列命令。(這些命令可能會新增到系統開機啟動機能,如此一來,變更會持續到跨越重新開機。)
# modprobe ip_gre # ip tunnel add gre-nd mode gre ikey 3735928559 # ip link set gre-nd up # ip addr add cluster address dev gre-nd
一般而言,配送器的平衡負載功能在運作時, 不會與產品使用的站台的內容發生關聯。不過,有一個區域的站台內容可能很重要, 且其中決定的內容可能會對配送器的效率產生很大的影響。 這個區域是在鏈結定址的區域中。
如果您的網頁指定指向站台個別伺服器的鏈結,您實際上是強迫用戶端跳至特定的機器,而略過其他實際上存在的平衡負載功能。基於這個原因,建議您務必使用包含在您呼叫中之任何鏈結的配送器位址。 請注意,如果您的站台使用可動態建立 HTML 的自動程式設計, 則所使用的該種定址可能不會一直很明顯。如果要使您的平衡負載達到最大, 您應該注意任何明確的定址,並儘可能避開它。
您可以使用專用網路來設定配送器及 TCP 伺服器機器。這個配置可以減少可能會影響效能的公用或外部網路上的爭執。
對 AIX 而言,如果您是在 SP(TM) Frame 中的節點上執行配送器和 TCP 伺服器機器,則這個配置也可以運用 SP High Performance Switch 的高速功能。
如果要建立專用網路時,每台機器都至少必須有兩張 LAN 卡, 且其中一張卡要連接專用網路。您也須在不同子網路上配置第二張 LAN 卡。 然後,配送器將透過專用網路,把用戶端要求傳給 TCP 伺服器機器。
Windows;請執行下列指令:
dsconfig en1 10.0.0.x netmask 255.255.255.0
其中 en1 是配送器機器中的第二個介面卡的名稱, 10.0.0.x 則是第二個介面卡的網路位址, 而 255.255.255.0 則是專用網路的網路遮罩。
使用 dscontrol server add 指令的新增伺服器,必須使用專用網址來新增;例如,有關圖 40 中的 Apple 伺服器範例,其指令應撰寫為:
dscontrol server add cluster_address:80:10.0.0.1
而非
dscontrol server add cluster_address:80:9.67.131.18
如果您將使用網站選取器,以便提供資料流量資訊給配送器,則您必須 配置網站選取器,來報告專用位址上的資料流量資訊。
使用專用網路配置,只適用於 Configuration 元件。
使用萬用字元叢集來結合伺服器配置,只適用於配送器元件。
『 wilcard』 會參照叢集的能力, 來配合多重 IP 位址(也就是,作用為萬用字元)。 叢集位址 0.0.0.0 係用來指定萬用字元叢集。
如果您有許多叢集位址需要平衡負載,而且對您所有的叢集而言, 埠/伺服器配置都是相同的,您就可以將所有的叢集合併成萬用字元叢集配置。
您仍必須在配送器工作站的其中一個網路卡上,明確地配置每一個叢集位址。 但是,您不應使用 dscontrol cluster add 指令,將任何叢集位址新增至配送器配置。
請只新增萬用字元叢集(位址 0.0.0.0),並且依需要來配置埠及伺服器來平衡負載。任何傳送至任何配接卡配置位址的資料傳輸, 都會用萬用字元叢集配置來加以平衡負載。
這個方法的優點,就是在決定要傳送到哪一個最佳伺服器時, 傳送至所有叢集位址的資料傳輸都會被列入考量。 如果有一個叢集的資料傳輸量很大,而且該叢集已經在其中一台伺服器上建立了許多作用中連線, 將會用這項資訊來平衡傳送至其他叢集位址的資料傳輸。
如果您有一些叢集位址具有唯一的埠/伺服器配置, 而另一些叢集位址具有一般的配置,您可以將萬用字元叢集與實際叢集合併在一起。 每一個唯一的配置都必須被指派至實際的叢集位址。 所有的一般配置都可以被指派至萬用字元叢集。
使用萬用字元叢集來平衡防火牆的資料流量,只適用於配送器元件。 叢集位址 0.0.0.0 係用來指定萬用字元叢集。
萬用字元叢集可以用來平衡負載,以將資料傳輸至沒有明確地配置在配送器工作站之任何網路卡上的位址。如果要執行這項作業,配送器必須至少要可以看到所要平衡負載的所有資料傳輸。 如果資料傳輸的目的地是尚未明確配置在其中一個網路卡上的位址, 除非已將其設定為資料傳輸組的預設路徑, 否則配送器工作站將無法看到資料傳輸至該位址。
一旦將配送器配置為預設路徑,透過配送器機器的任何 TCP 或 UDP 資料傳輸, 都會用萬用字元叢集配置來平衡負載。
其中一種應用程式就是要平衡防火牆的資料流量。 由於防火牆可以處理任何目的位址及任何目的埠的封包, 所以您必須要能夠在不依賴目的位址及埠的情況下平衡負載。
防火牆可用來處理從非安全用戶端到安全伺服器之間的資料傳輸,以及來自安 全伺服器的回應,也可以處理從安全端上的用戶端到非安全端上的伺服器之間 的資料傳輸,以及回應。
您必須設定二台配送器機器,一台用來平衡要傳送 到非安全防火牆位址的非安全資料傳輸,另一台則用來平衡要傳送到安全防火 牆位址的安全資料傳輸。 因為這二種配送器都必須使用具有不同伺服器位址組的萬用字元叢集及萬用字元埠, 所以這二種配送器必須位在二個分開的工作站上。
將萬用字元叢集與 Caching Proxy 搭配使用來進行透通式 Proxy,只適用於配送器元件。叢集位址 0.0.0.0 係用來指定萬用字元叢集。
萬用字元叢集功能,還可讓配送器用來啟用與配送器位於相同方框之 Caching Proxy 伺服器的透通式 Proxy 伺服器功能。這項功能僅限於 AIX,因為它必須有從配送器元件到作業系統的 TCP 元件之間的通訊。
如果要啟用這項特性,您必須在埠 80 上啟動用戶端要求的 Caching Proxy 接收。然後,您就可以配置萬用字元叢集 (0.0.0.0)。請在萬用字元叢集中配置埠 80。 在埠 80 中,將配送器機器的 NFA 配置成唯一的伺服器。 現在,傳輸到埠 80 上任何位址的任何用戶端資料傳輸,都將被傳遞到在配送器工作站上執行的 Caching Proxy 伺服器。 然後將會照例 Proxy 用戶端要求,並將回應從 Caching Proxy 傳送至用戶端。在這個模式下,配送器元件不會執行任何平衡負載。
萬用字元埠可以用來處理任何非明確配置之埠的資料傳輸。 它的作用之一就是平衡防火牆的資料流量。 作用之二就是確定可以適當地處理傳送至尚未的之埠的資料傳輸。 如果您定義一個沒有伺服器的萬用字元埠, 您要保證傳送至尚未配置之埠的要求都會被捨棄,不會送回作業系統。埠號 0(零)是用來指定萬用字元埠,例如:
dscontrol port add cluster:0
當您配置叢集來處理被動 FTP 和萬用字元埠時,依預設,被動 FTP 會運用整個非專用的 TCP 埠範圍來進行資料連線。這表示如果用戶端現有的連線會透過負載平衡叢集連接到 FTP 控制埠,它就會具有後續的控制連線和高埠連線(埠號 >1023)連接到同一個叢集,且會由 Load Balancer 自動遞送到 FTP 控制連線的同一部伺服器。
如果同一個叢集上的萬用字元埠和 FTP 埠沒有相同的伺服器集, 則當用戶端具有現存的 FTP 控制連線時,高埠應用程式(埠號 >1023)可能會失敗。因此,我們不建議您在同一個叢集上為 FTP 和萬用字元埠配置不同的伺服器集。 如果您需要這種做法,您必須在 Load Balancer 的配置中配置 FTP 常駐程式的被動埠範圍。
這項特性僅限用於配送器元件。
配送器有偵測潛伏的「拒絕服務」攻擊及透過警示通報管理者的能力。配送器分析伺服器上顯著數量之半開啟 TCP 連線的進入要求來完成這項功能,而這項分析就是簡式拒絕服務攻擊的一般特性。在拒絕服務攻擊中,站台自大量的來源 IP 位址及來源埠號,接收大量虛構的 SYN 封包,但站台接收不到那些 TCP 連線的後續封包。這導致伺服器上有大量的半開 TCP 連線,經過一段時間伺服器會變得很慢,且不接受新進入的連線。
Load Balancer 提供了一些會觸發 Script 的使用者跳出程式, 您可以自訂這些 Script 來警告管理者可能發生拒絕服務攻擊。配送器在 ...ibm/edge/lb/servers/samples 目錄中,提供下列的範例 Script 檔:
為了要執行檔案,您必須將它們移至 ...ibm/edge/lb/servers/bin 目錄,並移除 .sample 副檔名。
為了實作 DoS 攻擊偵測,在 dscontrol port 指令上設定的 maxhalfopen 參數如下:
dscontrol port set 127.40.56.1:80 maxhalfopen 1000
在上例中,配送器會將目前半開連線的總數(常駐於叢集 127.40.56.1 埠 80 上的所有伺服器)與臨界值 1000(由 maxhalfopen 參數所指定)相比。如果目前的半開連線超過臨界值,則會呼叫警示 Script (halfOpenAlert)。當半開連線的數目低於臨界值,則會呼叫另一個指示攻擊結束的警示 Script (halfOpenAlertDone)。
如果要決定如何設定 maxhalfopen 值:在您的站台流量正常或流量大時,定期地(或許為每 10 分鐘 )執行半開連線報告 ( dscontrol port halfopenaddressreport cluster:port )。半開連線報告將傳回目前的「已接收半開連線總數」。 您應將 maxhalfopen 設定為比您站台上最大數目的半開連線數還要大 50% 到 200% 的值。
除了報告的統計資料之外,halfopenaddressreport 也會針對所有已存取導致半開連線之伺服器的用戶端位址(高達約 8000 個位址配對),在日誌 (..ibm/edge/lb/servers/logs/dispatcher/halfOpen.log) 中產生項目。
如果要提供對後端伺服器拒絕服務攻擊的其他保護,您可配置萬用字元叢集及埠。特別是在每一個配置的叢集新增沒有伺服器的萬用字元埠。同時新增具有萬用字元埠但沒有伺服器的萬用字元叢集。這將會捨棄未定址於非萬用字元叢集及埠的所有封包。如果需要萬用字元叢集及萬用字元埠的相關資訊,請參閱使用萬用字元叢集來結合伺服器配置及使用萬用字元埠來引導未配置埠的資料傳輸。
二進位記載 功能可將伺服器資訊儲存成二進位檔。然後就可處理這些檔案,以分析一段時間後所收集的伺服器資訊。
下列資訊是儲存在配置中所定義之每個伺服器的二進位日誌中。
這項資訊部分是當成管理程式週期的一部分,而從執行器中擷取出來。因此,必須執行管理程式,才能將資訊記載到二進位日誌中。
使用 dscontrol binlog 指令集來配置二進位記載。
start 選項會開始將伺服器資訊記載到 logs 目錄的二進位日誌中。在每個小時開始時,都會將日期及時間當成檔案名稱,來建立一個日誌。
stop 選項會停上將伺服器資訊記載到二進位日誌中。預設會停止日誌服務程式。
set interval 選項控制將資訊寫入日誌中的頻率。管理程式會在每個管理程式間隔時,將伺服器資訊傳送給日誌伺服器。只有在自上一筆記錄寫到日誌檔後又過了所指定的日誌間隔秒數時,才會再將資訊寫入日誌中。日誌間隔預設是設定成 60 秒。在管理程式間隔及日誌間隔之間會有部分的互動。 因為將資訊提供給日誌伺服器的速度不會快於管理程式間隔秒數,所以將日誌間隔設定小於管理程式間隔可有效率地將它設成與管理程式間隔相同。這項記載技術可讓您攫取任何時間的伺服器資訊。您可攫取管理程式所看到的所有伺服器資訊變更,以計算伺服器加權。但是,這個資訊量可能不需用來分析伺服器使用量及趨勢。每隔 60 秒記載一次伺服器資訊,可提供您一段時間後的伺服器資訊 Snapshot。將日誌間隔設成極小,會產生大量的資料。
設定保留選項可接管要將日誌檔保留多久。 如果日誌檔的日期超過所指定的保留時數,日誌伺服器就會將其刪除。 只有在日誌伺服器被管理程式呼叫時,才會發生這種情形, 所以如果關閉了管理程式,將不會刪除舊的日誌檔。
狀態選項會將日誌服務程式的現行設定傳回。 這些設定有:是否已啟動服務程式、間隔為何,以及保留多少小時。
...ibm/edge/lb/servers/samples/BinaryLog 目錄中提供了一個範例 Java 程式和指令檔。這個範例顯示如何從日誌檔擷取所有的資訊,並將它列印在螢幕上。您可以自行設定,以您指定的類型來分析這些資料。 以下是使用針對配送器提供的 Script 及程式的範例:
dslogreport 2001/05/01 8:00 2001/05/01 17:00
可取得 2001 年 5 月 1 日從 8:00 AM 到 5:00 PM,配送器元件的伺服器資訊報告。(如果是 CBR,請使用 cbrlogreport。)
本章包括下列各節:
Cisco CSS 控制器或 Nortel Alteon 控制器可常駐在與平衡負載要求之伺服器相同的機器上。 這通常被稱為並列伺服器。不需要其他的配置步驟。
Cisco CSS 控制器及 Nortel Alteon 控制器現在可以使用高可用性特性。
為了改進控制器容錯,高可用性功能含有這些特性:
如果需要 xxxcontrol highavailability 的完整語法,請參閱ccocontrol highavailability -- 控制高可用性及nalcontrol highavailability -- 控制高可用性。
如果要配置控制器的高可用性:
xxxcontrol highavailability add address 10.10.10.10 partneraddress 10.10.10.20 port 143 role primary
xxxcontrol highavailability add address 10.10.10.20 partneraddress 10.10.10.10 port 143 role secondary
address 和 partneraddress 參數在主要及次要機器是相反的。
xxxcontrol highavailability set beatinterval 1000
xxxcontrol highavailability usereach 10.20.20.20
在本端及友機控制器上必須配置數目相同的連繫目標。
xxxcontrol highavailability start auto
xxxcontrol highavailability report
xxxcontrol highavailability takeover
僅在維護時才需要。
註:
除了透過活動訊號,來偵測是否失去現行及備用控制器之間的連通性之外, 可連繫性是另一個故障偵測機制。
當配置控制器的高可用性時,您可以提供主機清單,每一個控制器必須連繫這些主機, 才能運作正常。您的控制器機器使用的每一個子網路必須至少有一個主機。這些主機可以是路由器、IP 伺服器或其他主機類型。
主機的可連繫性係透過連通測試到主機的連繫警告器來取得。如果活動訊號無法通過,或如果備用控制器比作用中控制器更能夠符合可連繫性的基準, 便會發生切換動作。要依據所有可用的資訊來做出這個決定,作用中控制器會規律地傳送可連繫性功能給備用控制器,反之亦然。然後,控制器會比較它們的可連繫性資訊與它們的友機資訊,並決定誰應該是作用中。
兩個控制器機器的角色會配置成主要及次要。啟動時,控制器會交換資訊, 直到每一部機器都完成同步化為止。這時,主要控制器將移到作用中狀態, 並且開始計算加權值及更新交換器,次要控制器則移到備用狀態, 並監視主要控制器的可用性。
在任何時候,如果備用機器偵測到作用中機器發生故障, 則備用機器將接管作用中(故障)機器的平衡負載功能,進而變成作用中機器。當主要機器再次可以運作時,兩部機器將根據復原策略的配置方法, 來決定哪一個控制器將是作用中。
有兩種復原策略:
一旦主要控制器再次可以運作,它將移到作用中狀態,同時計算並更新加權值。在主要機器成為作用中後,次要機器將移到備用狀態。
即使主要控制器是可以運作,作用中的次要控制器仍會留在作用中狀態。
主要控制器將移到備用狀態,並需要人工介入,才能移到作用中狀態。
這兩台機器所設定的策略參數必須相同。
如果需要 Cisco CSS 控制器高可用性配置範例,請參閱範例。
如果需要 Nortel Alteon 控制器高可用性配置範例,請參閱範例。
Load Balancer 的控制器功能將依據下列設定,進行平衡負載:
您可以變更這些設定,使您的網路的平衡負載最佳化。
控制器可以在它的加權決策中使用下列部分或所有的度量收集器:
您可以變更度量值的相對重要性比例。 將比例視為百分比;相對比例的和必須等於 100%。依預設, 將使用作用中連線及新連線度量,且它們的比例將設為 50/50。在您的環境中, 您可能需要嘗試不同的度量比例組合,以發現提供最佳效能的組合。
如果要設定比例值:
加權值係依據應用程式回應時間及可用性、來自警告器的回饋以及來自系統監視程式(例如度量伺服器)的回饋所設定的。如果您想要以手動方式設定加權值,請對伺服器指定 fixedweight 選項。如果需要 fixedweight 選項的說明,請參閱控制器固定加權值。
加權值將引用至所有提供服務的伺服器。對任何特定服務而言,將依據它們彼此的相對加權值, 在伺服器之間分送要求。比方說,如果有一個伺服器設定為加權 10,而另一個為 5,則設定為 10 的伺服器取得的要求數目應該是設定為 5 的伺服器的兩倍。
如果警告器發現伺服器已關閉,伺服器的加權值將設成 -1。如果是 Cisco CSS 控制器及 Nortel Alteon 控制器,將通知交換器,伺服器無法使用, 而且交換器停止指定連線給伺服器。
如果沒有控制器,警告器將無法執行且無法偵測伺服器是否已關閉。如果您選擇執行警告器,但不要控制器去更新您為特定伺服器設定的加權值, 則在 ccocontrol service 指令(如果是 Cisco CSS 控制器)上, 或在 nalcontrol server 指令(如果是 Nortel Alteon 控制器)上使用 fixedweight 選項。
使用 fixedweight 指令,將加權值設成您想要的值。當控制器執行時,伺服器加權值會保持固定,直到您發出另一個 fixedweight 設定為 no 的指令。
如果要使整體效能最佳化,您可以限制多久收集度量一次。
顧問休眠時間指定顧問多久更新伺服器加權值一次。如果顧問休眠時間太低,表示效能不佳,這是因為顧問常常岔斷交換器所致。 如果顧問休眠時間太高,表示交換器的平衡負載不是依據精確、最新的資訊而定。
比方說,如果要將顧問休眠時間設成 1 秒:
xxxcontrol consultant set consultantID sleeptime interval
您還可使用其他的方法,最佳化您伺服器的平衡負載。為了保持高速運作,只有在加權發生了重大變更時,才會更新伺服器的加權。當伺服器狀態僅有些許變更或沒有變更時, 持續地更新加權,將會產生不必要的額外執行時間。當所有提供服務的伺服器總加權值的百分比加權值在變更後大於靈敏度臨界值時, 將更新 Load Balancer 用來分送連線的加權值。例如, 假設總加權從 100 變更為 105。變更是 5%。如果預設的靈敏度臨界值是 5, 將不會更新 Load Balancer 所使用的加權值,因為百分比變更小於臨界值。不過, 如果總加權值從 100 變更為 106,將更新加權值。如果要將顧問的靈敏度臨界值設定為預設值以外的值,請輸入下列指令:
xxxcontrol consultant set consultantID sensitivity percentageChange
多數情況下,您可以不必更改這個值。
警告器是 Load Balancer 內部的代理程式。其目的是要評估伺服器機器的狀況及負載。它們會嘗試性地讓類用戶端與伺服器交換,以完成評估。將警告器視為應用程式伺服器的輕裝備用戶端。
警告器會定期開啟與每一個伺服器的 TCP 連線,並且將要求訊息傳送至伺服器。訊息的內容會特別針對在伺服器上執行的通訊協定。例如,HTTP 警告器將 HTTP 『HEAD』 要求傳送至伺服器。
警告器會傾聽來自伺服器的回應。在取得回應之後,警告器就會建立伺服器的指示。為了要計算這個負載值,大部分的警告器都會測量伺服器回應的時間, 然後使用這個值(以毫秒計)來作為負載。
之後,警告器便會將負載值報告給顧問功能, 在這裡它將出現在顧問報告中。然後,顧問會從其所有的來源,根據分配比例,計算集成加權值, 並且將這些加權值傳送到交換器。交換器會使用這些加權值,為新進入的用戶端連線平衡負載。
如果警告器判定伺服器運作正常,就會報告一個非零值的正負載數給顧問。如果警告器判定伺服器並沒有在運作,就會傳回一個特殊的負載值 -1, 通知交換器,伺服器已關閉。接著,交換器將不會再轉遞任何進一步的連線給伺服器,直到伺服器再次啟動為止。
警告器休眠時間會設定警告器隔多久將向它所監視的埠上的伺服器要求狀態資訊, 然後向顧問報告結果。如果警告器休眠時間太低,表示效能不佳,這是因為警告器常常岔斷伺服器所致。 如果警告器休眠時間太高,表示顧問的加權決策不是依據精確、最新的資訊而定。
比方說,如果要將 HTTP 警告器的間隔設成 3 秒時,請輸入下列指令:
xxxcontrol metriccollector set consultantID:HTTP sleeptime 3
您可以設定警告器偵測伺服器或服務上的特定埠是否發生故障所花費的時間量。故障伺服器逾時值(connecttimeout 和 receivetimeout)會判定報告連接或接收失敗之前,警告器的等待時間。
如果要最快偵測到失效的伺服器, 請將警告器的連接及接收逾時值設為最小值(1 秒鐘),並將警告器及顧問的 sleeptime 設為最小值(1 秒鐘)。
如果要將 HTTP 警告器的 timeoutconnect 設成 9 秒,請輸入下列指令:
xxxcontrol metriccollector set consultantID:HTTP timeoutconnect 9
預設的連接及接收逾時是指定給警告器休眠時間之值的 3 倍。
警告器有能力在將伺服器標示為當機之前重試連線。警告器在伺服器查詢失敗重試次數加上 1 之前,不會將伺服器標示為當機。如果沒有設定重試值,則預設值為 0。
如果是 Cisco CSS 控制器,則以 ccocontrol ownercontent set 指令設定重試值。如果需要詳細資訊,請參閱ccocontrol ownercontent -- 控制擁有者名稱及內容規則。
如果是 Nortel Alteon 控制器,則以 nalcontrol service set 指令設定重試值。如果需要詳細資訊,請參閱nalcontrol service -- 配置服務。
自訂(可自訂的)警告器是一小段 Java 程式碼, 它可以提供做為類別檔,並透過基本程式碼來呼叫。基本程式碼提供所有管理服務,如:
它也會將結果報告給顧問。基本程式碼會定期地執行顧問循環,在這個循環中, 它會個別評估其配置中的所有伺服器。您可以開啟與伺服器機器的連線,以將它啟動。 如果開啟了 socket,基本程式碼就會在自訂警告器中呼叫 getLoad 方法(函數)。 然後,自訂警告器就會執行必需的步驟,來評估伺服器的狀況。一般而言, 它會將使用者定義的訊息傳送至伺服器,然後等待回應。(對 Socket 的存取權限會提供給自訂警告器。) 然後, 基本程式碼會關閉與伺服器之間的 socket,並且將負載資訊報告給顧問。
基本程式碼及自訂警告器的操作模式有一般及置換二種。而操作模式的選擇則是在自訂警告器檔案中,用建構元方法及參數來指定。
在一般的模式中,自訂警告器會與伺服器交換資料, 而基本警告器程式碼會指定交換的時間,並計算資料流量值。然後,基本程式碼會將這個負載值報告給顧問。自訂警告器只需要傳回一個 0(成功時)或 -1(發生錯誤時)。如果要指定一般模式,建構元中的置換旗號要設定為 false。
在置換模式中,基本程式碼不會執行任何時間測量工作。自訂警告器程式碼會執行其特殊需求所必要的任何作業,然後傳回實際的資料流量號碼。基本程式碼將會接受這個號碼,並且將它報告給顧問。為獲得最佳結果,請將介於 10 和 1000 之間的資料流量號碼正常化,10 代表快速伺服器,而 1000 代表慢速伺服器。如果要指定置換模式,建構元中的置換旗號要設定為 true。
有了這項特性,您可以撰寫您自己的警告器,提供您所需的伺服器的相關精確資訊。有一個範例自訂警告器 ADV_ctlrsample.java 提供給控制器。 安裝 Load Balancer 之後,您可在 ...ibm/edge/lb/servers/samples/CustomAdvisors 安裝目錄中尋找範例程式碼。
預設的安裝目錄為:
您的自訂警告器檔名必須使用 myadvisor.java 的格式。必須用大寫的前置符號 ADV_ 來作為開頭。所有後續的字元都必須是小寫字母。
根據 Java 慣例,定義在檔案內的類別名稱必須符合檔案的名稱。如果您要複製範例碼,請務必將檔案中所有的 ADV_ctrlsample 實例變更為您的新類別名稱。
自訂警告器是以 Java 語言來撰寫的。您必須取得並安裝適用您機器的 Java 1.4 編譯器。在編譯期間,會參照下列檔案:
您的 classpath 在編譯期間必須同時指向自訂警告器及基礎類別檔。
如果是 Windows 平台,編譯指令看起來如下:
javac -classpath install_dir\lb\servers\lib\ibmnd.jar ADV_pam.java
其中:
編譯的輸出結果是一個類別檔案;例如:
ADV_pam.class
啟動警告器之前,將類別檔複製到 ...ibm/edge/lb/servers/lib/CustomAdvisors 安裝目錄。
針對 AIX、HP-UX、Linux 和 Solaris,語法是類似的。
如果要執行自訂警告器,您必須先將類別檔複製到正確的安裝目錄:
...ibm/edge/lb/servers/lib/CustomAdvisors/ADV_pam.class
啟動顧問,然後發出這個指令來啟動您的自訂警告器:
其中:
和所有的警告器一樣,自訂警告器會擴充警告器基礎(稱為 ADV_Base)的功能。警告器基礎實際執行大部分警告器功能(例如,將負載回報顧問, 以供顧問的加權值演算法使用)。警告器基礎也會執行 Socket 連線及關閉作業,並提供傳送和接收方法供警告器使用。警告器本身僅可用來將資料傳送到和接收自所通告的伺服器上的埠。警告器基礎內的 TCP 方法會適時計算資料流量。必要時, ADV_base 中建構元內的旗號,會以警告器傳回的新資料流量,來覆寫現存的資料流量。
以下是基礎類別方法:
控制器首先會查看提供的本機警告器清單;如果它們在那裡找不到給定的警告器,它們將查看自訂警告器清單。
/opt/ibm/edge/lb/servers/lib/CustomAdvisors/
C:\Program Files\IBM\edge\lb\servers\lib\CustomAdvisors
對控制器範例警告器所列的程式,是包含在範例警告器中。安裝之後,可在 ...ibm/edge/lb/servers/samples/CustomAdvisors 目錄中找到這個範例警告器。
度量伺服器以系統特定度量表格,提供 Load Balancer 有關伺服器的載入資訊,並報告於伺服器的狀況上。Load Balancer 顧問查詢常駐於每一個伺服器上的度量伺服器代理程式,並使用收集自代理程式的度量來為平衡負載程序指定加權值。結果也會置於 Cisco CSS 控制器的服務報告或 Nortel Alteon 控制器的伺服器報告中。
在平衡負載的所有伺服器上都必須安裝並執行度量伺服器代理程式。
以下為配置控制器的度量伺服器的步驟。
如果是 Nortel Alteon 控制器,請新增交換器顧問,再新增服務。
其中 metricName 是度量伺服器 Script 的名稱。
系統度量 Script 常駐在後端伺服器,並在配置中指定的 ownercontent 或服務下的每一個伺服器上執行。提供兩個 Script:cpuload 和 memload,或您可以建立自訂系統度量 Script。script 含有必須傳回數值的指令。這個數值代表載入測量,而非可用性值。
限制:在 Windows 上,如果系統度量 Script 的副檔名不是 .exe,您必須指定檔案的完整名稱,例如:mySystemScript.bat。這是 Java 的限制。
您可以選用性地撰寫自訂的度量 Script 檔,定義度量伺服器將在伺服器機器上發出的指令。請確定任何自訂的 Script 是可執行檔,且位於 ...ibm/edge/lb/ms/script 目錄中。自訂 Script 必須傳回以數值的載入值。
如果要讓度量伺服器在本端主機以外的位址上執行,請編輯平衡負載伺服器機器上的 metricserver 檔案。在 metricserver 檔中的 java 後,插入下列內容:
-Djava.rmi.server.hostname=OTHER_ADDRESS
此外,在 metricserver 檔案中的 "if" 陳述式之前,新增這一行:hostname OTHER_ADDRESS。
如果是 Windows:請指定 OTHER_ADDRESS 在 Microsoft 堆疊中的別名。如果要指定 Microsoft 堆疊上位址的別名,請參閱第 *** 頁。
WLM 是在 MVS 大型電腦上執行的程式碼。您可以查詢它來詢問 MVS 機器的負載量。
如果 OS/390 系統上配置了「MVS 工作量管理」,控制器就能接受 WLM 的容量資訊,並利用它來進行平衡負載程序。如果使用 WLM 警告器,控制器會根據控制器主機表, 定期透過每一個伺服器上的 WLM 埠來開啟連線,並接收所傳回的容量整數。由於這些整數是代表仍可使用的容量數, 而顧問期望值代表每一台機器上的負載, 所以警告器會將容量整數轉化,並將其正常化為負載值(例如, 大的容量整數,小的負載值,都代表情況較良好的伺服器)。WLM 警告器及其他控制器警告器之間,有幾項重要的差異:
二進位記載 功能可將伺服器資訊儲存成二進位檔。然後就可處理這些檔案,以分析一段時間後所收集的伺服器資訊。
下列資訊是儲存在配置中所定義之每個伺服器的二進位日誌中。
顧問必須正在執行,才能將資訊記載在二進位日誌中。
使用 xxxcontrol consultant binarylog 指令集, 配置二進位記載。
start 選項會開始將伺服器資訊記載到 logs 目錄的二進位日誌中。在每個小時開始時,都會將日期及時間當成檔案名稱,來建立一個日誌。
stop 選項會停止將伺服器資訊記載到二進位日誌中。預設會停止日誌服務程式。
set interval 選項控制將資訊寫入日誌中的頻率。顧問會在每個顧問間隔時,將伺服器資訊傳送給日誌伺服器。只有在自上一筆記錄寫到日誌檔後又過了所指定的日誌間隔秒數時,才會再將資訊寫入日誌中。日誌間隔預設是設定成 60 秒。
在顧問間隔及日誌間隔的設定之間會有部分的互動。因為將資訊提供給日誌伺服器的速度不會比顧問間隔秒數更快,所以將日誌間隔設定小於顧問間隔,實際上會將它設成與顧問間隔相同。
這個記載技術可讓您攫取任何時間的伺服器資訊。您可攫取顧問所看到的所有伺服器資訊變更,以計算伺服器加權值; 不過,可能不需要這個資訊數量,就能分析伺服器用量及趨勢。每隔 60 秒記載一次伺服器資訊,可提供您一段時間後的伺服器資訊 Snapshot。將日誌間隔設成極小,會產生大量的資料。
設定保留選項可接管要將日誌檔保留多久。如果日誌檔的日期超過所指定的保留時數,日誌伺服器就會將其刪除。僅在顧問呼叫日誌伺服器時,才會發生這種情況,所以如果您停止顧問, 將不會刪除舊的日誌檔。
...ibm/edge/lb/servers/samples/BinaryLog 目錄中提供的一個範例 Java 程式和指令檔。這個範例顯示如何從日誌檔擷取所有的資訊,並將它列印在螢幕上。您可以自訂,以您指定的類型來分析這些資料。
以下是使用提供的 Script 及程式的範例:
xxxlogreport 2002/05/01 8:00 2002/05/01 17:00
這將產生控制器的伺服器資訊的報告,時間從 2002 年 5 月 1 日的 8:00 AM 到 5:00 PM。
Load Balancer 提供使用者跳出程式,觸發您可自訂的 Script。您可建立執行自動化動作的 Script,例如,當伺服器標示為關閉,或單純記錄失敗事件時, 對「管理者」發出警示。您可自訂的範例 Script,位於 ...ibm/edge/lb/servers/samples 安裝目錄中。 如果要執行檔案,請將它們複製到 ...ibm/edge/lb/servers/bin 目錄,然後根據 Script 中所包含的指示來更名每一個檔案。
下列是提供的範例 Script,其中 xxx 是 cco 代表 Cisco CSS 控制器, 而 nal 代表 Nortel Alteon 控制器:
本篇提供 Load Balancer 管理及疑難排解的相關資訊。 它含有下列各章:
本章將說明如何操作及管理 Load Balancer,其中包括下列各節:
Load Balancer 提供兩種不同的方式,用以在不同於 Load Balancer 所常駐的其他機器上執行其配置程式。 配置程式(dscontrol、cbrcontrol、sscontrol、ccocontrol、nalcontrol)與伺服器(dsserver、cbrserver 等)之間的通訊可以使用下列方法之一來執行:
使用 RMI 進行遠端管理的優點在於其效能比 Web 型管理來得快速。
使用 Web 型管理的優點則是它具備安全性、經過鑑別、能進行遠端管理,而且即使有防火牆仍可與 Load Balancer 機器通訊。 此外,此種管理方法不需要在遠端用戶端機器(與 Load Balancer 機器通訊者)上,安裝及使用鑑別金鑰 (lbkeys)。
對 RMI 而言,用來連結 Load Balancer 機器以進行遠端管理的指令是 dscontrol host:remote_host。
如果提出 RMI 呼叫的機器不是本端機器,則必須先經過公開金鑰/私密金鑰 的鑑別程序, 才能接受配置指令。
如果控制程式是在與元件伺服器相同的機器上執行,則不會鑑別控制程式之間的通訊。
請使用下列指令來產生要用在遠端鑑別的公開及私密金鑰:
此指令只可於 Load Balancer 所在的相同機器上執行。
可針對各個 Load Balancer 元件,使用 create 選項在伺服器金鑰目錄 (...ibm/edge/lb/servers/key/) 下建立私密金鑰,並在管理金鑰目錄 (...ibm/edge/lb/admin/keys/) 下建立公開金鑰。 公開金鑰的檔名是:component-ServerAddress-RMIport。 這些公開金鑰必須接著傳輸到遠端用戶端,並且放置在管理金鑰目錄中。
對於主機名稱位址為 10.0.0.25 且對各元件使用預設 RMI 埠的 Load Balancer 機器而言, lbkeys create 指令會產生下列檔案:
管理檔案集已安裝在另一個機器上。 公開金鑰檔案須位於遠端用戶端機器的 ...ibm/edge/lb/admin/keys 目錄下。
遠端用戶端現在將會被授權,以在 10.0.0.25 上配置 Load Balancer。
在所有您要授權以在 10.0.0.25 上配置 Load Balancer 的遠端用戶端上,都必須使用這個相同的金鑰。
如果您再執行一次 lbkeys create 指令,將會產生一組新的公開/私密金鑰。 這表示所有嘗試使用舊金鑰來連線的遠端用戶端,都將無法被授權。 新的金鑰必須放置在您要重新授權之用戶端的正確目錄中。
lbkeys delete 指令會刪除伺服器機器上的私密及公開金鑰。 如果刪除了這些金鑰,則不會授權任何遠端用戶端來連接伺服器。
對 lbkeys create 和 lbkeys delete 而言,兩者皆有 force 選項。force 選項可抑制指令提示,使系統不會詢問您是否要覆寫或刪除現有金鑰。
一旦建立了 RMI 連線後,您即可透過指令提示,用 dscontrol、cbrcontrol、sscontrol、ccocontrol、nalcontrol、dswizard、cbrwizard 和 sswizard 指令,來與配置程式通訊。 您也可藉由在指令提示輸入 lbadmin,透過 GUI 來配置 Load Balancer。
如果要使用 Web 型管理,執行遠端管理的用戶端機器將需要下列項目:
如果要執行遠端 Web 型管理,您所存取的主機須具有下列項目:
如果是 Windows 系統 --
Protect /lb-admin/lbwebaccess PROT-ADMIN Exec /lb-admin/lbwebaccess C:\PROGRA~1\IBM\edge\lb\admin\lbwebaccess.pl Pass /lb-admin/help/* C:\PROGRA~1\IBM\edge\lb\admin\help\* Pass /lb-admin/*.jar C:\PROGRA~1\IBM\edge\lb\admin\lib\*.jar Pass /lb-admin/* C:\PROGRA~1\IBM\edge\lb\admin\* Pass /documentation/lang/* C:\PROGRA~1\IBM\edge\lb\documentation\lang\*其中 lang 是您的語言子目錄(例如,en_US)
如果是 UNIX 型的作業系統 --
Protect /lb-admin/lbwebaccess PROT-ADMIN Exec /lb-admin/lbwebaccess /opt/ibm/edge/lb/admin/lbwebaccess.pl Pass /lb-admin/help/* /opt/ibm/edge/lb/admin/help/* Pass /lb-admin/*.jar /opt/ibm/edge/lb/admin/lib/*.jar Pass /lb-admin/* /opt/ibm/edge/lb/admin/* Pass /documentation/lang/* /opt/ibm/edge/lb/documentation/lang/*
ln -s /opt/perl/bin/perl /usr/bin/perl
為了能夠執行 Web 型管理,它必須在 Load Balancer 主機上啟動: 從主機的指令提示發出 lbwebaccess。
您還需要您在遠端所存取之主機的使用者 ID 及密碼。 這個使用者 ID 及密碼相同於 Caching Proxy 管理的使用者 ID 及密碼。
如果要起始 Load Balancer 的 Web 型管理,請用您的 Web 瀏覽器從遠端位置存取下列 URL:
http://host_name/lb-admin/lbadmin.html
其中的 host_name 是您正在存取(以便與 Load Balancer 通訊)之機器的名稱。
一旦載入 Web 頁面後,Load Balancer GUI 將出現在瀏覽器視窗中,供您執行遠端 Web 型管理。
透過 Load Balancer GUI,您還可發出配置控制指令。 如果要從 GUI 發出指令:
有了遠端 Web 型管理,如果有多位管理者要從其他位置來更新 Load Balancer 配置,您將須重新整理其配置,以檢視(例如)其他管理者所新增(或刪除)的叢集、埠或伺服器。 遠端 Web 型管理 GUI 具有重新整理配置及重新整理所有配置功能。
請透過此 Web 型 GUI,重新整理配置
Load Balancer 會將項目傳遞至伺服器日誌、管理程式日誌、測量監視程式日誌(記載與度量伺服器代理程式的通訊) 以及您使用的每一個警告器的日誌。
您可以設定記載層次, 來定義寫入日誌中的訊息涵蓋範圍。在層次 0,除了記載錯誤外,Load Balancer 也會記錄僅發生一次之事件(例如,關於警告器開始被寫入管理程式日誌中的訊息)的標頭及記錄。 層次 1 包含進行中的資訊等等,層次 5 則包含必要時用來協助問題除錯而產生的訊息。 管理程式、警告器、伺服器或子代理程式的預設值是 1。
您也可以設定日誌的最大大小。當您設定日誌檔的最大大小時,檔案將折返; 當檔案達到指定的大小時,後續的項目將寫在檔案頂端,而蓋掉先前的日誌項目。 您不能將日誌大小設定為小於目前日誌的值。日誌項目有時間戳記, 您可以得知寫入的先後次序。
您設定的記載層次愈高,就應該更小心地選擇日誌大小。在層次 0,將日誌大小保留為預設值 1MB 可能仍相當安全;不過,當記載在層次 3 以上時,您應該限制大小,但不要設得太小,而無法使用。
依預設,Load Balancer 所產生的日誌會儲存在 Load Balancer 安裝作業的日誌目錄中。如果要變更這個路徑,請設定 dsserver Script 中的 lb_logdir 變數。
AIX、HP-UX、Linux 和 Solaris:dsserver Script 位於 /usr/bin 目錄中。在此 Script 中,變數 lb_logdir 是設定為預設目錄。 您可以修改此變數,以指定您的日誌目錄。範例:
LB_LOGDIR=/path/to/my/logs/
Windows:dsserver 檔位於 Windows 系統目錄中,通常是 C:\WINNT\SYSTEM32。在 dsserver 檔中,變數 lb_logdir 是設定為預設目錄。 您可以修改此變數,以指定您的日誌目錄。範例:
set LB_LOGDIR=c:\path\to\my\logs\
無論您使用任何作業系統,請確定等號前後都沒有空格, 而且路徑是以斜線結束("/" 或 "\" 視所用的作業系統而定)。
Load Balancer 的二進位記載功能所使用的日誌目錄與其他日誌檔相同。請參閱使用二進位記載功能來分析伺服器統計值。
您可以設定記載層次, 來定義寫入日誌中的訊息涵蓋範圍。在層次 0,除了記載錯誤外,Load Balancer 也會記錄僅發生一次之事件(例如,關於警告器開始被寫入警告器日誌中的訊息)的標頭及記錄。 層次 1 包含進行中的資訊等等,層次 5 則包含必要時用來協助問題除錯而產生的訊息。 日誌的預設值是 1。
您也可以設定日誌的最大大小。當您設定日誌檔的最大大小時,檔案將折返; 當檔案達到指定的大小時,後續的項目將寫在檔案頂端,而蓋掉先前的日誌項目。 您不能將日誌大小設定為小於目前日誌的值。日誌項目有時間戳記, 您可以得知寫入的先後次序。
您設定的記載層次愈高,就應該更小心地選擇日誌大小。在層次 0,將日誌大小保留為預設值 1MB 可能仍相當安全;不過,當記載在層次 3 以上時,您應該限制大小,但不要設得太小,而無法使用。
Cisco CSS 控制器及 Nortel Alteon 控制器具有如下的日誌:
下列範例說明如何配置度量監視程式日誌(記載與度量伺服器代理程式的通訊)的記載層次及最大日誌大小:
xxxcontrol metriccollector set consultantID:serviceID:metricName loglevel x logsize y
依預設,控制器所產生的日誌會儲存在控制器安裝作業的日誌目錄中。 如果要變更這個路徑,請在 xxxserver Script 中設定 xxx_logdir 變數。
AIX、HP-UX、Linux 和 Solaris:xxxserver Solaris 位於 /usr/bin 目錄中。在此 Script 中,變數 xxx_logdir 設為預設目錄。 您可以修改此變數,以指定您的日誌目錄。範例:
xxx_LOGDIR=/path/to/my/logs/
Windows:xxxserver 檔位於 Windows 系統目錄中,通常是 C:\WINNT\SYSTEM32。 在 xxxserver 檔中,變數 xxx_logdir 設為預設目錄。 您可以修改此變數,以指定您的日誌目錄。範例:
set xxx_LOGDIR=c:\path\to\my\logs\
無論您使用任何作業系統,請確定等號前後都沒有空格, 而且路徑是以斜線結束("/" 或 "\" 視所用的作業系統而定)。
Load Balancer 的二進位記載功能所使用的日誌目錄與其他日誌檔相同。請參閱使用二進位記載功能來分析伺服器統計值。
本節說明如何使用及管理配送器元件。
對 Load Balancer 而言,在閒置逾時所指定的秒數內,如果連線沒有任何活動時,即視為逾時。 當超過此秒數而無任何活動時,Load Balancer 會將連線記錄從其報告中移除,而該連線的後續資料傳輸將被捨棄。
例如,您可以在埠層次於 dscontrol port set staletimeout 指令上指定閒置逾時值。
閒置逾時可在執行器、叢集及埠等層次進行設定。 在執行器及叢集層次,預設值是 300 秒,而它會過濾至埠。 在埠層次上,預設值須取決於埠。某些充份定義的埠具有不同的預設閒置逾時值。 例如,telnet 埠 23 的預設值為 259,200 秒。
某些服務程式亦可能具有其本身的閒置逾時值。 例如,LDAP(輕裝備目錄存取通訊協定)擁有名為 idletimeout 的配置參數。當超過 idletimeout 秒數時,閒置用戶端連線將被迫結束。 idletimeout 亦可能被設成 0,表示連線永遠不會被迫結束。
當 Load Balancer 的閒置逾時值小於服務程式的逾時值時,即可能發生連通性問題。 如果是 LDAP 時,Load Balancer 閒置逾時值會預設成 300 秒。 如果連線上經過 300 秒並無任何活動,Load Balancer 將會從它的表格中移除連線記錄。 如果 idletimeout 值大於 300 秒(或設成 0),用戶端可能仍相信其對伺服器保有連線。 當用戶端傳送封包時,Load Balancer 將捨棄封包。如此會在對伺服器提出要求時,使 LDAP 中斷。 要避免此問題,請將 LDAP 的 idletimeout 設成非零值,且等於或小於 Load Balancer staletimeout 值。
用戶端會在傳送所有封包後,傳送一個 FIN 封包給伺服器,好讓伺服器知道已完成異動。 當配送器接收 FIN 封包後,就會將異動從作用中狀態標示為 FIN 狀態。 一旦異動標示為 FIN,內建在執行器中的記憶體回收器即可清除保留給連線的記憶體。
您可以使用 FIN 逾時及計數,來設定執行器執行記憶體回收的頻率,及執行程度。 執行器會週期性地檢查已配置的連線列示。當處於 FIN 狀態的連線數目大於或等於 FIN 計數時, 執行器就會嘗試釋放用來保存這個連線資訊的記憶體。您可以輸入 dscontrol executor set fincount 指令,來變更 FIN 計數。
只要是處於 FIN 狀態,並且比 FIN 逾時中所指定秒數還舊的任何連線, 記憶體回收器都會將其所使用的記憶體釋放。 您可以輸入 dscontrol executor set fintimeout 指令,來變更 FIN 逾時。
閒置逾時值是指連線停止活動多少秒後,立即移除連線。相關資訊,請參閱使用閒置逾時值。FIN 計數也會影響移除「逾時」連線的頻率。 如果在您的配送器機器上記憶體不多, 您應該設定較低的 FIN 計數。如果您的 Web 站台很忙碌, 您應該設定較高的 FIN 計數。
系統會根據來自執行器的資訊顯示各種圖表,並將這些圖表轉送至管理程式。 (GUI 監視程式功能表選項須執行管理程式功能來配合):
網路管理系統是一種可持續不斷執行的程式,可用來監視、控制網路以及反映網路狀態。「簡易網路管理通訊協定」(SNMP) 是一種用來與網路中的裝 置進行通訊的特定通訊協定,並且是現行網路管理標準。網路裝置通常有 SNMP 代理程式, 以及一或多個子代理程式。SNMP 代理程式會與網路管理站通話,或回應指令行 SNMP 要求。SNMP 子代理程式會擷取及更新資料,並將該資料提供給 SNMP 代理程式,以便傳遞回要求器。
配送器提供 SNMP 管理資訊庫 (ibmNetDispatcherMIB) 和 SNMP 子代理程式。這可讓您使用任何的網路管理系統,例如 -- Tivoli(R) NetView(R)、Tivoli Distributed Monitoring 或 HP OpenView -- 來監視配送器的狀況、通訊量及活動。MIB 資料說明受管理中的配送器, 並反映目前的配送器狀態。 MIB 會安裝在 ..lb/admin/MIB 子目錄下。
網路管理系統使用 SNMP GET 指令來查看其他機器上的 MIB 值。然後, 它可以通知您是否已超出指定的臨界值。您稍後可以藉由修改配送器的配置資料來影響配送器, 以便在配送器或 Web 伺服器變成停用之前,預先調整或修正配送器問題。
系統通常會對每一個網路管理站提供一個 SNMP 代理程式。 使用者可傳送 GET 指令到 SNMP 代理程式。然後,此 SNMP 代理程式會傳送 GET 指令, 以便從負責 MIB 變數的子代理程式中擷取指定 MIB 變數值。
配送器提供可更新及擷取 MIB 資料的子代理程式。子代理程式會在 SNMP 代理程式傳送 GET 指令時, 回應適當的 MIB 資料。SNMP 代理程式會將資料傳遞到網路管理站。然後, 網路管理站可以通知您是否已超出指定的臨界值。
配送器 SNMP 支援包含了使用「分散式程式介面」(DPI(R)) 功能的 SNMP 子代理程式。DPI 是一種介於 SNMP 代理程式和其子代理程式之間的介面。Windows 作業系統會使用 Windows 延伸代理程式做為 SNMP 代理程式和其子代理程式之間的介面。
AIX 提供了一個使用「SNMP 多工器通訊協定」(SMUX) 的 SNMP 代理程式,並提供了 DPID2,這是另一個在 DPI 和 SMUX 之間做為轉換器使用的執行檔。
如果是 HP-UX,您必須取得啟用 SMUX 的 SNMP 代理程式, 因為 HP-UX 並未提供。Load Balancer 提供了 DPID2 for HP-UX。
Linux 具備了使用 SMUX 的 SNMP 代理程式。 大部分的 Linux 版本(例如 Red Hat)皆已隨附 UCD SNMP 套裝軟體。 UCD SNMP 4.1 版以上者皆具有啟用 SMUX 的代理程式。Load Balancer 則提供 DPID2 for Linux。
如果是 Solaris,您必須取得已啟用 SMUX 的 SNMP 代理程式, 因為 Solaris 並不提供此類代理程式。Load Balancer 提供了 DPID2 for Solaris, 其位於 /opt/ibm/edge/lb/servers/samples/SNMP 目錄中。
DPI 代理程式必須以 root 使用者的身分執行。在您執行 DPID2 常駐程式之前, 請按照下列方式來更新 /etc/snmpd.peers 檔案及 /etc/snmpd.conf 檔案:
如果是 AIX 和 Solaris:
"dpid2" 1.3.6.1.4.1.2.3.1.2.2.1.1.2 "dpid_password"
smux 1.3.6.1.4.1.2.3.1.2.2.1.1.2 dpid_password #dpid
如果是 Linux:
"dpid2" 1.3.6.1.4.1.2.3.1.2.2.1.1.2 "dpid_password"
smuxpeer .1.3.6.1.4.1.2.3.1.2.2.1.1.2 dpid_password
另外,您還必須將 snmpd.conf 檔案中開頭為下列字樣的各行加上備註:com2sec、group、view 或 access。
如果要安裝 HP-UX SNMP 支援,請執行下列動作:
為了讓 Load Balancer SNMP 與 SuSE Linux 能夠搭配使用,您必須執行下列步驟:
重新整理 snmpd(如果已執行),使其重新讀取 snmpd.conf 檔案:
refresh -s snmpd
啟動 DPID SMUX 同層級:
dpid2
各常駐程式必須依下列順序啟動:
如果要安裝 Solaris SNMP 支援:
/etc/rc3.d/S76snmpdx 更名為 /etc/rc3.d/K76snmpdx
/etc/rc3.d/S77dmi 更名為 /etc/rc3.d/K77dmi
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: /usr/local/lib:/usr/local/ssl/lib:/usr/lib
export PATH=/usr/local/sbin:/usr/local/bin:$PATH
export SNMPCONFPATH =/etc/snmp
export MIBDIRS=/usr/local/share/snmp/mibs
cp /opt/ibm/edge/lb/servers/samples/SNMP/dpid2 /usr/local/sbin/dpid2
"dpid2" 1.3.6.1.4.1.2.3.1.2.2.1.1.2 "dpid_password"
smuxpeer 1.3.6.1.4.1.2.3.1.2.2.1.1.2 dpid_password
註:
在 http://sunfreeware.com/ 網站,名稱具有副檔名 .gz, 請不要嘗試將其解壓縮 (gunzip/untar)。請改用 pkgadd packageName。
如果要安裝 Windows SNMP 支援,請執行下列動作:
在執行器執行時,您可以使用 dscontrol subagent start [communityname] 指令來定義 Windows OS 延伸代理程式和 SNMP 代理程式之間所使用的社群名稱。
重要事項:在 Windows 2003 上,依預設,SNMP 不會回應任何呈現的社群名稱。在這種情況下,SNMP 子代理程式並不會回應任何 SNMP 要求。為了確保 SNMP 子代理程式會回應社群名稱, 您必須以適當的社群名稱和目的地主機來設定「SNMP 服務內容」。請如下配置 SNMP 安全內容:
SNMP 是經由傳送及接收設陷來通訊的, 受管理的裝置會傳送「設陷」訊息,以報告例外狀況或重大事件的發生(例如,已達到臨界值)。
此子代理程式會使用下列設陷:
indHighAvailStatus 設陷會宣佈, 高可用性狀態變數值 (hasState) 已變更。hasState 可能的值如下:
indSrvrGoneDown 設陷會宣佈, 由「物件 ID」中的 csID(叢集 ID)、psNum(埠號)和 ssID(伺服器 ID)所指定的伺服器加權已降為零。已將伺服器加權降為零之前最後所知現行的連線數傳送給設陷。 這個設陷表示,就配送器所能判斷的範圍,指定的伺服器已關閉。
indDOSAttack 設陷會指出 numhalfopen(純由 SYN 封包組成的半開啟連線數)已超過由「物件識別碼」的 csID(叢集 ID)和 psNum(埠號) 部分所指定之埠的 maxhhalfopen 臨界值。在該埠上所配置的伺服器數已傳送到此設陷中。 此設陷會指出 Load Balancer 可能正遭逢「拒絕服務攻擊」。
indDOSAttackDone 設陷會指出 numhalfopen(純由 SYN 封包組成的半開啟連線數)已低於由「物件識別碼」的 csID 和 psNum 部分所指定之埠的 maxhhalfopen 臨界值。 在該埠上所配置的伺服器數已傳送到此設陷中。 當 Load Balancer 判斷可能的「拒絕服務攻擊」已結束時,此設陷會接在 indDOSAttack 設陷之後被傳送。
針對 UNIX 型的系統,由於 SMUX API 的限制,ibmNetDispatcher 子代理程式的設陷中所報告的企業識別碼可能是企業識別碼 dpid2,而不是 ibmNetDispatcher 的企業識別碼 1.3.6.1.4.1.2.6.144。不過,SNMP 管理公用程式將可判斷設陷來源, 因為資料將包含 ibmNetDispatcher MIB 內部的物件識別碼。
dscontrol subagent start 指令可開啟 SNMP 支援。 而 dscontrol subagent stop 指令則可關閉 SNMP 支援。
有關 dscontrol 指令的進一步資訊,請參閱dscontrol subagent -- 配置 SNMP 子代理程式。
Linux 核心已內建了名為 ipchains 的防火牆機能。 當 Load Balancer 與 ipchains 並行執行時,Load Balancer 會先看到封包,其後才是 ipchains。 如此可藉由 ipchains 來強化 Linux Load Balancer 方框,而此方框(例如)可以是用來平衡負載防火牆的 Load Balancer 方框。
當 ipchains 或 iptables 被配置成完全受限(不得有入埠或離埠資料傳輸)時, Load Balancer 的封包轉送部分會繼續正常運作。
請注意:ipchains 和 iptables 未經平衡負載前,不可用於過濾外來資料傳輸。
有些額外的資料傳輸須針對所有的 Load Balancer 加以允許以便能正常運作。 以下是此種通訊的一些範例:
一般而言,適當的 ipchains 策略讓 Load Balancer 方框禁止所有資料傳輸,除非是進出後端伺服器、友機高可用性 Load Balancer、任何連繫目標或任何配置主機的資料傳輸。
當 Linux 核心程式 2.4.10.x. 版上的 Load Balancer 在執行中時,不建議啟動 iptables。在這個 Linux 核心程式版本上啟動可以導致效能隨著時間退化。
如果要撤銷 iptables,請列示模組 (lsmod) 來了解哪一個模組正在使用 ip_tables and ip_conntrack,然後利用發出 rmmod ip_tables 和 rmmod ip_conntrack來移除他們。當重新啟動機器時,會再次新增這些模組,因此,每次重新啟動時,都必須重複這些步驟。
如果需要支援 Linux 核心程式版本的相關資訊,請參閱Linux 的基本需求。
本節說明如何操作及管理 Load Balancer 的 CBR 元件。
CBR 和 Caching Proxy 可透過 Caching Proxy 外掛程式 API 協力處理 HTTP 和 HTTPS (SSL) 要求。 要使 CBR 開始對伺服器進行平衡負載,Caching Proxy 必須在同一機器上執行。 請按CBR 配置範例 中所述方式來設定 CBR 和 Caching Proxy。
啟動 CBR 後,您可以藉下列其中一項方法來加以控制:
CBR 所使用的日誌與在配送器中所使用的日誌類似。 如果需要詳細資訊,請參閱使用 Load Balancer 日誌。
啟動網站選取器後,您可以藉下列其中一項方法來加以控制:
網站選取器所用的日誌與在配送器中所使用的日誌類似。詳細說明,請參閱使用 Load Balancer 日誌。
啟動 Cisco CSS 控制器後,您可以藉下列其中一項方法來加以控制:
Cisco CSS 控制器所用的日誌與在配送器中所使用的日誌類似。詳細說明,請參閱使用 Load Balancer 日誌。
啟動 Nortel Alteon 控制器後,您可以藉下列其中一項方法來加以控制:
Nortel Alteon 控制器所用的日誌與在配送器中所使用的日誌類似。詳細說明,請參閱使用 Load Balancer 日誌。
度量伺服器會提供伺服器負載資訊給 Load Balancer。度量伺服器將常駐在進行平衡負載的每一個伺服器上。
變更度量伺服器啟動 Script 中的日誌層次。 您可以指定 0 到 5 的日誌層次範圍,類似於 Load Balancer 日誌中的日誌層次範圍。 如此即會在 ...ms/logs 目錄中產生一代理程式日誌。
本章將協助您偵測及解決與 Load Balancer 有關的問題。
您可以使用本節的資訊來收集 IBM 服務中心所需的資料。 此資訊可區分為下列主題。
如果只有使用配送器元件,系統內建有一個問題判定工具,它會自動蒐集作業系統的相關資料, 以及指定元件的配置檔。 如果要執行此工具,請從適當的目錄輸入 lbpd:
如果是 UNIX 型的平台:/opt/ibm/edge/lb/servers/bin/
如果是 Windows 平台: C:\Program Files\IBM\edge\lb\servers\bin
此種問題判定工具會將相關資料打包成下列檔案:
如果是 UNIX 型的平台:/opt/ibm/edge/lb/lbpmr.tar.Z
如果是 Windows 平台:C:\Program Files\IBM\edge\lb\lbpmr.zip
在您電洽 IBM 服務中心之前,請先備妥下列資訊。
dscontrol file save primary.cfg
這個指令會將配置檔放在 .../ibm/edge/lb/servers/configuration/component/ 目錄中。
java -fullversion
在 AIX、HP-UX、Linux 和 Solaris 上:netstat -ni
在 Windows 上:ipconfig /all
所有伺服器及 Load Balancer 皆需要此項目。
在 AIX、HP-UX、Linux 和 Solaris 上:netstat -nr
在 Windows 上:route print
所有伺服器及 Load Balancer 皆需要此項目。
針對高可用性環境下的問題,收集下列必要資訊。
AIX、HP-UX、Linux 和 Solaris 平台:/opt/ibm/edge/lb/servers/bin
Windows:C:\Program Files\ibm\edge\lb\servers\bin
script 名稱為:
goActive
goStandby
goIdle(如果出現)
goInOp(如果出現)
另請併入配置檔。請參閱一般資訊(始終為必要的)。
針對警告器問題,收集下列必要資訊;例如,警告器誤將伺服器標示為當機。
dscontrol advisor loglevel http 80 5
或
dscontrol advisor loglevel advisorName port loglevel
或
dscontrol advisor loglevel advisorName cluster:port loglevel
或
nalcontrol metriccollector set consultantID:serviceID:metricName loglevel value
如此將會建立名為 ADV_advisorName.log 的日誌;例如,ADV_http.log。 此日誌的位置如下:
AIX、HP-UX、Linux 和 Solaris 平台:/opt/ibm/edge/lb/servers/logs/component
Windows 平台: C:\Program Files\ibm\edge\lb\servers\logs\component
其中 component 是:
dispatcher = 配送器
cbr = 內容型遞送
cco = Cisco CSS 控制器
nal = Nortel Alteon 控制器
ss = 網站選取器
如果層次小於和警告器相關聯的記載層次,ADVLOG 呼叫會將陳述式列印到警告器的日誌檔中。記載層次 0 表示一定會寫入陳述式。您不能在建構子中使用 ADVLOG。日誌檔會在自訂警告器的建構子已完成之後才立即建立, 因為日誌檔的名稱會視建構子中傳送的資訊而定。
另一種除錯自訂警告器的方式則可以避開這個限制。您可以使用 System.out.println(message) 陳述式,將訊息列印到視窗中。請編輯 dsserver Script,將 print 陳述式的 javaw 變成 java 以顯示到視窗上。用來啟動 dsserver 的視窗必須維持在開啟狀態,列印內容才會出現。如果您使用的是 Windows 平台,您必須停止配送器當成服務來執行,且從視窗中手動啟動它,才能看得到訊息。
請參閱 Programming Guide for Edge Components,以取得 ADVLOG 的詳細資訊。
針對內容型遞送的問題,收集下列必要資訊。
UNIX 型的平台:/etc/
Windows 平台: C:\Program Files\IBM\edge\cp\etc\en_US\
UNIX 型的平台:/opt/ibm/edge/lb/servers/configurations/cbr
Windows 平台: C:\Program Files\IBM\edge\lb\servers\configurations\cbr
如果您無法找到叢集,可能是兩個 Load Balancer 機器皆未或皆已將叢集另取別名。 如果要決定哪個方框擁有叢集:
ping cluster arp -a
在 AIX 和 HP-UX 上:netstat -ni
在 Linux 和 Solaris 上:ifconfig -a
在 Windows 上:ipconfig /all
如果未自連通測試取得回應,可能兩個機器皆不具有已在其介面另訂別名的叢集 IP 位址;例如 en0、tr0 等。
如果您嘗試了各種方法仍無法解決遞送問題,請發出下列指令以便在網路資料傳輸上執行追蹤:
iptrace -a -s failingClientIPAddress -d clusterIPAddress -b iptrace.trc
執行追蹤,重建問題,然後刪除該程序。
tcpdump -i lan0 host cluster and host client
您可能需要從其中一個 HP-UX GNU 軟體保存站台下載 tcpdump。
tcpdump -i eth0 host cluster and host client
執行追蹤,重建問題,然後刪除該程序。
snoop -v clientIPAddress destinationIPAddress > snooptrace.out
您也可以增加不同的日誌層次(例如,管理程式日誌、警告器日誌等),以及調查其輸出。
如果要識別已修正過的問題,請查看升級版:
ftp://ftp.software.ibm.com/ps/products/networkdispatcher/servicereleases
如果需要升級 Load Balancer 的 Java 版本,請參閱3。
如果需要支援、「技術註解」(提示及秘訣)及書庫網頁的網站資訊,請參閱參考資訊。
請參閱下列各項:
問題 | 可能導致 | 跳至... |
---|---|---|
配送器未正確執行 | 衝突的埠號 | 檢查配送器埠號 |
配置了並置伺服器,但它不會回應平衡負載要求 | 錯誤或衝突的位址 | 問題:配送器及伺服器沒有回應 |
未服務來自用戶端機器的連線,或連線逾時 |
| 問題:未平衡配送器要求 |
用戶端機器未被伺服或已逾時 | 高可用性不運作 | 問題:配送器高可用性並未運作 |
無法新增活動訊號(Windows 平台) | 配接卡上未配置來源位址 | 問題:無法新增活動訊號(Windows 平台) |
伺服器未處理要求(Windows 平台) | 已在路由表中建立了一個額外的路由 | 問題:額外的路徑(Windows 平台) |
警告器未能以廣域正確地運作 | 警告器未在遠端機器上執行 | 問題:警告器未正確地運作 |
配送器、Microsoft IIS 和 SSL 沒有運作或不會繼續 | 無法透過通訊協定來傳送加密資料。 | 問題:配送器、Microsoft IIS 和 SSL 沒有作用(Windows 平台) |
遠端機器連線遭拒絕 | 舊版本的金鑰仍在使用中 | 問題:配送器與遠端機器的連線 |
dscontrol 或 lbadmin 指令失敗,並出現「伺服器未回應」或「無法存取 RMI 伺服器」訊息 |
| 問題:dscontrol 或 lbadmin 指令失敗 |
在將 Netscape 當成預設瀏覽器執行來檢視線上說明時,出現「找不到檔案...」錯誤訊息(Windows 平台) | HTML 檔案關聯的設定不正確 | 問題:在嘗試檢視線上說明時出現「找不到檔案...」錯誤訊息(Windows 平台) |
在 Solaris 2.7 平台上啟動 dsserver 時,出現「stty: : 沒有這種裝置或位址」錯誤訊息 | 請勿理會這個錯誤訊息。這並不是一個問題。dsserver 仍會正確執行 | 問題:在 Solaris 2.7 上啟動 dsserver 時出現疑似錯誤訊息 |
圖形式使用者介面未正確啟動 | 分頁空間不足 | 問題:圖形式使用者介面 (GUI) 未正確啟動 |
如果已安裝 Caching Proxy 則執行配送器時發生錯誤 | Caching Proxy 檔案相依關係 | 問題:如果已安裝 Caching Proxy 則執行配送器時發生錯誤 |
圖形式使用者介面未正確顯示。 | 解析度不正確。 | 問題:圖形式使用者介面 (GUI) 未正確顯示 |
說明畫面有時會隱身在其他視窗之下 | Java 限制 | 問題:在 Windows 平台上,說明視窗有時會隱藏在其他開啟的視窗後面 |
Load Balancer 無法處理及轉送框架 | 每一個 NIC 需要唯一的 MAC 位址 | 問題:Load Balancer 無法處理及轉送框架 |
出現藍色螢幕 | 未安裝及配置網路卡 | 問題:啟動 Load Balancer 執行器時出現藍色螢幕 |
「偵測」路徑會阻礙傳回資料傳輸 | 叢集已在迴圈上建立別名 | 問題:偵測路徑會阻礙傳回 Load Balancer 資料傳輸 |
警告器顯示所有伺服器皆已當機 | 未正確計算 TCP 總和檢查 | 問題:警告器顯示所有伺服器都已關閉(Windows 平台) |
Load Balancer 的「廣域」模式下之高可用性無法運作。 | 遠端配送器須定義為本端配送器上某一叢集中的伺服器 | 問題:Load Balancer 的廣域模式下之高可用性無法運作 |
嘗試載入大型配置檔時 GUI 停止動作(或出現異常行為)。 | Java 無法存取足夠的記憶體,以處理如此大量的 GUI 變更 | 問題:嘗試載入大型配置檔時 GUI 停止動作(或出現異常行為) |
在 Windows 上:偶爾出現藍色畫面,或是 Load Balancer 警告器錯誤地報告 "-1" 負載 | 使用 3Com 985B GB 乙太網路配接卡 | 問題:在 Windows 平台上,出現藍色畫面,或是「警告器」錯誤地報告 -1 負載 |
在 Solaris 各國家語言版本上,GUI 的「是」及「否」按鈕有可能呈現為英文 | 這是個已知問題,Sun Microsystems 正在設法加以處理 | 問題:在 Solaris NLV 上,「是」及「否」等按鈕以英文形式出現 |
更新配置後 Load Balancer administration (lbadmin) 便切斷伺服器的連線 | lbadmin 或 dscontrol 的版本可能與 dsserver 的不同 | 問題:更新配置後 lbadmin 便切斷伺服器的連線 |
IP 位址在遠端連線上並未正確解析 | 使用安全 Sock 實作上的遠端用戶端時,完整的網域名稱或主機名稱可能不會解析成帶點十進位數的正確 IP 位址 | 問題:IP 位址在遠端連線上並未正確解析 |
韓文 Load Balancer 的介面在 AIX 和 Linux 上顯示重疊或錯誤的字形 | 必須變更預設字型 | 問題:韓文 Load Balancer 的介面在 AIX 和 Linux 上顯示重疊或錯誤的字形 |
在 Windows 上,建立 MS Loopback Adapter 的別名之後, 在發出某些指令(如 hostname)時,OS 會錯誤地回應別名位址 | 在網路連線清單中,剛新增的別名不得列示於本端位址的上方 | 問題:在 Windows 上,於發出 hostname 之類的指令時,傳回的是別名位址而非本端位址 |
使用 Windows 平台搭配 Matrox AGP 影像卡時, 發生非預期的 GUI 行為 | 在執行 Load Balancer GUI 時使用 Matrox AGP 影像卡發生問題 | 問題:在 Windows 平台上,使用 Matrox AGP 影像卡時會出現非預期的 GUI 行為 |
在 Linux 執行 "rmmod ibmnd" 時,發生異常行為,如系統當機 | 以手動方式移除 Load Balancer 核心程式模組 (ibmnd) 時發生問題。 | 問題:執行 rmmod ibmnd 時發生異常行為 (Linux) |
在配送器機器上執行指令時,回應時間變慢 | 回應時間變慢的原因可能是機器因為大量的用戶端資料傳輸而超載 | 問題:在配送器機器上執行指令時,回應時間變慢 |
對於配送器的 MAC 轉送方法,SSL 或 HTTPS 警告器不登錄伺服器負載 | 因為未以叢集 IP 位址配置 SSL 伺服器應用程式,所以發生問題 | 問題:SSL 或 HTTPS 警告器未登錄伺服器負載(使用 mac 轉送時) |
使用 lbwebaccess(Web 管理)或 lbadmin 載入大型配置時發生問題 | 由於需要增加 Java 資料堆上限, 因此可能發生問題 | 問題:難以載入大型配置(使用 lbadmin,Web 管理) |
透過 Netscape 使用遠端 Web 管理時,與主機中斷連線 | 調整瀏覽器視窗的大小時,與主機中斷連線 | 問題:使用 Web 管理來調整 Netscape 瀏覽器視窗的大小時,與主機中斷連線 |
已啟動 Socket 儲存區且 Web 伺服器連結到 0.0.0.0 | 將 Microsoft IIS 伺服器配置成連結專用 | 問題:已啟動 Socket 儲存區且 Web 伺服器連結到 0.0.0.0 |
在 Windows 平台上,命令提示模式中會出現毀損的 Latin-1 國家字元 | 命令提示視窗的變更字型內容 | 問題:在 Windows 上,命令提示視窗中會出現毀損的 Latin-1 國家字元 |
在 UNIX 型平台上使用 Netscape 瀏覽器時,InfoCenter 內的線上說明文字會以小字型顯示 | 編輯 Netscape 瀏覽器的喜好設定來放大字型大小 | 問題:在 UNIX 型的平台上使用 InfoCenter 時,Netscape 瀏覽器會以小字型顯示線上說明文字 |
在 HP-UX 平台上,發生下列訊息:java.lang.OutOfMemoryError 無法建立新的原始執行緒 | 依預設,某些 HP-UX 安裝架構可允許每一程序有 64 個執行緒。這是不夠的。 | 問題:在 HP-UX 上,發生 Java 記憶體/執行緒不足的錯誤 |
在 Windows 平台上,警告器和連繫目標標示所有伺服器都已關機 | 未啟用作業卸載,或是可能需要啟用 ICMP。 | 問題:在 Windows 上,警告器和連繫目標標示所有伺服器都已關機 |
在 Windows 平台上,當多個位址配置給一個配接卡時,將 IP 位址解析成主機名稱時發生問題 | 您要做為主機名稱的 IP 位址必須是登錄中的第一個項目。 | 問題:在 Windows 上,當多個位址配置給一個配接卡時,將 IP 位址解析成主機名稱 |
在 Windows 平台上,於網路停用之後,警告器在高可用性設定中沒有作用 | 當系統偵測到網路已停用時,它會清除其「位址解析通訊協定」(ARP) 快取記憶體 | 問題:在 Windows 上,於網路停用之後,警告器在高可用性設定中沒有作用 |
在 Linux 上,"IP address add" 指令和多個叢集迴路別名不相容 | 在迴路裝置上建立多個位址的別名時,應該使用 ifconfig 指令,而不是 ip address add | 問題:在 Linux 上,於迴路裝置上建立多個叢集的別名時,請勿使用 IP address add 指令 |
問題 | 可能導致 | 跳至... |
CBR 未正確執行 | 衝突的埠號 | 檢查 CBR 埠號 |
cbrcontrol 或 lbadmin 指令失敗,並出現「伺服器未回應」或「無法存取 RMI 伺服器」訊息 | 由於 socksified 堆疊,所以指令失敗。 或因並未啟動 cbrserver 以致指令失敗 | 問題:cbrcontrol 或 lbadmin 指令失敗 |
相關要求未經平衡負載 | 啟動執行器之前便已啟動 Caching Proxy | 問題:相關要求未經平衡負載 |
在 Solaris 上,cbrcontrol executor start 指令失敗並傳回「錯誤:執行器並未啟動。」訊息message | 因系統 IPC 預設值可能需要修改以致指令失敗 | 問題:在 Solaris 上,cbrcontrol executor start 指令失敗 |
URL 規則未作用 | 語法或配置錯誤 | 問題:語法或配置錯誤 |
在 Windows 上:偶爾出現藍色畫面,或是 Load Balancer 警告器錯誤地報告 "-1" 負載 | 使用 3Com 985B GB 乙太網路配接卡 | 問題:在 Windows 平台上,出現藍色畫面,或是「警告器」錯誤地報告 -1 負載 |
在 Solaris 各國家語言版本上,GUI 的「是」及「否」按鈕有可能呈現為英文 | 這是個已知問題,Sun Microsystems 正在設法加以處理 | 問題:在 Solaris NLV 上,「是」及「否」等按鈕以英文形式出現 |
使用 Windows 平台系統 Matrox AGP 影像卡時, 發生非預期的 GUI 行為 | 在執行 Load Balancer GUI 時使用 Matrox AGP 影像卡發生問題 | 問題:在 Windows 平台上,使用 Matrox AGP 影像卡時會出現非預期的 GUI 行為 |
使用 lbwebaccess(Web 管理)或 lbadmin 載入大型配置時發生問題 | 由於需要增加 Java 資料堆上限, 因此可能發生問題 | 問題:難以載入大型配置(使用 lbadmin,Web 管理) |
透過 Netscape 使用遠端 Web 管理時,與主機中斷連線 | 調整瀏覽器視窗的大小時,與主機中斷連線 | 問題:使用 Web 管理來調整 Netscape 瀏覽器視窗的大小時,與主機中斷連線 |
在 Windows 平台上,命令提示模式中會出現毀損的 Latin-1 國家字元 | 命令提示視窗的變更字型內容 | 問題:在 Windows 平台上,命令提示視窗中會出現毀損的 Latin-1 國家字元 |
在 UNIX 型平台上使用 Netscape 瀏覽器時,InfoCenter 內的線上說明文字會以小字型顯示 | 編輯 Netscape 瀏覽器的喜好設定來放大字型大小 | 問題:在 UNIX 型的平台上使用 InfoCenter 時,Netscape 瀏覽器會以小字型顯示線上說明文字 |
在 HP-UX 平台上,發生下列訊息:java.lang.OutOfMemoryError 無法建立新的原始執行緒 | 依預設,某些 HP-UX 安裝架構可允許每一程序有 64 個執行緒。這是不夠的。 | 問題:在 HP-UX 上,發生 Java 記憶體/執行緒不足的錯誤 |
在 Windows 平台上,警告器和連繫目標標示所有伺服器都已關機 | 未啟用作業卸載,或是可能需要啟用 icmp。 | 問題:在 Windows 上,警告器和連繫目標標示所有伺服器都已關機 |
在 Windows 平台上,當多個位址配置給一個配接卡時,將 IP 位址解析成主機名稱時發生問題 | 您要做為主機名稱的 IP 位址必須是登錄中的第一個項目。 | 問題:在 Windows 上,當多個位址配置給一個配接卡時,將 IP 位址解析成主機名稱 |
問題 | 可能導致 | 跳至... |
---|---|---|
網站選取器未正確執行 | 衝突的埠號 | 檢查網站選取器埠號 |
網站選取器無法環繞來自 Solaris 用戶端的進入要求 | Solaris 系統執行了「名稱服務快取常駐程式」 | 問題:網站選取器無法環繞來自 Solaris 用戶端的資料傳輸 |
sscontrol 或 lbadmin 指令失敗,並出現「伺服器未回應」或「無法存取 RMI 伺服」訊息 | 由於 socksified 堆疊,所以指令失敗。 或因並未啟動 ssserver 以致指令失敗。 | 問題:sscontrol 或 lbadmin 指令失敗 |
ssserver 無法在 Windows 平台上啟動 | Windows 並不會要求主機名稱須在 DNS 中。 | 問題:ssserver 無法再 Windows 平台上啟動 |
具有重複路徑的機器未正確地平衡負載 -- 名稱解析似乎失敗 | 具有多重配接卡的網站選取器機器連接到相同子網路 | 問題:具有重複路由的網站選取器並未正確地平衡負載 |
在 Windows 上:偶爾出現藍色畫面,或是 Load Balancer 警告器錯誤地報告 "-1" 負載 | 使用 3Com 985B GB 乙太網路配接卡 | 問題:在 Windows 上,出現藍色畫面,或是「警告器」錯誤地報告 -1 負載 |
在 Solaris 各國家語言版本上,GUI 的「是」及「否」按鈕有可能呈現為英文 | 這是個已知問題,Sun Microsystems 正在設法加以處理 | 問題:在 Solaris NLV 上,「是」及「否」等按鈕以英文形式出現 |
使用 Windows 平台搭配 Matrox AGP 影像卡時, 發生非預期的 GUI 行為 | 在執行 Load Balancer GUI 時使用 Matrox AGP 影像卡發生問題 | 問題:在 Windows 平台上,使用 Matrox AGP 影像卡時會出現非預期的 GUI 行為 |
使用 lbwebaccess(Web 管理)或 lbadmin 載入大型配置時發生問題 | 由於需要增加 Java 資料堆上限, 因此可能發生問題 | 問題:難以載入大型配置(使用 lbadmin,Web 管理) |
透過 Netscape 使用遠端 Web 管理時,與主機中斷連線 | 調整瀏覽器視窗的大小時,與主機中斷連線 | 問題:使用 Web 管理來調整 Netscape 瀏覽器視窗的大小時,與主機中斷連線 |
在 Windows 平台上,命令提示模式中會出現毀損的 Latin-1 國家字元 | 命令提示視窗的變更字型內容 | 問題:在 Windows 平台上,命令提示視窗中會出現毀損的 Latin-1 國家字元 |
在 UNIX 型平台上使用 Netscape 瀏覽器時,InfoCenter 內的線上說明文字會以小字型顯示 | 編輯 Netscape 瀏覽器的喜好設定來放大字型大小 | 問題:在 UNIX 型的平台上使用 InfoCenter 時,Netscape 瀏覽器會以小字型顯示線上說明文字 |
在 HP-UX 平台上,發生下列訊息:java.lang.OutOfMemoryError 無法建立新的原始執行緒 | 依預設,某些 HP-UX 安裝架構可允許每一程序有 64 個執行緒。這是不夠的。 | 問題:在 HP-UX 上,發生 Java 記憶體/執行緒不足的錯誤 |
在 Windows 平台上,警告器和連繫目標標示所有伺服器都已關機 | 未啟用作業卸載,或是可能需要啟用 icmp。 | 問題:在 Windows 上,警告器和連繫目標標示所有伺服器都已關機 |
問題 | 可能導致 | 跳至... |
---|---|---|
ccoserver 無法啟動 | 衝突的埠號 | 檢查 Cisco CSS 控制器埠號 |
ccocontrol 或 lbadmin 指令失敗,並出現「伺服器未回應」或「無法存取 RMI 伺服器」訊息 | 由於 socksified 堆疊,所以指令失敗。 或因並未啟動 ccoserver 以致指令失敗。 | 問題:ccocontrol 或 lbadmin 指令失敗 |
接收錯誤:無法在埠 13099 上建立登錄 | 產品授權到期 | 問題:無法在埠 13099 上建立登錄 |
在 Solaris 各國家語言版本上,GUI 的「是」及「否」按鈕有可能呈現為英文 | 這是個已知問題,Sun Microsystems 正在設法加以處理 | 問題:在 Solaris NLV 上,「是」及「否」等按鈕以英文形式出現 |
使用 Windows 平台搭配 Matrox AGP 影像卡時, 發生非預期的 GUI 行為 | 在執行 Load Balancer GUI 時使用 Matrox AGP 影像卡發生問題 | 問題:在 Windows 平台上,使用 Matrox AGP 影像卡時會出現非預期的 GUI 行為 |
新增顧問時收到連線錯誤 | 交換器或控制器上的配置設定不正確 | 問題:新增顧問時收到連線錯誤 |
未更新交換器上的加權值 | 控制器或交換器之間的通訊無法使用或遭到岔斷 | 問題:未更新交換器上的加權值 |
Refresh 指令並未更新顧問配置 | 控制器與交換器之間的通訊無法使用或遭到岔斷 | 問題:Refresh 指令並未更新顧問配置 |
使用 lbwebaccess(Web 管理)或 lbadmin 載入大型配置時發生問題 | 由於需要增加 Java 資料堆上限, 因此可能發生問題 | 問題:難以載入大型配置(使用 lbadmin,Web 管理) |
透過 Netscape 使用遠端 Web 管理時,與主機中斷連線 | 調整瀏覽器視窗的大小時,與主機中斷連線 | 問題:使用 Web 管理來調整 Netscape 瀏覽器視窗的大小時,與主機中斷連線 |
在 Windows 平台上,命令提示模式中會出現毀損的 Latin-1 國家字元 | 命令提示視窗的變更字型內容 | 問題:在 Windows 平台上,命令提示視窗中會出現毀損的 Latin-1 國家字元 |
在 UNIX 型平台上使用 Netscape 瀏覽器時,InfoCenter 內的線上說明文字會以小字型顯示 | 編輯 Netscape 瀏覽器的喜好設定來放大字型大小 | 問題:在 UNIX 型的平台上使用 InfoCenter 時,Netscape 瀏覽器會以小字型顯示線上說明文字 |
在 HP-UX 平台上,發生下列訊息:java.lang.OutOfMemoryError 無法建立新的原始執行緒 | 依預設,某些 HP-UX 安裝架構可允許每一程序有 64 個執行緒。這是不夠的。 | 問題:在 HP-UX 上,發生 Java 記憶體/執行緒不足的錯誤 |
問題 | 可能導致 | 跳至... |
---|---|---|
nalserver 無法啟動 | 衝突的埠號 | 檢查 Nortel Alteon 控制器埠號 |
nalcontrol 或 lbadmin 指令失敗,並出現「伺服器未回應」或「無法存取 RMI 伺服器」訊息 | 由於 socksified 堆疊,所以指令失敗。 或因並未啟動 nalserver 以致指令失敗。 | 問題:nalcontrol 或 lbadmin 指令失敗 |
接收錯誤:無法在埠 14099 上建立登錄 | 產品授權到期 | 問題:無法在埠 14099 上建立登錄 |
使用 Windows 平台搭配 Matrox AGP 影像卡時, 發生非預期的 GUI 行為 | 在執行 Load Balancer GUI 時使用 Matrox AGP 影像卡發生問題 | 問題:在 Windows 平台上,使用 Matrox AGP 影像卡時會出現非預期的 GUI 行為 |
使用 lbwebaccess(Web 管理)或 lbadmin 載入大型配置時發生問題 | 由於需要增加 Java 資料堆上限, 因此可能發生問題 | 問題:難以載入大型配置(使用 lbadmin,Web 管理) |
透過 Netscape 使用遠端 Web 管理時,與主機中斷連線 | 調整瀏覽器視窗的大小時,與主機中斷連線 | 問題:使用 Web 管理來調整 Netscape 瀏覽器視窗的大小時,與主機中斷連線 |
新增顧問時收到連線錯誤 | 交換器或控制器上的配置設定不正確 | 問題:新增顧問時收到連線錯誤 |
未更新交換器上的加權值 | 控制器或交換器之間的通訊無法使用或遭到岔斷 | 問題:未更新交換器上的加權值 |
Refresh 指令並未更新顧問配置 | 控制器與交換器之間的通訊無法使用或遭到岔斷 | 問題:Refresh 指令並未更新顧問配置 |
在 Windows 平台上,命令提示模式中會出現毀損的 Latin-1 國家字元 | 命令提示視窗的變更字型內容 | 問題:在 Windows 上,命令提示視窗中會出現毀損的 Latin-1 國家字元 |
在 UNIX 型平台上使用 Netscape 瀏覽器時,InfoCenter 內的線上說明文字會以小字型顯示 | 編輯 Netscape 瀏覽器的喜好設定來放大字型大小 | 問題:在 UNIX 型的平台上使用 InfoCenter 時,Netscape 瀏覽器會以小字型顯示線上說明文字 |
在 HP-UX 平台上,發生下列訊息:java.lang.OutOfMemoryError 無法建立新的原始執行緒 | 依預設,某些 HP-UX 安裝架構可允許每一程序有 64 個執行緒。這是不夠的。 | 問題:在 HP-UX 上,發生 Java 記憶體/執行緒不足的錯誤 |
問題 | 可能導致 | 跳至... |
---|---|---|
在 Windows 平台上執行 .bat 或 .cmd 使用者度量檔時,發生度量伺服器 IOException | 需要完整的度量名稱 | 問題:在 Windows 平台上執行 .bat 或 .cmd 使用者度量檔時,發生度量伺服器 IOException |
度量伺服器未向 Load Balancer 機器報告負載資訊 | 可能的原因包括:
| 問題:度量伺服器並未向 Load Balancer 機器報告負載 |
當金鑰檔案轉送至伺服器時,度量伺服器日誌報告「需要簽名才能存取代理程式」 | 金鑰檔案已毀損以致授權失敗。 | 問題:度量伺服器日誌報告需要簽名才能存取代理程式 |
在 AIX 上,於多重處理器系統(4.3.3、32 位元 5.1 或 64 位元 5.1)的高負荷情況下執行度量伺服器時, ps -vg 指令的輸出可能會毀損 | APAR IY33804 已更正這個已知的 AIX 問題 | 問題:在 AIX 上,於高負荷情況下執行度量伺服器時,ps -vg 指令的輸出可能會毀損 |
在兩層配置中配置度量伺服器時,網站選取器會在多個高可用性的配送器間進行平衡負載 | 度量伺服器(位於第二層)未配置成接聽新的 IP 位址。 | 問題:在兩層配置中配置度量伺服器時,網站選取器會在多個高可用性的配送器間進行平衡負載 |
如果在執行配送器時遇到問題,可能是您的其中一個應用程式正在使用配送器一般使用的埠號。請注意,配送器伺服器將使用下列埠號:
如果另一個應用程式正在使用其中一個配送器埠號,您可以變更配送器埠號或變更應用程式的埠號。
請執行下列動作來變更配送器的埠號:
請依下列指示執行來變更應用程式的 RMI 埠號:
如果執行 CBR 時會出現問題,可能是您的某一應用程式正在使用 CBR 通常使用的埠號。 請注意,CBR 會使用下列埠號:
如果另一個應用程式正在使用 CBR 其中一個埠號,您可以變更 CBR 埠號 或 變更應用程式的埠號。
請執行下列動作來變更 CBR 的埠號:
請依下列指示執行來變更應用程式的 RMI 埠號:
如果在執行網站選取器元件時遇到問題,很可能是您的某一應用程式正在使用該網站選取器通常使用的埠號。 請注意,網站選取器會使用下列埠號:
如果另一個應用程式正在使用其中一個網站選取器的埠號,您可以變更網站選取器的埠號,或者變更應用程式的埠號。
請依下列指示執行來變更網站選取器的埠號:
請依下列指示執行來變更應用程式的 RMI 埠號:
如果在執行 Cisco CSS 控制器元件時遇到問題,很可能是其他應用程式正在使用 Cisco CSS 控制器之 ccoserver 所用的某一埠號。 請注意,Cisco CSS 控制器會使用下列埠號:
13099,用於接收來自 ccocontrol 的指令
10004,用於傳送度量查詢至度量伺服器
13199,用於 RMI 伺服器埠
如果另一個應用程式正在使用其中一個 Cisco CSS 控制器埠號,您可以變更 Cisco CSS 控制器埠號 或 變更應用程式的埠號。
請依下列指示執行來變更 Cisco CSS 控制器的埠號:
請依下列指示執行來變更應用程式的 RMI 埠號:
如果在執行 Nortel Alteon 控制器元件時遇到問題,很可能是其他應用程式正在使用 Nortel Alteon 控制器之 nalserver 所用的某一埠號。 請注意,Nortel Alteon 控制器會使用下列埠號:
14099,用於接收來自 nalcontrol 的指令
10004,用於傳送度量查詢至度量伺服器
14199,用於 RMI 伺服器埠
如果另一個應用程式正在使用其中一個 Nortel Alteon 控制器的埠號,您可以變更 Nortel Alteon 控制器的埠號,或者變更應用程式的埠號。
請依下列指示執行來變更 Nortel Alteon 控制器的埠號:
請依下列指示執行來變更應用程式的 RMI 埠號:
當另一個應用程式正在使用配送器所使用的其中一個埠時, 可能會發生這個問題。詳細資訊,請參考檢查配送器埠號。
當所指定的位址與正在使用的另一個位址不同時,就會發生這個問題。 在並置配送器及伺服器時,請確定在配置中使用的伺服器位址是 NFA 位址,或已配置成並置。
當來自用戶端機器的連線未被伺服或發生逾時之時,將出現這個問題。 請檢查下列資訊, 診斷這個問題:
如果是 Windows 和其他平台,另請參閱設定伺服器機器以進行平衡負載。
當配置配送器高可用性環境,且來自用戶端的連線未被伺服或已逾時的時候, 即會出現這個問題。請檢查下列,來更正或診斷問題:
如果配接卡上未配置來源位址,即會發生這個 Windows 平台錯誤。請檢查下列,來更正或診斷問題。
dsconfig tr0 <ip address> netmask <netmask> 或是 dscontrol executor configure <ip address>
設定伺服器機器之後,您可能會發現不慎建立了一或多個額外的路徑。 如果您不移除這些額外路徑,則它們會妨礙配送器運作。 請參閱設定伺服器機器以進行平衡負載,以取得檢查及刪除它們的資訊。
如果您使用了廣域支援,並且您的警告器似乎未正確地運作, 請確定警告器是在本端及遠端配送器上啟動。請參閱使用具有配送器廣域支援的遠端警告器。
在使用配送器、Microsoft IIS 和 SSL 時,如果它們沒有一起運作, 在啟用 SSL 安全性時可能會發生問題。如果需要產生金鑰組、取得憑證、安裝具有金鑰組的憑證, 以及配置目錄以取得 SSL 的詳細資訊,請參閱 Microsoft Information and Peer Web Services 一書。
配送器使用機碼以讓您連接機器,並配置它。 機碼可指定 RMI 埠來連線。基於安全性或衝突的理由,變更 RMI 埠是有可能的。 當您變更 RMI 埠時,機碼的檔案名稱是不同的。 如果同一遠端機器的機碼目錄有一個以上的機碼,而且它們所指定的 RMI 埠皆不同, 指令行就只會嘗試其所找到的第一個機碼。如果機碼不正確,連線就會被拒絕。 除非您刪除不正確的機碼,否則即無法連線。
EXCLUDE-MODULE java EXCLUDE-MODULE javaw
當管理主控台之一在同一機器上作為防火牆或透過防火牆來執行時,這會導致問題發生。 例如,當 Load Balancer 在相同機器上作為防火牆,而您發出 dscontrol 指令時, 您會看到諸如錯誤:伺服器未回應之錯誤。
要避免此問題,請編輯 dsserver Script 檔以設定 RMI 對防火牆(或其他應用程式)所使用的埠。 將這一行:LB_RMISERVERPORT=10199 變更為 LB_RMISERVERPORT=yourPort。其中 yourPort 是不同埠。
一旦完成後,請重新啟動 dsserver 並開啟埠 10099、10004、10199 和 10100 的資料傳輸, 或針對主機位址(藉以執行管理主控台)的選定埠開啟資料傳輸。
在 Windows 中,如果使用 Netscape 做為預設瀏覽器,可能會產生下列錯誤訊息:找不到檔案 <filename>.html(或其元件之一)。請確定路徑及檔案名稱正確,且可使用所有需要的程式庫。"
問題是因 HTML 檔案關聯的設定不正確所引起。 解決方案如下:
在 Solaris 2.7 平台上啟動 dsserver 時,會出現下列疑似錯誤訊息:「stty: : 沒有這種裝置或位址」。 請勿理會這個錯誤訊息。dsserver 仍會正確執行。
圖形式使用者介面 (GUI) lbadmin 需有足量的分頁空間才能正確運作。 如果無足量的分頁空間,GUI 可能無法完全啟動。 發生此種情形時,請檢查您的分頁空間,並視需要加以調高。
如果您解除安裝 Load Balancer 以便重新安裝其他版本,但在您試圖啟動配送器元件時卻出現錯誤, 請檢查 Caching Proxy 是否已安裝。 Caching Proxy 對配送器檔案之一具有相依關係;這個檔案唯有當 Caching Proxy 解除安裝後才可解除安裝。
要避免此問題:
如果 Load Balancer GUI 的外觀出現問題,請檢查作業系統的桌面解析度設定。 GUI 的最佳檢視解析度是 1024x768 圖點。
在 Windows 平台上,當您第一次開啟說明視窗時, 該視窗有時會隱藏在現有視窗之後的背景中。出現此種情形時,按一下該視窗即可重新將其顯現在最上層。
在 Solaris 上,每一個網路卡在預設的狀況下皆擁有相同的 MAC 位址。 如果每一個配接卡是位在不同的 IP 子網路上,一切都可正確運作;不過,在交換式環境下, 當多個具有相同 MAC 與相同 IP 子網路位址的 NIC 與同一交換器進行通訊時, 交換器會將單一 MAC(以及兩種 IP)所連接之所有資料傳輸向下傳送同一線路。 唯有最後在此線路上放置框架的配接卡會看到兩種配接卡的 IP 封包界限。 Solaris 可能會捨棄某一送達「錯誤」介面之有效 IP 位址的封包。
如果所有的網路介面並未如 ibmnd.conf 中所配置而指定給 Load Balancer,且未在 ibmnd.conf 中定義的 NIC 收到一框架時,Load Balancer 便無能力來處理及轉送此框架。
要避免發生這種問題,您必須置換預設值,並為各個介面設定唯一的 MAC 位址。 請使用下列指令:
ifconfig interface ether macAddr
例如:
ifconfig hme0 ether 01:02:03:04:05:06
在 Windows 平台上,您必須先安裝並配置網路卡,才能啟動執行器。
AIX 作業系統包含一個稱為路徑 MTU 探索的網路功能參數。在用戶端交易期間,如果作業系統判斷它必須對送出的封包使用較小的最大傳輸單位 (MTU), 路徑 MTU 探索便會要求 AIX 建立一個路徑以記得該資料。 此新的路由將用於該特定用戶端 IP,而且會記錄連繫該 IP 時所需的 MTU。
當此路由建立時,於迴圈上建立別名的叢集可能會使伺服器發生問題。 如果路徑的閘道位址落於叢集/網路遮罩的子網路中,AIX 會在迴路上建立此路徑。之所以會如此,是因為它為透過該子網路來建立別名的最後介面。
比方說,如果叢集為 9.37.54.69,使用的網路遮罩為 255.255.255.0,且所要的閘道為 9.37.54.1,則 AIX 會將迴路用於路徑。而這會使得伺服器的回應永遠無法離開方框,而用戶端則保持逾時等待。 用戶端多半會看到一個來自叢集的回應,然後便產生路由而用戶端即不再收到任何東西。
此問題有兩種解決方法。
註:
Windows 平台有一項新的特性稱為「作業卸載」,它可讓配接卡(而非作業系統)來計算 TCP 總和檢查。 如此便能提升系統的效能。如果已啟用「作業卸載」,Load Balancer 警告器會在伺服器未當機的情況下,報告其已當機。
此問題是因為並未針對來自叢集位址的封包(警告器資料傳輸者),正確計算 TCP 總和檢查。
要避免此問題發生,請跳至配接卡設定,並停用「作業卸載」。
此問題最早是出現在 Adaptec 的 ANA62044 四埠配接卡上。 此款配接卡將該特性稱為「傳輸總和檢查」卸載。 請停用「傳輸總和檢查」卸載以避免發生問題。
設定廣域 Load Balancer 時,您必須將遠端配送器定義為本端配送器上某一叢集中的伺服器。 一般而言,您會使用遠端配送器的非轉送位址 (NFA) 作為遠端伺服器的目的地位址。 如果您執行了這個動作,然後又在遠端配送器上設定了高可用性,它將會失敗。 這是因為當您使用遠端之 NFA 來加以存取時,本端配送器會固定指向遠端上的主要配送器。
要克服此問題,請:
當遠端主要配送器開機時,它會在其配接卡上為此位址建立別名,使其可接受資料傳輸。 如果發生故障,此位址會移到備份機器,由備份機器繼續接受該位址的資料傳輸。
嘗試載入大型配置檔(約含 200 個以上的 add 指令)時,GUI 可能會停止動作或出現異常行為,例如以極慢的速率來回應螢幕變更。
發生這個問題的原因是,Java 未存取足夠的記憶體來處理如此大的配置。
執行環境中有一個選項,可用來增加 Java 可用的記憶體配置儲存池。
選項是 -Xmxn,其中 n 是記憶體配置儲存區的最大大小(位元組)。n 必須是 1024 的倍數,且須大於 2MB。n 值之後可接 k 或 K 以表示千位元組,或接 m 或 M 以表示百萬位元組。例如,-Xmx128M 和 -Xmx81920k 都是有效的。 預設值是 64M。Solaris 8 具有最大值 4000M。
比方說,如果要新增這個選項,請編輯 lbadmin Script 檔, 將 "javaw" 改成 "javaw -Xmxn",如下所示。(如果是 AIX,請將 "java" 修改成 "java -Xmxn"):
javaw -Xmx256m -cp $LB_CLASSPATH $LB_INSTALL_PATH $LB_CLIENT_KEYS com.ibm.internet.nd.framework.FWK_Main 1>/dev/null 2>&1 &
javaw -Xmx256m -cp $LB_CLASSPATH $LB_INSTALL_PATH $LB_CLIENT_KEYS com.ibm.internet.nd.framework.FWK_Main 1>/dev/null 2>&1 &
java -Xmx256m -cp $LB_CLASSPATH $LB_INSTALL_PATH $LB_CLIENT_KEYS com.ibm.internet.nd.framework.FWK_Main 1>/dev/null 2>&1 &
START javaw -Xmx256m -cp %LB_CLASSPATH% %LB_INSTALL_PATH% %LB_CLIENT_KEYS% com.ibm.internet.nd.framework.FWK_Main
n 並無任何建議值,但應該大於預設選項。 兩倍的預設值是個不錯的起點。
在 Windows 平台上使用 3Com 985B GB 乙太網路配接卡時,可能會遇到下列問題出現:
要避免此類問題,請使用其他廠牌的 GB 乙太網路配接卡。
在 Solaris 各國家語言版本上,Load Balancer GUI 的「是」及「否」按鈕有可能呈現為英文。 這是個已知問題,Sun Microsystems 正在設法加以處理。
如果 Load Balancer administration (lbadmin) 在您更新配置後便切斷伺服器的連線, 請檢查您嘗試配置之伺服器的 dsserver 版本,並確定它和 lbadmin 或 dscontrol 的版本相同。
透過安全 Sock 實作來使用遠端用戶端時,完整的網域名稱或主機名稱可能不會解析成帶點十進位數的正確 IP 位址。 因為安全 Sock 實作可能會在 DNS 解析作業中,新增特定的 Sock 相關資料。
如果 IP 位址在遠端連線上並未正確解析,我們建議您以帶點十進位數表示法格式來指定 IP 位址。
要更正韓文 Load Balancer 介面出現重疊或奇怪字形的情形:
在 AIX 上
-Monotype-TimesNewRomanWT-medium-r-normal --*-%d-75-75-*-*-ksc5601.1987-0
-Monotype-SansMonoWT-medium-r-normal --*-%d-75-75-*-*-ksc5601.1987-0
在 Linux 上
-monotype- timesnewromanwt-medium-r-normal--*-%d-75-75-p-*-microsoft-symbol
-monotype-sansmonowt-medium-r-normal--*-%d-75-75-p-*-microsoft-symbol
在 Windows 上,建立 MS Loopback Adapter 的別名之後, 在發出某些指令(如 hostname)時,OS 會錯誤地回應別名位址而非本端位址。要更正此一問題,網路連線清單中剛新增的別名須位於本端位址的下方。 如此可確保本端位址的存取順序在迴圈別名之前。
如果要檢查網路連線清單:
在 Windows 平台上,於使用 Matrox AGP 卡時,Load Balancer GUI 可能會發生非預期的行為。如果是按一下滑鼠,有一塊較滑鼠指標稍大的空間可能會呈毀損狀態, 致使高亮度顯示因而反轉,或影像移出螢幕。 舊版的 Matrox 影像卡不曾出現此行為。對於使用 Matrox AGP 卡者,目前尚無修正方法。
在 Linux,在以手動方式移除 Load Balancer 核心程式模組期間, 如果 dsserver 仍在執行,可能會發生異常行為,如系統當機或 javacores。 以手動方式移除 Load Balancer 核心程式模組時,首先您必須停止 dsserver。 如果 "dsserver stop" 沒有作用,請以 SRV_KNDConfigServer 停止 Java 程序。例如:
ps-ef | grep SRV_KNDConfigServer
在 Java 程序完成後,您可以安全地執行 "rmmod ibmnd" 指令,從核心程式移除 Load Balancer 模組。
如果您將執行配送器元件進行平衡負載,則用戶端資料傳輸可能會導致電腦超載。Load Balancer 核心程式模組具有最高優先順序,因此如果它持續處理用戶端封包, 系統的其餘部分可能會沒有回應。在使用者空間執行指令可能要很長時間才能完成, 或不可能完成。
如果發生這種情況,您應該開始重組您的設定,以避免資料傳輸讓 Load Balancer 機器超載。選擇方案包括將負載散佈在數個 Load Balancer 機器上,或將機器換成功能更強及速度更快的電腦。
當嘗試決定機器上回應時間變慢是否起因於高用戶端資料傳輸時, 請考慮在用戶端資料傳輸尖峰時間,是否發生這種情況。 導致遞送迴路的未配置系統也可能引起相同的症狀。 但是在變更 Load Balancer 設定之前,請決定症狀是否可能起因於高用戶端負載。
當使用 mac 型轉送方法時,Load Balancer 將使用已在迴圈上指定別名的叢集位址, 來傳送封包到伺服器。 部分伺服器應用程式(如 SSL)需要配置資訊(如憑證)依據 IP 位址。 IP 位址必須是迴圈上所配置的叢集位址,才能符合送入的封包的內容。 當配置伺服器應用程式時,如果未使用叢集的 IP 位址,則用戶端要求將無法正確地轉送到伺服器。
於載入大型配置時,如果您在遇到使用 lbadmin 或遠端 Web 管理的問題, 您可能需要增加 Java 資料堆大小的上限。依預設,Java 會將虛擬機器資料堆限制為 64 MB。 當用來管理非常大的配置時,部分 Load Balancer 配置程式(lbadmin、lbwebaccess)可能需要超過這個 64 MB 限制的數量。 為了解決這個問題,Java 資料堆大小上限可以增加到大於 64 MB 的值。如果要增加資料堆大小上限,請使用 "-Xmx" Java 選項。比方說,在 lbadmin Script 中,將 "javaw" 修改成 "javaw -Xmx256m",將 Java 資料堆大小上限變更為 256 MB。如果您遭遇使用 Web 管理方面的問題,請按照所述來修改 lbwebaccess Script。
如果您正在使用遠端 Web 管理來配置 Load Balancer, 請不要調整 Load Balancer GUI 出現所在的 Netscape 瀏覽器視窗的大小(縮至最小、放至最大、往下還原等)。因為每次調整瀏覽器視窗的大小,Netscape 就會重新載入頁面, 所以調整大小將導致與主機中斷連線。每次您調整視窗的大小,將需要重新連接主機。 如果您要在 Windows 平台上執行遠端 Web 管理,請使用 Internet Explorer。
在 Windows 後端伺服器上執行 Microsoft IIS 伺服器 5.0 版時,您必須將 Microsoft IIS 伺服器配置成連結專用。不然,將依預設,啟動 Socket 儲存區,而且 Web 伺服器會連結到 0.0.0.0 並監聽所有資料傳輸, 而不是連結到已配置成站台的多個身分的虛擬 IP 位址。如果本端主機上的應用程式在啟用 Socket 儲存池作業的狀態下關閉,AIX 或 Windows ND 伺服器會偵測到這個情況;不過,如果虛擬主機上的應用程式在本端主機啟動的狀態下關閉, 警告器不會偵測到失效狀況,且 Microsoft IIS 會繼續回應所有的資料傳輸,包括已關閉之應用程式的資料傳輸。
如果要判定是否啟動了 Socket 儲存區及 Web 伺服器是否連結到 0.0.0.0,請發出下列指令:
netstat -an
有關如何將 Microsoft IIS 伺服器配置成連結專用的(停用 Socket 儲存池作業)的指示, 位於「Microsoft 產品支援服務」網站。您也可以造訪這些 URL,以取得此資訊:
在 Windows 作業系統上的命令提示視窗中,有些 Latin-1 系列的國家字元可能會毀損。例如,含鼻音符號的字母 "a" 可能顯示為圓周率符號。如果要修正這個問題,您必須變更命令提示視窗的字型內容。如果要變更字型,請執行下列步驟:
在 UNIX 型平台上使用 Netscape 瀏覽器時,InfoCenter 內的線上說明文字會以小字型顯示。編輯 Netscape 瀏覽器的喜好設定來放大字型大小。
某些預先配置的 HP-UX 11i 安裝架構只允許每個程序有 64 執行緒。不過,某些 Load Balancer 配置需要的數量比較大。我們建議您將 HP-UX 每一個程序的執行緒至少設為 256。如果要增加這個值,請利用 "sam" 公用程式來設定 max_thread_proc 核心程式參數。如果預期的使用量會很大,您可能需要將 max_thread_proc 增加成大於 256。
如果要增加 max_thread_proc,請執行下列動作:
在 Network 配送器機器上配置配接卡時,您必須確定下列兩個設定是正確的,警告器才能運作:
在 Windows 平台上,如果將多個 IP 位址配置給一個配接卡, 請在登錄中先配置您要關聯到主機名稱的 IP 位址。
由於 Load Balancer 在許多實例(例如:lbkeys create)中和 InetAddress.getLocalHost() 相關, 因此將多個 IP 位址的別名指定給單一配接卡可能會導致問題。要避免這個問題,請在登錄中先列出您要主機名稱解析成該位址的 IP 位址。例如:
依預設,如果 Windows 作業系統偵測到網路已停用, 它會清除其「位址解析通訊協定」(ARP) 快取記憶體,其中包括所有的靜態項目。在網路可使用之後,ARP 快取記憶體會由網路上傳送的 ARP 要求重新移入。
藉由高可用性配置,當網路連線失效影響到一或兩部伺服器時,這兩部伺服器都會接管主要作業。當傳送的 ARP 要求重新移入 ARP 快取記憶體時,這兩部伺服器都會回應,這會導致 ARP 快取記憶體將該項目標示為無效。因此,警告器就無法建立 Socket 來備份伺服器。
在連線功能失效時,避免 Windows 作業系統清除 ARP 快取記憶體可解決這個問題。Microsoft 公佈了一篇文章,說明如何完成這項作業。這篇文章位於 Microsoft 網站的 Microsoft Knowledge Base 中,文章號碼 239924: http://support.microsoft.com/default.aspx?scid=kb;en-us;239924。
以下是 Microsoft 文章中,說明防止系統清除 ARP 快取記憶體的步驟摘要:
在使用 Linux 核心程式 2.4.x 伺服器和配送器的 MAC 轉送方法時,必須考慮某些事項。如果伺服器 ip address add 指令在迴路裝置上配置了叢集位址,則只能建立一個叢集位址的別名。
如果要在迴路裝置上建立多個叢集的別名,請使用 ifconfig 指令,例如:
ifconfig lo:num clusterAddress netmask 255.255.255.255 up
此外,配置介面的 ifconfig 方法和配置介面的 ip 方法之間有不相容性。建議您最好讓網站選擇一種方法,並且專使用該方法。
當另一個應用程式正在使用 CBR 所用的其中一個埠時,可能會發生這個問題。詳細資訊,請參考檢查 CBR 埠號。
EXCLUDE-MODULE java EXCLUDE-MODULE javaw
當管理主控台之一在同一機器上作為防火牆或透過防火牆來執行時,這會導致問題發生。 例如,當 Load Balancer 在相同機器上作為防火牆,而您發出 cbrcontrol 指令時, 您會看到諸如錯誤:伺服器未回應之錯誤。
要避免此問題,請編輯 cbrserver Script 檔以設定 RMI 對防火牆(或其他應用程式)所使用的埠。 將這一行:LB_RMISERVERPORT=11199 變更為 LB_RMISERVERPORT=yourPort。其中 yourPort 是不同埠。
一旦完成後,請重新啟動 cbrserver 並開啟埠 11009、10004、11199 和 11100 的資料傳輸, 或針對主機位址(藉以執行管理主控台)的選定埠開啟資料傳輸。
Caching Proxy 和 CBR 皆已啟動,但相關要求並未進行平衡負載。 如果在啟動執行器之前先啟動了 Caching Proxy,便會發生此種錯誤。 發生這個情形時,Caching Proxy 的 stderr 日誌將含有下列錯誤訊息:「ndServerInit:無法連接執行器」。 要避免此問題發生,請先啟動執行器後再啟動 Caching Proxy。
在 Solaris 上,cbrcontrol executor start 指令傳回:「錯誤:執行器並未啟動」。 如果您並未針對系統來配置 IPC(跨處理通訊),使共用記憶體區段及號誌 ID 的最大大小大於作業系統的預設值,便會發生此種錯誤。 要增加共用記憶體區段及號誌 ID 的大小,您必須編輯 /etc/system 檔案。 如果需要如何配置這個檔案的詳細資訊,請參閱第 *** 頁。
如果 URL 規則並未運作,即可能是語法或配置錯誤所致。如果是此問題,請檢查下列項目:
在 Windows 平台上使用 3Com 985B GB 乙太網路配接卡時,可能會遇到下列問題出現:
要避免此類問題,請使用其他廠牌的 GB 乙太網路配接卡。
在 Solaris 各國家語言版本上,Load Balancer GUI 的「是」及「否」按鈕有可能呈現為英文。 這是個已知問題,Sun Microsystems 正在設法加以處理。
在 Windows 平台上,於使用 Matrox AGP 卡時,Load Balancer GUI 可能會發生非預期的行為。如果是按一下滑鼠,有一塊較滑鼠指標稍大的空間可能會呈毀損狀態, 致使高亮度顯示因而反轉,或影像移出螢幕。 舊版的 Matrox 影像卡不曾出現此行為。對於使用 Matrox AGP 卡者,目前尚無修正方法。
於載入大型配置時,如果您在遇到使用 lbadmin 或遠端 Web 管理的問題, 您可能需要增加 Java 資料堆大小的上限。依預設,Java 會將虛擬機器資料堆限制為 64 MB。 當用來管理非常大的配置時,部分 Load Balancer 配置程式(lbadmin、lbwebaccess)可能需要超過這個 64 MB 限制的數量。 為了解決這個問題,Java 資料堆大小上限可以增加到大於 64 MB 的值。如果要增加資料堆大小上限,請使用 "-Xmx" Java 選項。比方說,在 lbadmin Script 中,將 "javaw" 修改成 "javaw -Xmx256m",將 Java 資料堆大小上限變更為 256 MB。如果您遭遇使用 Web 管理方面的問題,請按照所述來修改 lbwebaccess Script。
如果您正在使用遠端 Web 管理來配置 Load Balancer, 請不要調整 Load Balancer GUI 出現所在的 Netscape 瀏覽器視窗的大小(縮至最小、放至最大、往下還原等)。因為每次調整瀏覽器視窗的大小,Netscape 就會重新載入頁面, 所以調整大小將導致與主機中斷連線。每次您調整視窗的大小,將需要重新連接主機。 如果您要在 Windows 平台上執行遠端 Web 管理,請使用 Internet Explorer。
在 Windows 作業系統上的命令提示視窗中,有些 Latin-1 系列的國家字元可能會毀損。例如,含鼻音符號的字母 "a" 可能顯示為圓周率符號。如果要修正這個問題,您必須變更命令提示視窗的字型內容。如果要變更字型,請執行下列步驟:
在 UNIX 型平台上使用 Netscape 瀏覽器時,InfoCenter 內的線上說明文字會以小字型顯示。編輯 Netscape 瀏覽器的喜好設定來放大字型大小。
某些預先配置的 HP-UX 11i 安裝架構只允許每個程序有 64 執行緒。不過,某些 Load Balancer 配置需要的數量比較大。我們建議您將 HP-UX 每一個程序的執行緒至少設為 256。如果要增加這個值,請利用 "sam" 公用程式來設定 max_thread_proc 核心程式參數。如果預期的使用量會很大,您可能需要將 max_thread_proc 增加成大於 256。
如果要增加 max_thread_proc,請參閱 *** 的步驟。
在 Network Dispatcher 機器上配置配接卡時,您必須確定下列兩個設定是正確的,警告器才能運作:
請參閱第 *** 頁,以取得配置這些設定的指示。
在 Windows 平台上,當多個 IP 位址配置給一個配接卡時, 請在登錄中先配置您要關聯到主機名稱的 IP 位址。
由於 Load Balancer 在許多實例(例如:lbkeys create)中和 InetAddress.getLocalHost() 相關, 因此將多個 IP 位址的別名指定給單一配接卡可能會導致問題。要避免這個問題,請在登錄中先列出您要主機名稱解析成該位址的 IP 位址。
請參閱 ***,以取得在登錄中先配置主機名稱的步驟。
當另一個應用程式正在使用網站選取器所用的其中一個埠時,可能會發生這個問題。詳細資訊,請參考檢查網站選取器埠號。
症狀:網站選取器元件無法環繞來自 Solaris 用戶端的進入要求。
可能原因:Solaris 系統執行了名稱服務快取常駐程式。 如果此常駐程式正在執行,後續的解析要求皆會由此快取給予回答,而非查詢網站選取器。
解決方法:關閉 Solaris 機器上的名稱服務快取常駐程式。
EXCLUDE-MODULE java EXCLUDE-MODULE javaw
當管理主控台之一在同一機器上作為防火牆或透過防火牆來執行時,這會導致問題發生。 例如,當 Load Balancer 在相同機器上作為防火牆,而您發出 sscontrol 指令時, 您會看到諸如錯誤:伺服器未回應之錯誤。
要避免此問題,請編輯 ssserver Script 檔以設定 RMI 對防火牆(或其他應用程式)所使用的埠。 將這一行:LB_RMISERVERPORT=10199 變更為 LB_RMISERVERPORT=yourPort。其中 yourPort 是不同埠。
一旦完成後,請重新啟動 ssserver 並開啟埠 12099、10004、12199 和 12100 的資料傳輸, 或針對主機位址(藉以執行管理主控台)的選定埠開啟資料傳輸。
網站選取器必須能參與 DNS。所有與配置有關的機器皆應該是此系統的一員。 Windows 不一定需要配置的主機名稱位於 DNS 中。網站選取器則要求其主機名稱須在 DNS 中定義以便能正確啟動。
請驗證此主機確已在 DNS 中定義。編輯 ssserver.cmd 檔並移除 javaw 中的 w。 這應該提供關於錯誤的詳細資訊。
網站選取器的名稱伺服器並未連結到機器上的任何位址。 它將回應送往機器上任何有效 IP 的要求。網站選取器會依賴作業系統將回應遞送回用戶端。 如果網站選取器機器具有多重配接卡,而其中有任何數量的配接卡是連接到相同的子網路,O/S 即有可能把回應傳給與接收回應不同位址的用戶端。 但有些用戶端應用程式並不接受收發位址不同的回應。因此,名稱解析便會失敗。
在 Windows 平台上使用 3Com 985B GB 乙太網路配接卡時,可能會遇到下列問題出現:
要避免此類問題,請使用其他廠牌的 GB 乙太網路配接卡。
在 Solaris 各國家語言版本上,Load Balancer GUI 的「是」及「否」按鈕有可能呈現為英文。 這是個已知問題,Sun Microsystems 正在設法加以處理。
在 Windows 平台上,於使用 Matrox AGP 卡時,Load Balancer GUI 可能會發生非預期的行為。如果是按一下滑鼠,有一塊較滑鼠指標稍大的空間可能會呈毀損狀態, 致使高亮度顯示因而反轉,或影像移出螢幕。 舊版的 Matrox 影像卡不曾出現此行為。對於使用 Matrox AGP 卡者,目前尚無修正方法。
於載入大型配置時,如果您在遇到使用 lbadmin 或遠端 Web 管理的問題, 您可能需要增加 Java 資料堆大小的上限。依預設,Java 會將虛擬機器資料堆限制為 64 MB。 當用來管理非常大的配置時,部分 Load Balancer 配置程式(lbadmin、lbwebaccess)可能需要超過這個 64 MB 限制的數量。 為了解決這個問題,Java 資料堆大小上限可以增加到大於 64 MB 的值。如果要增加資料堆大小上限,請使用 "-Xmx" Java 選項。比方說,在 lbadmin Script 中,將 "javaw" 修改成 "javaw -Xmx256m",將 Java 資料堆大小上限變更為 256 MB。如果您遭遇使用 Web 管理方面的問題,請按照所述來修改 lbwebaccess Script。
如果您正在使用遠端 Web 管理來配置 Load Balancer, 請不要調整 Load Balancer GUI 出現所在的 Netscape 瀏覽器視窗的大小(縮至最小、放至最大、往下還原等)。因為每次調整瀏覽器視窗的大小,Netscape 就會重新載入頁面, 所以調整大小將導致與主機中斷連線。每次您調整視窗的大小,將需要重新連接主機。 如果您要在 Windows 平台上執行遠端 Web 管理,請使用 Internet Explorer。
在 Windows 作業系統上的命令提示視窗中,有些 Latin-1 系列的國家字元可能會毀損。例如,含鼻音符號的字母 "a" 可能顯示為圓周率符號。如果要修正這個問題,您必須變更命令提示視窗的字型內容。如果要變更字型,請執行下列步驟:
在 UNIX 型平台上使用 Netscape 瀏覽器時,InfoCenter 內的線上說明文字會以小字型顯示。編輯 Netscape 瀏覽器的喜好設定來放大字型大小。
某些預先配置的 HP-UX 11i 安裝架構只允許每個程序有 64 執行緒。不過,某些 Load Balancer 配置需要的數量比較大。我們建議您將 HP-UX 每一個程序的執行緒至少設為 256。如果要增加這個值,請利用 "sam" 公用程式來設定 max_thread_proc 核心程式參數。如果預期的使用量會很大,您可能需要將 max_thread_proc 增加成大於 256。
如果要增加 max_thread_proc,請參閱***的步驟。
在 Network 配送器機器上配置配接卡時,您必須確定下列兩個設定是正確的,警告器才能運作:
請參閱第 *** 頁,以取得配置這些設定的指示。
當另一個應用程式正在使用 Cisco CSS 控制器的 ccoserver 所用的其中一個埠時,即可能發生這個問題。 如果需要詳細資訊,請參閱檢查 Cisco CSS 控制器埠號。
EXCLUDE-MODULE java EXCLUDE-MODULE javaw
當管理主控台之一在同一機器上作為防火牆或透過防火牆來執行時,這會導致問題發生。 例如,當 Load Balancer 在相同機器上作為防火牆,而您發出 ccocontrol 指令時, 您會看到諸如錯誤:伺服器未回應之錯誤。
要避免此問題,請編輯 ccoserver Script 檔以設定 RMI 對防火牆(或其他應用程式)所使用的埠。 將這一行:CCO_RMISERVERPORT=14199 變更為 CCO_RMISERVERPORT=yourPort。其中 yourPort 是不同埠。
一旦完成後,請重新啟動 ccoserver 並開啟埠 13099、10004、13199 和 13100 的資料傳輸, 或針對主機位址(藉以執行管理主控台)的選定埠開啟資料傳輸。
缺少有效的產品授權時便可能會發生此問題。當您試圖啟動 ccoserver 時,會收到下列訊息:
您的軟體授權已到期。請連絡當地的 IBM 業務代表,或 IBM 授權的經銷商。
如果要更正此問題:
在 Solaris 各國家語言版本上,Load Balancer GUI 的「是」及「否」按鈕有可能呈現為英文。 這是個已知問題,Sun Microsystems 正在設法加以處理。
在 Windows 平台上,於使用 Matrox AGP 卡時,Load Balancer GUI 可能會發生非預期的行為。如果是按一下滑鼠,有一塊較滑鼠指標稍大的空間可能會呈毀損狀態, 致使高亮度顯示因而反轉,或影像移出螢幕。 舊版的 Matrox 影像卡不曾出現此行為。對於使用 Matrox AGP 卡者,目前尚無修正方法。
當新增顧問時,您可能遭遇連線錯誤,因為配置設定不正確。 如果要修正這個問題:
如果要修正這個問題
增加顧問 loglevel,然後重試指令。如果再次失敗, 請搜尋日誌找出 SNMP 逾時,或其他 SNMP 通訊錯誤。
於載入大型配置時,如果您在遇到使用 lbadmin 或遠端 Web 管理的問題, 您可能需要增加 Java 資料堆大小的上限。依預設,Java 會將虛擬機器資料堆限制為 64 MB。 當用來管理非常大的配置時,部分 Load Balancer 配置程式(lbadmin、lbwebaccess)可能需要超過這個 64 MB 限制的數量。 為了解決這個問題,Java 資料堆大小上限可以增加到大於 64 MB 的值。如果要增加資料堆大小上限,請使用 "-Xmx" Java 選項。比方說,在 lbadmin Script 中,將 "javaw" 修改成 "javaw -Xmx256m",將 Java 資料堆大小上限變更為 256 MB。如果您遭遇使用 Web 管理方面的問題,請按照所述來修改 lbwebaccess Script。
如果您正在使用遠端 Web 管理來配置 Load Balancer, 請不要調整 Load Balancer GUI 出現所在的 Netscape 瀏覽器視窗的大小(縮至最小、放至最大、往下還原等)。因為每次調整瀏覽器視窗的大小,Netscape 就會重新載入頁面, 所以調整大小將導致與主機中斷連線。每次您調整視窗的大小,將需要重新連接主機。 如果您要在 Windows 平台上執行遠端 Web 管理,請使用 Internet Explorer。
在 Windows 作業系統上的命令提示視窗中,有些 Latin-1 系列的國家字元可能會毀損。例如,含鼻音符號的字母 "a" 可能顯示為圓周率符號。如果要修正這個問題,您必須變更命令提示視窗的字型內容。如果要變更字型,請執行下列步驟:
在 UNIX 型平台上使用 Netscape 瀏覽器時,InfoCenter 內的線上說明文字會以小字型顯示。編輯 Netscape 瀏覽器的喜好設定來放大字型大小。
某些預先配置的 HP-UX 11i 安裝架構只允許每個程序有 64 執行緒。不過,某些 Load Balancer 配置需要的數量比較大。我們建議您將 HP-UX 每一個程序的執行緒至少設為 256。如果要增加這個值,請利用 "sam" 公用程式來設定 max_thread_proc 核心程式參數。如果預期的使用量會很大,您可能需要將 max_thread_proc 增加成大於 256。
如果要增加 max_thread_proc,請參閱 *** 的步驟。
當另一個應用程式正在使用 Nortel Alteon 控制器的 nalserver 所用的其中一個埠時, 即可能發生此問題。如果需要詳細資訊,請參閱檢查 Nortel Alteon 控制器埠號。
EXCLUDE-MODULE java EXCLUDE-MODULE javaw
當管理主控台之一在同一機器上作為防火牆或透過防火牆來執行時,這會導致問題發生。 例如,當 Load Balancer 在相同機器上作為防火牆,而您發出 nalcontrol 指令時, 您會看到諸如錯誤:伺服器未回應之錯誤。
要避免此問題,請編輯 nalserver Script 檔以設定 RMI 對防火牆(或其他應用程式)所使用的埠。 將這一行:NAL_RMISERVERPORT=14199 變更為 NAL_RMISERVERPORT=yourPort。其中 yourPort 是不同埠。
一旦完成後,請重新啟動 nalserver 並開啟埠 14099、10004、14199 和 14100 的資料傳輸, 或針對主機位址(藉以執行管理主控台)的選定埠開啟資料傳輸。
缺少有效的產品授權時便可能會發生此問題。當您試圖啟動 nalserver 時,會收到下列訊息:
您的軟體授權已到期。請連絡當地的 IBM 業務代表,或 IBM 授權的經銷商。
如果要更正此問題:
在 Windows 平台上,於使用 Matrox AGP 卡時,Load Balancer GUI 可能會發生非預期的行為。如果是按一下滑鼠,有一塊較滑鼠指標稍大的空間可能會呈毀損狀態, 致使高亮度顯示因而反轉,或影像移出螢幕。 舊版的 Matrox 影像卡不曾出現此行為。對於使用 Matrox AGP 卡者,目前尚無修正方法。
於載入大型配置時,如果您在遇到使用 lbadmin 或遠端 Web 管理的問題, 您可能需要增加 Java 資料堆大小的上限。依預設,Java 會將虛擬機器資料堆限制為 64 MB。 當用來管理非常大的配置時,部分 Load Balancer 配置程式(lbadmin、lbwebaccess)可能需要超過這個 64 MB 限制的數量。 為了解決這個問題,Java 資料堆大小上限可以增加到大於 64 MB 的值。如果要增加資料堆大小上限,請使用 "-Xmx" Java 選項。比方說,在 lbadmin Script 中,將 "javaw" 修改成 "javaw -Xmx256m",將 Java 資料堆大小上限變更為 256 MB。如果您遭遇使用 Web 管理方面的問題,請按照所述來修改 lbwebaccess Script。
如果您正在使用遠端 Web 管理來配置 Load Balancer, 請不要調整 Load Balancer GUI 出現所在的 Netscape 瀏覽器視窗的大小(縮至最小、放至最大、往下還原等)。因為每次調整瀏覽器視窗的大小,Netscape 就會重新載入頁面, 所以調整大小將導致與主機中斷連線。每次您調整視窗的大小,將需要重新連接主機。 如果您要在 Windows 平台上執行遠端 Web 管理,請使用 Internet Explorer。
當新增顧問時,您可能遭遇連線錯誤,因為配置設定不正確。 如果要修正這個問題:
如果要修正這個問題
增加顧問 loglevel,然後重試指令。如果再次失敗, 請搜尋日誌找出 SNMP 逾時,或其他 SNMP 通訊錯誤。
在 Windows 平台作業系統上的命令提示視窗中,有些 Latin-1 系列的國家字元可能會毀損。例如,含鼻音符號的字母 "a" 可能顯示為圓周率符號。如果要修正這個問題,您必須變更命令提示視窗的字型內容。如果要變更字型,請執行下列步驟:
在 UNIX 型平台上使用 Netscape 瀏覽器時,InfoCenter 內的線上說明文字會以小字型顯示。編輯 Netscape 瀏覽器的喜好設定來放大字型大小。
某些預先配置的 HP-UX 11i 安裝架構只允許每個程序有 64 執行緒。不過,某些 Load Balancer 配置需要的數量比較大。我們建議您將 HP-UX 每一個程序的執行緒至少設為 256。如果要增加這個值,請利用 "sam" 公用程式來設定 max_thread_proc 核心程式參數。如果預期的使用量會很大,您可能需要將 max_thread_proc 增加成大於 256。
如果要增加 max_thread_proc,請參閱 *** 的步驟。
您必須對於在 Windows 平台上執行之度量伺服器上的使用者撰寫的度量, 使用完整的度量名稱。 例如,您必須指定 usermetric.bat 而非 usermetric。 名稱 usermetric 雖在指令行上有效,但從執行環境下執行時將無法運作。 如果並未使用完整的度量名稱,您將會收到度量伺服器IOException。 請在 metricserver 指令檔中,將 LOG_LEVEL 變數的值設成 3,然後檢查日誌輸出。 在這個範例中,例外狀況出現為:
... java.io.IOException: CreateProcess: usermetric error=2
度量伺服器未向 Load Balancer 報告負載資訊的原因不一而足。 要判斷其原因,請執行下列檢查:
度量伺服器日誌會在金鑰檔案轉送給伺服器後報告此錯誤訊息。
當金鑰檔案因金鑰配對損毀以致授權失敗時,此錯誤便會記載至日誌中。 要更正此問題,請嘗試下列動作:
在多重處理器的 AIX 平台(4.3.3、32 位元 5.1 或 64 位元 5.1)上,於高負荷情況下執行度量伺服器時,ps -vg 指令的輸出可能會毀損。例如:
55742 - A 88:19 42 18014398509449680 6396 32768 22 36 2.8 1.0 java -Xms
ps 指令的 SIZE 和/或 RSS 欄位可能顯示記憶體使用過多的數量。
這是已知的 AIX 核心程式問題。Apar IY33804 會更正這個已知問題。 請從 AIX 支援取得修正程式(網址為 http://techsupport.services.ibm.com/server/fixes),或是洽詢當地的 AIX 支援代表。
在兩層 Load Balancer 配置中,如果網站選取器(第一層)是在一對配送器高可用性友機(第二層)之間進行平衡負載, 您必須完成一些步驟來配置度量伺服器元件。您必須配置度量伺服器來接聽度量伺服器專用的新 IP 位址。在第二部高可用性的配送器機器上,度量伺服器只會在作用中的配送器上作用。
要正確地配置這個設定,請完成下列步驟:
例如:
ifconfig en0 delete 9.27.23.61 ifconfig lo0 alias 9.27.23.61 netmask 255.255.255.0 route add 9.27.23.61 127.0.0.1 metricserver stop # 最多休眠 60 秒,或是直到 metricserver 停止 let loopcount=0 while [[ "$loopcount" -lt "60" && 'ps -ef |grep AgentStop| grep -c -v gr ep' -eq "1"]] do sleep 1 let loopcount=$loopcount+1 done route delete 9.27.23.61
例如:
call netsh interface ip delete address "Local Area Connection" addr=9.27.23.61 call netsh interface ip add address "Local Area Connection 2" addr=9.27.2.3.61 mask = 255.255.255.0 sleep 3 metricserver stop
本篇提供所有 Load Balancer 元件的指令參考資訊。 它含有下列各章:
語法圖將告訴您如何指定一個指令,以便作業系統能夠正確地解譯您所輸入的指令。 閱讀語法圖的順序是由左至右、從上到下,沿著平行線(主要路徑)。
下列符號將在語法圖中使用:
您必須包括所有標點符號,如在語法圖中所顯示的冒號、問號及負號。
下列類型的參數將在語法圖中使用。
參數分成關鍵字或變數。關鍵字是以小寫字體顯示,並可以用小寫字體輸入它們。 例如,指令名稱即是一個關鍵字。變數是以斜體表示,並代表您提供的名稱或值。
在下列範例中,user 指令是一個關鍵字。必要變數為 user_id, 而選用性變數為 password。請以自己的值取代變數。
>>-user--user_id--+----------+--------------------------------->< '-password-'
必要關鍵字: 必要關鍵字及變數將出現在主要路徑行上。
>>-required_keyword--------------------------------------------><
您必須編寫必要的關鍵字及變數。
從堆疊中選擇一個必要的項目: 如果將選擇的必要關鍵字或變數中, 有多個互斥,它們將按英數順序形成垂直堆疊。
>>-+-required_parameter_1-+------------------------------------>< '-required_parameter_2-'
選用性的值: 選用性的關鍵字及變數會顯示在主要路徑行下。
>>-+--------+-------------------------------------------------->< '-關鍵字-'
您可以選擇不編寫選用性的關鍵字及變數。
從堆疊中選擇一個選用性的項目: 如果將選擇的選用性關鍵字或變數中, 有多個互斥,它們將在主要路徑行下,按英數順序形成垂直堆疊。
>>-+-------------+--------------------------------------------->< +-parameter_1-+ '-parameter_2-'
變數: 以斜體表示的字即是變數。 一旦在語法中看到一個變數,您必須以可容許的名稱或值(在文字中定義的)取代它。
>>-variable----------------------------------------------------><
非英數字元: 如果語法圖中顯示了非英數的字元(如冒號、問號或負號), 則您必須將該字元編寫成語法的一部分。在這個範例中,您必須編寫 cluster:port。
>>-cluster:port------------------------------------------------><
本附錄將說明如何使用配送器 dscontrol 指令。 同時也是 CBR 的指令參照。 CBR 會使用配送器指令的子集。 請參閱CBR 及配送器的配置差異,以取得進一步資訊。
註:
以下是本附錄中各項指令的清單:
您可以輸入 dscontrol 指令參數的精簡版本。 只需要輸入參數的專用字母即可。例如,要取得存檔指令的說明,您可以輸入 dscontrol he f 而非 dscontrol help file。
如果要啟動指令行介面:請發出 dscontrol 以接收 dscontrol 指令提示。
CBR 指令行介面大部分都是配送器指令行介面的子集。 如果是 CBR,請改用 cbrcontrol 指令而非 dscontrol,以便配置此元件。
CBR 中所省略的部分指令,列示如下。
>>-dscontrol--advisor--+-connecttimeout--name--+-port---------+--timeoutseconds-+->< | '-cluster:port-' | +-interval--name--+-port---------+--seconds--------------+ | '-cluster:port-' | +-list---------------------------------------------------+ +-loglevel--name--+-port---------+--level----------------+ | '-cluster:port-' | +-logsize--name--+-port---------+--+-unlimited---------+-+ | '-cluster:port-' '-number of records-' | +-receivetimeout--name--+-port---------+--timeoutseconds-+ | '-cluster:port-' | +-report--name--+-port---------+-------------------------+ | '-cluster:port-' | +-retries--name--+-port---------+--numretries------------+ | '-cluster:port-' | +-start--name--+-port---------+--+----------+------------+ | '-cluster:port-' '-log file-' | +-status--name--+-port---------+-------------------------+ | '-cluster:port-' | +-stop--name--+-port---------+---------------------------+ | '-cluster:port-' | +-timeout--name--+-port---------+--+-unlimited-+---------+ | '-cluster:port-' '-seconds---' | '-version--name--+-port---------+------------------------' '-cluster:port-'
如果需要 Load Balancer 所提供之警告器的進一步資訊,請參閱警告器列示。
自訂的警告器的名稱格式為 xxxx, 其中 ADV_xxxx 是執行自訂警告器之類別的名稱。請參閱建立自訂(可自訂的)警告器,以取得進一步資訊。
cluster 是採用帶點十進位數格式或代號名稱的位址。port 則是警告器所監視的埠號。
警告器名稱 | 通訊協定 | 埠 |
---|---|---|
cachingproxy | HTTP(透過 Caching Proxy) | 80 |
connect | ICMP | 12345 |
db2 | private | 50000 |
dns | DNS | 53 |
ftp | FTP | 21 |
http | HTTP | 80 |
https | SSL | 443 |
imap | IMAP | 143 |
ldap | LDAP | 389 |
nntp | NNTP | 119 |
ping | PING | 0 |
pop3 | POP3 | 110 |
self | private | 12345 |
smtp | SMTP | 25 |
ssl | SSL | 443 |
ssl2http | SSL | 443 |
telnet | Telnet | 23 |
WLM | private | 10,007 |
預設檔為 advisorname_port.log,例如,http_80.log。如果您想變更日誌檔的保留目錄, 請參閱變更日誌檔路徑。 叢集(或站台)專用警告器的預設日誌檔都是以叢集位址來建立,如 http_127.40.50.1_80.log。
範例
dscontrol advisor start http 127.40.50.1:80
dscontrol advisor start http 88
dscontrol advisor stop http 127.40.50.1:80
dscontrol advisor connecttimeout http 80 30
dscontrol advisor connecttimeout http 127.40.50.1:80 20
dscontrol advisor interval ftp 21 6
dscontrol advisor list這個指令所產生的輸出類似於:
--------------------------------------- | 警告器 | 叢集:埠 | 逾時 | --------------------------------------- | http |127.40.50.1:80 | 無限制 | | ftp | 21 | 無限制 | ---------------------------------------
dscontrol advisor loglevel http 80 0
dscontrol advisor logsize ftp 21 5000
dscontrol advisor receivetimeout http 80 60
dscontrol advisor report ftp 21這個指令所產生的輸出類似於:
警告器報告: --------------- 警告器名稱 ............... Ftp 埠號 ..................... 21 叢集位址 ................. 9.67.131.18 伺服器位址 ............... 9.67.129.230 負載 ..................... 8 叢集位址 ................. 9.67.131.18 伺服器位址 ............... 9.67.131.215 負載 ..................... -1
dscontrol advisor status http 80這個指令所產生的輸出類似於:
警告器狀態: --------------- 間隔(秒數)................... 7 逾時(秒數)................... Unlimited 連線逾時(秒數)................ 21 接收逾時(秒數)................ 21 警告器日誌檔名稱 .............. Http_80.log 日誌層次 ...................... 1 最大日誌大小(位元組)......... Unlimited 重試次數 ............. 0
dscontrol advisor timeout ftp 21 5
dscontrol advisor version ssl 443這個指令所產生的輸出類似於:
版本:04.00.00.00 - 07/12/2001-10:09:56-EDT
>>-dscontrol--binlog--+-start----------------------+----------->< +-stop-----------------------+ +-set--+-retention--hours--+-+ | '-interval--seconds-' | '-狀態-----------------------'
>>-dscontrol--cluster--+-add--cluster+c2+...--+----------------------------------------+-+->< | +-address--address-----------------------+ | | +-proportions--active--new--port--system-+ | | +-maxports--size-------------------------+ | | +-maxservers--size-----------------------+ | | +-stickytime--time-----------------------+ | | +-weightbound--加權值--------------------+ | | +-porttype--type-------------------------+ | | +-primaryhost--address-------------------+ | | +-staletimeout--staletimeout-------------+ | | '-sharedbandwidth--size------------------' | +-set--cluster+c2+...--+-proportions--active--new--port--system-+-+ | +-maxports--size-------------------------+ | | +-maxservers--size-----------------------+ | | +-stickytime--time-----------------------+ | | +-weightbound--加權值--------------------+ | | +-porttype--type-------------------------+ | | +-primaryhost--address-------------------+ | | +-staletimeout--staletimeout-------------+ | | '-sharedbandwidth--size------------------' | +-remove--cluster-------------------------------------------------+ +-report--cluster-------------------------------------------------+ '-狀態--cluster---------------------------------------------------'
除了 dscontrol cluster add 指令外,您可以用冒號 (:) 來作為萬用字元。 例如,指令 dscontrol cluster set : weightbound 80 會將 80 的加權範圍設定給所有叢集。
一旦主要及備份機器已啟動並執行共同高可用性,如果您變更叢集的 primaryhost, 則您也須強迫新主要主機去接管。此外,您需要更新 Script 並自行取消配置及正確地配置叢集。請參閱共同高可用性,以取得進一步資訊。
範例
dscontrol cluster add 130.40.52.153
dscontrol cluster remove 130.40.52.153
dscontrol cluster set 9.6.54.12 proportions 60 35 5 0
dscontrol cluster add 0.0.0.0
dscontrol cluster set 9.6.54.12 primaryhost 9.65.70.19
dscontrol cluster status 9.67.131.167這個指令所產生的輸出類似於:
叢集狀態: ---------------- 叢集 .................................... 9.67.131.167 位址 .................................... 9.67.131.167 目標埠的數目 ............................ 3 預設滯留時間 ............................ 0 預設閒置逾時 ............................ 30 預設埠加權範圍 .......................... 20 最大埠數 ................................ 8 預設埠通訊協定 .......................... tcp/udp 預設最大伺服器數目 ...................... 32 作用中連線的給定比例..................... 0.5 新連線的給定比例......................... 0.5 特定埠的給定比例......................... 0 系統度量的給定比例................... 0 共用頻寬 (KBytes) ....................... 0 主要的主機位址 ........................ 9.67.131.167
>>-dscontrol--executor--+-report-----------------------------------------------------------+->< +-set--+-nfa--IP address------------+------------------------------+ | +-maxclusters--size----------+ | | +-maxports--size-------------+ | | +-fincount--fincount---------+ | | +-fintimeout--fintimeout-----+ | | +-hatimeout--time------------+ | | +-maxservers--size-----------+ | | +-staletimeout--staletimeout-+ | | +-stickytime--time-----------+ | | +-clientgateway--address-----+ | | +-weightbound--weight--------+ | | +-porttype--type-------------+ | | +-wideportnumber--port-------+ | | '-sharedbandwidth--size------' | +-configure--interface_address+i2+...--+-------------------------+-+ | '-interface_name--netmask-' | +-unconfigure--interface_address-----------------------------------+ +-start------------------------------------------------------------+ +-status-----------------------------------------------------------+ '-stop-------------------------------------------------------------'
範例
dscontrol executor status 執行器狀態: ---------------- 非轉送的位址 ........................ 9.67.131.151 用戶端閘道位址 ...................... 0.0.0.0 Fin 計數 ............................ 4,000 Fin 逾時 ............................ 60 廣域網路埠號 ........................ 0 共用頻寬(千位元組)................. 0 每一叢集的預設最大埠數 .............. 8 最大叢集數 .......................... 100 每個埠的預設最大伺服器數 ............ 32 預設閒置時間 ........................ 300 預設滯留時間 ........................ 0 預設加權範圍 ........................ 20 預設埠類型 .......................... tcp/udp
dscontrol executor set nfa 130.40.52.167
dscontrol executor set maxclusters 4096
dscontrol executor start
dscontrol executor stop
>>-dscontrol--file--+-delete--file[.ext]----------+------------>< +-appendload--file[.ext]------+ +-report----------------------+ +-save--file[.ext]--+-------+-+ | '-force-' | '-newload--file[.ext]---------'
副檔名 (.ext) 可以隨您的需要自由設定,也可以省略。
範例
dscontrol file delete file3 已刪除檔案 (file3)。
dscontrol file newload file1.sv 已將檔案 (file1.sv) 載入配送器。
dscontrol file appendload file2.sv 已將 (file2.sv) 附加到現行配置,並載入。
dscontrol file report FILE REPORT: file1.save file2.sv file3
dscontrol file save file3 配置已儲存在檔案 (file3)。
>>-dscontrol--help--+-advisor----------+----------------------->< +-binlog-----------+ +-cluster----------+ +-executor---------+ +-file-------------+ +-help-------------+ +-highavailability-+ +-host-------------+ +-logstatus--------+ +-manager----------+ +-metric-----------+ +-port-------------+ +-rule-------------+ +-server-----------+ +-set--------------+ +-status-----------+ '-subagent---------'
範例
dscontrol help這個指令所產生的輸出類似於:
解說指令引數: --------------------------------- 用法: help <說明選項> 範例: help cluster help - 列印完整的說明文字 advisor - advisor 指令的說明 cluster - cluster 指令的說明 executor - executor 指令的說明 file - file 指令的說明 host - host 指令的說明 binlog - binary log 指令的說明 manager - manager 指令的說明 metric - metric 指令的說明 port - port 指令的說明 rule - rule 指令的說明 server - server 指令的說明 set - set 指令的說明 status - status 指令的說明 logstatus - 伺服器日誌狀態的說明 subagent - subagent 指令的說明 highavailability - highavailability 指令的說明請注意,<>內的參數是變數。
fintimeout <cluster address>|all <time> -Change FIN timeout (使用 'all',表示變更所有叢集)
>>-dscontrol--highavailability--+-status--------------------------------------+->< +-backup--+-add--+-primary-+--+-auto---+--p-+-+ | | +-backup--+ '-manual-' | | | | '-both----' | | | '-delete--------------------------' | +-reach--+-add----+--address--mask------------+ | '-delete-' | +-heartbeat--+-add--srcaddress--dstaddress-+--+ | '-delete--address-------------' | '-takeover--+---------+-----------------------' '-address-'
另外,status 關鍵字會傳回各種子狀態的資訊:
註:
範例
dscontrol highavailability status
輸出:
高可用性狀態: ------------------------- 角色 ........................primary 復原策略 .................... manual 狀態 ........................ Active 次狀態 ...................... Synchronized 主要主機 .................. 9.67.131.151 埠 ...........................12345 偏好的目標 .................. 9.67.134.223 活動訊號狀態: ----------------- 計數 .......................... 1 來源/目標 ..................... 9.67.131.151/9.67.134.223 可到達的狀態: -------------------- 計數 ................. 1 位址 ................. 9.67.131.1 reachable
dscontrol highavailability backup add primary auto 80
dscontrol highavailability reach add 9.67.125.18
Primary - highavailability heartbeat add 9.67.111.3 9.67.186.8 Backup - highavailability heartbeat add 9.67.186.8 9.67.111.3
dscontrol highavailability takeover
>>-dscontrol--host:--remote_host-------------------------------><
dscontrol host:remote_host
在指令提示上發出這個指令後,請輸入您想對遠端 Load Balancer 機器發出的任何有效 dscontrol 指令。
>>-dscontrol--logstatus----------------------------------------><
範例
如果要顯示 logstatus:
dscontrol logstatus
這個指令所產生的輸出類似於:
配送器日誌狀態: ------------------------------ 日誌檔名稱 ................. C:\PROGRA~1\IBM\edge\lb\servers\logs\dispatcher \server.log 日誌層次 ................... 1 最大日誌大小(位元組)...... 1048576
>>-dscontrol--manager--+-interval--seconds----------------------+->< +-loglevel--level------------------------+ +-logsize--+-unlimited-+-----------------+ | '-bytes-----' | +-metric set--+-loglevel--level--------+-+ | '-logsize--+-unlimited-+-' | | '-bytes-----' | +-quiesce--server--+-----+---------------+ | '-now-' | +-reach set--+-interval--seconds------+--+ | +-loglevel--level--------+ | | '-logsize--+-unlimited-+-' | | '-bytes-----' | +-refresh--refresh cycle-----------------+ +-report--+----------------+-------------+ | '-cluster+c2+...-' | +-restart--message-----------------------+ +-sensitivity--weight--------------------+ +-smoothing--smoothing index-------------+ +-start--+-----------------------+-------+ | '-log file--metric_port-' | +-status---------------------------------+ +-stop-----------------------------------+ +-unquiesce--server----------------------+ '-version--------------------------------'
或者,如果您使用了伺服器分割區,請使用邏輯伺服器的唯一名稱。請參閱伺服器分割:配置成實體伺服器(IP 位址)的邏輯伺服器,以取得進一步資訊。
預設檔將安裝在 logs 目錄中。請參閱附錄 C, 配置檔範例。如果您想變更日誌檔的保留目錄, 請參閱變更日誌檔路徑。
範例
dscontrol manager interval 5
dscontrol manager loglevel 0
dscontrol manager logsize 1000000
dscontrol manager quiesce 130.40.52.153
dscontrol manager refresh 3
dscontrol manager report這個指令所產生的輸出類似於:
-------------------------------------------------------------------- | 伺服器 | IP 位址 | 狀態 | -------------------------------------------------------------------- | mach14.dmz.com | 10.6.21.14 | 作用中 | | mach15.dmz.com | 10.6.21.15 | 作用中 | -------------------------------------------------------------------- ----------------------------- | 管理程式報告圖註 | ----------------------------- | ACTV | 作用中連線 | | NEWC | 新連線 | | SYS | 系統度量 | | NOW | 現行加權 | | NEW | 新加權 | | WT | 加權 | | CONN | 連線 | ----------------------------- ------------------------------------------------------------------- | www.dmz.com | | | | | | | 10.6.21.100 | 加權值 | 作用中 | 新連線 | 埠 | 系統 | | 埠: 21 |現行 新 | 49% | 50% | 1% | 0% | ------------------------------------------------------------------- | mach14.dmz.com | 10 10 | 0 | 0 | -1 | 0 | | mach15.dmz.com | 10 10 | 0 | 0 | -1 | 0 | ------------------------------------------------------------------- ------------------------------------------------------------------- | www.dmz.com | | | | | | | 10.6.21.100 | 加權值 | 作用中 | 新連線 | 埠 | 系統 | | 埠: 80 |現行 新 | 49% | 50% | 1% | 0% | ------------------------------------------------------------------- | mach14.dmz.com | 10 10 | 0 | 0 | 23 | 0 | | mach15.dmz.com | 9 9 | 0 | 0 | 30 | 0 | ------------------------------------------------------------------- --------------------------------------------------- | 警告器 | 叢集:埠 | 逾時 | --------------------------------------------------- | http | 80 | 無限制 | | ftp | 21 | 無限制 | ---------------------------------------------------
dscontrol manager restart Restarting the manager to update code這個指令所產生的輸出類似於:
320-14:04:54 重新啟動管理程式成為更新碼
dscontrol manager sensitivity 10
dscontrol manager smoothing 2.0
dscontrol manager start ndmgr.log
dscontrol manager status這個指令將產生類似下列範例的輸出。
管理程式狀態: =============== 測量埠........................................ 10004 管理程式日誌檔名稱............................ manager.log 管理程式日誌層次.............................. 1 最大管理程式日誌大小(位元組)................. unlimited 靈敏度層次...................................... 0.05 平順指數...................................... 1.5 更新間隔(秒)................................. 2 加權重新整理週期.............................. 2 連繫日誌層次.................................. 1 最大連繫日誌大小(位元組)..................... unlimited 連繫更新間隔(秒)............................. 7 測量監視程式日誌檔名稱........................ MetricMonitor.log 測量監視程式日誌層次.......................... 1 最大測量監視程式日誌大小...................... 1048576
dscontrol manager stop
dscontrol manager quiesce 130.40.52.153 now
dscontrol manager quiesce 130.40.52.153
dscontrol manager unquiesce 130.40.52.153
dscontrol manager version
>>-dscontrol--metric--+-add--cluster+c2+...+cN:metric+metric1+...+metricN--------------+->< +-remove--cluster+c2+...+cN:metric+metric1+...+metricN-----------+ +-proportions--cluster+c2+...+cN proportion1 prop2 prop3...propN-+ '-status--cluster+c2+...+cN:metric+metric1+...+metricN-----------'
範例
dscontrol metric add site1:metric1
dscontrol metric proportions site1 0 100
dscontrol metric status site1:metric1這個指令所產生的輸出類似於:
度量狀態: ------------ 叢集 .......................... 10.10.10.20 度量名稱 .................. metric1 度量比例 .................. 50 伺服器 .................... plm3 度量資料 .............. -1
>>-dscontrol--port--+-add--cluster:port--+----------------------+-+->< | +-crossport--otherport-+ | | +-maxservers--size-----+ | | +-stickymask--value----+ | | +-stickytime--time-----+ | | +-method--type---------+ | | +-staletimeout--value--+ | | +-weightbound--weight--+ | | +-porttype--type-------+ | | +-protocol--type-------+ | | '-reset--value---------' | +-set--cluster:port--+-crossport--otherport-+-+ | +-maxservers--size-----+ | | +-stickymask--value----+ | | +-stickytime--time-----+ | | +-staletimeout--value--+ | | +-weightbound--weight--+ | | +-porttype--type-------+ | | +-maxhalfopen--value---+ | | '-reset--value---------' | +-remove--cluster:port------------------------+ +-report--cluster:port------------------------+ +-status--cluster:port------------------------+ '-halfopenaddressreport--cluster:port---------'
如果要移除 crossport 親緣性,請將 crossport 值重設為它自己的埠號。 跨埠親緣性特性的相關資訊,請參閱跨埠親緣性。
如果是配送器元件:
如果是 CBR 元件:如果將埠的 stickytime 設成非零值,規則的親緣性類型即必須為無(預設值)。 已在埠上設定 stickytime 時,規則型親緣性(被動 Cookie,URI,主動 Cookie)不得同時存在。
註:
如果是正數值,則表示將進行檢查以判斷現行半開啟連線是否超過臨界值。 如果現行值超過臨界值,即會呼叫警示 Script。請參閱拒絕服務攻擊偵測,以取得進一步資訊。
範例
dscontrol port add 130.40.52.153:80+23
dscontrol port set 130.40.52.153:0
dscontrol port set 130.40.52.153:80 weightbound 10
dscontrol port set 130.40.52.153:80+23 stickytime 60
dscontrol port set 130.40.52.153:80 crossport 23
dscontrol port remove 130.40.52.153:23
dscontrol port status 9.67.131.153:80這個指令所產生的輸出類似於:
埠狀態: ------------ 埠號 ........................... 80 叢集 ........................... 9.67.131.153 閒置逾時 ....................... 300 加權範圍 ....................... 20 最大伺服器數 ................... 32 滯留時間 ....................... 0 埠類型 ......................... tcp/udp 跨埠親緣性 ..................... 80 滯留遮罩位元 ................... 32 最大半開啟連線 ................. 0 傳送 TCP 重設 .................. no
dscontrol port report 9.62.130.157:80這個指令所產生的輸出類似於:
埠報告: ------------ 叢集位址 ....................... 9.62.130.157 埠號 ........................... 80 伺服器數 ....................... 5 最大伺服器加權值 ............... 10 作用中連線總數 ................. 55 每秒連線數 ..................... 12 每秒 KB ........................ 298 半開啟數 ....................... 0 TCP 重設傳送 ................... 0 轉送方法 ....................... MAC 基本轉送
dscontrol port halfopenaddressreport 9.67.127.121:80這個指令所產生的輸出類似於:
已成功建立半開啟連線報告: ------------ cluster:port = 9.67.127.121:80 的半開啟位址報告 已報告之具有半開啟連線的位址總數 ...................... 0 已報告的半開啟連線總數 ................................ 0 已報告的半開啟連線最大數 .............................. 0 已報告的半開啟連線平均數 .............................. 0 已報告的半開啟連線時間平均值(秒)..................... 0 已接收的半開啟連線總數 ................................ 0
>>-dscontrol--rule--+-add--cluster:port:rule--type--type--| opts |-+->< +-dropserver--cluster:port:rule--server--------+ +-remove--cluster:port:rule--------------------+ +-report--cluster:port:rule--------------------+ +-set--cluster:port:rule--| opts |-------------+ +-status--cluster:port:rule--------------------+ '-useserver--cluster:port:rule--server+s2+...--' opts: |--+---------------------------------+--------------------------| +-beginrange--low--endrange--high-+ +-priority--level-----------------+ +-pattern--pattern----------------+ +-tos--value----------------------+ +-stickytime--time----------------+ +-affinity--affinity_type---------+ +-cookiename--value---------------+ +-evaluate--level-----------------+ '-sharelevel--level---------------'
請參閱主動 Cookie 親緣性,以取得進一步資訊。
親緣性類型 "activecookie" 可根據 Load Balancer 所產生的 Cookie,將具有親緣性的 Web 資料傳輸平衡負載到相同的伺服器上。
親緣性類型 "passivecookie" 可根據伺服器所產生的自我識別 Cookie,將具有親緣性的 Web 資料傳輸平衡負載到相同的伺服器上。 您必須搭配被動 Cookie 親緣性來使用 Cookiename 參數。
親緣性類型 "URI" 可用有效增加快取大小的方式,將 Web 資料傳輸平衡負載至 caching-proxy 伺服器。
如果需要詳細資訊,請參閱主動 Cookie 親緣性、被動 Cookie 親緣性及URI 親緣性。
請參閱被動 Cookie 親緣性,以取得進一步資訊。
針對連線類型規則,您也可以指定一個評估選項 -- upserversonrule。 藉由指定 upserversonrule,您可以確定如果伺服器集中有部分伺服器已關閉,規則內剩餘的伺服器將不會超載。
或者,如果您使用了伺服器分割區,請使用邏輯伺服器的唯一名稱。請參閱伺服器分割:配置成實體伺服器(IP 位址)的邏輯伺服器,以取得進一步資訊。
範例
dscontrol rule add 9.37.67.100:80:trule type true priority 100
dscontrol rule add 9.37.131.153:80:ni type ip b 9.0.0.0 e 9.255.255.255
dscontrol rule add cluster1:80:timerule type time beginrange 11 endrange 14 dscontrol rule useserver cluster1:80:timerule server05
dscontrol rule add 9.67.131.153:80:tosrule type service tos 0xx1001x
dscontrol rule add 9.67.131.153:80:rbwrule type reservedbandwidth beginrange 0 endrange 100 evaluate rule
dscontrol cluster set 9.67.131.153 sharedbandwidth 200 dscontrol rule add 9.67.131.153:80:shbwrule type sharedbandwidth sharelevel cluster
>>-dscontrol--server--+-add--cluster:port:server--+-------------------------+-+->< | +-address--address--------+ | | +-collocated--value-------+ | | +-sticky--value-----------+ | | +-weight--value-----------+ | | +-fixedweight--value------+ | | +-cookievalue--value------+ | | +-mapport--portvalue------+ | | +-router--addr------------+ | | +-returnaddress--addr-----+ | | +-advisorrequest--string--+ | | '-advisorresponse--string-' | +-set--cluster:port:server--+-collocated--value-------+-+ | +-sticky--value-----------+ | | +-weight--value-----------+ | | +-fixedweight--value------+ | | +-cookievalue--value------+ | | +-router--addr------------+ | | +-advisorrequest--string--+ | | '-advisorresponse--string-' | +-down--cluster:port:server-----------------------------+ +-remove--cluster:port:server---------------------------+ +-report--cluster:port:server---------------------------+ +-up--cluster:port:server-------------------------------+ '-status--cluster:port:server---------------------------'
或者,如果您使用一個未解析成 IP 位址的唯一名稱,您必須在 dscontrol server add 指令中提供 server address 參數。請參閱伺服器分割:配置成實體伺服器(IP 位址)的邏輯伺服器,以取得進一步資訊。
範例
dscontrol server add 130.40.52.153:80:27.65.89.42
dscontrol server set 130.40.52.153:80:27.65.89.42 sticky no
dscontrol server down 130.40.52.153:80:27.65.89.42
dscontrol server remove ::27.65.89.42
dscontrol server set 130.40.52.153:80:27.65.89.42 collocated yes
dscontrol server set 130.40.52.153:80:27.65.89.42 weight 10
dscontrol server up 130.40.52.153:80:27.65.89.42
dscontrol server add 130.40.52.153:80:130.60.70.1 router 130.140.150.0
dscontrol server set 130.40.52.153:80:27.65.89.42 advisorrequest "\"HEAD / HTTP/2.0\""
dscontrol server status 9.67.131.167:80:9.67.143.154這個指令所產生的輸出類似於:
伺服器狀態: -------------- 伺服器 ......................... 9.67.143.154 埠號 ........................... 80 叢集 ........................... 9.67.131.167 叢集位址 ....................... 9.67.131.167 靜止 ........................... N 伺服器開機中 ................... Y 加權 ........................... 10 固定加權 ....................... N 滯留時間規則 ................... Y 遠端伺服器 ..................... N 網路路由器位址 ................. 0.0.0.0 並列 ........................... N 警告器要求...................... HEAD / HTTP/1.0 警告器回應...................... Cookie 值 ...................... n/a 複製 ID ........................ n/a
>>-dscontrol--set--+-loglevel--level--------+------------------>< '-logsize--+-unlimited-+-' '-size------'
>>-dscontrol--狀態---------------------------------------------><
範例
dscontrol status這個指令所產生的輸出類似於:
已啟動執行器。 已啟動管理程式。 ---------------------------------------- | 警告器 | 叢集:埠 | 逾時 | ---------------------------------------- | reach | 0 | 無限制 | | http | 80 | 無限制 | | ftp | 21 | 無限制 | ----------------------------------------
>>-dscontrol--subagent--+-loglevel--level--------------------+->< +-logsize--+-bytes-----+-------------+ | '-unlimited-' | +-report-----------------------------+ +-start--+-------------------------+-+ | '-community_name--logfile-' | +-status-----------------------------+ +-stop-------------------------------+ '-version----------------------------'
如果是 Windows 平台:將使用作業系統的社群名稱。
範例
dscontrol subagent start bigguy bigguy.log
本附錄將說明如何使用下列網站選取器sscontrol 指令:
您可以輸入 sscontrol 指令參數的精簡版本。 只需要輸入參數的專用字母即可。比方說,如果要取得有關存檔指令的說明,您可以輸入 sscontrol he f 而非 sscontrol help file。
>>-sscontrol--advisor--+-connecttimeout--name--+-port----------+--seconds-------+->< | '-sitename:port-' | +-interval--name--+-port----------+--seconds-------------+ | '-sitename:port-' | +-list---------------------------------------------------+ +-loglevel--name--+-port----------+--level---------------+ | '-sitename:port-' | +-logsize--name--+-port----------+--+-size | unlimited-+-+ | '-sitename:port-' '-bytes------------' | +-receivetimeout--name--+-port----------+--seconds-------+ | '-sitename:port-' | +-report--name--+-port----------+------------------------+ | '-sitename:port-' | +-retries--name--+-port----------+--numretries-----------+ | '-sitename:port-' | +-start--name--+-port----------+--+----------+-----------+ | '-sitename:port-' '-log file-' | +-status--name--+-port----------+------------------------+ | '-sitename:port-' | +-stop--name--+-port----------+--------------------------+ | '-sitename:port-' | +-timeout--name--+-port----------+-----------------------+ | '-sitename:port-' | '-version--name--+-port----------+--seconds--------------' '-sitename:port-'
.
警告器名稱 | 通訊協定 | 埠 |
---|---|---|
Connect | 無 | 使用者定義 |
db2 | private | 50000 |
ftp | FTP | 21 |
http | HTTP | 80 |
https | SSL | 443 |
imap | IMAP | 143 |
ldap | LDAP | 389 |
nntp | NNTP | 119 |
PING | PING | 0 |
pop3 | POP3 | 110 |
smtp | SMTP | 25 |
ssl | SSL | 443 |
telnet | Telnet | 23 |
預設檔案為 advisorname_port.log,例如 http_80.log。 如果您想變更用於儲存日誌檔的目錄,請參閱變更日誌檔路徑。
對於每一個站台名稱,您只能啟動一個警告器。
範例
sscontrol advisor connecttimeout http 80 30
sscontrol advisor interval ftp 21 6
sscontrol advisor list這個指令所產生的輸出類似於:
--------------------------------------- | 警告器 | 站台名稱:埠 | 逾時 | --------------------------------------- | http | 80 | 無限制 | | ftp | 21 | 無限制 | ---------------------------------------
sscontrol advisor loglevel http mysite:80 0
sscontrol advisor logsize ftp mysite:21 5000
sscontrol advisor receivetimeout http 80 60
sscontrol advisor report ftp 21這個指令所產生的輸出類似於:
通告器報告: --------------- 警告器名稱 ............... http 埠號 ..................... 80 sitename ................. mySite 伺服器位址 ............... 9.67.129.230 負載 ..................... 8
sscontrol advisor start ftp 21 ftpadv.log
sscontrol advisor status http 80這個指令所產生的輸出類似於:
警告器狀態: --------------- 間隔(秒數)................... 7 逾時(秒數)................... Unlimited 連線逾時(秒數)................ 21 接收逾時(秒數)................ 21 警告器日誌檔名稱 .............. Http_80.log 日誌層次 ...................... 1 最大日誌大小(位元組)......... Unlimited 重試次數 ............. 0
sscontrol advisor stop http 80
sscontrol advisor timeout ftp 21 5
sscontrol advisor version ssl 443
>>-sscontrol--file--+-delete--filename.ext----------+---------->< +-appendload--filename.ext------+ +-report------------------------+ +-save--filename.ext--+-------+-+ | '-force-' | '-newload--filename.ext---------'
副檔名 (.ext) 可以隨您的需要自由設定,而且是選用性的。
範例
sscontrol file delete file3 已刪除檔案 (file3)。
sscontrol file newload file1.sv 已將檔案 (file1.sv) 載入配送器。
sscontrol file appendload file2.sv 已將 (file2.sv) 附加到現行配置,並載入。
sscontrol file report FILE REPORT: file1.save file2.sv file3
sscontrol file save file3 配置已儲存在檔案 (file3)。
>>-sscontrol--help--+-警告器-----+----------------------------->< +-file-------+ +-help-------+ +-host-------+ +-logstatus--+ +-manager----+ +-metric-----+ +-nameserver-+ +-rule-------+ +-server-----+ +-set--------+ +-sitename---+ '-status-----'
範例
sscontrol help這個指令所產生的輸出類似於:
解說指令引數: --------------------------------- 用法: help <說明選項> 範例: help name help - 列印完整的說明文字 advisor - advisor 指令的說明 file - file 指令的說明 host - host 指令的說明 manager - manager 指令的說明 metric - metric 指令的說明 sitename - sitename 指令的說明 nameserver - nameserver 指令的說明 rule - rule 指令的說明 server - server 指令的說明 set - set 指令的說明 status - status 指令的說明 logstatus - logstatus 指令的說明< > 內的參數是變數。
logsize <位元組數 | unlimited> -設定日誌檔所記載的最大位元組數。
>>-sscontrol--logstatus----------------------------------------><
>>-sscontrol--manager--+-interval--seconds----------------------+->< +-loglevel--level------------------------+ +-logsize--+-unlimited-+-----------------+ | '-bytes-----' | +-metric set--+-loglevel--level--------+-+ | '-logsize--+-unlimited-+-' | | '-bytes-----' | +-reach set--+-interval--seconds------+--+ | +-loglevel--level--------+ | | '-logsize--+-unlimited-+-' | | '-bytes-----' | +-report--sitename+sn2+...+snN-----------+ +-restart--message-----------------------+ +-sensitivity--weight--------------------+ +-smoothing--smoothing index-------------+ +-start--+----------------------+--------+ | '-logfile--metric_port-' | +-status---------------------------------+ +-stop-----------------------------------+ '-version--------------------------------'
預設檔將安裝在 logs 目錄中。請參閱附錄 C, 配置檔範例。如果您想變更日誌檔的保留目錄, 請參閱變更日誌檔路徑。
範例
sscontrol manager interval 5
sscontrol manager loglevel 0
sscontrol manager logsize 1000000
sscontrol manager report這個指令所產生的輸出類似於:
---------------------------------- | 伺服器 | 狀態 | ---------------------------------- | 9.67.129.221| 使用中| | 9.67.129.213| 使用中| | 9.67.134.223| 使用中| ---------------------------------- -------------------------- | 管理程式報告圖註 | -------------------------- | CPU | CPU 負載 | | MEM | 記憶體負載 | | SYS | 系統度量 | | NOW | 現行加權值 | | NEW | 新加權值 | | WT | 加權值 | -------------------------- ------------------------------------------------------------------------ | mySite | WEIGHT | CPU 49% | MEM 50% | PORT 1% | SYS 0% | ------------------------------------------------------------------------ | |NOW NEW | WT LOAD | WT LOAD | WT LOAD | WT LOAD | ------------------------------------------------------------------------ | 9.37.56.180 | 10 10 |-99 -1|-99 -1|-99 -1| 0 0| ------------------------------------------------------------------------ | 合計:| 10 10 | -1| -1| -1| 0| ------------------------------------------------------------------------ ----------------------------------------- | 警告器 | 站台名稱:埠 | 逾時 | ----------------------------------------- | http | 80 | 無限制 | -----------------------------------------
sscontrol manager restart Restarting the manager to update code這個指令所產生的輸出類似於:
320-14:04:54 重新啟動管理程式成為更新碼
sscontrol manager sensitivity 10
sscontrol manager smoothing 2.0
sscontrol manager start ndmgr.log
sscontrol manager status這個指令將產生類似下列範例的輸出。
管理程式狀態: ============= 測量埠........................................ 10004 管理程式日誌檔名.............................. manager.log 管理程式日誌層次.............................. 1 最大管理程式日誌大小(位元組)................. unlimited 靈敏度層次...................................... 5 平順指數...................................... 1.5 更新間隔(秒)................................. 2 加權值重新整理週期............................ 2 連繫日誌層次.................................. 1 最大連繫日誌大小(位元組)..................... unlimited 連繫更新間隔(秒)............................. 7
sscontrol manager stop
sscontrol manager version
>>-sscontrol--metric--+-add--sitename+sn2+...+snN:metric+metric1+...+metricN--------------+->< +-remove--sitename+sn2+...+snN:metric+metric1+...+metricN-----------+ +-proportions--sitename+sn2+...+snN:proportion1 prop2 prop3...propN-+ '-status--sitename+sn2+...+snN metric+metric1+...+metricN-----------'
範例
sscontrol metric add site1:metric1
sscontrol metric proportions site1 0 100
sscontrol metric status site1:metric1這個指令所產生的輸出類似於:
度量狀態: ------------ 站台名稱 ..................... site1 度量名稱 .................. metric1 度量比例 .................. 50 伺服器 ......... 9.37.56.100 測量資料 ....... -1
>>-sscontrol--nameserver--+-start--+----------------------+-+-->< | '-bindaddress--address-' | +-stop----------------------------+ '-status--------------------------'
>>-sscontrol--rule--+-add--sitename+sn2+...+snN:rule+r2+...+rN--type--value--| value |--| opts |-+->< +-dropserver--sitename+sn2+...+snN:rule+r2+...+rN--server+s2+...+snN---------+ +-remove--sitename+sn2+...+snN:rule+r2+...+rN--------------------------------+ +-set--sitename+sn2+...+snN:rule+r2+...+rN--| value |--| opts |--------------+ +-status--sitename+sn2+...+snN:rule+r2+...+rN--------------------------------+ '-useserver--sitename+sn2+...+snN:rule+r2+...+rN--server+s2+...+snN----------' opts: |--+---------------------------------+--------------------------| +-beginrange--low--endrange--high-+ +-priority--value-----------------+ '-metricname--value---------------'
範例
sscontrol rule add sitename:rulename type true priority 100
sscontrol rule add sitename:rulename type ip b 9.0.0.0 e 9.255.255.255
sscontrol rule add sitename:rulename type time beginrange 11 endrange 14 sscontrol rule useserver sitename:rulename server05
>>-sscontrol--server--+-add--sitename+sn2+...+snN:server+s2+...+sN--+------------------------+-+->< | +-metricaddress--address-+ | | '-weight--value----------' | +-down--sitename+sn2+...+snN:server+s2+...+sN----------------------------+ +-remove--sitename+sn2+...+snN:server+s2+...+sN--------------------------+ +-set--sitename+sn2+...+snN:server+s2+...+sN--+------------------------+-+ | +-metricaddress--address-+ | | '-weight--value----------' | +-status--sitename+sn2+...+snN:server+s2+...+sN--------------------------+ '-up--sitename+sn2+...+snN:server+s2+...+sN------------------------------'
範例
sscontrol server add site1:27.65.89.42
sscontrol server down site1:27.65.89.42
sscontrol server remove :27.65.89.42
sscontrol server up site1:27.65.89.42
>>-sscontrol--set--+-loglevel--level--------+------------------>< '-logsize--+-unlimited-+-' '-size------'
>>-sscontrol--sitename--+-add--sitename+sn2+...+snN--+----------------------------------------+-+->< | +-cachelife--value-----------------------+ | | +-networkproximity--yes | no-------------+ | | +-proportions--cpu--memory--port--metric-+ | | +-proximitypercentage--value-------------+ | | +-stickytime--time-----------------------+ | | +-ttl--time------------------------------+ | | +-waitforallresponses--yes | no----------+ | | '-weightbound--weight--------------------' | +-remove--sitename+sn2+...+snN------------------------------------------+ +-set--sitename+sn2+...+snN--+----------------------------------------+-+ | +-cachelife--value-----------------------+ | | +-networkproximity--yes | no-------------+ | | +-proportions--cpu--memory--port--metric-+ | | +-proximitypercentage--value-------------+ | | +-stickytime--time-----------------------+ | | +-ttl--time------------------------------+ | | +-waitforallresponses--yes | no----------+ | | '-weightbound--weight--------------------' | '-status--sitename+sn2+...+snN------------------------------------------'
範例
sscontrol sitename add 130.40.52.153
sscontrol sitename set mySite networkproximity yes
sscontrol sitename set mySite cachelife 1900000
sscontrol sitename set mySite proximitypercentage 45
sscontrol sitename set mySite waitforallresponses no
sscontrol sitename set mySite ttl 7
sscontrol sitename set mySite proportions 50 48 1 1
sscontrol sitename remove 130.40.52.153
sscontrol sitename status mySite這個指令所產生的輸出類似於:
SiteName 狀態: --------------- SiteName ........................... mySite WeightBound ........................ 20 TTL ................................ 5 StickyTime ......................... 0 伺服器數 ........................... 1 CpuLoad 的給定比例 ................. 49 MemLoad 的給定比例 ................. 50 埠的給定比例 ....................... 1 系統度量的給定比例 ............. 0 在埠上執行的警告器 ................. 80 使用接近 ........................... N
>>-sscontrol--status-------------------------------------------><
範例
sscontrol status這個指令所產生的輸出類似於:
已啟動名稱伺服器。 已啟動管理程式。 ----------------------------------------- | 警告器 | 站台名稱:埠 | 逾時 | ---------------------------------------- | http | 80 | 無限制 | -----------------------------------------
本附錄將說明如何使用下列 Cisco CSS 控制器的 ccocontrol 指令:
您可以使用縮寫版的 ccocontrol 指令參數,方法是輸入代表參數的唯一字母。 比方說,如果要取得有關存檔指令的說明,您可以輸入 ccocontrol he f 而非 ccocontrol help file。
如果要取得 ccocontrol 指令提示:輸入 ccocontrol。
>>-ccocontrol--consultant--+-add--scID--address--swIPAddr--community--commName-+->< +-binarylog--scID+scID2...--+-report-------------+--+ | +-set--+-interval--+-+ | | | '-retention-' | | | +-start--------------+ | | '-stop---------------' | +-remove--scID+scID2...-----------------------------+ +-report--scID+scID2...-----------------------------+ +-set--+-loglevel--level----------------+-----------+ | +-logsize--+-size------+---------+ | | | '-unlimited-' | | | +-sensitivity--weight percentage-+ | | '-sleeptime--sec-----------------' | +-start--scID+scID2...------------------------------+ '-stop--scID+scID2...-------------------------------'
0 = 無
1 = 最少
2 = 基本
3 = 中
4 = 進階
5 = 詳細
範例
ccocontrol consultant add sc1 address 9.37.50.17 community comm2
ccocontrol consultant binarylog sc1 start
ccocontrol consultant report sc1
這個指令所產生的輸出類似於:
顧問 sc1 已連線至交換器於 9.37.50.1:cn1 顧問已啟動 休眠時間 = 7 靈敏度 = 5 日誌層次 = 5 日誌大小 = 1,048,576 擁有者內容: ownerContent oc1
ccocontrol consultant set sc1 sleeptime 10
ccocontrol consultant start sc1
>>-ccocontrol--controller--+-report--------------------------+->< '-set--+------------------------+-' +-loglevel--level--------+ '-logsize--+-size------+-' '-unlimited-'
0 = 無
1 = 最少
2 = 基本
3 = 中
4 = 進階
5 = 詳細
範例
ccocontrol controller report
這個指令所產生的輸出類似於:
控制器報告: ------------------------ 版本 . . . . . . . . . . 版本:05.00.00.00 - 03/21/2002-09:49:57-EST 記載層次. . . . . . . . . 1 日誌大小. . . . . . . . . 1048576 配置檔. . . . . . . . . . config1.xml 顧問: 顧問 consult1 已啟動
ccocontrol set loglevel 0
ccocontrol controller set logsize 1000000
>>-ccocontrol--file--+-delete--filename----------+------------->< +-load--filename------------+ +-report--------------------+ '-save--filename--+-------+-' '-force-'
安裝(預設)目錄:C:\Program Files\ibm\edge\lb\servers\configurations\cco
範例
ccocontrol file delete file1
ccocontrol file load config2
ccocontrol file report
這個指令所產生的輸出類似於:
檔案報告: ------------ file1.xml file2.xml file3.xml
ccocontrol file save config2
>>-ccocontrol--help--+-controller-------+---------------------->< +-consultant-------+ +-file-------------+ +-help-------------+ +-highavailability-+ +-metriccollector--+ +-ownercontent-----+ '-service----------'
範例
ccocontrol help
這個指令所產生的輸出類似於:
下列指令可供使用: controller - 作用於控制器 consultant - 作用於交換器顧問 file - 作用於配置檔 help - 作用於說明文字 highavailability - 作用於高可用性 metriccollector - 作用於度量收集器 ownerContent - 作用於擁有者內容 service - 作用於服務程式
>>-ccocontrol--highavailability--+-add--+-address--address---------------+-+->< | +-partneraddress--partneraddress-+ | | +-port--port---------------------+ | | '-role--+-primary---+------------' | | '-secondary-' | +-dropreach--address----------------------+ +-remove----------------------------------+ +-report----------------------------------+ +-set--+-beatinterval--time-----+---------+ | +-takeoverinterval--time-+ | | +-loglevel--level--------+ | | '-logsize--+-size------+-' | | '-unlimited-' | +-start--+-auto---+-----------------------+ | '-manual-' | +-stop------------------------------------+ +-takeover--------------------------------+ '-usereach--address-----------------------'
0 = 無
1 = 最少
2 = 基本
3 = 中
4 = 進階
5 = 詳細
ccocontrol highavailability add address 9.37.50.17 role primary port 12345 partneraddress 9.37.50.14
ccocontrol highavailability usereach 9.37.50.9
ccocontrol highavailability dropreach 9.37.50.9
ccocontrol highavailability start manual
ccocontrol highavailability report
這個指令所產生的輸出類似於:
高可用性狀態: ------------------------- 節點 . . . . . . . . . . . 主要 節點位址 . . . . . . . . . 9.37.50.17 埠 . . . . . . . . . . . . 12345 友機位址 . . . . . . . . . 9.37.50.14 復原策略 . . . . . . . . . 手動 活動訊號間隔 . . . . . 500 接管間隔 . . . . . . . . . 2000 狀態 . . . . . . . . . . . 閒置 子狀態 . . . . . . . . . . 非同步 連繫狀態:節點/友機 --------------------------------------- 未配置連繫目標
>>-ccocontrol--metriccollector--+-report--scID+scID2+...:mN+mN2...--------------------------+->< '-set--scID+scID2+...:mN+mN2...--+-timeoutconnect--sec----+-' +-loglevel--level--------+ +-logsize--+-size------+-+ | '-unlimited-' | +-timeoutreceive--sec----+ '-sleeptime--sec---------'
0 = 無
1 = 最少
2 = 基本
3 = 中
4 = 進階
5 = 詳細
範例
ccocontrol metriccollector report sc1:http
這個指令所產生的輸出類似於:
MetricCollector sc1:http 收集的度量......... http 日誌層次............... 5 日誌大小............... 1048576 sleepTimeSeconds....... 7 timeoutConnectSeconds.. 21 timeoutReceiveSeconds.. 21
ccocontrol metriccollector set sc1:http timeoutconnect 15 logsize unlimited
>>-ccocontrol--ownerContent--+-add--scID:ocN--ownername--oN--contentrule--cN------------------------------+->< +-metrics--scID+scID2...:ocN+ocN2...--mN--importance--mN2--i2----------------+ +-refresh--scID+scID2...:ocN+ocN2...-----------------------------------------+ +-remove--scID+scID2...:ocN+ocN2...------------------------------------------+ +-report--scID+scID2...:ocN+ocN2...------------------------------------------+ '-set--scID+scID2...:ocN+ocN2...----metric--mN--+------------------------+---' +-requeststring--string--+ +-responsestring--string-+ '-retry--numretries------'
底下是有效度量名稱及其相關埠的清單。
警告器名稱 | 通訊協定 | 埠 |
---|---|---|
connect | ICMP | 12345 |
db2 | private | 50000 |
dns | DNS | 53 |
ftp | FTP | 21 |
http | HTTP | 80 |
https | SSL | 443 |
cachingproxy | HTTP(透過 Caching Proxy) | 80 |
imap | IMAP | 143 |
ldap | LDAP | 389 |
nntp | NNTP | 119 |
ping | PING | 0 |
pop3 | POP3 | 110 |
smtp | SMTP | 25 |
ssl | SSL | 443 |
telnet | Telnet | 23 |
WLM | private | 10,007 |
activeconn | 無 | 無 |
connrate | 無 | 無 |
cpuload | 無 | 無 |
memload | 無 | 無 |
範例
ccocontrol ownerContent add sc1:oc1 ownername owner1 contentrule content1
ccocontrol ownerContent metrics sc1:oc1 activeconn 50 http 50
ccocontrol ownerContent report sc1:oc1
這個指令所產生的輸出類似於:
擁有者內容 sc1:oc1 加權值範圍 = 10 度量 activeconn 佔比例 25 回應字串... n/a 要求字串.... n/a 度量 http 佔比例 50 回應字串... n/a 要求字串.... n/a 度量 connrate 佔比例 25 回應字串... n/a 要求字串.... n/a 包含服務程式 t3 包含服務程式 t2 包含服務程式 t1
ccocontrol ownerContent set sc1:oc1 metric http requeststring getCookie
>>-ccocontrol--service--+-report--scID+scID2...:ocN+ocN2...:svc+svc2...---------------------------------+->< '---set--scID+scID2...:ocN+ocN2...:svc+svc2...--+---------------------------+---' +-fixedweight--+-integer-+--+ | '-off-----' | +-requestsourceip--IPAd-----+ +-metricserveraddress--IPAd-+ '-metricserverport--portN---'
範例
ccocontrol service report sc1:oc1:t1
這個指令所產生的輸出類似於:
服務 sc1:oc1:ta 具有加權值 10 固定加權已關閉 要求來源 Ip........... 9.27.24.156 應用程式埠............ 80 MetricServer 位址..... 1.0.0.1 MetricServer 埠....... 10004 度量 activeconn 有值 -99 度量 http 的值為 -99 度量 connrate 的值為 -99
ccocontrol service set sc1:oc1:t2 metricserveraddress 9.37.50.17
本附錄將說明如何使用下列 Nortel Alteon 控制器的 nalcontrol 指令:
您可以使用縮寫版的 nalcontrol 指令參數,方法是輸入代表參數的唯一字母。 例如,要取得存檔指令的說明,您可以輸入 nalcontrol he f 而非 nalcontrol help file。
如果要取得 nalcontrol 指令提示:輸入 nalcontrol。
>>-nalcontrol--consultant--+-add--scID--address--swIPAddr--+---------------------------+-+->< | +-rcommunity--readCommName--+ | | '-wcommunity--writeCommName-' | +-binarylog--scID+scID2...--+-report------------------------+-+ | +-set--+-interval--interval---+-+ | | | '-retention--retention-' | | | +-start-------------------------+ | | '-stop--------------------------' | +-remove--scID+scID2...---------------------------------------+ +-report--scID+scID2...---------------------------------------+ +-set--+--------------------------------+---------------------+ | +-loglevel--level----------------+ | | +-logsize--+-size------+---------+ | | | '-unlimited-' | | | +-sensitivity--weight percentage-+ | | '-sleeptime--sec-----------------' | +-start--scID+scID2...----------------------------------------+ '-stop--scID+scID2...-----------------------------------------'
0 = 無
1 = 最少
2 = 基本
3 = 中
4 = 進階
5 = 詳細
範例
nalcontrol consultant add sc1 address 9.37.50.17
nalcontrol consultant binarylog sc1 start
nalcontrol consultant report sc1
這個指令所產生的輸出類似於:
顧問 ID: sc1 交換器 IP 位址: 9.37.50.1 讀取團體: public 寫入團體: private 顧問已啟動 休眠時間 = 7 靈敏度 = 5 日誌層次 = 5 日誌大小 = 1,048,576 服務程式: 服務程式 svc1
nalcontrol consultant set sc1 sleeptime 10
nalcontrol consultant start sc1
>>-nalcontrol--controller--+-report--------------------------+->< '-set--+------------------------+-' +-loglevel--level--------+ '-logsize--+-size------+-' '-unlimited-'
0 = 無
1 = 最少
2 = 基本
3 = 中
4 = 進階
5 = 詳細
範例
nalcontrol controller report
這個指令所產生的輸出類似於:
控制器報告: ------------------------ 版本 . . . . . . . . . . 版本:05.00.00.00 - 03/21/2002-09:49:57-EST 記載層次. . . . . . . . . 1 日誌大小. . . . . . . . . 1048576 配置檔. . . . . . . . . . config1.xml 顧問: 顧問 consult1 已啟動
nalcontrol set loglevel 0
nalcontrol controller set logsize 1000000
>>-nalcontrol--file--+-delete--filename-+---------------------->< +-load--filename---+ +-report-----------+ '-save--filename---'
一般安裝目錄路徑 -- C:\Program Files\ibm\edge\lb\servers\configurations\nal
原始安裝目錄路徑 -- C:\Program Files\ibm\lb\servers\configurations\nal
範例
nalcontrol file delete file1
nalcontrol file load config2
nalcontrol file report
這個指令所產生的輸出類似於:
檔案報告: ------------ file1.xml file2.xml file3.xml
nalcontrol file save config2
>>-nalcontrol--help--+-controller-------+---------------------->< +-consultant-------+ +-file-------------+ +-help-------------+ +-highavailability-+ +-metrinalllector--+ +-ownercontent-----+ '-service----------'
範例
nalcontrol help
這個指令所產生的輸出類似於:
下列指令可供使用: controller - 作用於控制器 consultant - 作用於交換器顧問 file - 作用於配置檔 help - 作用於說明文字 highavailability - 作用於高可用性 metriccollector - 作用於度量收集器 server - 作用於伺服器 service - 作用於服務程式
>>-nalcontrol--highavailability--+-add--+-address--address---------------+-+->< | +-partneraddress--partneraddress-+ | | +-port--port---------------------+ | | '-role--+-primary---+------------' | | '-secondary-' | +-dropreach--address----------------------+ +-remove----------------------------------+ +-report----------------------------------+ +-set--+-beatinterval--time-----+---------+ | +-takeoverinterval--time-+ | | +-loglevel--level--------+ | | '-logsize--+-size------+-' | | '-unlimited-' | +-start--+-auto---+-----------------------+ | '-manual-' | +-stop------------------------------------+ +-takeover--------------------------------+ '-usereach--address-----------------------'
0 = 無
1 = 最少
2 = 基本
3 = 中
4 = 進階
5 = 詳細
nalcontrol highavailability add address 9.37.50.17 role primary port 12345 partneraddress 9.37.50.14
nalcontrol highavailability usereach 9.37.50.9
nalcontrol highavailability dropreach 9.37.50.9
nalcontrol highavailability start manual
nalcontrol highavailability report
這個指令所產生的輸出類似於:
高可用性狀態: ------------------------- 節點 . . . . . . . . . . . 主要 節點位址 . . . . . . . . . 9.37.50.17 埠 . . . . . . . . . . . . 12345 友機位址 . . . . . . . . . 9.37.50.14 復原策略 . . . . . . . . . 手動 活動訊號間隔 . . . . . 500 接管間隔 . . . . . . . . . 2000 已啟動 . . . . . . . . . . N 狀態 . . . . . . . . . . . 閒置 子狀態 . . . . . . . . . . 非同步 連繫狀態:節點/友機 ---------------------------------------
>>-nalcontrol--metricollector--+-report--scID+scID2+...:mN+mN2...--------------------------+->< '-set--scID+scID2+...:mN+mN2...--+-connecttimeout--sec----+-' +-loglevel--level--------+ +-logsize--+-size------+-+ | '-unlimited-' | +-receivetimeout--sec----+ '-sleeptime--sec---------'
0 = 無
1 = 最少
2 = 基本
3 = 中
4 = 進階
5 = 詳細
範例
nalcontrol metrinalllector report sc1:http
這個指令所產生的輸出類似於:
Metrinalllector sc1:http 收集的度量......... http 日誌層次............... 5 日誌大小............... 1048576 sleepTimeSeconds....... 7 timeoutConnectSeconds.. 21 timeoutReceiveSeconds.. 21
nalcontrol metrinalllector set sc1:http connecttimeout 15 logsize unlimited
>>-nalcontrol--serer--+-report--scID+scID2...:svcID+svcID2...:serverID+svrID2...-----------------------------------+->< '---set--scID+scID2...:svcID+svcID2...:serverID+svrID2--+--------------------------------+---' +-fixedweight--+-integer-+-------+ | '-off-----' | +-requestsourceip--IPAddress-----+ +-metricserveraddress--IPAddress-+ '-metricserverport--portNumber---'
範例
nalcontrol server report sc1:svc1:1
這個指令所產生的輸出類似於:
伺服器 sc1:svc1:1 擁有的加權 -99 固定加權已關閉 要求來源 Ip............ 9.27.24.156 應用程式埠............. 99 MetricServer 位址...... 9.99.99.98 MetricServer 埠........ 10004 度量 activeconn 的值為 -99 度量 connrate 的值為 -99
nalcontrol server set sc1:svc1:2 metricserveraddress 9.37.50.17
>>-nalcontrol--service--+-add--scID+scID2...:serviceID+svcID2...--vsid--virSvrID--vport--virPortNum------+->< +-metrics--scID+scID2...:svcID+svcID2...--mN--importance--mCN2--i2---------------+ +-refresh--scID+scID2...:svcID+svcID2...-----------------------------------------+ +-remove--scID+scID2...:svcID+svcID2...------------------------------------------+ +-report--scID+scID2...:svcID+svcID2...------------------------------------------+ '-set--scID+scID2...:svcID+svcID2...----metric--mN----+-requeststring--string--+-' +-responsestring--string-+ '-retry--numretries------'
底下是有效度量名稱及其相關埠的清單。
警告器名稱 | 通訊協定 | 埠 |
---|---|---|
connect | ICMP | 12345 |
db2 | private | 50000 |
dns | DNS | 53 |
ftp | FTP | 21 |
http | HTTP | 80 |
https | SSL | 443 |
cachingproxy | HTTP(透過 Caching Proxy) | 80 |
imap | IMAP | 143 |
ldap | LDAP | 389 |
nntp | NNTP | 119 |
ping | PING | 0 |
pop3 | POP3 | 110 |
smtp | SMTP | 25 |
ssl | SSL | 443 |
telnet | Telnet | 23 |
WLM | private | 10,007 |
activeconn | 無 | 無 |
connrate | 無 | 無 |
cpuload | 無 | 無 |
memload | 無 | 無 |
範例
nalcontrol service add sc1:svc1 vsid 1 vport 80
nalcontrol service metrics sc1:svc1 activeconn 50 http 50
nalcontrol service report sc1:svc1
這個指令所產生的輸出類似於:
服務程式 sc1:svc1 Weightbound = 48 度量 activeconn 佔比例 50 度量 connrate 佔比例 50 包含伺服器 4 包含伺服器 3 包含伺服器 2 包含伺服器 1
nalcontrol service set sc1:svc1 metric http requeststring getLastErrorCode
在 Load Balancer 的圖形式使用者介面 (GUI) 中,其左側畫面會顯示一樹狀結構,最上層為 Load Balancer,配送器、內容型遞送 (CBR)、網站選取器、Cisco CSS 控制器及 Nortel Alteon 控制器則為元件。
如果需要強調各個不同元件之 Load Balancer GUI 的圖形範例,請參閱:
圖 42. 顯示 GUI 樹狀結構並展開配送器元件的圖形式使用者介面 (GUI)
圖 43. 顯示 GUI 樹狀結構並展開 CBR 元件的圖形式使用者介面 (GUI)
圖 44. 顯示 GUI 樹狀結構並展開網站選取器元件的圖形式使用者介面 (GUI)
圖 45. 顯示 GUI 樹狀結構並展開 Cisco CSS 控制器元件的圖形式使用者介面 (GUI)
圖 46. 顯示 GUI 樹狀結構並展開 Nortel Alteon 控制器元件的圖形式使用者介面 (GUI)
所有元件都可以從 GUI 來配置。 您可以藉由按一下滑鼠按鍵 1(通常是左鍵)來選取樹狀結構中的元素,然後藉由按一下滑鼠按鍵 2(通常是右鍵)來顯示蹦現功能表。 您也可以從畫面頂端的功能表列中存取樹狀結構元素的蹦現功能表。
如果要從 GUI 執行指令:請高亮度顯示 GUI 樹狀結構中的「主機」節點,並從「主機」蹦現功能表中選取傳送指令....。 在指令輸入欄位中,輸入要執行的指令,例如:executor report。 您在現行階段作業中所執行的指令,其結果及歷程將出現在所提供的視窗中。
畫面右邊會顯示目前所選取之元素的狀態指示器標籤。
如果要存取說明,可按一下 Load Balancer 視窗右上角的問號 (?)。
本附錄將說明如何使用 CBR 元件及配送器元件之 cbr 轉送方法的內容規則(型樣)語法,以及有關其用法的情節與範例。
此語法只有當您選取了「內容」當作規則類型後才適用。
請輸入您想使用的型樣語法,但須注意下列限制:
保留關鍵字後面一定會接著一個等號 『=』。
以 http://www.company.com/path/webpage.htm 為目標的瀏覽器可能會得到下列值:
Method=GET URI=/path/webpage.htm Version=HTTP/1.1 Host=www.company.com Connection=Keep-Alive Referer=http://www.company.com/path/parentwebpage.htm
比方說,僅當您使用 cbrcontrol>> 提示時,下列指令才有效。
rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern client=181.0.153.222&uri=/nipoek/*
使用特殊字元時,如果要使此同一指令能在作業系統的提示下作用,須在型樣前後加上雙引號 (" "),如下所示:
cbrcontrol rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern "client=181.0.153.222&uri=/nipoek/*"
如果未使用引號,當規則存入 CBR 時,部分型樣將遭截斷。請注意,在使用 cbrcontrol>> 指令提示時,並不支援引號。
以下是使用型樣語法時的一些可能情節與範例
情節 1:
在設定一個叢集名稱時,需要有一組 Web 伺服器負責處理標準 HTML 內容,另一組具備 WebSphere Application Server 的 Web 伺服器負責處理 servlet 要求, 以及另一組 Lotus(R) Notes 伺服器負責處理 NSF 檔案,依此類推。要分辨這些所要求的頁面,必須存取用戶端的資料。還須將其傳送給適當的伺服器。 內容型樣相符規則可提供完成此類作業所需的分隔。 其間配置了一系列的規則,所以必需的要求分隔將自動發生。 例如,下列指令會完成所提的三項分割:
>>rule add cluster1:80:servlets type content pattern uri=*/servlet/* priority 1 >>rule uses cluster1:80:servlets server1+server2
>>rule add cluster1:80:notes type content pattern uri=*.nsf* priority 2 >>rule uses cluster1:80:notes server3+server4
>>rule add cluster1:80:regular type true priority 3 >>rule uses cluster1:80:regular server5+server6
如果一 NSF 檔案的要求送達 Load Balancer,首先檢查的是 servlets 規則,但並不相符。 此要求接著由附註規則加以檢查,並回報符合。 用戶端即在 server3 和 server4 之間進行平衡負載。
情節 2
另一個常見的情節發生在主要網站控制了數個獨特的內部群組時。 例如, www.company.com/software 涉及了來自 www.company.com/hardware 部門的不同伺服器組及內容。 由於要求都是發自 root www.company.com 叢集,因此需要內容規則來查明 URI 差異並完成平衡負載。 此情節的規則與下列者類似:
>>rule add cluster1:80:div1 type content pattern uri=/software/* priority 1 >>rule uses cluster1:80:div1 server1+server2
>>rule add cluster1:80:div2 type content pattern uri=/hardware/* priority 2 >>rule uses cluster1:80:div2 server3+server4
情節 3
某些組合對各規則的搜尋順序極為敏感。 例如,在情節 2 中,用戶端會根據其要求路徑中的目錄來分割; 不過,目標目錄可能會出現在該路徑的多個層次,而放置處不同其意義亦不同。 例如,www.company.com/pcs/fixes/software 與 www.company.com/mainframe/fixes/software 便是不同的目標。 故必須定義規則來處理此可能性,而不要在同一時刻應付過多情節。 例如,『uri=*/software/*』 測試對此情況即為過於廣泛的萬用字元搜尋。 選擇方案規則可用下列方式來架構:
透過組合搜尋來縮小範圍:
>>rule add cluster1:80:pcs type content pattern (uri=/pcs/*)&(uri=*/software/*) >>rule uses cluster 1:80:pcs server1
如果無任何組合可用時,順序就變得很重要:
>>rule add cluster1:80:pc1 type content pattern uri=/pcs/* >>rule uses cluster1:80:pc1 server2
當『pcs』出現在稍後的目錄點而非第一個時,第二個規則即接手。
>>rule add cluster1:80:pc2 type content pattern uri=/*/pcs/* >>rule uses cluster1:80:pc2 server3
幾乎大多數的情況下,您會想用預設的永久為真規則來完成規則,以應付其他規則無法處理的任何狀況。 對於所有其他伺服器皆無法服務此用戶端的情節,這也可以是 『對不起,站台目前已當機,請稍後再試』伺服器。
>>rule add cluster1:80:sorry type true priority 100 >>rule uses cluster1:80:sorry server5
本附錄包含了 Load Balancer 的配送器元件的範例配置檔。
範例檔位在 ...ibm/edge/lb/servers/samples/ 目錄中。
#!/bin/bash
#
# configuration.sample - Sample configuration file for the
Dispatcher component
#
#
# Ensure the root user is the one executing this script.
#
# iam=`whoami`
# if [ "$iam" != "root" ]if [ "$iam" != "root" ]
# then
# echo "You must login as root to run this script"
# exit 2
# fi
#
# First start the server
#
# dsserver start
# sleep 5
#
# Then start the executor
#
# dscontrol executor start
#
# The Dispatcher can be removed at any time using the
# "dscontrol executor stop" and "dsserver stop" commands to
# stop the executor and server respectively prior to removing
# the Dispatcher software.
#
# The next step in configuring the Dispatcher is to set the
# NFA (non-forwarding address) and the cluster address(es).
#
# The NFA is used to remotely access the Dispatcher machine
# for administration or configuration purposes. This
# address is required since the Dispatcher will forward packets
# to the cluster address(es).
#
# The CLUSTER address is the hostname (or IP address) to
# which remote clients will connect.
#
# Anywhere in this file, you may use hostnames and IP
# addresses interchangeably.
#
# NFA=hostname.domain.name
# CLUSTER=www.yourcompany.com
# echo "Loading the non-forwarding address"
# dscontrol executor set nfa $NFA
#
# The next step in configuring the Dispatcher is to create
# a cluster. The Dispatcher will route requests sent to
# the cluster address to the corresponding server machines
# defined to that cluster. You may configure and server
# multiple cluster address using Dispatcher.
# Use a similar configuration for CLUSTER2, CLUSTER3, etc.
#
# echo "Loading first CLUSTER address "
# dscontrol cluster add $CLUSTER
#
# Now we must define the ports this cluster will use. Any
# requests received by the Dispatcher on a defined port will
# be forwared to the corresponding port of one of the server
# machines.
#
# echo "Creating ports for CLUSTER: $CLUSTER"
# dscontrol port add $CLUSTER:20+21+80
#
# The last step is to add each of the server machines to the
# ports in this cluster.
# Again, you can use either the hostname or the IP address
# of the server machines.
#
# SERVER1=server1name.domain.name
# SERVER2=server2name.domain.name
# SERVER3=server3name.domain.name
# echo "Adding server machines"
# dscontrol server add $CLUSTER:20+21+80:
# $SERVER1+$SERVER2+$SERVER3
#
# We will now start the load balancing components of the
# Dispatcher. The main load balancing component is called
# the manager and the second load balancing components are the
# advisors. If the manager and advisors are not running the
# Dispatcher sends requests in a round-robin format. Once the
# manager is started, weighting decisions based on the number
# of new and active connections is employed and incoming
# requests are sent to the best server. The advisors give the
# manager further insight into a servers ability to service
# requests as well as detecting whether a server is up. If
# an advisor detects that a server is down it will be
# marked down (providing the manager proportions have been
# set to include advisor input) and no further requests will be
#
# The last step in setting up the load balancing components
# is to set the manager proportions. The manager updates the
# weight of each of the servers based on four policies:
# 1. The number of active connections on each server.
# 2. The number of new connections to each server.
# 3. Input from the advisors.
# 4. Input from the system level advisor.
# These proportions must add up to 100. As an example, setting
# the manager proportions to
# dscontrol manager proportions 48 48 0 0
# will give active and new connections 48% input into the
# weighting decision, the advisors will contribute 4% and
# the system input will not be considered.
#
# NOTE: By default the manager proportions are set to 50 50 0 0
#
# echo "Starting the manager..."
# dscontrol manager start
# echo "Starting the FTP advisor on port 21 ..."
# dscontrol advisor start ftp 21
# echo "Starting the HTTP advisor on port 80 ..."
# dscontrol advisor start http 80
# echo "Starting the Telnet advisor on port 23 ..."
# dscontrol advisor start telnet 23
# echo "Starting the SMTP advisor on port 25 ..."
# dscontrol advisor start smtp 25
# echo "Starting the POP3 advisor on port 110 ..."
# dscontrol advisor start pop3 110
# echo "Starting the NNTP advisor on port 119 ..."
# dscontrol advisor start nntp 119
# echo "Starting the SSL advisor on port 443 ..."
# dscontrol advisor start ssl 443
#
# echo "Setting the manager proportions..."
# dscontrol manager proportions 58 40 2 0
#
# The final step in setting up the Dispatcher machine is to
# alias the Network Interface Card (NIC).
#
# NOTE: Do NOT use this command in a high availability
# environment. The go* scripts will configure the NIC and
# loopback as necessary.
# dscontrol executor configure $CLUSTER
# If your cluster address is on a different NIC or subnet
from the NFA use the following format for the cluster configure
command.
# dscontrol executor configure $CLUSTER tr0 0xfffff800
# where tr0 is your NIC (tr1 for the second token ring card, en0
# for the first ethernet card) and 0xfffff800 is a valid
# subnet mask for your site.
#
#
# The following commands are set to the default values.
# Use these commands as a guide to change from the defaults.
# dscontrol manager loglevel 1
# dscontrol manager logsize 1048576
# dscontrol manager sensitivity 5.000000
# dscontrol manager interval 2
# dscontrol manager refresh 2
#
# dscontrol advisor interval ftp 21 5
# dscontrol advisor loglevel ftp 21 1
# dscontrol advisor logsize ftp 21 1048576
# dscontrol advisor timeout ftp 21 unlimited
# dscontrol advisor interval telnet 23 5
# dscontrol advisor loglevel telnet 23 1
# dscontrol advisor logsize telnet 23 1048576
# dscontrol advisor timeout telnet 23 unlimited
# dscontrol advisor interval smtp 25 5
# dscontrol advisor loglevel smtp 25 1
# dscontrol advisor logsize smtp 25 1048576
# dscontrol advisor timeout smtp 25 unlimited
# dscontrol advisor interval http 80 5
# dscontrol advisor loglevel http 80 1
# dscontrol advisor logsize http 80 1048576
# dscontrol advisor timeout http 80 unlimited
# dscontrol advisor interval pop3 110 5
# dscontrol advisor loglevel pop3 110 1
# dscontrol advisor logsize pop3 110 1048576
# dscontrol advisor timeout pop3 110 unlimited
# dscontrol advisor interval nntp 119 5
# dscontrol advisor loglevel nntp 119 1
# dscontrol advisor logsize nntp 119 1048576
# dscontrol advisor timeout nntp 119 unlimited
# dscontrol advisor interval ssl 443 5
# dscontrol advisor loglevel ssl 443 1
# dscontrol advisor logsize ssl 443 1048576
# dscontrol advisor timeout ssl 443 unlimited
#
以下所列是搭配 Window 使用的範例 Load Balancer 配置檔,稱之為 configuration.cmd.sample。
@echo off rem configuration.cmd.sample - Sample configuration file for the rem Dispatcher component. rem rem dsserver must be started via Services rem rem rem Then start the executor rem rem call dscontrol executor start rem rem The next step in configuring the Dispatcher is to set the rem NFA (non-forwarding address) and to set the cluster rem address(es). rem rem The NFA is used to remotely access the Dispatcher rem machine for administration configuration purposes. This rem address is required since the Dispatcher will forward rem packets to the cluster address(es). rem rem The CLUSTER address is the hostname (or IP address) to which rem remote clients will connect. rem rem Anywhere in this file, you may use hostnames and IP rem addresses interchangeably. rem NFA=[non-forwarding address] rem CLUSTER=[your clustername] rem rem set NFA=hostname.domain.name rem set CLUSTER=www.yourcompany.com rem echo "Loading the non-forwarding address" rem call dscontrol executor set nfa %NFA% rem rem The following commands are set to the default values. rem Use these commands to change the defaults rem call dscontrol executor set fintimeout 30 rem call dscontrol executor set fincount 4000 rem rem The next step in configuring the Dispatcher is to create rem a cluster. The Dispatcher will route requests sent to rem the cluster address to the corresponding server machines rem defined to that cluster. You may configure and server rem multiple cluster addresses using Dispatcher. rem Use a similar configuration for CLUSTER2, CLUSTER3, etc. rem rem echo "Loading first CLUSTER address " rem call dscontrol cluster add %CLUSTER% rem rem Now we must define the ports this cluster will use. Any rem requests received by the Dispatcher on a defined port rem will be forwarded to the corresponding rem port of one of the server machines. rem rem echo "Creating ports for CLUSTER: %CLUSTER%" rem call dscontrol port add %CLUSTER%:20+21+80 rem rem The last step is to add each of the server machines to rem the ports in this cluster. Again, you can use either the rem hostname or the IP address of the server machines. rem rem set SERVER1=server1name.domain.name rem set SERVER2=server2name.domain.name rem set SERVER3=server3name.domain.name rem echo "Adding server machines" rem call dscontrol server add %CLUSTER%:20+21+80: rem %SERVER1%+%SERVER2%+%SERVER3% rem rem We will now start the load balancing components of the rem Dispatcher. The main load balancing component is called rem the manager and the second load balancing components are the rem advisors. If the manager and advisors are not rem running the Dispatcher sends requests in a round-robin rem format. Once the manager is started, weighting decisions rem based on the number of new and active connections is rem employed and incoming requests are sent to the best rem server. The advisors give the manager further insight rem into a servers ability to service requests as well as rem detecting whether a server is up. If an advisor detects rem that a server is down it will be marked down (providing the rem manager proportions have been set to include advisor rem input) and no further requests will be routed to the server. rem The last step in setting up the load balancing rem components is to set the manager proportions. The rem manager updates the weight of each of the servers based rem on four policies: rem 1. The number of active connections on each server rem 2. The number of new connections for each server rem 3. Input from the advisors. rem 4. Input from the system level advisor. rem rem These proportions must add up to 100. As an example, rem setting the cluster proportions via rem dscontrol cluster set <cluster> proportions 48 48 4 0 rem will give active and new connections 48% input into the rem weighting decision, the advisor will contribute 4% and rem the system input will not be considered. rem rem NOTE: By default the manager proportions are set to rem 50 50 0 0 rem echo "Starting the manager..." rem call dscontrol manager start rem echo "Starting the FTP advisor on port 21 ..." rem call dscontrol advisor start ftp 21 rem echo "Starting the HTTP advisor on port 80 ..." rem call dscontrol advisor start http 80 rem echo "Starting the Telnet advisor on port 23 ..." rem call dscontrol advisor start telnet 23 rem echo "Starting the SMTP advisor on port 25 ..." rem call dscontrol advisor start smtp 25 rem echo "Starting the POP3 advisor on port 110 ..." rem call dscontrol advisor start pop3 110 rem echo "Starting the NNTP advisor on port 119 ..." rem call dscontrol advisor start nntp 119 rem echo "Starting the SSL advisor on port 443 ..." rem call dscontrol advisor start ssl 443 rem rem echo "Setting the cluster proportions..." rem call dscontrol cluster set %CLUSTER% proportions 58 40 2 0 rem rem The final step in setting up the Dispatcher machine is rem to alias the Network Interface Card (NIC). rem rem NOTE: Do NOT use this command in a high availability rem environment. The go* scripts will configure the NIC and rem loopback as necessary. rem rem dscontrol executor configure %CLUSTER% rem If your cluster address is on a different NIC or subnet rem from the NFA use the following format for the cluster rem configure command. rem dscontrol executor configure %CLUSTER% tr0 0xfffff800 rem where tr0 is your NIC (tr1 for the second token ring card, rem en0 for the first ethernet card) and 0xfffff800 is rem a valid subnet mask for your site. rem rem rem The following commands are set to the default values. rem Use these commands to guide to change from the defaults. rem call dscontrol manager loglevel 1 rem call dscontrol manager logsize 1048576 rem call dscontrol manager sensitivity 5.000000 rem call dscontrol manager interval 2 rem call dscontrol manager refresh 2 rem rem call dscontrol advisor interval ftp 21 5 rem call dscontrol advisor loglevel ftp 21 1 rem call dscontrol advisor logsize ftp 21 1048576 rem call dscontrol advisor timeout ftp 21 unlimited rem call dscontrol advisor interval telnet 23 5 rem call dscontrol advisor loglevel telnet 23 1 rem call dscontrol advisor logsize telnet 23 1048576 rem call dscontrol advisor timeout telnet 23 unlimited rem call dscontrol advisor interval smtp 25 5 rem call dscontrol advisor loglevel smtp 25 1 rem call dscontrol advisor logsize smtp 25 1048576 rem call dscontrol advisor timeout smtp 25 unlimited rem call dscontrol advisor interval http 80 5 rem call dscontrol advisor loglevel http 80 1 rem call dscontrol advisor logsize http 80 1048576 rem call dscontrol advisor timeout http 80 unlimited rem call dscontrol advisor interval pop3 110 5 rem call dscontrol advisor loglevel pop3 110 1 rem call dscontrol advisor logsize pop3 110 1048576 rem call dscontrol advisor timeout pop3 110 unlimited rem call dscontrol advisor interval nntp 119 5 rem call dscontrol advisor loglevel nntp 119 1 rem call dscontrol advisor logsize nntp 119 1048576 rem call dscontrol advisor timeout nntp 119 unlimited rem call dscontrol advisor interval ssl 443 5 rem call dscontrol advisor loglevel ssl 443 1 rem call dscontrol advisor logsize ssl 443 1048576 rem call dscontrol advisor timeout ssl 443 unlimited rem
以下是範例警告器檔案,名稱為 ADV_sample。
/**
* ADV_sample: The Load Balancer HTTP advisor
*
*
* This class defines a sample custom advisor for Load Balancer. Like all
* advisors, this custom advisor extends the function of the advisor base,
* called ADV_Base. It is the advisor base that actually performs most of
* the advisor's functions, such as reporting loads back to the Load Balancer
* for use in the Load Balancer's weight algorithm. The advisor base also
* performs Socket connect and close operations and provides send and receive
* methods for use by the advisor. The advisor itself is used only for
* sending and receiving data to and from the port on the server being
* advised. The TCP methods within the advisor base are timed to calculate
* the load. A flag within the constructor in the ADV_base overwrites the
* existing load with the new load returned from the advisor if desired.
*
* Note: Based on a value set in the constructor, the advisor base supplies
* the load to the weight algorithm at specified intervals. If the actual
* advisor has not completed so that it can return a valid load, the advisor
* base uses the previous load.
*
* NAMING
*
* The naming convention is as follows:
*
* - The file must be located in the following Load Balancer directory:
*
* lb/servers/lib/CustomAdvisors/ (lb\servers\lib\CustomAdvisors on Windows)
*
* - The Advisor name must be preceded with "ADV_". The advisor can be
* started with only the name, however; for instance, the "ADV_sample"
* advisor can be started with "sample".
*
* - The advisor name must be in lowercase.
*
* With these rules in mind, therefore, this sample is referred to as:
*
* <base directory>/lib/CustomAdvisors/ADV_sample.class
*
*
* Advisors, as with the rest of Load Balancer, must be compiled with the
* prereq version of Java. To ensure access to Load Balancer classes, make
* sure that the ibmnd.jar file (located in the lib subdirectory of the base
* directory) is included in the system's CLASSPATH.
*
* Methods provided by ADV_Base:
*
* - ADV_Base (Constructor):
*
* - Parms
* - String sName = Name of the advisor
* - String sVersion = Version of the advisor
* - int iDefaultPort = Default port number to advise on
* - int iInterval = Interval on which to advise on the servers
* - String sDefaultName = Unused. Must be passed in as "".
* - boolean replace = True - replace the load value being calculated
* by the advisor base
* False - add to the load value being calculated
* by the advisor base
* - Return
* - Constructors do not have return values.
*
* Because the advisor base is thread based, it has several other methods
* available for use by an advisor. These methods can be referenced using
* the CALLER parameter passed in getLoad().
*
* These methods are as follows:
*
* - send - Send a packet of information on the established Socket connection
* to the server on the specified port.
* - Parms
* - String sDataString - The data to be sent in the form of a string
* - Return
* - int RC - Whether the data was sucessfully sent or not: zero indicates
* data was sent; a negative integer indicates an error.
*
* - receive - Receive information from the Socket connection.
* - Parms
* - StringBuffer sbDataBuffer - The data received during the receive call
* - Return
* - int RC - Whether the data was successfully received or not; zero
* indicates data was sent; a negative integer indicates
* an error.
*
* If the function provided by the advisor base is not sufficient,
* you can create the appropriate function within the advisor and
* the methods provided by the advisor base will then be ignored.
*
* An important question regarding the load returned is whether to apply
* it to the load being generated within the advisor base,
* or to replace it; there are valid instances of both situations.
*
* This sample is essentially the Load Balancer HTTP advisor. It functions
* very simply: a send request--an http head request--is issued. Once a
* response is received, the getLoad method terminates, flagging the advisor
* base to stop timing the request. The method is then complete. The
* information returned is not parsed; the load is based on the time
* required to perform the send and receive operations.
*/
package CustomAdvisors;
import com.ibm.internet.nd.advisors.*;
public class ADV_sample extends ADV_Base implements ADV_MethodInterface
{
String COPYRIGHT = "(C) Copyright IBM Corporation 1997, All Rights Reserved.\n";
static final String ADV_NAME = "Sample";
static final int ADV_DEF_ADV_ON_PORT = 80;
static final int ADV_DEF_INTERVAL = 7;
// Note: Most server protocols require a carriage return ("\r") and line
// feed ("\n") at the end of messages. If so, include them in
// your string here.
static final String ADV_SEND_REQUEST =
"HEAD / HTTP/1.0\r\nAccept: */*\r\nUser-Agent: " +
"IBM_Load_Balancer_HTTP_Advisor\r\n\r\n";
/**
* Constructor.
*
* Parms: None; but the constructor for ADV_Base has several parameters
* that must be passed to it.
*
*/
public ADV_sample()
{
super( ADV_NAME,
"2.0.0.0-03.27.98",
ADV_DEF_ADV_ON_PORT,
ADV_DEF_INTERVAL,
"", // not used
false);
super.setAdvisor( this );
}
/**
* ADV_AdvisorInitialize
*
* Any Advisor-specific initialization that must take place after the
* advisor base is started. This method is called only once and is
* typically not used.
*/
public void ADV_AdvisorInitialize()
{
return;
}
/**
* getLoad()
*
* This method is called by the advisor base to complete the advisor's
* operation, based on details specific to the protocol. In this sample
* advisor, only a single send and receive are necessary; if more complex
* logic is necessary, multiple sends and receives can be issued. For
* example, a response might be received and parsed. Based on the
* information learned thereby, another send and receive could be issued.
*
* Parameters:
*
* - iConnectTime - The current load as it refers to the length of time it
* took to complete the connection to the server through
* the specified port.
*
* - caller - A reference to the advisor base class where the Load
* Balancer-supplied methods are to perform simple TCP requests,
* mainly send and receive.
*
* Results:
*
* - The load - A value, expressed in milliseconds, that can either be added
* to the existing load, or that can replace the existing load, as
* determined by the constructor's "replace" flag.
*
* The larger the load, the longer it took the server to respond;
* therefore, the lower the weight will become within the Load Balancer.
*
* If the value is negative, an error is assumed. An error from an
* advisor indicates that the server the advisor is trying to reach is not
* accessible and has been identified as being down. Load Balancer will
* not attempt to load balance to a server that is down. Load Balancer will
* resume load balancing to the server when a positive value is received.
*
*/
public int getLoad(int iConnectTime, ADV_Thread caller)
{
int iRc;
int iLoad = ADV_HOST_INACCESSIBLE; // -1
// Send tcp request
iRc = caller.send(ADV_SEND_REQUEST);
if (iRc >= 0)
{
// Perform a receive
StringBuffer sbReceiveData = new StringBuffer("");
iRc = caller.receive(sbReceiveData);
/**
* In the normal advisor mode ("replace" flag is false), the load
* returned is either 0 or 1 indicating the server is up or down.
* If the receive is successful, a load of zero is returned
* indicating that the load built within the base advisor is to be used.
*
* Otherwise ("replace" flag is true), return the desired load value.
*/
if (iRc >= 0)
{
iLoad = 0;
}
}
return iLoad;
}
} // End - ADV_sample
本附錄將說明如何設定兩層高可用性配置, 結合兩個 Load Balancer 元件(配送器元件與 CBR 元件)以及 Caching Proxy 的功能。
圖 47. 使用配送器、CBR 和 Caching Proxy 的兩層高可用性配置範例
『圖 47.』的伺服器機器設定如下:
『圖 47.』所示為多個伺服器(EdgeServer1、EdgeServer2、EdgeServer3)針對多個後端 Web 伺服器進行平衡負載時的基本呈現。CBR 元件是根據 URL 的內容,利用 Caching Proxy 將要求轉送給後端 Web 伺服器。配送器元件是用來跨 EdgeServers 來平衡負載 CBR 元件。配送器元件的高可用性特性則是用於確保相關要求會隨時持續地送達後端伺服器,即使主要高可用性機器 (EdgeServer1) 發生故障。
基本配置準則:
Caching ON CacheMemory 128000 K ReversePass /* http://websrvA.company.com/* http://www.company.com/*
範例配置檔:
下列範例配置檔類似於設定 Edge Components 配置時所建立的檔案,如『圖 47.』中所示。這個範例配置檔代表了 Load Balancer 之配送器及 CBR 元件的檔案。 在這個範例配置中,各 EdgeServer 機器皆使用了單一乙太網路配接卡, 而所有位址皆呈現在專用子網路中。 這個範例配置檔對指定之機器使用了下列 IP 位址:
主要高可用性 EdgeServer 上之配送器元件的範例配置檔:
dscontrol executor start dscontrol cluster add 192.168.1.11 primaryhost 192.168.1.10 dscontrol port add 192.168.1.11:80 dscontrol server add 192.168.1.11:80:edgeserver1 address 192.168.1.10 dscontrol server add 192.168.1.11:80:edgeserver2 address 192.168.1.20 dscontrol server add 192.168.1.11:80:edgeserver3 address 192.168.1.30 dscontrol manager start manager.log 10004 dscontrol highavailability heartbeat add 192.168.1.10 192.168.1.20 dscontrol highavailability backup add primary auto 4567
EdgeServers 上之 CBR 元件的範例配置檔:
cbrcontrol set loglevel 1 cbrcontrol executor start cbrcontrol cluster add 192.168.1.11 cbrcontrol port add 192.168.1.11:80 cbrcontrol server add 192.168.1.11:80:webserverA address 192.168.1.71 cbrcontrol server add 192.168.1.11:80:webserverB address 192.168.1.72 cbrcontrol server add 192.168.1.11:80:webserverC address 192.168.1.73 cbrcontrol rule add 192.168.1.11:80:webA_rule type content pattern (URI=*WSA*)|(URI=*wsA*) priority 21 cbrcontrol rule useserver 192.168.1.11:80:webA_rule webserverA cbrcontrol rule add 192.168.1.11:80:webB_rule type content pattern (URI=/WS_B*) priority 22 cbrcontrol rule useserver 192.168.1.11:80:webB_rule webserverB cbrcontrol rule add 192.168.1.11:80:webC_rule type content pattern URI=*webC* priority 23 cbrcontrol rule useserver 192.168.1.21:80:webC_rule webserverC
本資訊是針對 IBM 在美國所提供之產品與服務開發出來的。
在其他國家,IBM 不一定會提供本書中所提的各項產品、服務、或功能。有關目前當地所提供的產品和服務, 請洽詢當地的 IBM 業務代表。 本書在提及 IBM 產品、程式或服務時,不表示或暗示您只能使用 IBM 產品、程式或服務。只要未侵犯 IBM 的智慧財產權, 任何功能相當的產品、程式或服務都可以取而代之。不過,其他非 IBM 產品、程式或服務在運作上的評價與驗證,其責任屬於使用者。
本書可能含有 IBM 所擁有的專利或專利申請案。本書使用者並不享有前述專利之任何授權。您可以用書面方式來查詢授權,來函請寄到:
IBM Director of Licensing
IBM Corporation
500 Columbus Avenue
Thornwood, NY 10594
U.S.A.
如果是有關雙位元組 (DBCS) 資訊的授權查詢,請洽所在國的 IBM 智慧財產部門,或書面提出授權查詢,來函請寄到:
IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan
下列段落若與該國之法律條款抵觸,即視為不適用:
IBM 只以「現狀」提供這份文件,並不提供任何明示或暗示的保證, 其中包括且不限於無侵權、可銷售性或特定目的之適用性的隱含保證。 若有些地區在某些交易上並不允許排除上述保證,則該排除無效。
本書中可能會有技術上或排版印刷上的訛誤。 因此,IBM 會定期修訂;並將修訂後的內容納入新版或文件中。IBM 得隨時改進和/或變更本書所提及的產品和/或程式,而不另行通知。
資訊中提供的非 IBM 網站僅供 貴客戶參考方便,絕不代表為那些網站背書。這些網站上的內容,不是本 IBM 產品內容的一部分,使用者必須承擔使用這些網站的風險。
IBM 得以各種適當的方式,使用或散佈由您所提供的任何資訊,而無需對您負責。
本程式之獲授權者若希望取得相關資料,
以便使用下列資訊者可洽詢 IBM。
其下列資訊指的是:
(1) 獨立開發的程式與其他程式(包括本程式)之間更換資訊的方式
(2) 相互使用已交換之資訊方法。
若有任何問題請聯繫:
IBM Corporation
Attn.: G7IA./503.
P.O. Box 12195
3039 Cornwallis Rd.
Research Triangle Park, N.C. 27709-2195
U.S.A.
上述資料之取得有其特殊要件,在某些情況下必須付費方得使用。
IBM 基於雙方之 IBM 國際程式授權合約 或任何同等合約,而提供本書所提及的授權程式與其所有適用的授權資料。
這裡所包含的任何效能資料,都是在受控制的環境內而取得的。 因此,在其他作業環境中,所得的結果可能大大不同。 有些測定是在開發階段的系統上進行的,不過這並不保證在一般系統上會出現相同結果。 此外,有些測量結果可能是透過推測方式評估的。 實際結果結果可能會不同。 本書的用戶應查證所屬環境是否適用這些資料。
本書所提及之非 IBM 產品資訊,係一由產品的供應商,或其出版的聲明或其他 公開管道取得。IBM 並未測試過這些產品,也無法確認這些非 IBM 產品的執行效能、相容性或任何對產品的其他聲明是否完全無誤。有關非 IBM 產品的性能問題應直接洽詢該產品供應商。
有關 IBM 未來動向的任何陳述,只代表 IBM 的目標而已,並可能於未事先聲明的情況下有所變動或撤回。
本資訊含有日常業務運作所用的資料報告範例。 為了盡可能地加以完整說明,範例中含有個人、公司、品牌及產品的名稱。所有名稱均是虛構的, 如有任何名稱及地址與實際商業公司所使用的類似,純屬巧合。
如果您閱讀本資訊軟本,照片及彩色圖例可能不會出現。
下列詞彙是 IBM Corporation 在美國和/或其他國家的註冊商標或商標:
AFS
AIX
DFS
Everyplace(R)
IBM
iSeries(TM)
NetView
OS/2
Redbooks(TM)
RS/6000
SecureWay
ViaVoice
WebSphere
zSeries(R)
Lotus 和 WordPro 是 International Business Machines Corporation 和 Lotus Development Corporation 在美國和/或其他國家的商標。
Tivoli 是 Tivoli Systems, Inc. 在美國和/或其他國家的註冊商標。
Java 和所有以 Java 為基礎的商標和標誌是 Sun Microsystems, Inc. 在美國和/或其他國家的商標或註冊商標。
Solaris 是 Sun Microsystems, Inc. 公司在美國及(或)其他國家的商標。
Microsoft、Windows 2000 和 Windows Server 2003 是 Microsoft Corporation 在美國和/或其他國家的商標或註冊商標。
UNIX 是 The Open Group 在 United States 和其他國家的註冊商標。
其他公司、產品及服務名稱可能是其他公司的商標或服務標記。