新四季網

一種伺服器負載均衡方法、裝置及系統的製作方法

2023-12-07 02:11:11 2

專利名稱:一種伺服器負載均衡方法、裝置及系統的製作方法
—種伺服器負載均衡方法、裝置及系統技術領域
本申請涉及負載均衡技術,特別是涉及一種伺服器負載均衡方法、裝置及系統。
背景技術:
在網際網路應用技術中,負載均衡一直是熱門話題,LVS負載均衡是其中的一種負載均衡技術。LVS的英文全稱是Linux Virtual Server,即Linux虛擬伺服器。LVS主要用於多伺服器的負載均衡,工作在網絡層,可以實現高性能、高可用的伺服器集群技術。
LVS負載均衡的系統結構如圖1所示,主要包括客戶端(Client)、虛擬伺服器 (LVS)和真實伺服器(Real Server,簡稱RS)。其中,LVS最主要的功能是提供包轉發和負載均衡,LVS通過虛擬一個對外訪問的IP(Vip),當用戶訪問vip時到達LVS,LVS根據一定的規則選擇一個RS,RS處理完成後返回給客戶端數據。
LVS目前支持VS/DR、VS/ΝΑΤ和VS/TUN三種工作模式。
VS/DR (Virtual Server via Direct Routing),即通過直接路由技術實現虛擬伺服器。VS/DR通過改寫請求報文的MAC地址,將請求發送到RS,而RS將響應直接返回給客戶。
VS/NAT (Virtual Server via Network Address Translation),即通過網絡地址轉換技術實現虛擬伺服器。當請求來到時,VS/ΝΑΤ將數據報文中的目標地址(即虛擬IP位址vip)改成具體的某臺RS,埠也改成RS的埠,然後把報文發給RS。RS處理完數據後, 需要返回給VS/NAT,然後VS/ΝΑΤ將數據包中的源地址和源埠改成vip的地址和埠,最後把數據發送出去。
VS/TUN (Virtual Server via IP Tunneling),即通過 IP 隧道技術實現虛擬伺服器。是將一個IP報文封裝在另一個IP報文的技術,這可以使得目標為一個IP位址的數據報文能被封裝和轉發到另一個IP位址。它跟VS/ΝΑΤ基本一樣,但是RS是直接返回數據給客戶端,不需要經過VS/TUN。
在上述三種工作模式下,LVS與後端的RS均需要兩層互聯,即LVS與RS處在同一個網段中並使用兩層協議通信,由此帶來的問題是限制了 LVS和RS的部署和級聯方式, LVS不能為跨網段的RS提供服務,只能使用較為扁平的網絡拓撲,從而大大局限了網絡拓撲。
為了能為多個網段的RS服務,現有的技術提出一種在VS/DR和VS/ΝΑΤ工作模式下的實現方法,該方法通過在LVS網卡上打tag來實現。
通常,伺服器的網卡通過網線與路由器/交換機埠相連以連通網絡。交換機埠一般有兩種工作模式,一種是access模式,一種是trunk模式。在access模式下,交換機埠只能屬於一個vlan (Virtual Local Area Network,虛擬區域網),對應的伺服器網卡就配置一個網段的ip ;在trunk模式下,交換機埠可以屬於多個vlan,因此,對應的伺服器網卡就可以配置多個網段的ip,為了在網卡上配置多個網段,就需要對網卡打tag,每個tag對應著一個網段。
對應到LVS的VS/DR和VS/ΝΑΤ模式,一般情況下LVS需要和後端的RS位於同一個網段,但是如果後端RS位於多個網段,就需要把LVS網卡的上聯埠設置為trunk模式, 並且在LVS的網卡上打上多個tag,然後在每個tag上配置不同的網段來實現。
這種在LVS網卡上打tag的方式可以使LVS服務於多個網段的RS,但是同一個路由器/交換機上的埠比較有限,限制了 LVS上能夠提供服務的RS數目。而且,LVS和RS 之間仍是兩層互聯,並沒有實現真正意義上的跨網段服務。
因此,需要實現一種全新的跨網段技術,使LVS能為更多不同網段的RS提供服務, 在真正意義上擴展網絡拓撲。發明內容
本申請提供了一種伺服器負載均衡方法、裝置及系統,以使LVS實現跨網段的負載均衡。
為了解決上述問題,本申請公開了一種伺服器負載均衡方法,包括
配置第一虛擬地址及其埠,和,第二虛擬地址及其埠,其中第一虛擬地址及其埠用於與客戶端建立連接,第二虛擬地址及其埠用於與真實伺服器建立連接;
當接收客戶端發來的數據包時,將該數據包中的源地址及源埠轉換為第二虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為真實伺服器的地址及其埠,然後將轉換後的數據包轉發給真實伺服器;
當接收真實伺服器發來的數據包時,將該數據包中的源地址及源埠轉換為第一虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為客戶端的真實地址及其埠,然後將轉換後的數據包轉發給客戶端。
優選的,所述將轉換後的數據包轉發給真實伺服器之前,還包括在所述轉換後的數據包中添加客戶端的真實 地址及其埠。
優選的,還包括真實伺服器收到所述轉換後的數據包,通過解析獲取客戶端的真實地址及其埠。
優選的,還包括判斷接收到的數據包的目的地址或目的埠,如果目的地址為所述第一虛擬地址,或者,目的埠為所述第一虛擬地址的埠,則所述數據包是客戶端發來的數據包;否則,是真實伺服器發來的數據包。
優選的,當接收客戶端發來的數據包時,所述轉換之前還包括根據數據包的源地址、源埠、目的地址和目的埠查詢對應的session,如果查詢到,則進行所述的轉換;其中,所述源地址和源埠為客戶端真實的地址和埠,所述目的地址和目的埠為所述第一虛擬地址及其埠。
優選的,如果未查詢到,還包括判斷是否需要新建連接,如果是,則選擇建立連接的真實伺服器,並選擇用於與所述真實伺服器建立連接的第二虛擬地址及其埠,創建 session,然後進行所述的轉換;如果否,則退出。
優選的,當接收真實伺服器發來的數據包時,所述轉換之前還包括根據數據包的源地址、源埠、目的地址和目的埠查詢對應的session,如果查詢到,則進行所述的轉換;如果未查詢到,則退出;其中,所述源地址和源埠為真實伺服器的地址和埠,所述目的地址和目的埠為所述第二虛擬地址及其埠。
本申請還提供了一種伺服器負載均衡裝置,包括
虛擬配置單元,用於配置第一虛擬地址及其埠,和,第二虛擬地址及其埠,其中第一虛擬地址及其埠用於與客戶端建立連接,第二虛擬地址及其埠用於與真實伺服器建立連接;
第一地址轉換單元,用於當接收客戶端發來的數據包時,將該數據包中的源地址及源埠轉換為第二虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為真實伺服器的地址及其埠,然後將轉換後的數據包轉發給真實伺服器;
第二地址轉換單元,用於當接收真實伺服器發來的數據包時,將該數據包中的源地址及源埠轉換為第一虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為客戶端的真實地址及其埠,然後將轉換後的數據包轉發給客戶端。
優選的,所述裝置還包括地址添加單元,用於在所述第一地址轉換單元將轉換後的數據包轉發給真實伺服器之前,在所述轉換後的數據包中添加客戶端的真實地址及其端□。
優選的,所述裝置還包括數據包判斷單元,用於判斷接收到的數據包的目的地址或目的埠,如果目的地址為所述第一虛擬地址,或者,目的埠為所述第一虛擬地址的埠,則所述數據包是客戶端發來的數據包;否則,是真實伺服器發來的數據包。
優選的,所述裝置還包括第一查詢單元,用 於根據客戶端發來的數據包的源地址、源埠、目的地址和目的埠查詢對應的session,如果查詢到,則觸發所述第一地址轉換單元;其中,所述源地址和源埠為客戶端真實的地址和埠,所述目的地址和目的埠為所述第一虛擬地址及其埠。
優選的,如果未查詢到,所述裝置還包括連接建立單元,用於判斷是否需要新建連接,如果是,則選擇建立連接的真實伺服器,並選擇用於與所述真實伺服器建立連接的第二虛擬地址及其埠,創建session,然後觸發所述第一地址轉換單元;如果否,則退出。
優選的,所述裝置還包括第二查詢單元,用於根據真實伺服器發來的數據包的源地址、源埠、目的地址和目的埠查詢對應的session,如果查詢到,則觸發所述第二地址轉換單元;如果未查詢到,則退出;其中,所述源地址和源埠為真實伺服器的地址和埠,所述目的地址和目的埠為所述第二虛擬地址及其埠。
優選的,所述裝置還包括地址解析單元,設在真實伺服器上,用於真實伺服器收到所述轉換後的數據包後,通過解析獲取客戶端的真實地址及其埠。
本申請還提供了一種伺服器負載均衡系統,包括虛擬伺服器和與之相連的真實伺服器,所述虛擬伺服器包括如上述的伺服器負載均衡裝置。
優選的,所述真實伺服器還包括地址解析單元,用於收到所述轉換後的數據包後,通過解析獲取客戶端的真實地址及其埠。
與現有技術相比,本申請包括以下優點
首先,本申請基於原VS/ΝΑΤ工作模式,在LVS和RS之間採用三層互聯,並對LVS 從客戶端和真實伺服器接收的數據包都進行源地址和目的地址的轉換,從而使LVS能為更多個不同網段的RS服務。這種三層互聯的方式實現了真正意義上的跨網段負載均衡,LVS 上能夠提供服務的RS數目不再受限制,因此可以擴展出層次化的網絡拓撲。
其次,本申請簡化了 LVS和RS的配置和運營維護,原因如下
第一,LVS和RS只需要三層互通,大大簡化了前端部署的難度,並有利於層次化地網絡拓撲;
第二,RS在接入LVS時只需要加載一個用於解析客戶端真實地址和埠的內核模塊,不需要做其他任何修改;不需要為vip添加額外配置,只需要和LVS三層互通,易於部署和維護;
第三,LVS不需要配置任何tag信息,簡化了運營維護的複雜度。
當然,實施本申請的任一產品不一定需要同時達到以上所述的所有優點。


