亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

服務器負載分擔系統(tǒng)的制作方法

文檔序號:7944205閱讀:343來源:國知局
專利名稱:服務器負載分擔系統(tǒng)的制作方法
技術領域
本發(fā)明涉及一種服務器負載分擔系統(tǒng),在該系統(tǒng)中,通過諸如因特網(wǎng)或內(nèi)部網(wǎng)的IP(網(wǎng)際協(xié)議)網(wǎng),以一種保持服務器負載分擔的方式,進行服務器與客戶機之間的通信。
背景技術
通過多鏈路PPP(點對點協(xié)議)和多成本相等路徑(multi-cost equal path),舉例說明一種常規(guī)負載分擔方法。
多鏈路PPP被定義為一種在ISDN(綜合業(yè)務數(shù)字網(wǎng))等中使用的方法,并且如果線路速率低時被設計用來在相鄰系統(tǒng)之間提供多個鏈路(物理線路),并把負載分擔到這些鏈路。例如,在ISDN中通過使用2B信道(64Kbps),多鏈路PPP可以提供具有128Kbps(傳輸速率)帶寬的通信。
此外,該多成本相等路徑被定義為這樣一種方法預留多個路徑,以便在基于一個路由選擇協(xié)議的動態(tài)路由選擇中,使到目的地的成本最小化,并在這些路徑中分擔負載??梢栽谟蒖FC1247定義的OSPF(開放式最短路徑優(yōu)先)中以此方式利用該多成本相等路徑。
當在每個分組可以通過任何一個鏈路的情況下,上述負載分擔方法是有效的。
而另一種常規(guī)負載分擔方法可以通過利用至少一個服務器負載平衡器(服務器負載分擔設備),把負載分擔到多個服務器上。基于服務器負載平衡器的服務器負載分擔具有一個限制屬于同一個會話的分組必須通過同一個鏈路轉(zhuǎn)發(fā),以便該會話不會被中斷。
圖1示出了使用一個服務器負載平衡器的第一常規(guī)服務器負載分擔系統(tǒng)的一個示例。參照圖1,該服務器負載平衡器的服務器負載平衡功能被分為基于與OSI參考模型中的傳輸層相同或更高級的協(xié)議類型的負載分擔功能(L4(第4層)負載平衡功能),和基于關于OSI參考模型中的應用層的信息(L7信息)的負載分擔功能(L7(第7層)負載平衡功能)。
即,L4負載平衡功能是由一個客戶機終端發(fā)送并通過IP網(wǎng)(因特網(wǎng)或內(nèi)部網(wǎng))和L3交換機接收的轉(zhuǎn)發(fā)目標分組,基于L4協(xié)議的類型(即,TCP(傳輸控制協(xié)議)或UDP(用戶數(shù)據(jù)報協(xié)議)中的端口號)被識別為電子郵件(POP郵局協(xié)議或SMTP簡單郵件傳送協(xié)議)或文件傳送(FTP文件傳送協(xié)議)或網(wǎng)頁查詢(HTTP超文本傳送協(xié)議),并把該分組分配到多個負載分擔目標服務器中的任何一個上。
此外,L7負載平衡功能是根據(jù)諸如應答時間或URL(統(tǒng)一資源定位符)的L7信息,把轉(zhuǎn)發(fā)目標分組分配到多個負載分擔目標服務器中的任何一個上。
作為網(wǎng)絡中繼設備的L3交換機被定義為一種用于在OSI參考模型中的網(wǎng)絡層把各網(wǎng)絡相互連接的交換機或路由器。
根據(jù)不中斷會話的限制,涉及使用一個服務器負載平衡器的該第一服務器負載分擔系統(tǒng)不能安裝多個服務器負載平衡器。因此,如果在服務器與客戶機之間的通信中轉(zhuǎn)發(fā)大量分組,則該服務器負載平衡器不可避免地會對處理速率構(gòu)成瓶頸。
圖2示出了涉及使用多個服務器負載平衡器的第二服務器負載分擔系統(tǒng)的一個示例。
該第二服務器負載分擔系統(tǒng)在這些服務器負載平衡器的前一級安裝一個L4交換機(第4層交換機),以便可以提供該多個服務器負載平衡器(a,b)。
作為網(wǎng)絡中繼設備的L4交換機被定義為一種交換機或網(wǎng)關,其用于通過在從傳輸層(L4)到應用層(L7)的不同類型協(xié)議之間進行轉(zhuǎn)換的方式相互連接各網(wǎng)絡,同時吸收網(wǎng)絡間的差別。
因此,L4交換機利用L4負載平衡功能把分組分配到多個服務器負載平衡器上。在此示例中,如果用于轉(zhuǎn)發(fā)分組的協(xié)議是FTP,則L4交換機把分組分配到服務器負載平衡器(a),如果該協(xié)議是HTTP,則L4交換機把分組分配到服務器負載平衡器(b)。
通過L3交換機利用L7負載平衡功能,使得每個服務器負載平衡器能夠把轉(zhuǎn)發(fā)目標分組分配到多個負載分擔目標服務器中的任何一個。
上述第二服務器負載分擔系統(tǒng)能夠安裝多個服務器負載平衡器,因此基本上減小了每個服務器負載平衡器成為處理速率的瓶頸的可能性。如果依據(jù)協(xié)議,在服務器與客戶機間通信中轉(zhuǎn)發(fā)的分組業(yè)務量出現(xiàn)集中,則相應的服務器負載平衡器成為處理速率的瓶頸仍是不可避免的。

