本申請公開了一種IPVS集群中的數據包處理方法及裝置,該方法接收發送給IPVS集群的數據包,基于一致性哈希算法,在所述IPVS集群中確定所述數據包所屬的LVS,根據確定出的LVS,對所述數據包進行處理,其中,所述IPVS集群中至少包括兩個LVS。通過上述方法,即使IPVS集群中的LVS的數量發生變化,也只會影響IPVS集群中的小部分Session,而不會使IPVS集群中的大部分的Session連接失效,從而,IPVS集群可以只對該小部分Session進行處理即可,提高了IPVS集群的處理效率。
【技術實現步驟摘要】
本申請涉及計算機
,尤其涉及一種因特網協議虛擬服務器(InternetProtocol Virtual Server,IPVS)集群中的數據包處理方法及裝置。
技術介紹
目前,IPVS集群當與終端進行交互時,可在自身中選定一個Linux虛擬服務器(Linux Virtual Server,LVS),由該LVS與終端建立會話(Sess1n)連接,并基于該Sess1n連接與該終端進行交互,對終端發送的數據包進行處理。同理,IPVS集群中的各LVS在與多個終端進行交互時,可以建立起多個Sess1n連接,其中,每個LVS可分別記錄一張Sess1n表,用于維護與自己對應的終端之間的Sess1n。在現有技術中,一般采用基于靜態哈希算法實現等價路由的方式,為各終端發送的數據包選定LVS,進而對各數據包在IPVS集群中進行分發處理。但是,一旦IPVS集群中的LVS的數量發生變化,則在變化后,重新為各終端發送的數據包選定的LVS可能都會發生改變,由于每個LVS只記錄之前與自己對應的終端之間的Sess1n,并沒有其他終端的Sess1n,從而導致IPVS集群中的大部分的Sess1n連接失效,因此,IPVS集群中的各LVS要與各終端重新建立Sess1n連接,降低了 IPVS集群的處理效率。
技術實現思路
本申請實施例提供一種IPVS集群中的數據包處理方法及裝置,用以解決現有技術中當IPVS集群中的LVS的數量發生變化后,IPVS集群中的大部分的Sess1n連接失效的問題。本申請實施例提供的一種IPVS集群中的數據包處理方法,包括:接收發送給IPVS集群的數據包,其中,所述IPVS集群中至少包括兩個LVS ;基于一致性哈希算法,在所述IPVS集群中確定所述數據包所屬的LVS ;根據確定出的LVS,對所述數據包進行處理。本申請實施例提供的一種IPVS集群中的數據包處理裝置,包括:接收模塊,用于接收發送給IPVS集群的數據包,其中,所述IPVS集群中至少包括兩個LVS ;確定模塊,用于基于一致性哈希算法,在所述IPVS集群中確定所述數據包所屬的LVS ;處理模塊,用于根據確定出的LVS,對所述數據包進行處理。本申請實施例提供一種IPVS集群中的數據包處理方法及裝置,該方法接收發送給IPVS集群的數據包,基于一致性哈希算法,在所述IPVS集群中確定所述數據包所屬的LVS,根據確定出的LVS,對所述數據包進行處理,其中,所述IPVS集群中至少包括兩個LVS。通過上述方法,即使IPVS集群中的LVS的數量發生變化,也只會影響IPVS集群中的小部分Sess1n,而不會使IPVS集群中的大部分的Sess1n連接失效,從而,IPVS集群可以只對該小部分Sess1n進行處理即可,提高了 IPVS集群的處理效率。【附圖說明】此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:圖1為本申請實施例提供的IPVS集群中的數據包處理過程;圖2示出了一種典型的IPVS集群系統拓撲圖;圖3為將LVS映射至預設的哈希環的示意圖;圖4為將接收的發送給IPVS集群的數據包映射數據包至預設的哈希環的示意圖;圖5為刪除某節點后,預設的哈希環上的映射示意圖;圖6為增加某節點后,預設的哈希環上的映射示意圖;圖7示出了在本申請實施例中,當本地LVS接收到終端發送給IPVS集群的數據包時,對該數據包進行處理的詳細過程;圖8示出了在本申請實施例中,當本地LVS接收到其他LVS發送的組播數據包時,所執行處理的詳細過程;圖9為本申請實施例提供的IPVS集群中的數據包處理裝置結構示意圖。【具體實施方式】為使本申請的目的、技術方案和優點更加清楚,下面將結合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。圖1為本申請實施例提供的IPVS集群中的數據包處理過程,具體包括以下步驟:SlOl:接收發送給IPVS集群的數據包,其中,所述IPVS集群中至少包括兩個LVS。本申請實施例提供的IPVS集群中的數據包處理方法的執行主體可以是:IPVS集群中的任一 LVS,或者管理IPVS集群的管理服務器。所述的執行主體并不構成對本申請的限定,為了便于描述,本申請實施例均以執行主體是所述IPVS集群中的任一 LVS為例進行說明,以下將該執行主體稱為:本地LVS。圖2示出了一種典型的IPVS集群系統拓撲圖,可以看到,IPVS集群中有多個LVS (只列出其中3個),該多個LVS之間通過路由器和/或交換機相互連接,同時,IPVS集群也通過路由器和/或交換機,以及局域網、廣域網等互聯網絡與各終端連接,并為各終端提供業務服務。一般的,任一終端當與IPVS集群進行交互時,可向IPVS集群發送數據包(所述的數據包包括但不限于業務數據包、連接數據包等),進而,由IPVS集群在自身中選定一個LVS,然后,將接收到的數據包轉發給選定的LVS進行處理,相應的,該LVS可與該終端建立Sess1n連接,此后基于該Sess1n連接與該終端進行交互。類似的,多個終端與IPVS集群之間的交互可以建立起多個Sess1n連接,每個LVS分別維護一張Sess1n表,用于記錄與自己對應的終端之間的Sess1n。考慮到各LVS的負載均衡,在現有技術中,一般采用基于靜態哈希算法實現等價路由的方式,為各終端發送的數據包選定LVS,進而對各數據包進行分發。但是,一旦IPVS集群中的LVS的數量發生變化,則在變化后,重新為各終端發送的數據包選定的LVS可能都會發生改變,而且,每個LVS只記錄之前與自己對應的終端之間的Sess1n,并沒有其他終端的Sess1n,從而導致IPVS集群中的大部分的Sess1n連接失效,因此,IPVS集群中的各LVS要與各終端重新建立Sess1n連接,降低了 IPVS集群的處理效率。在本申請實施例中,本地LVS可以接收到的、發送給IPVS集群的數據包可以是由終端發送的數據包,也可以是由其他LVS發送的組播數據包。S102:基于一致性哈希算法,在所述IPVS集群中確定所述數據包所屬的LVS。S103:根據確定出的LVS,對所述數據包進行處理。在本申請實施例中,當本地LVS接收到終端發送的數據包時,可基于一致性哈希算法,確定將該數據包是在本地LVS上進行處理,還是轉發至其他LVS上進行處理。通過上述方法,即使IPVS集群中的LVS的數量發生變化,僅會影響到原有的小部分Sess1n連接,而不用重新建立原有的大部分Sess1n連接,因此,提高了 LVS的處理效率。下面進行詳細的說明。在本申請實施例中,對于上述步驟S101,當本地LVS接收發送給IPVS集群的數據包時,在網絡層通過分析該數據包的IP頭,為該數據包進行路由選擇,若IP頭中的目的IP地址即為本地LVS的IP地址,可將該數據包遞交至協議棧上一層,并可根據IP頭中的標識符和片偏移,對該當前第1頁1 2 3 4 本文檔來自技高網...
【技術保護點】
一種IPVS集群中的數據包處理方法,其特征在于,包括:接收發送給因特網協議虛擬服務器IPVS集群的數據包,其中,所述IPVS集群中至少包括兩個Linux虛擬服務器LVS;基于一致性哈希算法,在所述IPVS集群中確定所述數據包所屬的LVS;根據確定出的LVS,對所述數據包進行處理。
【技術特征摘要】
【專利技術屬性】
技術研發人員:李鵬,
申請(專利權)人:新浪網技術中國有限公司,
類型:發明
國別省市:北京;11
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。