圖1是現有技術中LVS負載均衡的系統結構圖2是現有技術中原VS/ΝΑΤ工作模式下的TCP交互流程示意圖3是本申請實施例所述跨網段的LVS負載均衡工作模式示意圖4是圖3所示工作模式下跨網段的TCP交互流程示意圖5是本申請實施例所述一種伺服器負載均衡方法的流程圖6是圖5的詳細實現流程圖7是本申請實施例中ipv4_specific. syn_recv_sock的Hook函數處理流程圖
圖8是本申請實施例中inet_stream_ops. getname Hook函數的處理流程圖9是本申請實施例所述一種伺服器負載均衡裝置的結構圖。
具體實施方式
為使本申請的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本申請作進一步詳細的說明。
本申請實現了一種跨網段的LVS負載均衡。本申請在LVS和RS之間採用三層互聯,並對LVS從客戶端和真實伺服器接收的數據包都進行源地址和目的地址的轉換,從而使LVS能為更多個不同網段的RS服務。
本申請基於原VS/ΝΑΤ工作模式,下面首先介紹原VS/ΝΑΤ工作模式下的TCP交互流程。
參照圖2,是現有技術中原VS/ΝΑΤ工作模式下的TCP交互流程示意圖。
其中,Client表不客戶端,LVS表不虛擬伺服器,RS表不真實伺服器;
cip Client ip,客戶端的 ip 地址;
cport Client port,客戶端上為cip提供服務的埠 ;
vip virtual ip, LVS上綁定的虛擬ip,供用戶客戶端訪問;
vport virtual port, LVS 上為 vip 提供服務的埠 ;
rip Real Server ip,後端真實伺服器的ip地址;
rport Real Server port,後端真實伺服器為rip提供服務的埠。
原VS/ΝΑΤ工作模式下,LVS與後端的RS是兩層互聯,即LVS與RS處在同一個網段中並使用兩層協議通信,相應的TCP交互流程如下
I) Client 端與 LVS 提供的 vip、vport 建立 TCP 連接;
2) LVS 收到 Client 端發來的數據包後,進行 DNAT (Destination Network AddressTranslation,目的網絡地址轉換),把vip、vport轉換為RS的rip和rport,然後轉發給 RS ;Client端發來的數據包中,源地址為cip,源埠為cport,目的地址為vip,目的埠為vport。經DNAT轉換後的數據包為源地址cip,源埠 cport,目的地址rip,目的埠 rport ο
3) RS處理收到的報文,然後回複數據,數據包的源ip和port是RS的rip和 rport,目的ip和port是Client的cip和cport ;由於RS的默認路由設置為LVS的ip,所以RS發向Client的報文會被路由到LVS ;
4)LVS 收到 RS 發給 Client 的報文後,進行 SNAT(Source Network Address Translation,源網絡地址轉換),把RS的rip和rport轉換為LVS的vip和vport,然後發送給Client端。
基於圖2所示的原VS/ΝΑΤ工作模式,本申請所述的跨網段的LVS負載均衡工作模式如圖3所示,其中
Client表示客戶端,LVS表示虛擬伺服器,RS表示真實伺服器,cip、cport、vip、 vport、rip、rport的含義與圖1和圖2也相同。不同的是,圖3中在LVS上還設定了 bip 和bport,含義如下
bip backend ip, LVS機器網卡上綁定的ip地址,用來與後端RS建立連接。
bport backend port, backend ip 可以使用的埠。
圖3所示工作模式的基本工作原理是LVS提供vip和vport供Client連接,連接成功後,LVS會使用bip和bport去和後端的RS建立連接,在後續的包交互過程中,LVS 主要完成以下兩個功能
第一,session的維護session中存放著vip、vport、bip和bport,分別用來關聯 LVS與Client之間的連接、LVS與RS之間的連接;
第二,在包轉發的過程中進行SNAT和DNAT,以便發向Client和RS的數據包都有正確的源和目的ip、源和目的埠。
在圖3所示工作模式下,本申請中跨網段的TCP交互流程如圖4所示,與原VS/NAT 工作模式下的TCP交互流程存在以下區別
I) LVS在處理從Client發向RS的報文時,不只進行DNAT,還需要進行SNAT,把源 ip和port修改為LVS上配置的bip和bport ;
2) LVS在處理從RS發向Client的報文時,不只進行SNAT,還需要進行DNAT,把bip 和 bport 修改為 Client 的 cip 和 cport ;
3)在發給RS的報文中添加一個自定義的tcp_option,在option中放置真實的客戶端 ip 和 port (cip、cport);
4) RS端加載自定義的TCP協議Hook模塊,該模塊會獲取報文tcp_option中的客戶端真實ip和port,以便返回給用戶程序真實的Client ip和port。
上述區別中的3)和4)並不是實現本申請必須的,是一個可選步驟,如果無需向用戶程序或其他調用程序返回客戶端真實的ip和port,則無需進行3)和4)的處理。
綜上所述,由上述內容可以看出,本申請可通過以下方法實現跨網段的LVS負載均衡。
參照圖5,是本申請實施例所述一種伺服器負載均衡方法的流程圖。
LVS進行以下處理
步驟501,配置第一虛擬地址及其埠,和,第二虛擬地址及其埠,其中第一虛擬地址及其埠用於與客戶端建立連接,第二虛擬地址及其埠用於與真實伺服器建立連接;
其中,第一虛擬地址及其埠如上述的vip和vport,第二虛擬地址及其埠如上述的bip和bport。
步驟502,當接收客戶端發來的數據包時,將該數據包中的源地址及源埠轉換為第二虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為真實伺服器的地址及其埠,然後將轉換後的數據包轉發給真實伺服器;
其中,客戶端發來的數據包的源地址及源埠為cip和cport,將其轉換為bip和 bport ;目的地址及目的端P為vip和vport,將其轉換為rip和rport。
步驟503,當接收真實伺服器發來的數據包時,將該數據包中的源地址及源埠轉換為第一虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為客戶端的真實地址及其埠,然後將轉換後的數據包轉發給客戶端。
其中,真實伺服器發來的數據包的源地址及源埠為rip和rport,將其轉換為 vip和vport· ;目的地址及目的埠為bip和bport,將其轉換為cip和cport。
需要說明的是,上述步驟502和503沒有先後順序的限制。
基於圖5,詳細的實現流程如圖6所示,具體如下
本實施例的實現流程均在NetfiIter (包過濾系統)的IP_L0CAL_INH00K點,因為從Client發來的報文目的ip是vip,會走到IP_L0CAL_IN點,從RS發來的報文目的ip是 bip,也會走到IP_L0CAL_IN。此時就可以根據目的ip是否為vip來區分是Out-1n (處理從 Client發向RS的報文)還是In-Out (處理從RS發向Client的報文)。
步驟S10,報文進入到LVS的IP_L0CAL_IN Η00Κ點進行處理;
步驟S11,判斷接收到的數據包的目的ip是否為vip ;
如果是,則為Out-1n,轉入步驟S12 ;如果否,則目的ip是bip,為In-Out,轉入步驟 S13 ;
同理,也可以判斷接收到的數據包的目的埠,如果目的埠為所述第一虛擬地址的埠 vport,則所述數據包是客戶端發來的數據包;否則,目的埠為bport,是真實伺服器發來的數據包。
以下S12 至 S26 是 Out-Ιη 流程
步驟S12,根據 cip、cport、vip 和 vport 查詢 session ;
如果查詢到與所述四元組(cip、cport、vip和vport)對應的session,表示 Client與對應的RS之間已經建立連接,轉入步驟S22 ;如果未查詢到,表示Client與對應的RS之間未建立連接,本次傳輸是該Client第一次與對應的RS建立連接,轉入步驟S14。
其中,所述cip、cport是數據包的源地址、源埠,vip、vport是數據包的目的地址和目的埠。
步驟S14,判斷是否需要新建連接;
一般的標準是檢查是否是SYN包,如果是,轉入步驟S16 ;如果否,返回NF_ACCEPT,退出處理。
步驟S16,選擇 RS;
即根據預定義的負載均衡策略選擇一個與當前Client建立連接的RS,所述負載均衡策略可選用現有技術中的任何一種策略。選擇成功後,轉入步驟S18。
步驟S18,選擇 backend ip 和 port ;
所述bip和bport用於LVS與S16選擇的RS建立連接。本實施例中,backend ip 是用戶態的工具釆用setsockopt的方式發送到內核中的,LVS會利用輪詢的方式來選擇 backend ip 和 port。
步驟S20,創建 session ;
步驟S22,DNAT :將 vip、vport 轉換為 rip、rport ;
步驟S24,SNAT :將 cip、cport 轉換為 bip、bport ;
步驟S26,插入 tcp—option,option 中存放客戶端的真實 ip 和 port (cip、cport), 進入 IP—LOCAL—OUT 點。
本步驟是可選步驟。
以下S13 至 S17 是 In-Out 流程
步驟S13,根據 bip、bport、rip 和 rport 查詢 session ;
如果查詢到與所述四元組(bip、bport、rip和rport)對應的session,表示RS與對應的Client之間已經建立連接,轉入步驟S15 ;如果未查詢到,表示RS與對應的Client 之間未建立連接,返回NF—ACCEPT,退出處理。
步驟S15,SNAT :將 rip、rport 轉換為 vip、vport ;
步驟S17,DNAT :將 bip、bport 轉換為 cip、cport,進入 IP—LOCAL—OUT 點。
上述流程中,如果選擇執行步驟S26,則對應的RS中還需配置加載一個內核模塊, 在TCP協議中所述內核模塊為Hook模塊,用於在RS收到所述轉換後的數據包後,通過解析獲取客戶端的真實ip及port。
在TCP 協議中,Hook 模塊是通過 Hook inet—stream—ops. getname 與 ipv4— specific. syn_recv_sock 這兩個函數實現。其中,通過 Hookipv4_specific. syn_recv_ sock 函數,解析出 Client ip 與 port 並存入 socket 的 sk—user—data 中;通過 Hook inet— stream—ops. getname 函數,在應用層調用 accet、getpeername 時,返回 sk—user—data 中保存的Client ip與port。
參照圖7,ipv4—specif ic. syn—recv—sock 的 Hook 函數處理流程如下
步驟701,調用原有的 tcp—V4—syn—recv—sock 函數創建 sock ;
步驟702,判斷sock是否創建成功,並且sk—user—data是否為空;
如果是,則轉入步驟703 ;如果否,則返回錯誤;
步驟703,解析報文中的tcp—option,解析出cip和cport,並放入sk—user—data 中;
步驟704,返回 socket。
相比於原有流程,只是添加了自定義tcp—option的解析。
參照圖8,inet—stream—ops. getname Hook函數的處理流程如下
步驟801,調用原有的inet—getname函數解析socket的相關信息;
步驟802,判斷所述函數是否正常返回並且sk_user_data是否存在cip和cport信息;
如果是,則轉入步驟803 ;如果否,則返回錯誤;
步驟803,從sk_user_data中解析出cip和cport信息,並更新上述調用的socket 信息;
步驟804,返回調用結果。
相比於原有流程,只是添加了從sk_user_data中解析cip和cport的操作。
需要說明的是,對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請並不受所描述的動作順序的限制,因為依據本申請,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作並不一定是本申請所必須的。
綜上所述,本申請實施例提供的LVS負載均衡方法在LVS和RS之間採用三層互聯,進而為實現三層互聯對LVS從客戶端和真實伺服器接收的數據包都進行源地址和目的地址的轉換,從而使LVS能為更多個不同網段的RS服務。這種三層互聯的方式實現了真正意義上的跨網段負載均衡,LVS上能夠提供服務的RS數目不再受限制,因此可以擴展出層次化的網絡拓撲。
更進一步分析,現有的DR模式是通過修改MAC的方式把數據包轉發給RS,所以 LVS工作在鏈路層,所以無法進行跨網段。原有的NAT模式僅僅修改Out-1n報文的目的 IP,並且RS回復的報文必須經過LVS以便進行地址轉換,所以RS必須把默認網關指向LVS, 而RS與默認網關必須在同一網段,此時LVS的角色類似RS上聯的出口路由器,所以限制了 LVS和RS必須在同一網段。而本申請提出的方式在Out-1n時同時修改了源 和目的IP,此時為了使RS回復的報文能經過LVS,只需要新的源IP和RS在內網中是三層互通的,這樣 RS回復的報文(目的IP是LVS的第二虛擬IP)就可以回到LVS以便進行地址轉換,此時 LVS的角色類似7層的負載均衡軟體(HAPiOxy等),只不過是工作在內核中而已,因此可以實現跨網段的功能。
而且,本申請實施例所述方法還大大簡化了 LVS和RS的配置和運營維護,下面通過與其他方式相比較進行說明。
第一,背景技術中提到,在LVS的VS/DR和VS/ΝΑΤ工作模式下,通過在LVS網卡上打tag的方式可以使LVS服務於多個網段的RS,但是這種方式的配置和運營維護十分複雜, 這種複雜性體現在如下方面
I)更改交換機埠工作模式的工作較為危險,容易導致網卡連接不上,增加運營維護成本默認情況下,交換機埠工作在access模式,當需要更改為trunk模式時,需要首先修改伺服器上的配置然後重啟網絡,再由運維部門同事修改埠工作模式。如果伺服器上的配置修改有誤,則工作模式修改後會導致網絡無法連接,即使修改回原來的工作模式也不能正常連接,只能去現場操作,增加了運營維護的成本。
2)需要跨部門合作,步驟比較繁瑣首先要和業務部門同事確認後端RS所處的網段,再和運維部門同事確認該網段所處於的vlan,然後為每個vlan號配置網卡的tag設置。
3)後期的維護較為複雜如果後端的RS由於機器搬遷或者其他原因更換了網段,需要重新確認vlan號,再重新設置網卡的tag設置。
第二,在原有的VS/TUN工作模式的基礎上,LVS與後端RS經改造後也可以實現三層互聯(跨多個網段)的功能,但是在該模式下,RS的配置較為複雜,體現在如下方面
I)RS上需要建立tunnel設備,tunnel設備依賴於ipip模塊(IPIP隧道協議是使用在兩個路由器間對IP數據包進行封裝的簡單協議),因此需要為內核添加ipip模塊的支持,另外RS的穩定性也會依賴於ipip的穩定性;
2)RS上需要為每個vip建立一個tunnel設備,同時配置tunnel設備的arp_ annouce和arp_ignore選項,當vip較多時配置會較為繁瑣,並且容易出錯;
3)在修改vip時,容易出現忘記刪除原tunnel設備及vip等問題,導致配置出錯。
相比於上述兩種方式,本申請不僅能夠實現三層互聯(跨多個網段)的功能,其配置和運營維護的簡化性體現在以下方面
1)LVS和RS只需要三層互通,大大簡化了前端部署的難度,並有利於層次化地網絡拓撲;
2) RS在接入LVS時只需要加載一個內核模塊(Hook),不需要做其他任何修改;不需要為vip添加額外配置,只需要和LVS三層互通,易於部署和維護;
3) LVS不需要配置任何tag信息,簡化了運營維護的複雜度。
基於上述方法實施例的說明,本申請還提供了相應的裝置和系統實施例。
參照圖9,是本申請實施例所述一種伺服器負載均衡裝置的結構圖。
所述伺服器負載均衡裝置可設在LVS上運行,具體包括虛擬配置單元10、第一地址轉換單元20和第二地址轉換單元30,其中,
虛擬配置單元10,用於配置第一虛擬地址及其埠,和,第二虛擬地址及其埠, 其中第一虛擬地址及其埠用於與客戶端建立連接,第二虛擬地址及其埠用於與真實伺服器建立連接;
第一地址轉換單元20,用於當接收客戶端發來的數據包時,將該數據包中的源地址及源埠轉換為第二虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為真實伺服器的地址及其埠,然後將轉換後的數據包轉發給真實伺服器;
第二地址轉換單元30,用於當接收真實伺服器發來的數據包時,將該數據包中的源地址及源埠轉換為第一虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為客戶端的真實地址及其埠,然後將轉換後的數據包轉發給客戶端。
可選的,所述伺服器負載均衡裝置還可以包括
地址添加單元40,用於在所述第一地址轉換單元20將轉換後的數據包轉發給真實伺服器之前,在所述轉換後的數據包中添加客戶端的真實地址及其埠。
可選的,如果設置地址添加單元40,則所述伺服器負載均衡裝置還可以包括
地址解析單元50,設在真實伺服器上,用於真實伺服器收到所述轉換後的數據包後,通過解析獲取客戶端的真實地址及其埠。
優選的,所述伺服器負載均衡裝置還可以包括
數據包判斷單元60,用於判斷接收到的數據包的目的地址或目的埠,如果目的地址為所述第一虛擬地址,或者,目的埠為所述第一虛擬地址的埠,則所述數據包是客戶端發來的數據包;否則,是真實伺服器發來的數據包。
優選的,所述伺服器負載均衡裝置還可以包括
第一查詢單元70,用於根據客戶端發來的數據包的源地址、源埠、目的地址和目的埠查詢對應的session,如果查詢到,則觸發所述第一地址轉換單元20 ;其中,所述源地址和源埠為客戶端真實的地址和埠,所述目的地址和目的埠為所述第一虛擬地址及其埠。
優選的,如果未查詢到,所述伺服器負載均衡裝置還可以包括
連接建立單元80,用於判斷是否需要新建連接,如果是,則選擇建立連接的真實伺服器,並選擇用於與所述真實伺服器建立連接的第二虛擬地址及其埠,創建session,然後觸發所述第一地址轉換單元20 ;如果否,則退出。
優選的,所述伺服器負載均衡裝置還可以包括
第二查詢單元90,用於根據真實伺服器發來的數據包的源地址、源埠、目的地址和目的埠查詢對應的session,如果查詢到,則觸發所述第二地址轉換單元30 ;如果未查詢到,則退出;其中,所述源地址和源埠為真實伺服器的地址和埠,所述目的地址和目的埠為所述第二虛擬地址及其埠。
對於上述裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單, 相關之處參見方法實施例的部分說明即可。
基於圖9所示的伺服器負載均衡裝置,本申請實施例還提供了一種伺服器負載均衡系統。所述伺服器負載均衡系統主要包括虛擬伺服器和與所述虛擬伺服器相連的跨網段的多個真實伺服器,其中所述虛擬伺服器上可以設置上述虛擬配置單元10、第一地址轉換單元20、第二地址轉換單元30、地址添加單元40、數據包判斷單元60、第一查詢單元70、連接建立單元80、第二查詢單元90,所述真實伺服器上可以設置上述地址解析單元50。
上述伺服器負載均衡裝置及伺服器負載均衡系統實現了一種全新的跨網段技術, 可以使網絡拓撲得到很大的改進,並簡化了 LVS和RS的配置,減少了運維的成本。
本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。
而且,上文中的「和/或」表示本文既包含了 「和」的關係,也包含了 「或」的關係, 其中如果方案A與方案B是「和」的關係,則表示某實施例中可以同時包括方案A和方案 B ;如果方案A與方案B是「或」的關係,則表示某實施例中可以單獨包括方案A,或者單獨包括方案B。
以上對本申請所提供的一種伺服器負載均衡方法、裝置及系統,進行了詳細介紹, 本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本申請的方法及其核心思想;同時,對於本領域的一般技術人員,依據本申請的思想,在具體實施方式
及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
權利要求
1.一種伺服器負載均衡方法,其特徵在於,包括配置第一虛擬地址及其埠,和,第二虛擬地址及其埠,其中第一虛擬地址及其埠用於與客戶端建立連接,第二虛擬地址及其埠用於與真實伺服器建立連接;當接收客戶端發來的數據包時,將該數據包中的源地址及源埠轉換為第二虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為真實伺服器的地址及其埠,然後將轉換後的數據包轉發給真實伺服器;當接收真實伺服器發來的數據包時,將該數據包中的源地址及源埠轉換為第一虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為客戶端的真實地址及其埠,然後將轉換後的數據包轉發給客戶端。
2.根據權利要求1所述的方法,其特徵在於,所述將轉換後的數據包轉發給真實伺服器之前,還包括在所述轉換後的數據包中添加客戶端的真實地址及其埠。
3.根據權利要求2所述的方法,其特徵在於,還包括真實伺服器收到所述轉換後的數據包,通過解析獲取客戶端的真實地址及其埠。
4.根據權利要求1至3任一所述的方法,其特徵在於,還包括判斷接收到的數據包的目的地址或目的埠,如果目的地址為所述第一虛擬地址,或者,目的埠為所述第一虛擬地址的埠,則所述數據包是客戶端發來的數據包;否則,是真實伺服器發來的數據包。
5.根據權利要求4所述的方法,其特徵在於,當接收客戶端發來的數據包時,所述轉換之前還包括根據數據包的源地址、源埠、目的地址和目的埠查詢對應的session,如果查詢到,則進行所述的轉換;其中,所述源地址和源埠為客戶端真實的地址和埠,所述目的地址和目的埠為所述第一虛擬地址及其埠。
6.根據權利要求5所述的方法,其特徵在於,如果未查詢到,還包括判斷是否需要新建連接,如果是,則選擇建立連接的真實伺服器,並選擇用於與所述真實伺服器建立連接的第二虛擬地址及其埠,創建session,然後進行所述的轉換;如果否,則退出。
7.根據權利要求4所述的方法,其特徵在於,當接收真實伺服器發來的數據包時,所述轉換之前還包括根據數據包的源地址、源埠、目的地址和目的埠查詢對應的session,如果查詢到,則進行所述的轉換;如果未查詢到,則退出;其中,所述源地址和源埠為真實伺服器的地址和埠,所述目的地址和目的埠為所述第二虛擬地址及其埠。
8.一種伺服器負載均衡裝置,其特徵在於,包括虛擬配置單元,用於配置第一虛擬地址及其埠,和,第二虛擬地址及其埠,其中第一虛擬地址及其埠用於與客戶端建立連接,第二虛擬地址及其埠用於與真實伺服器建立連接;第一地址轉換單元,用於當接收客戶端發來的數據包時,將該數據包中的源地址及源埠轉換為第二虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為真實伺服器的地址及其埠,然後將轉換後的數據包轉發給真實伺服器;第二地址轉換單元,用於當接收真實伺服器發來的數據包時,將該數據包中的源地址及源埠轉換為第一虛擬地址及其埠,將該數據包的目的地址及目的埠轉換為客戶端的真實地址及其埠,然後將轉換後的數據包轉發給客戶端。
9.根據權利要求8所述的裝置,其特徵在於,還包括地址添加單元,用於在所述第一地址轉換單元將轉換後的數據包轉發給真實伺服器之前,在所述轉換後的數據包中添加客戶端的真實地址及其埠。
10.根據權利要求8或9所述的裝置,其特徵在於,還包括數據包判斷單元,用於判斷接收到的數據包的目的地址或目的埠,如果目的地址為所述第一虛擬地址,或者,目的埠為所述第一虛擬地址的埠,則所述數據包是客戶端發來的數據包;否則,是真實伺服器發來的數據包。
11.根據權利要求10所述的裝置,其特徵在於,還包括第一查詢單元,用於根據客戶端發來的數據包的源地址、源埠、目的地址和目的埠查詢對應的session,如果查詢到,則觸發所述第一地址轉換單元;其中,所述源地址和源埠為客戶端真實的地址和埠,所述目的地址和目的埠為所述第一虛擬地址及其埠。
12.根據權利要求11所述的裝置,其特徵在於,如果未查詢到,還包括連接建立單元,用於判斷是否需要新建連接,如果是,則選擇建立連接的真實伺服器,並選擇用於與所述真實伺服器建立連接的第二虛擬地址及其埠,創建session,然後觸發所述第一地址轉換單元;如果否,則退出。
13.根據權利要求10所述的裝置,其特徵在於,還包括第二查詢單元,用於根據真實伺服器發來的數據包的源地址、源埠、目的地址和目的埠查詢對應的session,如果查詢到,則觸發所述第二地址轉換單元;如果未查詢到,則退出;其中,所述源地址和源埠為真實伺服器的地址和埠,所述目的地址和目的埠為所述第二虛擬地址及其埠。
14.根據權利要求9所述的裝置,其特徵在於,還包括地址解析單元,設在真實伺服器上,用於真實伺服器收到所述轉換後的數據包後,通過解析獲取客戶端的真實地址及其埠。
15.一種伺服器負載均衡系統,其特徵在於,包括虛擬伺服器和與之相連的真實伺服器,所述虛擬伺服器包括如上述權利要求8至13任一權利要求所述的伺服器負載均衡裝置。
16.根據權利要求15所述的系統,其特徵在於,所述真實伺服器還包括地址解析單元,用於收到所述轉換後的數據包後,通過解析獲取客戶端的真實地址及其埠。
全文摘要
本申請提供了一種伺服器負載均衡方法、裝置及系統,以使LVS實現跨網段的負載均衡。在LVS和RS之間採用三層互聯,並對LVS從客戶端和真實伺服器接收的數據包都進行源地址和目的地址的轉換,從而使LVS能為更多個不同網段的RS服務。這種三層互聯的方式實現了真正意義上的跨網段負載均衡,LVS上能夠提供服務的RS數目不再受限制,因此可以擴展出層次化的網絡拓撲。而且,簡化了LVS和RS的配置和運營維護。
文檔編號H04L29/08GK103023942SQ201110295820
公開日2013年4月3日 申請日期2011年9月27日 優先權日2011年9月27日
發明者陳建, 唐會軍 申請人:奇智軟體(北京)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