本申請涉及IT技術(shù)領(lǐng)域,特別涉及一種負載均衡的方法、裝置和系統(tǒng)。
背景技術(shù):
負載均衡系統(tǒng)包含負載均衡器以及多臺后端服務(wù)器,所述多臺后端服務(wù)器(又稱為member)組成服務(wù)器資源池,負載均衡器接收客戶端的訪問請求,根據(jù)負載均衡算法為客戶端選擇提供服務(wù)的后端服務(wù)器。負載均衡器的IP地址為服務(wù)器資源池對外呈現(xiàn)的IP地址,客戶端通過該負載均衡器的IP地址即可訪問服務(wù)器資源池中的后端服務(wù)器,而無需知道后端服務(wù)器的地址。負載均衡器提供負載均衡服務(wù)的模式包含直接路由(Direct Routing,DR)模式和網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation,NAT)模式。
采用DR模式時,后端服務(wù)器向客戶端返回的訪問響應(yīng)無需經(jīng)過負載均衡器,因此傳輸性能較高。但由于DR模式需要負載均衡器的IP地址和后端服務(wù)器的IP地址位于同一網(wǎng)段,后端服務(wù)器和負載均衡器不能跨網(wǎng)段部署,因此對負載均衡系統(tǒng)的組網(wǎng)造成了較大的限制。
技術(shù)實現(xiàn)要素:
本申請實施例提供一種負載均衡的方法、裝置和系統(tǒng),用以解決云計算網(wǎng)絡(luò)中DR模式下,后端服務(wù)器和負載均衡器不能跨網(wǎng)段部署的問題。
本申請實施例提供的具體技術(shù)方案如下:
第一方面,提供一種負載均衡系統(tǒng),用于實現(xiàn)云計算網(wǎng)絡(luò)中DR模式下,后端服務(wù)器和負載均衡器跨網(wǎng)段部署。所述系統(tǒng)包括負載均衡器以及至少一個服務(wù)節(jié)點,所述服務(wù)器節(jié)點上運行有虛擬交換機以及至少一個后端服務(wù)器,所述后端服務(wù)器邏輯接口的IP地址為所述負載均衡器的IP地址,負載均衡器接收客戶端的訪問請求,將訪問請求的目的地址修改為目的后端服務(wù)器虛擬網(wǎng)卡的IP地址,當(dāng)服務(wù)節(jié)點的虛擬交換機接收到訪問請求時,將訪問請求的目的地址修改為負載均衡器的IP地址,從而使得當(dāng)目的后端服務(wù)器返回訪問響應(yīng)時,該訪問響應(yīng)的源地址為負載均衡器的地址。
通過上述方式,負載均衡器和后端服務(wù)器的IP地址可以配置為不同的網(wǎng)段,同時可以實現(xiàn)返程的業(yè)務(wù)訪問響應(yīng)不經(jīng)過負載均衡器,保證了網(wǎng)絡(luò)性能,解決了云計算網(wǎng)絡(luò)中DR模式下,后端服務(wù)器和負載均衡器不能跨網(wǎng)段部署的問題。
在一種可能的設(shè)計中,所述系統(tǒng)還包括網(wǎng)絡(luò)控制器,
所述網(wǎng)絡(luò)控制器,用于向所述虛擬交換機下發(fā)流表,所述流表用于指示當(dāng)所述虛擬交換機接收到發(fā)送給所述目的后端服務(wù)器的訪問請求時,將所述訪問請求的目的地址修改為負載均衡器的IP地址;
所述虛擬交換機,具體用于根據(jù)所述流表,修改所述訪問請求的目的地址。
在一種可能的設(shè)計中,所述負載均衡系統(tǒng)采用內(nèi)網(wǎng)訪問模式,所述負載均衡系統(tǒng)還包括負載均衡節(jié)點,所述負載均衡節(jié)點上運行所述負載均衡器以及第一虛擬路由器,所述第一虛擬路由器上配置有所述負載均衡器的網(wǎng)關(guān)地址以及所述目的后端服務(wù)器的網(wǎng)關(guān)地址,
所述負載均衡器,具體用于將所述訪問請求發(fā)送到所述第一虛擬路由器的第一端口,所述第一端口的地址為所述負載均衡器的網(wǎng)關(guān)地址;
所述第一虛擬路由器,用于接收所述訪問請求,將所述訪問請求從第二端口發(fā)出,所述第二端口的地址為所述目的后端服務(wù)器的網(wǎng)關(guān)地址。
進一步的,所述目的服務(wù)節(jié)點上運行有第二虛擬路由器,所述第二虛擬路由器上配置有所述客戶端的網(wǎng)關(guān)地址以及所述目的后端服務(wù)器的網(wǎng)關(guān)地址,
所述目的后端服務(wù)器,具體用于將所述訪問響應(yīng)發(fā)送到所述第二虛擬路由器的第三端口,所述第三端口的地址為所述目的后端服務(wù)器的網(wǎng)關(guān)地址;
所述第二虛擬路由器,用于接收所述訪問響應(yīng),將所述訪問響應(yīng)從第四端口發(fā)出,所述第四端口的地址為所述客戶端的網(wǎng)關(guān)地址。
在上述內(nèi)網(wǎng)訪問模式中,客戶端通過內(nèi)網(wǎng)地址(虛擬IP地址)訪問負載均衡器。負載均衡器以及后端服務(wù)器部署在同一租戶網(wǎng)絡(luò)中,負載均衡器以及后端服務(wù)器的IP地址為同一租戶網(wǎng)絡(luò)的不同網(wǎng)段,二者均可以通過所在節(jié)點的虛擬路由器進行通信。
在公網(wǎng)訪問模式中,負載均衡器為獨立的物理服務(wù)器,具備公網(wǎng)IP地址,客戶端通過負載均衡器的公網(wǎng)IP地址訪問后端服務(wù)器,后端服務(wù)器可以為運行在服務(wù)節(jié)點上的虛擬機或者容器。負載均衡器的公網(wǎng)IP地址關(guān)聯(lián)有虛擬IP地址,該虛擬IP地址與后端服務(wù)器的虛擬網(wǎng)卡的IP地址,以及后端服務(wù)器的邏輯接口的IP地址在同一租戶網(wǎng)絡(luò)的不同網(wǎng)段。更進步一步的,為了區(qū)分不同租戶,負載均衡器以及后端服務(wù)器還具備局域網(wǎng)IP地址。
在公網(wǎng)訪問模式中,所述目的服務(wù)節(jié)點上運行有第三虛擬路由器,所述目的后端服務(wù)器還具備與所述目的后端服務(wù)器虛擬網(wǎng)卡的IP地址關(guān)聯(lián)的局域網(wǎng)IP地址,所述局域網(wǎng)IP地址用于實現(xiàn)不同租戶間的網(wǎng)絡(luò)隔離,
所述負載均衡器,具體用于將所述訪問請求的目的地址修改為所述目的后端服務(wù)器的局域網(wǎng)IP地址,將所述訪問請求發(fā)送給所述目的后端服務(wù)器所在的所述目的服務(wù)節(jié)點;
所述目的服務(wù)節(jié)點上的所述第三虛擬路由器,還用于接收所述訪問請求,將所述訪問請求的目的地址修改為所述目的后端服務(wù)器的虛擬網(wǎng)卡的IP地址,將所述訪問請求發(fā)送到所述虛擬交換機。
進一步的,所述負載均衡器的IP地址還關(guān)聯(lián)有公網(wǎng)IP地址,
所述虛擬交換機,還用于接收所述訪問響應(yīng),將所述訪問響應(yīng)的源地址修改為所述負載均衡器的IP地址關(guān)聯(lián)的公網(wǎng)IP地址,將所述訪問響應(yīng)返回給所述客戶端。
通過上述方式,實現(xiàn)了內(nèi)網(wǎng)訪問模式和公網(wǎng)訪問模式兩種場景下的負載均衡方法,在上述方法中,負載均衡器和后端服務(wù)器的IP地址可以配置為不同的網(wǎng)段,同時可以實現(xiàn)返程的業(yè)務(wù)訪問響應(yīng)不經(jīng)過負載均衡器,保證了網(wǎng)絡(luò)性能,解決了云計算網(wǎng)絡(luò)中DR模式下,后端服務(wù)器和負載均衡器不能跨網(wǎng)段部署的問題。
第二方面,提供一種負載均衡的方法,所述方法應(yīng)用于前述第一方面的負載均衡系統(tǒng),所述負載均衡系統(tǒng)包括負載均衡器以及至少一個服務(wù)節(jié)點,所述服務(wù)器節(jié)點上運行有虛擬交換機以及至少一個后端服務(wù)器,所述后端服務(wù)器邏輯接口的IP地址為所述負載均衡器的IP地址,所述方法包括:
所述負載均衡器接收客戶端的訪問請求,為所述客戶端選擇目的后端服務(wù)器,將所述訪問請求的目的地址修改為所述目的后端服務(wù)器虛擬網(wǎng)卡的IP地址,將所述訪問請求發(fā)送給所述目的后端服務(wù)器所在的所述目的服務(wù)節(jié)點;
所述目的服務(wù)節(jié)點上的所述虛擬交換機接收所述訪問請求,將所述訪問請求的目的地址修改為所述負載均衡器的IP地址,將所述訪問請求發(fā)送給所述目的后端服務(wù)器;
所述目的后端服務(wù)器,用于接收并處理所述訪問請求,向所述客戶端返回訪問響應(yīng),所述訪問響應(yīng)的源地址為所述負載均衡器的IP地址。
在第二方面的方法中,所述負載均衡系統(tǒng)中的各個部件執(zhí)行前述第一方面中的步驟。
第三方面,提供了一種服務(wù)節(jié)點,所述服務(wù)節(jié)點運行有虛擬交換機以及至少一個后端服務(wù)器,所述至少一個后端服務(wù)器由負載均衡器分配給客戶端提供服務(wù),所述后端服務(wù)器邏輯接口的IP地址為所述負載均衡器的IP地址,
所述服務(wù)節(jié)點上的所述虛擬交換機,用于接收所述負載均衡器發(fā)送的所述客戶端的訪問請求,所述訪問請求的目的地址為所述后端服務(wù)器虛擬網(wǎng)卡的IP地址;
所述虛擬交換機,還用于將所述訪問請求的目的地址修改為所述負載均衡器的IP地址,將所述訪問請求發(fā)送給所述后端服務(wù)器;
所述后端服務(wù)器,用于接收并處理所述訪問請求,向所述客戶端返回訪問響應(yīng),所述訪問響應(yīng)的源地址為所述負載均衡器的IP地址。
在第三方面可能的設(shè)計中,服務(wù)節(jié)點上的虛擬交換機、虛擬路由器以及后端服務(wù)器執(zhí)行前述第一方面中對應(yīng)部件的步驟。
第四方面,提供了另一種負載均衡的方法,服務(wù)節(jié)點上的虛擬交換機、虛擬路由器以及后端服務(wù)器執(zhí)行前述第一方面中對應(yīng)部件的步驟。
第五方面,提供了另一種虛擬化環(huán)境下的負載均衡系統(tǒng),應(yīng)用于公網(wǎng)訪問模式,所述系統(tǒng)包括負載均衡器以及至少一個服務(wù)節(jié)點,所述服務(wù)器節(jié)點上運行有虛擬交換機、虛擬路由器以及至少一個后端服務(wù)器,所述負載均衡器與所述后端服務(wù)器位于同一租戶網(wǎng)絡(luò),所述后端服務(wù)器邏輯接口的IP地址為所述負載均衡器的虛擬IP地址,
所述負載均衡器,用于接收客戶端的訪問請求,為所述客戶端選擇目的后端服務(wù)器,將所述訪問請求的目的地址修改為后端服務(wù)器的局域網(wǎng)IP地址,將所述訪問請求發(fā)送到所述目的后端服務(wù)器所在的目的服務(wù)節(jié)點;
所述目的服務(wù)節(jié)點的虛擬路由器,用于接收所述訪問請求,根據(jù)第一流表,將所述訪問請求的目的地址由目的后端服務(wù)器的局域網(wǎng)IP地址修改為目的后端服務(wù)器的虛擬網(wǎng)卡的IP地址,將所述訪問請求發(fā)送給所述目的服務(wù)節(jié)點的虛擬交換機;
所述虛擬交換機,用于根據(jù)第二流表,將所述訪問請求的目的地址修改為目的后端服務(wù)器邏輯接口的IP地址,將所述訪問請求發(fā)送給所述目的后端服務(wù)器;
所述目的后端服務(wù)器,用于接收并處理所述訪問請求,返回訪問響應(yīng),所述訪問響應(yīng)的源地址修改為所述負載均衡器的虛擬IP地址;
所述虛擬路由器,還用于根據(jù)第三流表,將所述訪問響應(yīng)的源地址修改為所述負載均衡器的公網(wǎng)IP地址。
第六方面,提供了一種負載均衡系統(tǒng)中的服務(wù)節(jié)點,該服務(wù)節(jié)點為物理服務(wù)器,具有實現(xiàn)上述第一方面和任一種可能的設(shè)計中服務(wù)節(jié)點上各部件行為的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊。
在一個可能的設(shè)計中,服務(wù)節(jié)點包括收發(fā)器和處理器,其中,處理器用于調(diào)用一組程序代碼,以執(zhí)行如第四方面中所述的方法。
第七方面,提供了一種計算機存儲介質(zhì),用于儲存為上述方面所述的服務(wù)節(jié)點所用的計算機軟件指令,其包含用于執(zhí)行上述方面所設(shè)計的程序。
附圖說明
圖1為本發(fā)明實施例中的虛擬化環(huán)境下的負載均衡系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例中的服務(wù)節(jié)點的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例提供的一種負載均衡的方法流程示意圖;
圖4為本發(fā)明實施例中的虛擬化環(huán)境下的另一種負載均衡系統(tǒng)的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例提供的另一種負載均衡方法流程示意圖;
圖6為本發(fā)明實施例提供的一種服務(wù)節(jié)點硬件結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合附圖對本申請作進一步描述。
如圖1所示,為本發(fā)明實施例提供的一種負載均衡系統(tǒng)的結(jié)構(gòu)示意圖,該監(jiān)控系統(tǒng)包括客戶端11、負載均衡節(jié)點2以及服務(wù)節(jié)點3,所述負載均衡節(jié)點2上運行有第一虛擬路由器21和負載均衡器22,所述服務(wù)節(jié)點3上運行第二虛擬路由器31、至少一個后端服務(wù)器32(圖1中以一個后端服務(wù)器為例)以及虛擬交換機33。在所述負載均衡系統(tǒng)中,客戶端11、負載均衡節(jié)點2以及服務(wù)節(jié)點3均可以為多個,其中,多個服務(wù)節(jié)點3組成服務(wù)器資源池為客戶端11提供服務(wù),可選的,負載均衡節(jié)點2可以采用分布式部署,本發(fā)明實施例對此并不進行限定。所述客戶端11、負載均衡節(jié)點2以及服務(wù)節(jié)點3之間通過云網(wǎng)絡(luò)相互通信。示例性的,如圖2所示,所述客戶端11可以為運行在訪問節(jié)點上,具體的,所述客戶端可以為虛擬機或者容器??蛇x的,所述負載均衡器22以及所述后端服務(wù)器32均可以為運行在物理節(jié)點上的虛擬機或容器。
租戶可以在訪問節(jié)點上部署客戶端11,為客戶端11配置IP地址,示例性的,客戶端11的IP地址為192.168.1.10/24。租戶在負載均衡節(jié)點2上部署負載均衡器22,并將負載均衡器22配置為NAT模式,為負載均衡器22分配IP地址,示例性的,負載均衡器22的IP地址為192.168.2.10/24。租戶在服務(wù)節(jié)點3上配置后端服務(wù)器32,為后端服務(wù)器32分配IP地址,所述后端服務(wù)器32的IP地址包括后端服務(wù)器32虛擬網(wǎng)卡的IP地址以及后端服務(wù)器32邏輯接口的IP地址,所述后端服務(wù)器32邏輯接口的IP地址為所述負載均衡器22的IP地址,示例性的,后端服務(wù)器32虛擬網(wǎng)卡的IP地址為192.168.3.10/24,邏輯接口的IP地址為192.168.2.10。云管理平臺為每個節(jié)點上的虛擬路由器(12/21/31)的多個端口分配配置客戶端11的網(wǎng)關(guān)地址、負載均衡器22的網(wǎng)關(guān)地址以及后端服務(wù)器32的網(wǎng)關(guān)地址。圖1所示的系統(tǒng)結(jié)構(gòu)對應(yīng)于內(nèi)網(wǎng)訪問模式。
基于圖1所示的系統(tǒng)結(jié)構(gòu),如圖3所示,為本發(fā)明實施例提供的一種負載均衡的方法流程示意圖,所述方法包括:
步驟301:客戶端向負載均衡器發(fā)送訪問請求,所述訪問請求的源地址為所述客戶端的IP地址,目的地址為所述負載均衡器的IP地址。
在一種可能的實施場景中,負載均衡器的IP地址對客戶端呈現(xiàn),作為客戶端請求服務(wù)器資源池中的后端服務(wù)器的入口地址。具體的,在云計算場景下,該負載均衡器的IP地址又稱為虛擬IP地址,客戶端發(fā)送的訪問請求的目的地址為負載均衡器的虛擬IP地址。
所述訪問請求的源IP地址為192.168.1.10,目的IP地址為192.168.2.10,所述訪問請求被發(fā)送到所述訪問節(jié)點的虛擬路由器的端口1(客戶端的網(wǎng)關(guān)地址對應(yīng)的端口)。由于客戶端所在的訪問節(jié)點的虛擬路由器上配置有負載均衡器的網(wǎng)關(guān)地址對應(yīng)的端口(例如,端口2),因此,訪問節(jié)點的虛擬路由器的端口1接收到訪問請求后,根據(jù)訪問請求的目的地址(192.168.2.10),將該訪問請求從端口2發(fā)出,發(fā)送到負載均衡器的IP地址192.168.2.10。
步驟302:負載均衡器接收到所述訪問請求后,基于負載均衡算法,為所述客戶端選擇提供服務(wù)的后端服務(wù)器。
所述復(fù)制均衡器為NAT模式,負載均衡器記錄有后端服務(wù)器列表,根據(jù)負載均衡算法從后端服務(wù)器列表中選擇提供服務(wù)的后端服務(wù)器,在一種可能的實施場景中,LB服務(wù)器的LVS軟件配置中保存了后端服務(wù)器的信息,負載均衡器可以從而可以獲取選擇的后端服務(wù)器的地址。
步驟303:負載均衡器對訪問請求的目的地址進行NAT轉(zhuǎn)換,將訪問請求的目的地址(192.168.2.10)修改為后端服務(wù)器虛擬網(wǎng)卡的IP地址(192.168.3.10)。
負載均衡器轉(zhuǎn)發(fā)所述訪問請求,此時所述訪問請求的源地址為192.168.1.10,目的IP地址為192.168.3.10。負載均衡器將所述訪問請求發(fā)送到所述第一虛擬路由器的第一端口,所述第一端口的地址為所述負載均衡器的網(wǎng)關(guān)地址,所述第一虛擬路由器接收所述訪問請求,將所述訪問請求從第二端口發(fā)出,所述第二端口的地址為所述目的后端服務(wù)器的網(wǎng)關(guān)地址。
步驟304:后端服務(wù)器所在的服務(wù)節(jié)點的虛擬交換機接收所述訪問請求,將所述訪問請求的目的地址修改為所述負載均衡器的IP地址,將所述訪問請求發(fā)送給所述目的后端服務(wù)器。
具體的,所述虛擬交換機接收網(wǎng)絡(luò)控制器下的流表,所述流表用于指示當(dāng)所述虛擬交換機接收到發(fā)送給所述目的后端服務(wù)器的訪問請求時,將所述訪問請求的目的地址修改為。所述虛擬交換機根據(jù)所述流表,將所述訪問請求的目的地址修改負載均衡器的IP地址(192.168.2.10),由于后端服務(wù)器邏輯接口的IP地址為所述負載均衡器的IP地址,所以,在虛擬交換機將所述訪問請求的目的地址修改為所述負載均衡器的IP地址后,所述訪問請求可以被發(fā)送到所述后端服務(wù)器。
步驟305:所述后端服務(wù)器接收并處理所述訪問請求。
步驟306向所述客戶端返回訪問響應(yīng),所述訪問響應(yīng)的源地址為所述負載均衡器的IP地址。
所述后端服務(wù)器接收到的訪問請求的源IP地址為客戶端的IP地址(192.168.1.10),目的IP地址為負載均衡器的IP地址(192.168.2.10),后端服務(wù)器對訪問請求進行處理,并返回訪問響應(yīng),所述訪問響應(yīng)的源IP地址為負載均衡器的IP地址(192.168.2.10),目的IP地址為客戶端的IP地址(192.168.1.10)。后端服務(wù)器所在的服務(wù)節(jié)點上的第二虛擬路由器上配置有所述客戶端的網(wǎng)關(guān)地址以及所述目的后端服務(wù)器的網(wǎng)關(guān)地址,所述目的后端服務(wù)器將所述訪問響應(yīng)發(fā)送到所述第二虛擬路由器的第三端口,所述第三端口的地址為所述目的后端服務(wù)器的網(wǎng)關(guān)地址;所述第二虛擬路由器接收所述訪問響應(yīng),將所述訪問響應(yīng)從第四端口發(fā)出,所述第四端口的地址為所述客戶端的網(wǎng)關(guān)地址。
訪問響應(yīng)到達客戶端所在的訪問節(jié)點后,由訪問節(jié)點上的虛擬交換機根據(jù)訪問響應(yīng)的目的地址將所述訪問響應(yīng)發(fā)送給所述客戶端。
需要說明的是,由于訪問請求的目的地址為負載均衡器的IP地址,因此,后端服務(wù)器可以直接將負載均衡器的IP地址作為訪問響應(yīng)的源地址。
如圖4所示,為本發(fā)明實施例提供的另一種負載均衡系統(tǒng)的結(jié)構(gòu)示意圖,本實施例為公網(wǎng)訪問模式,即負載均衡器對外呈現(xiàn)的地址為公網(wǎng)地址(例如,9.9.9.9),客戶端訪問該公網(wǎng)地址,由負載均衡器為客戶端選擇后端服務(wù)器提供服務(wù),后端服務(wù)器組成的硬件資源池的內(nèi)部網(wǎng)絡(luò)對客戶端不可見。
客戶端的IP地址為公網(wǎng)IP地址(例如,8.8.8.8)。
租戶部署負載均衡器,并將負載均衡器配置為NAT模式。負載均衡器以物理服務(wù)器的形式部署,為客戶端提供負載均衡服務(wù),所述負載均衡器的虛擬IP地址(例如,192.168.2.10)還關(guān)聯(lián)有公網(wǎng)IP地址(9.9.9.9),客戶端使用負載均衡器的公網(wǎng)IP地址訪問所述負載均衡器。所虛擬均衡器與所述服務(wù)節(jié)點上運行的后端服務(wù)器處于同一內(nèi)網(wǎng)中,因此,所述負載均衡器物理接口地址上還配置有局域網(wǎng)IP地址(例如,100.100.100.100)。
租戶在服務(wù)節(jié)點上配置后端服務(wù)器,為后端服務(wù)器分配IP地址,所述后端服務(wù)器的IP地址包括后端服務(wù)器虛擬網(wǎng)卡的IP地址(例如,192.168.3.10)以及后端服務(wù)器邏輯接口的IP地址(例如,192.168.2.10),所述后端服務(wù)器邏輯接口的IP地址為所述負載均衡器的IP地址。進一步的,所述后端服務(wù)器的虛擬網(wǎng)卡的IP地址還關(guān)聯(lián)有后端服務(wù)器的局域網(wǎng)IP地址(例如,100.120.2.10)。
負載均衡器的虛擬IP關(guān)聯(lián)服務(wù)節(jié)點上運行的后端服務(wù)器。
屬于同一租戶的負載均衡器和后端服務(wù)器被配置到同一租戶網(wǎng)絡(luò)中。不同租戶網(wǎng)絡(luò)中的負載均衡器和后端服務(wù)器可以通過局域網(wǎng)IP地址進行區(qū)分,因此,不同租戶的后端服務(wù)器可以使用相同的虛擬網(wǎng)卡的IP地址,不同租戶的負載均衡器可以使用相同的虛擬IP地址。例如,硬件資源池中的服務(wù)節(jié)點上運行的租戶A的一個后端服務(wù)器的虛擬網(wǎng)卡的IP地址為192.168.3.10,硬件資源池中的服務(wù)節(jié)點上運行的租戶B的一個后端服務(wù)器的虛擬網(wǎng)卡的IP地址也可以為192.168.3.10。
結(jié)合圖4所示的負載均衡系統(tǒng)的結(jié)構(gòu),如圖5所示,為本發(fā)明實施例提供的另一種負載均衡方法流程,包括:
步驟501:客戶端發(fā)送訪問請求,通過公網(wǎng)IP地址(8.8.8.8)訪問負載均衡器虛擬IP地址關(guān)聯(lián)的公網(wǎng)IP地址(9.9.9.9)。
具體的,客戶端可以通過中間設(shè)備如交換機,配置下一跳到100.100.100.100的路由,到達負載均衡器。
步驟502:負載均衡器接收該訪問請求,根據(jù)負載均衡算法選擇為客戶端提供服務(wù)的后端服務(wù)器,將訪問請求的目的地址修改為后端服務(wù)器的局域網(wǎng)IP地址,將訪問請求發(fā)送給目的后端服務(wù)器所在的服務(wù)節(jié)點。
具體的,由于負載均衡器上部署的LVS配置的是NAT模式,LB服務(wù)器對報文進行轉(zhuǎn)換,轉(zhuǎn)換后的目的IP地址為選擇的后端服務(wù)器的局域網(wǎng)IP地址(100.120.2.10),訪問請求的源IP地址保持不變,仍然是8.8.8.8,將訪問請求發(fā)送給后端服務(wù)器所在的服務(wù)節(jié)點。
具體的,負載均衡器可以與后端服務(wù)器所在的服務(wù)節(jié)點建立隧道,通過隧道傳遞所述訪問請求,隧道建立的方式可以采用現(xiàn)有技術(shù)中的方案,本發(fā)明實施例對此并不進行限定。
步驟503:選定的目的后端服務(wù)器所在服務(wù)節(jié)點接收該訪問請求,該訪問請求被轉(zhuǎn)發(fā)到服務(wù)節(jié)點的虛擬路由器,該虛擬路由器上配置有本節(jié)點上所有后端服務(wù)器的網(wǎng)關(guān)地址。該虛擬路由器根據(jù)第一流表,將該訪問請求的目的地址由目的后端服務(wù)器的局域網(wǎng)IP地址修改為目的后端服務(wù)器的虛擬網(wǎng)卡的IP地址,將訪問請求發(fā)送給服務(wù)節(jié)點的虛擬交換機。
在一種具體的場景中,租戶可以對負載均衡網(wǎng)絡(luò)進行管理,通過網(wǎng)絡(luò)控制器下發(fā)第一流表到虛擬路由器,所述第一流表用于表示當(dāng)虛擬路由器接收到目的地址為后端服務(wù)器局域網(wǎng)IP地址的訪問請求時,將訪問請求的目的地址修改為該后端服務(wù)器虛擬網(wǎng)卡的IP地址。
步驟504:該虛擬交換機接收訪問請求,根據(jù)第二流表,將訪問請求的目的地址修改為目的后端服務(wù)器邏輯接口的IP地址(即為負載均衡器的虛擬IP地址),將該訪問請求發(fā)送給目的后端服務(wù)器。
在一種具體的場景中,租戶在對負載均衡網(wǎng)絡(luò)進行管理時,通過網(wǎng)絡(luò)控制器在虛擬交換機配置第二流表,用于表示當(dāng)虛擬交換機接收到目的地址為后端服務(wù)器虛擬網(wǎng)卡的IP地址(192.168.3.10)的訪問請求時,將訪問請求的目的地址修改為該后端服務(wù)器的邏輯接口的IP地址(192.168.2.10)。
步驟505:目的后端服務(wù)器接收虛擬交換機發(fā)送的訪問請求,對該訪問請求進行處理,并返回業(yè)務(wù)訪問響應(yīng),該業(yè)務(wù)訪問響應(yīng)的源地址為目的后端服務(wù)器邏輯接口的IP地址(即為負載均衡器的虛擬IP地址),目的地址為客戶端的公網(wǎng)IP地址。
步驟506:由于后端服務(wù)器默認路由的下一跳為網(wǎng)關(guān)地址(192.168.3.1),報文首先發(fā)送到服務(wù)節(jié)點的虛擬路由器,虛擬路由器根據(jù)第三流表將業(yè)務(wù)訪問響應(yīng)的源地址修改為負載均衡器的公網(wǎng)IP地址,所述虛擬路由器將該業(yè)務(wù)訪問響應(yīng)發(fā)送給客戶端。
在一種具體的場景中,租戶在對負載均衡網(wǎng)絡(luò)進行管理時,通過網(wǎng)絡(luò)控制器下發(fā)第三流表到虛擬路由器,所述第三流表用于表示當(dāng)虛擬路由器接收到源地址為負載均衡器虛擬IP地址的報文(具體可以為業(yè)務(wù)訪問響應(yīng))時,將該報文的源地址修改為負載均衡器的公網(wǎng)IP地址。
需要說明的是,在步驟503和步驟504中,訪問請求的目的地址經(jīng)過兩次修改:第一次為,虛擬路由器將訪問請求的目的地址由目的后端服務(wù)器的局域網(wǎng)IP地址修改為目的后端服務(wù)器的虛擬網(wǎng)卡的IP地址;第二次為,虛擬交換機將訪問請求的目的地址由目的后端服務(wù)器的虛擬網(wǎng)卡的IP地址修改為負載均衡器的虛擬IP地址。在一種可能的實施方式中,步驟503和步驟504可以由下述步驟直接替換:目的后端服務(wù)器所在的服務(wù)節(jié)點的虛擬交換機在接收到訪問請求時,根據(jù)網(wǎng)絡(luò)控制器下發(fā)的流表,將訪問請求的目的地址修改為負載均衡器的虛擬IP地址(即將訪問請求的目的地址由目的后端服務(wù)器的局域網(wǎng)IP地址修改為負載均衡器的虛擬IP地址),然后將訪問請求發(fā)送給目的后端服務(wù)器。替換的步驟,只需要執(zhí)行一次目的地址修改。
需要說明的是,由于業(yè)務(wù)訪問響應(yīng)的源地址和目的地址均為公網(wǎng)IP地址,因此,該業(yè)務(wù)訪問響應(yīng)可以不經(jīng)過負載均衡器準確路由到客戶端,且由于該業(yè)務(wù)訪問響應(yīng)的源地址為負載均衡器的公網(wǎng)IP地址,因此,負載均衡系統(tǒng)的內(nèi)網(wǎng)地址對客戶端不可見,客戶端根據(jù)該業(yè)務(wù)訪問響應(yīng)的源地址認為該業(yè)務(wù)訪問響應(yīng)由負載均衡器發(fā)出。
上述過程中,返程的業(yè)務(wù)訪問響應(yīng)不經(jīng)過負載均衡器,實現(xiàn)了負載均衡的DR模式。
本發(fā)明實施例提供了內(nèi)網(wǎng)訪問模式和公網(wǎng)訪問模式兩種場景下的負載均衡方法,在上述方法中,負載均衡器和后端服務(wù)器的IP地址可以配置為不同的網(wǎng)段,同時可以實現(xiàn)返程的業(yè)務(wù)訪問響應(yīng)不經(jīng)過負載均衡器,保證了網(wǎng)絡(luò)性能,解決了云計算網(wǎng)絡(luò)中DR模式下,后端服務(wù)器和負載均衡器不能跨網(wǎng)段部署的問題。
在本發(fā)明各實施例中,后端服務(wù)器可以為運行在服務(wù)節(jié)點上的虛擬機或者容器。后端服務(wù)器的地址具體為虛擬機或容器的地址。
基于同一發(fā)明構(gòu)思,參閱圖6所示,本申請實施例還提供了服務(wù)節(jié)點硬件結(jié)構(gòu)示意圖,服務(wù)節(jié)點600,包括收發(fā)器601、處理器602、存儲器603,收發(fā)器601、存儲器603均與處理器602連接,需要說明的是圖6所示的各部分之間的連接方式僅為一種可能的示例,也可以是,收發(fā)器601與存儲器603均與處理器602連接,且收發(fā)器601與存儲器603之間沒有連接,或者,也可以是其他可能的連接方式。
其中,存儲器603中存儲一組程序,處理器602用于調(diào)用存儲器603中存儲的程序,以執(zhí)行前述圖1至圖5所示的負載均衡系統(tǒng)和負載均衡方法中服務(wù)節(jié)點上的各模塊的功能。
在圖6中,處理器602可以是中央處理器(英文:central processing unit,縮寫:CPU),網(wǎng)絡(luò)處理器(英文:network processor,縮寫:NP)或者CPU和NP的組合。
處理器602還可以進一步包括硬件芯片。上述硬件芯片可以是專用集成電路(英文:application-specific integrated circuit,縮寫:ASIC),可編程邏輯器件(英文:programmable logic device,縮寫:PLD)或其組合。上述PLD可以是復(fù)雜可編程邏輯器件(英文:complex programmable logic device,縮寫:CPLD),現(xiàn)場可編程邏輯門陣列(英文:field-programmable gate array,縮寫:FPGA),通用陣列邏輯(英文:generic array logic,縮寫:GAL)或其任意組合。
存儲器601可以包括易失性存儲器(英文:volatile memory),例如隨機存取存儲器(英文:random-access memory,縮寫:RAM);存儲器601也可以包括非易失性存儲器(英文:non-volatile memory),例如快閃存儲器(英文:flash memory),硬盤(英文:hard disk drive,縮寫:HDD)或固態(tài)硬盤(英文:solid-state drive,縮寫:SSD);存儲器401還可以包括上述種類的存儲器的組合。
負載均衡器所在的物理服務(wù)器也可以采用如圖6所示的硬件結(jié)構(gòu)。本發(fā)明實施例不再贅述。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用硬件實施例、軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
這些計算機程序代碼可以存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請實施例進行各種改動和變型而不脫離本申請實施例的精神和范圍。這樣,倘若本申請實施例的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。