發(fā)明內(nèi)容
本發(fā)明的一個主要目的是提供一種技術,該技術能夠避免多個服務器負載平衡器中的每一個成為服務器與客戶機間通信中的分組的處理速率的瓶頸。
本發(fā)明的另一個目的是提供一種技術,即使依據(jù)協(xié)議,服務器與客戶機間通信中的分組業(yè)務量出現(xiàn)集中時,該技術也能夠把分組均勻地分配到多個負載分擔目標服務器上。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,第一服務器負載分擔系統(tǒng)具有多個服務器負載平衡器和一個中繼設備。多個服務器負載平衡器中的每一個容納至少第一和第二鏈路,并包括一個選擇模塊,當通過該第一和第二鏈路之一接收到一個地址去往預定的虛擬IP地址的轉(zhuǎn)發(fā)目標分組時,該模塊選擇基于該虛擬IP地址的服務器組所指定的多個負載分擔目標服務器中的任何一個,并且每個服務器分配有一個唯一的IP地址;以及一個重寫模塊,該模塊把接收到的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組的該虛擬IP地址重寫為所選負載分擔目標服務器的唯一IP地址,并把接收到的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組的源IP地址重寫為可以指定第一和第二鏈路中另一個鏈路的IP地址。通過第一和第二鏈路,中繼設備被連接到多個服務器負載平衡器的每一個上,該中繼設備包括一個識別模塊,用于識別所接收到的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組;一個選擇模塊,用于選擇第一和第二鏈路之一以把所識別的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到多個服務器負載平衡器之一;以及一個轉(zhuǎn)發(fā)模塊,用于把通過第一和第二鏈路中的另一個鏈路從多個服務器負載平衡器中的任何一個接收的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到所選負載分擔目標服務器上,并通過第一和第二鏈路中的另一個鏈路把從所選負載分擔目標服務器發(fā)回的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到多個服務器負載平衡器中的任何一個上。
在根據(jù)本發(fā)明的第二服務器負載分擔系統(tǒng)中,中繼設備的選擇模塊可以選擇第一和第二鏈路之一,以基于一個偽隨機數(shù)把分組轉(zhuǎn)發(fā)到多個服務器負載平衡器中的任何一個,其中該偽隨機數(shù)是通過在所識別的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組中包含的源IP地址值上應用一個單向函數(shù)(one-way function)產(chǎn)生的。
在根據(jù)本發(fā)明的第三服務器負載分擔系統(tǒng)中,每個服務器負載平衡器還包括一個重寫模塊,當通過中繼設備與第一和第二鏈路中另一個鏈路,接收到從所選負載分擔目標服務器發(fā)回的轉(zhuǎn)發(fā)目標分組時,該模塊把所選負載分擔目標服務器的唯一IP地址(包含在接收到的轉(zhuǎn)發(fā)目標分組中)重寫為虛擬IP地址,作為源IP地址,并把能夠指定第一和第二鏈路中另一個鏈路的IP地址(包含在接收到的轉(zhuǎn)發(fā)目標分組中)重寫為源IP地址(已包含在地址去往該虛擬IP地址的轉(zhuǎn)發(fā)目標分組中),作為目的地IP地址,并使該中繼設備通過第一和第二鏈路之一轉(zhuǎn)發(fā)該分組。
在根據(jù)本發(fā)明的第四服務器負載分擔系統(tǒng)中,該中繼設備可以還包括一個設置模塊,該模塊把多個服務器負載平衡器中的每一個所容納的第一和第二鏈路設置為一組,周期性地把一個監(jiān)測分組發(fā)送到每組的第一和第二鏈路上,并把屬于包含無應答鏈路的組的第一和第二鏈路作為故障鏈路從選擇目標鏈路中去除。
在根據(jù)本發(fā)明的第五服務器負載分擔系統(tǒng)中,該中繼設備可以還包括一個設置模塊,當在多個服務器負載平衡器的每一個所容納的第一和第二鏈路中檢測到故障的情況下,以保持以下分配狀態(tài)的方式,設置把該轉(zhuǎn)發(fā)目標分組分配到容納第一和第二正常鏈路的正常服務器負載平衡器上,并只針對分配到容納第一和第二故障鏈路的故障服務器負載平衡器上的轉(zhuǎn)發(fā)目標分組,把分配狀態(tài)改變到正常服務器負載平衡器上。
根據(jù)本發(fā)明的另一個方面,在多個服務器負載平衡器的每一個中容納至少第一和第二鏈路,第一服務器負載分擔方法包括當通過第一和第二鏈路之一接收到一個地址去往預定的虛擬IP地址的轉(zhuǎn)發(fā)目標分組時,選擇基于該虛擬IP地址的服務器組中所指定的多個負載分擔目標服務器中的任何一個,并且每個服務器分配有一個唯一的IP地址;和把接收到的地址去往該虛擬IP地址的轉(zhuǎn)發(fā)目標分組的虛擬IP地址重寫為所選負載分擔目標服務器的唯一的IP地址,以及把接收到的地址去往該虛擬IP地址的轉(zhuǎn)發(fā)目標分組的源IP地址重寫為能夠指定第一和第二鏈路中另一個鏈路的IP地址。在通過第一和第二鏈路連接到多個服務器負載平衡器中的每一個的中繼設備中,該第一服務器負載分擔方法還包括識別所接收到的地址去往該虛擬IP地址的轉(zhuǎn)發(fā)目標分組;選擇第一和第二鏈路之一以把所識別的地址去往該虛擬IP地址的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到多個服務器負載平衡器之一;并把通過第一和第二鏈路中的另一個鏈路從多個服務器負載平衡器中的任何一個接收到的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到所選負載分擔目標服務器上;以及通過第一和第二鏈路中的另一個鏈路把從所選負載分擔目標服務器上發(fā)回的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到多個服務器負載平衡器中的任何一個。
根據(jù)本發(fā)明的第二服務器負載分擔方法可以還包括在中繼設備中,選擇第一和第二鏈路之一,以基于一個偽隨機數(shù)把分組轉(zhuǎn)發(fā)到多個服務器負載平衡器中的任何一個,其中該偽隨機數(shù)是通過在所識別的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組中包含的源IP地址值上應用一個單向函數(shù)產(chǎn)生的。
根據(jù)本發(fā)明的第三服務器負載分擔方法可以還包括在每個服務器負載平衡器中,當通過中繼設備與第一和第二鏈路中的另一個鏈路,接收到從所選負載分擔目標服務器發(fā)回的轉(zhuǎn)發(fā)目標分組時,把所選負載分擔目標服務器的唯一的IP地址(包含在接收到的轉(zhuǎn)發(fā)目標分組中)重寫為虛擬IP地址,作為源IP地址,并把能夠指定第一和第二鏈路中另一個鏈路的IP地址(包含在接收到的轉(zhuǎn)發(fā)目標分組中)重寫為源IP地址(已包含在地址去往該虛擬IP地址的轉(zhuǎn)發(fā)目標分組中),作為目的地IP地址,并使該中繼設備通過第一和第二鏈路之一轉(zhuǎn)發(fā)該分組。
根據(jù)本發(fā)明的第四服務器負載分擔方法可以還包括在該中繼設備中,把多個服務器負載平衡器中的每一個所容納的第一和第二鏈路設置為一組,周期性地把一個監(jiān)測分組發(fā)送到每組的第一和第二鏈路上,并把屬于包含無應答鏈路的組的第一和第二鏈路作為故障鏈路從選擇目標鏈路中去除。
根據(jù)本發(fā)明的第五服務器負載分擔方法可以還包括在該中繼設備中,當在多個服務器負載平衡器中的每一個所容納的第一和第二鏈路中檢測到故障的情況下,以保持以下分配狀態(tài)的方式,設置把該轉(zhuǎn)發(fā)目標分組分配到容納第一和第二正常鏈路的正常服務器負載平衡器上,并只針對分配到容納第一和第二故障鏈路的故障服務器負載平衡器上的轉(zhuǎn)發(fā)目標分組,把分配狀態(tài)改變到正常服務器負載平衡器上。
根據(jù)本發(fā)明的再一個方面,服務器負載分擔設備包括把負載分擔到多個服務器上的多個服務器負載平衡功能,其中,根據(jù)從客戶機終端接收到的分組的源識別信息,指定該服務器負載平衡功能之一來執(zhí)行處理。
根據(jù)本發(fā)明,可以避免使多個服務器負載平衡器中的每一個成為服務器與客戶機間通信中的分組處理速率的瓶頸,從而可以在服務器與客戶機之間獲得高速通信。
此外,根據(jù)本發(fā)明,即使根據(jù)協(xié)議(如FTP,POP,SMTP,HTTP等),在服務器與客戶機間通信中的分組轉(zhuǎn)發(fā)業(yè)務量出現(xiàn)集中,分組也可以被均勻地分配到多個負載分擔目標服務器上。
因此,本發(fā)明對于今后將加速發(fā)展的Web通信是很有效的。
此外,根據(jù)本發(fā)明,出局和環(huán)回轉(zhuǎn)發(fā)目標分組可以流過同一個服務器負載平衡器。
而且,根據(jù)本發(fā)明,當在中繼設備和每個服務器負載平衡器之間提供多個鏈路時,如果在轉(zhuǎn)發(fā)出局轉(zhuǎn)發(fā)目標分組的鏈路中或在轉(zhuǎn)發(fā)環(huán)回轉(zhuǎn)發(fā)目標分組的鏈路中發(fā)生故障,就不能獲得正常的通信,從而可以確切地檢測出該故障。此外,根據(jù)本發(fā)明,當在服務器負載平衡器中或在鏈路中發(fā)生故障時,可以最大可能地繼續(xù)正在進行的會話。


