一種雙控制器系統的負載均衡方法
2023-04-28 12:42:51 2
專利名稱:一種雙控制器系統的負載均衡方法
技術領域:
本發明涉及一種雙控制器系統的負載均衡方法,特別是涉及一種使用公用IP位址的雙控制器系統的負載均衡方法。
背景技術:
計算機集群簡稱集群(Cluster),是一起運作以提供高可用性資源的許多伺服器的集合。就像冗餘部件可以使用戶免於硬體故障一樣,集群技術則可以使用戶免於整個系統的癱瘓以及作業系統和應用層次的故障。一個伺服器集群包含多臺擁有共享數據存儲空間的伺服器,每臺伺服器通常被稱為節點(node),各伺服器之間通過區域網進行互相連接; 當其中一臺伺服器發生故障時,它所運行的應用程式將交由與之相連的伺服器自動接管。 集群技術不僅僅能夠提供更長的運行時間,它在儘可能地減少與既定停機有關的停機時間方面同樣有著重要意義。例如,如果使用集群,用戶可以在關閉一臺伺服器的同時,不必與用戶斷開即可進行應用、硬體、作業系統的「流動升級」。集群系統通過功能整合和故障過渡技術實現了系統的高可用性和高可靠性並且集群技術還能夠提供相對低廉的總體擁有成本和強大靈活的系統擴充能力。目前在計算機虛擬化集群中,雙控制器(dual controller)系統作為一個從 (slave)節點,統一由主(master)節點來分配負載以達到負載均衡(loadbalancing);在一個從節點的雙控制器,各自又把自己本地的網卡(Networldnterface Card,簡稱NIC)綁定 (bonding)。上述兩種方法,均提供了高可用性、高能效的虛擬化服務。在雙控制器節點中,兩個控制器彼此的網卡相對獨立,每個控制器的網絡設備至少有一個IP位址,以供用戶分別訪問,當其中一個控制器發生故障時,另一個控制器可提供失效備援(failover),失效備援為系統備援能力的一種,當系統中一項設備失效而無法運行時,另一項設備可自動接替原失效設備所執行的工作。如此便實現了高可用性的虛擬化服務。但是,現有技術中當用戶訪問系統並發出任務請求時,主節點根據特定的算法,選擇承擔該任務的控制器,同一節點上的兩個控制器之間僅存在失效備援的關係。當所有用戶都訪問雙控制器節點中的某一個控制器時,該控制器滿負載而另一個控制器卻空閒,這樣會導致負載失衡,出現熱點。此外,理論上,不同MAC(英文全稱Media Access Control,中文名稱介質訪問控制)地址(MAC地址,或稱為硬體地址,用來定義網絡設備的位置。一個主機會有一個IP 地址,而每個網絡設備會有一個專屬於它的MAC地址,MAC地址是燒錄在網卡內的)、相同IP 地址,會形成衝突,致使TCP/IP網絡無法通訊。因為,當某客戶端主機想訪問某IP位址卻發現ARP(英文全稱Address Resolution Protocol,中文名稱地址解析協議,數據包在節點之間的移動都是由ARP負責將IP位址映射到MAC地址上來完成的)緩存表中沒有對應的MAC地址時,會進行廣播問詢這個IP位址的MAC地址是什麼?而其將得到來自不同主機的不同MAC地址的答覆,因此客戶端主機將無所適從,無法通訊。
發明內容
為了解決上述現有技術中所存在的問題,本發明的目的在於提供一種使用公用IP 地址的雙控制器系統的負載均衡方法,該方法能夠使一個使用公用IP位址的雙控制器系統節點上的不同控制器之間的負載均衡,並解決不同MAC地址、相同IP位址的衝突問題,從而實現了雙控制器系統的高能效虛擬化服務。本發明所提供的一種雙控制器系統的負載均衡方法,包括以下步驟當雙控制器系統接收到訪問者對控制器MAC地址的ARP問詢時,採集同一雙控節點的兩個控制器的CPU佔用率;指定CPU佔用率較小的一個控制器響應ARP問詢並進行登記,而另一控制器對ARP 問詢不予響應;當雙控制器系統接收到訪問者的IP數據包時,判斷本地網絡連接的數量是否唯一,若連接數量唯一,則不移轉至另一控制器而直接處理數據包,若連接數量不唯一,則判斷本地網絡的控制器的CPU佔用率是否超過一個預定閾值,如果未超過該閾值,則直接處理數據包;如果本地網絡的控制器的CPU佔用率超過該閾值時,則檢測另一控制器的CPU空閒率是否低於一個預定閾值,如果未低於該閾值,則通過本地網絡的控制器直接處理數據包;如果另一控制器的CPU空閒率低於該閾值,則令本地網絡的控制器對當前訪問者的IP數據包不再應答,並通知另一控制器查驗(Ping)訪問者;當訪問者接收到另一控制器的查驗(ping)包後,將其ARP緩存表中與公用IP位址相對應的MAC地址更新為另一控制器的MAC地址。上述本發明所提供的雙控制器系統的負載均衡方法,由於先比較兩個控制器上的負載狀況,然後進行負載均衡處理並同步信息,因此既可以解決現有技術的雙控制器系統中不同MAC地址、相同IP位址形成衝突的問題,還能夠根據網絡對單個控制器的CPU佔用率及CPU空閒率,部分地進行失效備援,從而實現了雙控制器系統的高能效虛擬化服務。
圖1為本發明的雙控制器系統的負載均衡方法所運行的雙控制器系統的系統架構示意圖;圖2為本發明的雙控制器系統的負載均衡方法的步驟流程圖。
具體實施例方式請參考圖1,圖1為本發明的雙控制器系統的負載均衡方法所運行的雙控制器系統的系統架構示意圖。如圖1所示,由於本發明在同一雙控制器節點的兩個控制器Co、Cl 之間加入了流量統計模塊10、負載分配模塊20和通信模塊30,因此,當接受任務時,系統會先比較兩個控制器⑶、Cl上的負載狀況,然後進行負載均衡處理並同步信息。在雙控制器系統中,控制器C0、C1都有自己的MAC地址,即便在同一個控制器的單獨控制下,由於綁定模式的不同,也允許有一個以上MAC地址存在的情況。因此,本發明的目的之一是首先要解決不同MAC地址、相同IP位址的衝突問題。
網絡通訊雙方是MAC地址找MAC地址,IP位址只是抽象的名字。通訊雙方的ARP 緩存表中,MAC地址與IP位址是一一對應的。也就是說,每一個雙控制器系統的訪問者,在同一時刻,只知道雙控制器系統的一個控制器的網絡設備的MAC地址,此MAC地址直到有網絡設備發生更新時才會變化,其與公用IP位址是相對應的。那麼,當訪問者最初通過ARP緩存表問詢MAC地址時,先讓雙控制器系統根據兩個控制器的CPU佔用程度的比較結果,指定CPU佔用程度較少的一方控制器響應ARP問詢,而另一控制器對ARP問詢不予理睬,從而避免了不同MAC地址、相同IP位址的衝突。圖2為本發明的雙控制器系統的負載均衡方法的步驟流程圖。如圖2中所示的步驟流程圖可知,本發明所提供的一種雙控制器系統的負載均衡方法,包括以下步驟當雙控制器系統接收到訪問者對控制器MAC地址的ARP問詢時,採集同一雙控節點的兩個控制器CO、Cl的CPU佔用率(步驟200);指定CPU佔用率較小的一個控制器CO響應ARP問詢並進行登記,而另一控制器Cl 對ARP問詢不予響應(步驟201);當雙控制器系統接收到訪問者的IP數據包時(步驟202),判斷本地網絡連接的數量是否唯一(步驟20 ,若連接數量唯一,則不移轉至另一控制器Cl而直接處理數據包 (步驟205),若連接數量不唯一,則判斷本地網絡的控制器CO的CPU佔用率是否超過一個預定閾值(步驟204),如果未超過該閾值,則直接處理數據包(步驟205);如果本地網絡的控制器CO的CPU佔用率超過該閾值時,則檢測另一控制器Cl的 CPU空閒率是否低於一個預定閾值(步驟206),如果未低於該閾值,則通過本地網絡的控制器CO直接處理數據包(步驟205);如果另一控制器Cl的CPU空閒率低於該閾值,則令本地網絡的控制器CO對當前訪問者的IP數據包不再應答,並通知另一控制器Cl查驗(ping)訪問者(步驟207);當訪問者接收到另一控制器Cl的查驗(ping)包後,將其ARP緩存表中與公用IP 地址相對應的MAC地址更新為另一控制器Cl的MAC地址(步驟208)。通過上述本發明的雙控制器系統的負載均衡方法,系統管理員可設定一個網絡的單個控制器CO的CPU佔用率閾值,例如為80%,並可再設定另一控制器Cl的CPU空閒率閾值,例如為30%。此外,還須確認是否是同一個連接(即,來自同一個端的請求)造成,也就是判斷本地網絡連接的數量是否唯一,若連接數量大於1,則可能需要進一步檢測另一控制器Cl的CPU空閒率是否低於一個預定閾值,若連接數量等於1,則不必移轉至另一控制器 Cl,從而避免了現有技術的雙控制器系統中不同MAC地址、相同IP位址形成衝突的問題。當單個控制器CO的CPU佔用率超過閾值時,便去檢測另一控制器Cl的CPU空閒率是否低於閾值。如果控制器Cl的CPU空閒率低於閾值,則控制器CO對當前的一部分訪問者的IP數據包將不再應答,並通知控制器Cl查驗(ping)這些訪問者。如此,當訪問者收到控制器Cl的查驗(ping)包時,它的ARP緩存表中與公用IP位址相對應的MAC地址會被更新為控制器Cl的MAC地址。以後訪問者會自動與單個控制器Cl通訊,它的服務將由控制器Cl來承擔。即,能夠根據網絡對單個控制器的CPU佔用率及CPU空閒率,部分地進行失效備援,從而實現了雙控制器系統的高能效虛擬化服務。以上所述僅為本發明其中的較佳實施例而已,並非用來限定本發明的實施範圍; 即凡依本發明權利要求所作的均等變化與修改,皆為本發明專利範圍所涵蓋。
權利要求
1.一種雙控制器系統的負載均衡方法,其特徵在於,所述方法包括以下步驟當雙控制器系統接收到訪問者對控制器MAC地址的ARP問詢時,採集同一雙控節點的兩個控制器的CPU佔用率;指定CPU佔用率較小的一個控制器響應所述ARP問詢並進行登記,而另一控制器對所述ARP問詢不予響應;當所述雙控制器系統接收到訪問者的IP數據包時,判斷本地網絡連接的數量是否唯一,若連接數量唯一,則不移轉至另一控制器而直接處理數據包,若連接數量不唯一,則判斷本地網絡的控制器的CPU佔用率是否超過一個預定閾值,如果未超過該閾值,則直接處理數據包;如果本地網絡的控制器的CPU佔用率超過該閾值時,則檢測另一控制器的CPU空閒率是否低於一個預定閾值,如果未低於該閾值,則通過本地網絡的控制器直接處理數據包;如果另一控制器的CPU空閒率低於該閾值,則令本地網絡的控制器對當前訪問者的IP 數據包不再應答,並通知另一控制器查驗所述訪問者;當所述訪問者接收到另一控制器的查驗包後,將其ARP緩存表中與公用IP位址相對應的MAC地址更新為另一控制器的MAC地址。
2.如權利要求1所述的方法,其特徵在於,所述CPU佔用率的預定閾值設定為80%。
3.如權利要求1所述的方法,其特徵在於,所述CPU空閒率的預定閾值設定為30%。
全文摘要
本發明公開了一種雙控制器系統的負載均衡方法,特別是公開了一種使用公用IP位址的雙控制器系統的負載均衡方法,該方法由於通過先比較兩個控制器上的負載狀況,然後進行負載均衡處理並同步信息,因此既可以解決現有技術的雙控制器系統中不同MAC地址、相同IP位址形成衝突的問題,還能夠根據網絡對單個控制器的CPU佔用率及CPU空閒率,部分地進行失效備援,從而實現了雙控制器系統的高能效虛擬化服務。
文檔編號H04L29/08GK102316136SQ20101022000
公開日2012年1月11日 申請日期2010年7月1日 優先權日2010年7月1日
發明者焦旭東, 陳志豐 申請人:英業達股份有限公司