結(jié)合附圖,通過參考下面的詳細描述,可以更好地理解本發(fā)明的上述及其他特征和優(yōu)點,在附圖中圖1是顯示涉及使用一個單獨的服務器負載平衡器的常規(guī)服務器負載分擔系統(tǒng)的一個示例的方框圖;圖2是顯示涉及使用多個服務器負載平衡器的常規(guī)服務器負載分擔系統(tǒng)的一個示例的方框圖;圖3是顯示本發(fā)明的一個實施例中的一個服務器負載分擔系統(tǒng)的結(jié)構(gòu)以及一個出局分組流的方框圖;圖4是顯示本發(fā)明的一個實施例中的一個服務器負載分擔系統(tǒng)的結(jié)構(gòu)以及一個返回分組流的方框圖;圖5是顯示圖3和4中的路由器的詳細結(jié)構(gòu)的方框圖;圖6是顯示由路由器進行的分組路由選擇處理的流程略圖;圖7是顯示通過對源IP地址應用Hash函數(shù)來選擇鏈路的方法的解釋圖;圖8是顯示圖3和4中的服務器負載平衡器的詳細結(jié)構(gòu)的方框圖;圖9示出了服務器負載平衡器的會話表的數(shù)據(jù)結(jié)構(gòu)的一個示例;圖10是顯示服務器負載平衡器中的處理程序的流程略圖;
圖11是圖3所示的服務器負載分擔系統(tǒng)中的一個出局分組處理的解釋圖;圖12是圖4所示的服務器負載分擔系統(tǒng)中的一個環(huán)回分組處理的解釋圖;圖13是顯示路由器中的故障檢測/恢復處理的解釋圖;以及圖14是顯示在路由器中進行縮退(degenerating)和恢復處理時的一個鏈路選擇處理的解釋圖。
具體實施例方式
下面,結(jié)合附圖對本發(fā)明的實施例進行說明。
圖3和4示出了本發(fā)明的一個實施例中的一個服務器負載分擔系統(tǒng)的結(jié)構(gòu),并分別示出了分組的一個出局流和一個返回流。
參照圖3和4,該服務器負載分擔系統(tǒng)1包括多個連接到IP網(wǎng)絡2(如因特網(wǎng)或內(nèi)部網(wǎng))的諸如個人計算機的客戶機終端3(其中之一被描述成一個典型終端);連接到該IP網(wǎng)絡2的路由器4;連接到路由器4的多個服務器負載平衡器(SLB#1,#2至#N)5;和通過LAN(局域網(wǎng))6連接到路由器4的被定義為一個負載分擔目標服務器組的多個服務器(#1,#2,#3)7。
作為網(wǎng)絡中繼設備的路由器4可以由L3交換機替代,該L3交換機在基于OSI(開放式系統(tǒng)互聯(lián))參考模型的網(wǎng)絡層(L3)將網(wǎng)絡互聯(lián)。
此外,該路由器4也可以被作為網(wǎng)絡中繼設備的L4交換機替代,該L4交換機通過在從傳輸層(L4)到應用層(L7)的不同類型協(xié)議之間進行轉(zhuǎn)換并吸收網(wǎng)絡間差異的方式,將網(wǎng)絡互聯(lián)。
在LAN 6中,該路由器4可以被L2交換機替代,該L2交換機在OSI參考模型的數(shù)據(jù)鏈路層(L2)將網(wǎng)絡互聯(lián)。
通過多個(兩個或更多)物理鏈路,每個服務器負載平衡器5連接到路由器4。本發(fā)明的實施例涉及提供多個(兩個或更多)服務器負載平衡器5。
根據(jù)基于先前登記在服務器負載平衡器5中的虛擬IP地址[IpA.1]的服務器組,指定該負載分擔目標服務器組的每個服務器(也可以被稱為負載分擔目標服務器)7,并為每個服務器7分配一個唯一的IP地址。此外,每個服務器7存儲關于電子郵件,文件轉(zhuǎn)發(fā),網(wǎng)頁查閱等中至少一類的數(shù)據(jù)。
應注意,后面將對該服務器負載分擔系統(tǒng)1中的出局分組流和返回分組流的處理進行討論。
在圖3和4所示的服務器負載分擔系統(tǒng)1中,作為負載分擔中繼設備的路由器4具有圖5中詳細顯示的結(jié)構(gòu)。
如圖5所示,路由器4由路由選擇模塊41,分組轉(zhuǎn)發(fā)模塊43,分組接收模塊44,分組辨別模塊45,故障查找模塊46和鏈路選擇模塊47構(gòu)成。路由選擇模塊41具有路由選擇表42。鏈路選擇模塊47具有表48。
路由選擇模塊41控制正常的分組路由選擇。當從分組辨別模塊45接收到一個分組時(在圖5中由箭頭線e表示),該路由選擇模塊41通過參照存儲有地址(IP地址)到轉(zhuǎn)發(fā)接口(路由器4的端口號)的映射的路由選擇表42,選擇一個用于轉(zhuǎn)發(fā)該接收到的分組的接口,并指示分組轉(zhuǎn)發(fā)模塊43轉(zhuǎn)發(fā)該分組(f)。
作為對路由選擇模塊41給出的指示的響應,分組轉(zhuǎn)發(fā)模塊43執(zhí)行一個分組轉(zhuǎn)發(fā)處理(g)。分組接收模塊44接收該分組(a)。當通過分組接收模塊44接收到該地址去往預定的虛擬IP地址[IpA.1]的分組時,分組辨別模塊45把該分組發(fā)送到鏈路選擇模塊47(b,c),如果不是這種情況(不去往虛擬IP地址),則模塊45把該分組發(fā)送到路由選擇模塊41(b,e)。
鏈路選擇模塊47從表48中選擇分組轉(zhuǎn)發(fā)目標服務器負載平衡器5,其中該平衡器5應該是從分組辨別模塊45發(fā)送的地址去往虛擬IP地址的分組被轉(zhuǎn)發(fā)到的平衡器,并且,鏈路選擇模塊47對分組轉(zhuǎn)發(fā)模塊43發(fā)出一個分組轉(zhuǎn)發(fā)指示(d)。表48中預先存有多個服務器負載平衡器5對多個鏈路的映射。
故障查找模塊46周期性地發(fā)送一個ICMP(互聯(lián)網(wǎng)控制消息協(xié)議)-ECHO請求消息給每個服務器負載平衡器5,以便確保到每個服務器負載平衡器5的鏈路正常工作,并監(jiān)測一個ICMP-ECHO應答消息作為對此的應答(h,g,a,I)。該監(jiān)測結(jié)果被反映在表48中(j)。
故障查找模塊46將連接到同一個服務器負載平衡器5的多個鏈路放在一組中,并且,如果該組中只有一個鏈路在固定時段內(nèi)沒有應答,則判斷屬于該組的所有鏈路都發(fā)生故障(錯誤)。當發(fā)回了該組中的所有鏈路的應答時,故障查找模塊46判斷該組正常。
圖6是路由器4的一個分組路由選擇程序的概略圖。當具有上述結(jié)構(gòu)的路由器4的分組接收模塊44接收到分組時(圖6中的步驟S60),分組辨別模塊45對所接收到的分組進行識別。
如果接收到的分組被識別是地址去往預定的虛擬IP地址的分組時,鏈路選擇模塊47根據(jù)一個特定算法(定義為一種如后面所述的用于通過散列(應用Hash函數(shù))一個源IP地址來選擇一個鏈路的程序),確定該分組應該被轉(zhuǎn)發(fā)到哪個鏈路(S61,S62)。
在這種情況下,鏈路選擇模塊47參考表48,僅把沒有故障的鏈路設置為選擇目標鏈路。如果該接收到的分組被識別不是地址去往預定的虛擬地址的分組,則路由選擇模塊41執(zhí)行正常的路由選擇處理(分組路由選擇處理)(S61,S63)。
分組轉(zhuǎn)發(fā)模塊43把分組轉(zhuǎn)發(fā)到根據(jù)該特定算法確定的鏈路。而如果該接收到的分組被識別是地址去往預定的虛擬地址的分組,則該分組被轉(zhuǎn)發(fā)到對應于該確定的鏈路的服務器負載平衡器5上,并成為負載分擔目標的一個元素。
下面參照圖7,對在鏈路選擇模塊47中通過對源IP地址應用Hash函數(shù)以選擇鏈路的程序(上述特定算法)進行說明。
鏈路選擇模塊47在由分組辨別模塊45轉(zhuǎn)發(fā)的分組的源IP地址值(例如,[10.10.10.1=10101001])上應用Hash函數(shù)f(x)(定義為不可逆單向函數(shù))。
該Hash函數(shù)被用做一種運算技術,以從輸入的原文(明文)中生成一個固定長度的偽隨機數(shù)(Hash值),從而鏈路選擇模塊47可以獲得一個Hash值(例如[1])作為一個運算結(jié)果。
通過利用該Hash值[1],鏈路選擇模塊47選擇一個鏈路。在此情況下,選擇鏈路號為[1]的鏈路。注意到,用于鏈路選擇的Hash值是一個預定的等于或小于選擇目標鏈路總數(shù)的值。此外,源IP地址和端口號(TCP端口號)都被設置為關鍵字信息,并把Hash函數(shù)應用到該關鍵字信息,從而可以選擇鏈路。
在圖3和4所示的服務器負載分擔系統(tǒng)中,每個服務器負載平衡器5具有圖8和9完整示出的結(jié)構(gòu)。
如圖8和9所示,服務器負載平衡器5由服務器負載平衡模塊51、分組接收模塊55、分組轉(zhuǎn)發(fā)模塊56和故障查找通知模塊57組成。該服務器負載平衡模塊51包括目的地服務器選擇模塊52和地址重寫模塊53。該地址重寫模塊53具有一個會話表54。
當通過相應的鏈路(如圖8中的箭頭線a和b所示),由接收模塊55接收到的分組被發(fā)送到模塊51本身時,該模塊指示目的地服務器選擇模塊52確定目的地服務器7,并指示地址重寫模塊53重寫轉(zhuǎn)發(fā)目標分組的目的地IP地址(c)。
目的地服務器選擇模塊52確定目的地服務器7的方法基本包括(1)基于在OSI參考模型中高于傳輸層的協(xié)議(POP(郵局協(xié)議),SMTP(簡單郵件傳送協(xié)議),F(xiàn)TP(文件傳送協(xié)議),HTTP(超文本傳送協(xié)議))的類別的負載分擔(L4負載平衡),和(2)基于OSI參考模型中的應用層上的信息(諸如應答時間或URL的L′信息)的負載分擔(L7負載平衡)。
此外,作為確定目的地服務器7的方法,除了通過測量多個服務器7的負載,在這些服務器7中選擇一個具有小負載的服務器的方法和在多個服務器7中選擇一個對應于客戶機終端3的IP地址的服務器7的方法以外,目的地服務器選擇模塊52可以采用諸如循環(huán)(round-robin)系統(tǒng)、最小連接數(shù)系統(tǒng)和靜態(tài)衡量系統(tǒng)之類的方法。
地址重寫模塊53進一步把轉(zhuǎn)發(fā)目標分組的源IP地址重寫為服務器負載平衡器5的IP地址(c)。此外,地址重寫模塊53設置重寫前的原始信息對重寫后的信息的映射(c)。
分組接收模塊55接收到分組(a,b,f),并且分組轉(zhuǎn)發(fā)模塊56轉(zhuǎn)發(fā)分組(d,g,e)。故障查找通知模塊57接收到來自分組接收模塊55的一個分組(ICMP-ECHO請求消息)以監(jiān)測鏈路故障,并且如果沒有故障發(fā)生,就通過分組轉(zhuǎn)發(fā)模塊56發(fā)回一個應答(ICMP-ECHO應答消息)。應注意,如果發(fā)生故障,就沒有應答發(fā)回(a,f,g,e)。
圖10示出了每個服務器負載平衡器5中的處理程序的流程略圖。當接收到來自路由器4的一個轉(zhuǎn)發(fā)目標分組時(圖10中的步驟S100),服務器負載平衡器5指示服務器負載平衡模塊51判斷該分組的目的地IP地址是否和虛擬IP地址相同(S101)。
如果和虛擬IP地址相同,服務器負載平衡模塊51執(zhí)行關于該出局分組的服務器負載平衡處理(S102,S103)。
關于該出局分組的服務器負載平衡處理包括(1)確定該分組目的地(即,負載分擔目標服務器7的IP地址和負載分擔目標服務器7的端口號)的處理(S102),(2)把該轉(zhuǎn)發(fā)目標分組的目的地IP地址重寫為已確定的服務器7的IP地址和把該端口號重寫為確定值的處理(S103),和(3)把該轉(zhuǎn)發(fā)目標分組的源IP地址重寫為該分組要被轉(zhuǎn)發(fā)到的服務器負載平衡器5的IP地址的處理(S103)。
服務器負載平衡模塊51存儲會話表54,該表格具有上述處理結(jié)果之間的映射(重寫前的數(shù)條信息對重寫后的數(shù)條信息的映射)。應注意,如果接收到的轉(zhuǎn)發(fā)目標分組已經(jīng)被登記在會話表54中,則確定使用所登記的目的地服務器7的IP地址和端口號。
在服務器負載平衡模塊51執(zhí)行服務器負載平衡處理之后,通過其余的對應鏈路,分組轉(zhuǎn)發(fā)模塊55把該轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到路由器4(S104)。
如果在S101中,分組的目的地IP地址和虛擬IP地址不相同,則服務器負載平衡模塊51判斷接收到的轉(zhuǎn)發(fā)目標分組的目的地IP地址是否是去往服務器負載平衡器5(S105)。
如果該目的地IP地址是去往服務器負載平衡器5,則服務器負載平衡模塊51執(zhí)行一個關于來自負載分擔目標服務器7的環(huán)回(返回)分組的轉(zhuǎn)換處理(S106)。
應注意,如果該目的地IP地址不是去往服務器負載平衡器5,則該轉(zhuǎn)發(fā)目標分組被定義為一個用于監(jiān)測鏈路故障的分組,從而服務器負載平衡模塊51不執(zhí)行任何處理。
關于該環(huán)回分組的轉(zhuǎn)換處理包括(1)通過參考由地址重寫模塊53保持的會話表54,目的地服務器選擇模塊52基于轉(zhuǎn)發(fā)目標分組的源端口號(作為一個目的地端口號記錄在會話表54中)識別會話的處理,和(2)通過參考會話表54,地址重寫模塊53對轉(zhuǎn)發(fā)目標分組的目的地IP地址和源IP地址進行重寫的處理。
在服務器負載平衡模塊51執(zhí)行轉(zhuǎn)換處理之后,通過其余的對應鏈路,分組轉(zhuǎn)發(fā)模塊55把該轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到路由器4(S107)。
如果路由器4的故障查找模塊46把鏈路故障監(jiān)測分組發(fā)送到服務器負載平衡器5,則服務器負載平衡器5中的故障查找通知模塊57通過分組接收模塊55接收該鏈路故障監(jiān)測分組,并且如果正常(當接收到ICMP-ECHO請求消息時),則通過分組轉(zhuǎn)發(fā)模塊56發(fā)回一個應答(ICMP-ECHO應答消息)。
下面,對上述服務器負載分擔系統(tǒng)1的操作的多個示例進行說明。
出局分組的處理首先參照圖3和11,對一個關于服務器負載分擔系統(tǒng)1中的從客戶機終端3發(fā)送到負載分擔目標服務器7的出局分組的處理進行說明。
當訪問負載分擔目標服務器7時,連接到IP網(wǎng)絡2的客戶機終端3發(fā)送一個具有一個虛擬IP地址(此處為IpA.1)的分組(第一分組)。
該第一分組(TCP請求消息)具有一個首部字段和一個數(shù)據(jù)字段,其中該首部字段包含源IP地址“IP-SA[IpC.1]”、目的地IP地址“IP-DA[IpA.1]”、源MAC地址“MAC-SA[M16]”和目的地MAC地址“MAC-DA[M1]”。
通過以下方式獲得第一分組中的目的地MAC地址“MAC-DA[M1]”客戶機終端3和路由器4發(fā)送和接收一個ARP(地址解析協(xié)議)請求消息和一個ARP應答消息。
即,把ARP定義為一種用于自動地把IP地址轉(zhuǎn)換成MAC地址的協(xié)議,其中當客戶機終端3把用于指定目的地IP地址的ARP請求消息廣播給路由器4時,對應于該指定的IP地址的路由器把一個包含一對MAC地址和IP地址的ARP應答消息發(fā)回到客戶機終端3。
當接收到包含目的地IP地址“IP-DA”(表示預先設置(預設)的虛擬IP地址“[IpA.1]”)的第一分組時,路由器4選擇多個可正常操作的目標鏈路之一,并通過所選鏈路,把一個第二分組轉(zhuǎn)發(fā)到服務器負載平衡器(SLB#1)5。
該第二分組(TCP請求消息)具有一個首部字段和一個數(shù)據(jù)字段,其中該首部字段包含源IP地址“IP-SA[IpC.1]”,目的地IP地址“IP-DA[IpA.1]”,源MAC地址“MAC-SA[M2]”和目的地MAC地址“MAC-DA[M12]”。
通過以下方式獲得第二分組中的目的地MAC地址“MAC-DA[M12]”路由器4和服務器負載平衡器(#1)5發(fā)送和接收一個ARP請求消息和一個ARP應答消息。
基于服務器負載平衡器5的IP地址預設并識別可選擇作為目標鏈路的鏈路。
路由器4可以通過以下方式選擇鏈路對接收到的第一轉(zhuǎn)發(fā)目標分組的源IP地址“IP-SA[IpC.1]”應用Hash函數(shù)。
當通過服務器負載平衡器(#1)5本身容納的鏈路中的選定的一個鏈路,接收到該第二分組(該分組的目的地IP地址“IP-DA”表示虛擬IP地址)時,該平衡器5確定實際應該處理該分組的負載分擔目標服務器7,并確定該負載分擔目標服務器7的端口號以識別會話。
然后,該服務器負載平衡器5把一個第三分組發(fā)送到路由器4,該分組是通過把一個首部字段填充到所接收的第二分組的數(shù)據(jù)字段組裝的,其中在該首部字段中進行以下轉(zhuǎn)換(1)把接收到的第二分組目的地IP地址“IP-DA[IpA.1]”轉(zhuǎn)換成已確定的負載分擔目標服務器7的IP地址[IpB.3];(2)把第二分組的目的地端口號值[10]轉(zhuǎn)換成已確定的端口號值[1];(3)把第二分組的源IP地址“IP-SA[IpC.1]”轉(zhuǎn)換成設備本身的IP地址(即,與容納該分組實際轉(zhuǎn)發(fā)到的鏈路的服務器負載平衡器5相對應的IP地址[IpH.1]);(4)把第二分組的目的地MAC地址“MAC-DA[M12]”轉(zhuǎn)換成路由器4的MAC地址[M3];和(5)把第二分組的源MAC地址“MAC-SA[M2]”轉(zhuǎn)換成設備本身的MAC地址[M13]。
在此,根據(jù)一個決策表(未示出)得到路由器4的MAC地址[M3],在該表中預先定義了MAC地址對負載分擔目標服務器7的IP地址的映射。
該第三分組(TCP請求消息)具有一個首部字段和一個數(shù)據(jù)字段,其中該首部字段包含源IP地址“IP-SA[IpH.1]”、目的地IP地址“IP-DA[IpB.3]”、源MAC地址“MAC-SA[M13]”和目的地MAC地址“MAC-DA[M3]”。
此外,服務器負載平衡器5把地址轉(zhuǎn)換之前和之后的目的地端口號和IP地址記錄在會話表54中(參見圖9中的標號540)。
路由器4從通過鏈路從服務器負載平衡器5接收到的第三分組的目的地IP地址“IP-DA”確定一個目的地,然后轉(zhuǎn)換首部字段中的源MAC地址“MAC-SA”和目的地MAC地址“MAC-DA”,并作為一個第四分組,把該分組中繼(轉(zhuǎn)發(fā))到負載分擔目標服務器(#1)7。
該第四分組(TCP請求消息)具有一個首部字段和一個數(shù)據(jù)字段,其中該首部字段包含源IP地址“IP-SA[Ip H.1]”、目的地IP地址“IP-DA[IpB.3]”、源MAC地址“MAC-SA[M8]”和目的地MAC地址“MAC-DA[M11]”。
通過以下方式獲得第四分組中的目的地MAC地址“MAC-DA[M11]”路由器4和負載分擔目標服務器(#1)7發(fā)送和接收一個ARP請求消息和一個ARP應答消息。
在通過LAN 6接收到從路由器4轉(zhuǎn)發(fā)的第四分組并在同一個第四分組上執(zhí)行一個預定處理之后,該指定負載分擔目標服務器(#1)7組裝一個應答分組以發(fā)送到客戶機終端3。
環(huán)回(返回)分組的處理下面參照圖4和12,對服務器負載分擔系統(tǒng)1中的一個來自負載分擔目標服務器(#1)7的地址去往客戶機終端3的環(huán)回(返回)分組的處理進行說明。
通過LAN 6,負載分擔目標服務器(#1)7發(fā)送地址去往客戶機終端3(其地址準確指向服務器負載平衡器(SLB#1)5)的如此組裝的應答分組,作為一個第五分組。
該第五分組(TCP請求消息)具有一個首部字段和一個數(shù)據(jù)字段,其中該首部字段包含源IP地址“IP-SA[IpB.3]”、目的地IP地址“IP-DA[IpH.1]”、源MAC地址“MAC-SA[M11]”和目的地MAC地址“MAC-DA[M8]”。
通過以下方式獲得第五分組中的目的地MAC地址“MAC-DA[M8]”路由器4和負載分擔目標服務器(#1)7發(fā)送和接收一個ARP請求消息和一個ARP應答消息。
當通過LAN 6從負載分擔目標服務器7接收到第五分組時,路由器4基于目的地IP地址“IP-DA”確定一個鏈路,然后轉(zhuǎn)換首部字段中的源MAC地址“MAC-SA”和目的地MAC地址“MAC-DA”,并把該分組作為一個第六分組轉(zhuǎn)發(fā)到服務器負載平衡器5。
該第六分組(TCP請求消息)具有一個首部字段和一個數(shù)據(jù)字段,其中該首部字段包含源IP地址“IP-SA[IpB.3]”、目的地IP地址“IP-DA[IpH.1]”、源MAC地址“MAC-SA[M3]”和目的地MAC地址“MAC-DA[M13]”。
通過以下方式獲得第六分組中的目的地MAC地址“MAC-DA[M13]”路由器4和服務器負載平衡器(#1)5發(fā)送和接收一個ARP請求消息和一個ARP應答消息。
在此情況中,目的地IP地址“IP-DA”表示服務器負載平衡器(#1)5的IP地址,因此把該第六分組轉(zhuǎn)發(fā)到相應的鏈路上。
當接收到作為環(huán)回分組的第六分組時,服務器負載平衡器(#1)5檢查會話表54(參見圖9中的標號540),并分別進行以下轉(zhuǎn)換(1)把目的地IP地址“IP-DA”轉(zhuǎn)換成該會話中的客戶機終端3的IP地址[IpC.1];(2)把源IP地址“IP-SA”轉(zhuǎn)換成該會話中的虛擬IP地址[IpA.1];(3)把目的地端口號值[1]轉(zhuǎn)換成端口號值[10]。
此外,服務器負載平衡器5分別進行以下轉(zhuǎn)換(4)把接收到的第六分組的目的地MAC地址“MAC-DA[M13]”轉(zhuǎn)換成路由器4的MAC地址[M2],和(5)把第六分組的源MAC地址“MAC-SA[M3]”轉(zhuǎn)換成設備本身的MAC地址[M12]。
在此,根據(jù)決策表得到路由器4的MAC地址[M2],在該表中預先定義了IP地址對路由器4的MAC地址的映射。
然后,服務器負載平衡器5把一個第七分組發(fā)送到路由器4,該分組是通過在第六分組的數(shù)據(jù)字段中填充進行了地址轉(zhuǎn)換的首部字段組裝的。
該第七分組(TCP請求消息)具有一個首部字段和一個數(shù)據(jù)字段,其中該首部字段包含源IP地址“IP-SA[IpA.1]”、目的地IP地址“IP-DA[IpC.1]”、源MAC地址“MAC-SA[M12]”和目的地MAC地址“MAC-DA[M2]”。
路由器4從接收到的第七分組中的目的地IP地址“IP-DA[IpC.1]”確定目的地,并把一個具有轉(zhuǎn)換后的目的地MAC地址“MAC-DA”和源MAC地址“MAC-SA”的第八分組轉(zhuǎn)發(fā)到IP網(wǎng)絡2。
該第八分組(TCP應答消息)具有一個首部字段和一個數(shù)據(jù)字段,其中該首部字段包含源IP地址“IP-SA[IpA.1]”、目的地IP地址“IP-DA[IpC.1]”、源MAC地址“MAC-SA[M1]”和目的地MAC地址“MAC-DA[M16]”。
通過以下方式獲得第八分組中的目的地MAC地址“MAC-DA[M16]”客戶機終端3和路由器4發(fā)送和接收一個ARP請求消息和一個ARP應答消息。
通過IP網(wǎng)絡2,客戶機終端3接收到對應于從負載分擔目標服務器(#1)7發(fā)回的應答分組的第八分組。
路由器中的故障檢測/恢復處理下面,結(jié)合圖13對路由器4中的故障檢測/恢復(故障查找)處理進行說明。
<故障檢測處理>
路由器4周期性地把用于確認基于由RFC792定義的ICMP(因特網(wǎng)控制消息協(xié)議)的通信的ICMP-ECHO請求消息(分組)發(fā)送到所有服務器負載平衡器(SLB#1至N)5所容納的各個鏈路(每個IP地址存在一個鏈路)上,并把ICMP-ECHO應答消息確認為對此的應答。
如果服務器負載平衡器5容納的鏈路中即使有一個沒有給出應答,則路由器4判斷該服務器負載平衡器5有故障。當檢測該故障時,路由器4執(zhí)行一個縮退處理從負載分擔目標鏈路中去除所有去往檢測到故障的服務器負載平衡器5的鏈路。
在圖13所示的示例中,在預定時間內(nèi)沒有從服務器負載平衡器(#1)5容納的鏈路(#1,#2)中的鏈路(#2)發(fā)回ICMP-ECHO應答消息,所以路由器4從負載分擔目標鏈路中去除該鏈路(#2)所屬組的所有鏈路(#1,#2)。在由圖5所示的鏈路選擇模塊47保持的表48中管理從負載分擔目標鏈路中去除的鏈路。
應注意,在表48中預先定義了各個服務器負載平衡器5的IP地址值。在表48中還預先定義了哪個鏈路屬于哪個服務器負載平衡器5。
<故障恢復處理>
在上述故障檢測處理的情況中,路由器4周期性地把ICMP-ECHO請求消息發(fā)送到所有的服務器負載平衡器5中容納的各個鏈路上,以便確認通信,并把ICMP-ECHO應答消息確認為對此的應答。
當從服務器負載平衡器5容納的所有鏈路(包括在上述故障檢測處理中從負載分擔目標鏈路中去除的鏈路)上發(fā)回作為應答的ICMP-ECHO應答消息時,路由器4判斷服務器負載平衡器5和其中的鏈路已經(jīng)恢復,并執(zhí)行一個把恢復的鏈路鏈接回負載分擔目標鏈路的再鏈接處理。
在此再鏈接處理中,檢測到的已恢復鏈路作為負載分擔目標鏈路再次被登記在表48中,這是在檢測到恢復后立即被觸發(fā)的,或通過管理者手動輸入命令來觸發(fā)。
路由器中的縮退/恢復處理中的鏈路選擇處理路由器中的處理下面參照圖14,對路由器4中的縮退/恢復處理中的鏈路選擇處理(鏈路選擇算法)進行說明。應注意,該鏈路選擇處理的一個前提假設是存在3個服務器負載平衡器(SLB#1,#2,#3)5。
當在正常狀態(tài)下,路由器4建立會話S1,S4并把它們分配給第一服務器負載平衡器(#1)5,建立會話S2,S5并把它們分配給第二服務器負載平衡器(#2)5,建立會話S3,S6,S7并把它們分配給第三服務器負載平衡器(#3)5,即,路由器4處于選擇鏈路的狀態(tài)。
應注意,一個會話涉及使用兩個物理鏈路以發(fā)送出局和環(huán)回分組。分配給同一個服務器負載平衡器5的多個會話可以在相同的鏈路上被多路復用。
當在此狀態(tài)下,在故障檢測處理中檢測到第一服務器負載平衡器(#1)5中容納的鏈路中發(fā)生故障時,路由器4僅把建立在第一服務器負載平衡器(#1)5上的會話S1,S4再分配到正常的服務器負載平衡器(#2,#3)5。
即,建立在正常的服務器負載平衡器(#2,#3)5上的會話保持不動。結(jié)果,例如會話S2,S5和S1被分配到第二服務器負載平衡器(#2)5,會話S3,S6,S7和S4被分配到第三服務器負載平衡器(#3)5。
為了獲得正在進行的會話的連續(xù)性,在此鏈路選擇中需要進行縮退處理。即,盡管迄今為止,通過第二服務器負載平衡器(#2)執(zhí)行服務器負載平衡處理,但如果隨后中途通過不同的第三服務器負載平衡器(#3)5執(zhí)行該處理,則該第三服務器負載平衡器(#3)5識別該會話為新的會話,并因此基于第三服務器負載平衡器(#3)5的算法,確定目的地服務器和端口號。因此,會話有可能被分配到與迄今為止所使用的服務器不同的服務器上。
結(jié)果,異常狀態(tài)發(fā)生在高級應用(應用軟件)中,并中斷了會話。但是,由于鏈路選擇中的縮退處理,可以盡可能地避免會話的中斷。
當在故障恢復處理中,檢測到第一服務器負載平衡器(#1)中容納的鏈路中的故障恢復時,路由器4執(zhí)行一個處理以把系統(tǒng)恢復到正常鏈路選擇狀態(tài)。
以上個別討論的實施例中服務器負載分擔系統(tǒng)1包括多個服務器負載平衡器(#1至#N),每個平衡器具有圖8所示的結(jié)構(gòu)。例如,在實際的情況的服務器負載平衡器5配置中,多個NIC(網(wǎng)絡接口卡)中的每一個實現(xiàn)服務器負載平衡器5的功能,并可以裝入同一個設備框體內(nèi)。此外,單個卡實現(xiàn)路由器4的功能,并可以和多個NIC(每個NIC實現(xiàn)服務器負載平衡器5的功能)一起裝入同一個設備框體內(nèi)。
提供上述實施例中描述的各個處理作為一個可以由計算機執(zhí)行的程序。該程序可以被記錄在諸如CD-ROM、軟盤等的記錄介質(zhì)上,也可以通過通信線路發(fā)布。
盡管以上僅對本發(fā)明的一些實施例進行了詳細描述,但本領域的技術人員應該理解,在不背離本發(fā)明的新穎教導和優(yōu)點的情況下,可以對優(yōu)選實施例進行一些改進。因此,所有類似改進應包括在如權(quán)利要求所規(guī)定的本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種服務器負載分擔系統(tǒng),包括(A)多個服務器負載平衡器,每個平衡器至少容納第一和第二鏈路,所述平衡器包括(a)選擇模塊,當通過所述第一和第二鏈路之一接收到地址去往一個預定的虛擬IP地址的轉(zhuǎn)發(fā)目標分組時,該模塊選擇基于該虛擬IP地址的服務器組所指定的多個負載分擔目標服務器中的任何一個,并且每個服務器分配有一個唯一的IP地址;和(b)重寫模塊,該模塊把接收到的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組的虛擬IP地址重寫成所述選定的負載分擔目標服務器的唯一IP地址,并把接收到的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組的源IP地址重寫成一個能夠指定所述第一和第二鏈路中另一個鏈路的IP地址;和(B)中繼設備,通過所述第一和第二鏈路連接到所述多個服務器負載平衡器中的每一個上,所述中繼設備包括(c)識別模塊,該模塊對接收到的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組進行識別;(d)選擇模塊,該模塊選擇所述第一和第二鏈路之一,以便把所識別的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到所述多個服務器負載平衡器之一;和(e)轉(zhuǎn)發(fā)模塊,該模塊把通過所述第一和第二鏈路中的另一個鏈路接收到的來自所述多個服務器負載平衡器中任何一個的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到所述選定的負載分擔目標服務器,并通過所述第一和第二鏈路中的另一個鏈路,把從所述選定的負載分擔目標服務器發(fā)回的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到所述多個服務器負載平衡器中的任何一個。
2.根據(jù)權(quán)利要求1所述的服務器負載分擔系統(tǒng),其中,所述中繼設備的所述選擇模塊基于一個偽隨機數(shù)選擇所述第一和第二鏈路之一,以便把該分組轉(zhuǎn)發(fā)到所述多個服務器負載平衡器中的任何一個,其中該偽隨機數(shù)是通過把一個單向函數(shù)應用到所識別的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組中所包含的源IP地址值生成的。
3.根據(jù)權(quán)利要求1所述的服務器負載分擔系統(tǒng),其中,每個所述服務器負載平衡器還包括一個重寫模塊,當通過所述中繼設備和所述第一和第二鏈路中的另一個鏈路,接收到從所述選定的負載分擔目標服務器發(fā)回的轉(zhuǎn)發(fā)目標分組時,該模塊把包含在所接收的轉(zhuǎn)發(fā)目標分組中的所述選定的負載分擔目標服務器的唯一IP地址重寫成虛擬IP地址,作為源IP地址,并進一步把包含在所接收的轉(zhuǎn)發(fā)目標分組中的能夠指定所述第一和第二鏈路中另一個鏈路的IP地址重寫成已包含在地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組中的源IP地址,作為目的地IP地址,并使所述中繼設備通過所述第一和第二鏈路之一轉(zhuǎn)發(fā)該分組。
4.根據(jù)權(quán)利要求1所述的服務器負載分擔系統(tǒng),其中,所述中繼設備還包括設置模塊,該模塊把所述多個服務器負載平衡器中的每一個中所容納的所述第一和第二鏈路設置成一組,周期性地把一個監(jiān)測分組發(fā)送到每組的所述第一和第二鏈路中,并把屬于包含無應答鏈路的組的所述第一和第二鏈路作為故障鏈路,從選擇目標鏈路中去除。
5.根據(jù)權(quán)利要求4所述的服務器負載分擔系統(tǒng),其中,所述中繼設備還包括設置模塊,當在所述多個服務器負載平衡器中的每一個中所容納的所述第一和第二鏈路中檢測到故障時,該模塊以保持以下分配狀態(tài)的方式,設置把該轉(zhuǎn)發(fā)目標分組分配到容納所述第一和第二正常鏈路的所述正常服務器負載平衡器上,并僅針對分配到容納所述第一和第二故障鏈路的所述故障服務器負載平衡器的轉(zhuǎn)發(fā)目標分組,把分配狀態(tài)改變到所述正常服務器負載平衡器。
6.一種服務器負載分擔方法,其中多個服務器負載平衡器中的每一個容納至少第一和第二鏈路,所述方法包括(a)當通過所述第一和第二鏈路之一,接收到一個地址去往預定的虛擬IP地址的轉(zhuǎn)發(fā)目標分組時,選擇基于該虛擬IP地址的服務器組所指定的多個負載分擔目標服務器中的任何一個,并且每個服務器分配有一個唯一的IP地址;和(b)把接收到的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組的虛擬IP地址重寫成所述選定的負載分擔目標服務器的唯一IP地址,并把接收到的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組的源IP地址重寫成一個能夠指定所述第一和第二鏈路中另一個鏈路的IP地址;和在通過所述第一和第二鏈路連接到所述多個服務器負載平衡器中的每一個的中繼設備中,所述方法還包括(c)對接收到的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組進行識別;(d)選擇所述第一和第二鏈路之一,以便把所識別的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到所述多個服務器負載平衡器之一;和(e)把通過所述第一和第二鏈路中的另一個鏈路接收到的來自所述多個服務器負載平衡器中任何一個的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到所述選定的負載分擔目標服務器,并通過所述第一和第二鏈路中的另一個鏈路,把從所述選定的負載分擔目標服務器發(fā)回的轉(zhuǎn)發(fā)目標分組轉(zhuǎn)發(fā)到所述多個服務器負載平衡器中的任何一個。
7.根據(jù)權(quán)利要求6所述的服務器負載分擔方法,還包括在所述中繼設備中,基于一個偽隨機數(shù)選擇所述第一和第二鏈路之一,以便把該分組轉(zhuǎn)發(fā)到所述多個服務器負載平衡器中的任何一個,其中該偽隨機數(shù)是通過把一個單向函數(shù)應用到所識別的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組中所包含的源IP地址值生成的。
8.根據(jù)權(quán)利要求6所述的服務器負載分擔方法,還包括在每個所述服務器負載平衡器中,當通過所述中繼設備和所述第一和第二鏈路中的另一個鏈路,接收到從所述選定的負載分擔目標服務器發(fā)回的轉(zhuǎn)發(fā)目標分組時,把包含在所接收的轉(zhuǎn)發(fā)目標分組中的所述選定的負載分擔目標服務器的唯一IP地址重寫成虛擬IP地址,作為源IP地址,并進一步把包含在所接收的轉(zhuǎn)發(fā)目標分組中的能夠指定第一和第二鏈路中另一個鏈路的IP地址重寫成已包含在地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組中的源IP地址,作為目的地IP地址,并使所述中繼設備通過所述第一和第二鏈路之一轉(zhuǎn)發(fā)該分組。
9.根據(jù)權(quán)利要求6所述的服務器負載分擔方法,還包括在所述中繼設備中,把所述多個服務器負載平衡器中的每一個所容納的所述第一和第二鏈路設置成一組,周期性地把一個監(jiān)測分組發(fā)送到每組的第一和第二鏈路,并把屬于包含無應答鏈路的組的第一和第二鏈路作為故障鏈路,從選擇目標鏈路中去除。
10.根據(jù)權(quán)利要求9所述的服務器負載分擔方法,還包括在所述中繼設備中,當在所述多個服務器負載平衡器中的每一個中所容納的第一和第二鏈路中檢測到故障時,以保持以下分配狀態(tài)的方式,設置把該轉(zhuǎn)發(fā)目標分組分配到容納第一和第二正常鏈路的所述正常服務器負載平衡器上,并僅針對分配到容納第一和第二故障鏈路的所述故障服務器負載平衡器的轉(zhuǎn)發(fā)目標分組,把分配狀態(tài)改變到所述正常服務器負載平衡器。
11.一種服務器負載分擔設備,包括把負載分擔到多個服務器的多個服務器負載平衡功能,其中根據(jù)從客戶機終端接收的分組的源識別信息,指定所述服務器負載平衡功能之一以執(zhí)行處理。
全文摘要
一種服務器負載分擔系統(tǒng),該系統(tǒng)具有多個服務器負載平衡器和一個中繼設備。每個平衡器包括選擇模塊,當通過第一和第二鏈路之一接收到一個地址去往預定的虛擬IP地址的轉(zhuǎn)發(fā)目標分組時,該模塊選擇基于該虛擬IP地址的服務器組所指定的多個負載分擔目標服務器中的任何一個,并且每個服務器分配有一個唯一IP地址;重寫模塊,把接收到的地址去往虛擬IP地址的轉(zhuǎn)發(fā)目標分組的虛擬IP地址重寫成所選服務器的唯一IP地址,并把接收到的地址去往虛擬IP地址的分組的源IP地址重寫成能夠指定第一和第二鏈路中另一個鏈路的IP地址。該中繼設備包括識別模塊;選擇模塊。
文檔編號H04L12/56GK1426211SQ02155549
公開日2003年6月25日 申請日期2002年12月5日 優(yōu)先權(quán)日2001年12月6日
發(fā)明者井上留美子, 武田浩一 申請人:富士通株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1