孫喬,鄧卜僑,王志強,裴旭斌
(1. 北京國電通網絡技術有限公司,北京 100070;2. 國網浙江省電力公司信息通信分公司,浙江 杭州 310007)
一種基于分布式服務器集群的可擴展負載均衡策略技術
孫喬1,鄧卜僑1,王志強2,裴旭斌2
(1. 北京國電通網絡技術有限公司,北京 100070;2. 國網浙江省電力公司信息通信分公司,浙江 杭州 310007)
提出了一種基于軟件定義網絡的分布式數據庫負載均衡算法,將數據、控制、應用分離的同時計算服務器集群中單個服務器的實際負載。通過查詢流量采樣記錄來決策最少連接的服務器路徑,減少了訪問請求的響應時間,提高了系統吞吐量和容錯能力,實現了充分利用服務器資源的目的。內網中的分布式數據庫實驗對通用負載均衡技術和基于軟件定義網絡的負載均衡技術進行了比較,在不同服務器集群的負載狀態下,后者的平均響應時間小于前者,并得到了更好的負載均衡效果。
可擴展負載均衡策略;軟件定義網絡;自適應流量采樣;分布式服務器集群
互聯網技術的快速發展使大型互聯網服務提供商的服務器集群面臨更嚴重的挑戰。隨著用戶和網絡帶寬的增長,服務器需要在短時間內處理大量訪問請求。如果服務器不能及時處理用戶訪問請求,增加用戶的等待時間,則會影響用戶體驗,大大降低服務質量。這使服務器成為網絡的新瓶頸,從而迫使研究人員開始研究如何提高服務器性能。對于這些通過網絡連接起來的數據庫而言,必須能夠實時處理大量的用戶請求,而且必須能向用戶提供高質量服務,這就要求系統能使每個數據庫高效運行,充分發揮它們的作用。
為了提高服務器性能,企業采取了一系列措施,如提高CPU處理速度、增加服務器緩存容量、使用高速磁盤陣列以及構建服務器集群。簡單地升級硬件系統不僅會導致現有資源閑置,而且當業務繼續擴大時,企業同樣將面臨困難局面。通過建立服務器集群,企業可以將訪問請求轉發到多個服務器。這種方法在一定程度上提高了服務器性能。然而,該解決方案有一個新問題,當服務器集群接收到一個服務器應該響應的訪問請求時,如果控制系統不能合理分配訪問請求,會出現服務器之間的負載不均衡情況。如何才能提高系統的響應速度、穩定性和擴展性,并且保護最初的硬件投資,避免大量用戶請求對系統帶來的沖擊,一個解決方案就是負載均衡技術。
負載均衡的主要目標是通過硬件或者軟件的策略來決定由哪個數據庫執行用戶發出的請求。負載均衡機制在后端數據庫間分發用戶請求,以達到減少系統瓶頸、增強系統響應能力的目的。因此,負載均衡對網絡環境下的異構數據庫系統提升性能與效率具有重要意義。
負載均衡常見的方法是在服務器集群前部署一個負載均衡器,因此它可以為幾個服務器合理分配負載以充分利用服務器資源。負載均衡技術可以有效解決服務器之間的負載不均衡問題,從而減少了訪問請求的響應時間,提高系統吞吐量和容錯能力。經典的負載均衡技術需要使用昂貴的硬件設備,而且不能實現流量負載的精確控制。這些限制使傳統負載均衡技術不適合大規模應用。
通常的負載均衡技術需要較多硬件費用的投入,且無法進行負載定量控制,因此無法實現在較大規模的分布式數據庫應用場景中。軟件定義網絡(software defined networking,SDN)技術的出現給管理者提供了具有低成本和靈活操作優勢的流量管理技術。軟件定義網絡是計算機網絡管理員通過提取低級功能來管理網絡服務的新方法。它把傳統的網絡體系結構中的控制平臺和轉發平臺分開,運行在控制平臺的控制器可以通過管理開關流程表實現數據轉發的控制[1-3]。
本文提出了一種基于軟件定義網絡的分布式數據庫負載均衡算法,將數據、控制、應用分離的同時計算服務器集群中單個服務器的實際負載,通過查詢流量采樣記錄來決策最少連接的服務器路徑,減少了訪問請求的響應時間,提高了系統吞吐量和容錯能力,實現了充分利用服務器資源的目的。
由于互聯網資源及可用性的迅速發展,分布式數據庫計算應用一直呈現指數級增長,在業界被廣泛構建和使用。隨著分布式數據庫規模的擴大,其服務器集群需要處理更多、更大體量的查詢等請求,如何保持性能的穩定性是十分重要的問題。負載均衡方法被認為是利用并行和分布式系統的全部資源的先決條件之一。
負載均衡允許在一個或多個服務器、數據中心、硬盤驅動器或其他計算資源之間分配工作負載,從而可提供一種機制,用于在位于數據中心的任意數量的應用程序部署中分發應用程序請求。負載均衡機制可以大致分為集中式或分散式、動態或靜態、周期性或非周期性。負載均衡技術的研究包括很多內容,如在最小執行時間中,如何在節點不同負載條件下將命令分配給預期執行速度最快的節點,如何提高如分布式數據挖掘等數據密集型應用程序中的計算性能等現實應用問題[4-6]。
在如圖 1所示的服務器負載均衡模型的計算方式中,負載均衡可以改善多個計算資源之間的工作負載分配。負載均衡旨在優化資源使用、最大化吞吐量、最小化響應時間,并避免任何單一資源的過載。用戶的訪問請求首先通過互聯網發送到負載均衡器,而不是直接發送到服務器集群。負載均衡器通過使用指定算法選擇最優服務器并轉發請求到服務器。使用具有負載均衡而不是單個組件的多個組件可以通過冗余來增加可靠性和可用性。負載均衡通常涉及專用軟件或硬件,如多層交換機或域名系統服務器進程。負載均衡與通道綁定不同之處在于負載均衡在網絡套接字(OSI模型層4)基礎上劃分網絡接口之間的流量,而通道綁定意味著在每個數據分組較低級別的物理接口之間或數據鏈路的基礎上,使用最短路徑橋接協議[7-9]。

圖1 服務器負載均衡模型
負載均衡算法通??梢苑譃殪o態算法和動態算法。靜態負載均衡算法不考慮服務器的負載狀態,所以它適合可以提前預測負荷狀態的情況。靜態算法主要包括Round-Robin算法、比率算法和優先級算法。Round-Robin算法中,訪問請求根據到來序列順序分配給每個服務器;比率算法中,根據預設比設定每個服務器相應的負載比例;優先級算法中,當負載不均衡時,備份服務器將被啟用。
動態負載均衡算法是指負載均衡器可以動態分配負載,以根據服務器的負載狀態優化服務器。典型動態算法主要包括最少連接算法、預測算法和響應時間算法。最少連接數算法的負載均衡器定期檢測服務器和用戶之間已建立的連接數,當一個新的訪問請求到達時,負載均衡器將該請求轉發至少連接到服務器;預測算法的控制器可以通過預測模型預測下一個周期的服務器負載狀態;響應時間算法的負載均衡器通過發送探測指令估計每個服務器的負載狀態。
由于傳統網絡的局限性,負載均衡技術的發展逐漸遇到瓶頸。大多數負載均衡器為特定應用或產品定制,但其代碼的可重用性和不同架構的適用性不佳。此外,用于負載均衡的復雜軟件或硬件系統會增加企業的運營成本。
軟件定義網絡起源于2006年美國斯坦福大學的研究課題,并于2009年被正式提出。軟件定義網絡的概念是:軟件定義網絡利用分層的思想將數據與控制相分離,在控制層包括具有邏輯中心化和可編程的控制器,可掌握全局網絡信息,方便管理配置網絡和部署新協議等;在數據層包括dumb交換機,交換機僅提供簡單的數據轉發功能,可以快速處理匹配的數據分組,適應流量日益增長的需求。兩層之間采用開放的統一接口進行交互,控制器通過標準接口向交換機下發統一標準規則,交換機僅需按照這些規則執行相應的動作即可。軟件定義網絡技術具有控制與傳輸分離、集中式控制和軟件可定義的特征[10]。因此軟件定義網絡技術的基本特性增加了網絡部署的靈活性和網絡的可編程性,因此可以滿足快速高效的網絡需求[11]。
由于傳統網絡負載的高成本使得負載均衡技術很難得到廣泛應用,如圖2所示的OpenFlow技術提供了一個具有低成本、操作靈活等優點的流通管理技術。已經有一些研究關注OpenFlow網絡中的負載均衡問題,另一些研究則提出了另一種負載均衡解決方案:通過使用多個OpenFlow控制器來處理多服務的負載,但是這些方法仍然無法實現真正的負載均衡[12,13]。

圖2 OpenFlow負載均衡結構
為了獲得每個服務器的負載 L、計算能力 C和優先級 P,需要對計算服務器集群中單個服務器的實際負載進行統計。本文采用的統計算法是每0.1 s對每個服務器計算一次上述的L、C和P值,并將其定義為 S=L·C·P的服務優先級統計結果存儲在服務優先級數據庫中。當用戶向服務器發送請求時,此服務需求同時進入負載統計的計算路徑,并與服務優先級數據庫中的所有S值進行比對,找到S值大于用戶服務需求的服務器,然后使用輪詢方法將用戶的請求發送到這些服務器上。其流程如圖3所示。
為了應對軟件定義網絡通常存在的可擴展性問題,還需要采用基于軟件定義網絡的流量采樣方法,對流量進行部分采樣并對數據流進行記錄,便于通過查詢流量采樣記錄決策最少連接的服務器路徑。其具體步驟如下。
步驟 1 檢查新數據分組是否已經到達交換機并處于流量監控操作模式下。
步驟 2 如果符合任何一個操作模式,則對數據分組的計數器進行更新,并將數據分組導向下一個目標路徑。
步驟 3 如果不符合,則查詢是否符合被采樣的規則,如果與其中的某個規則匹配,則將其引導至下一個路徑并同時發給控制器,且在記錄表中增加信息以對后續數據流進行采樣。

圖3 單個服務器實際負載統計方法
一般來說,通過采用OpenFlow控制器方式,可以將管理決策都發送至交換機來存儲和收集流量統計信息,并在每個交換機上以計數器形式存儲全部流信息的記錄。但現有 OpenFlow技術的TCAM條目數量和處理能力無法支持過大的流量統計記錄,因此在采集流量測量時實施流量采樣記錄,以達到獲得較細粒度的數據并降低OpenFlow控制器操作次數的目的。當交換機空閑或超時,系統就進行測量并實施流統計,其流程如圖4所示。
事實上,上述統計方式對于較大時間跨度的流量統計數據來說是非實時的。當需要在具有高度波動流量的動態環境中獲得準確的測量結果時,需要增加交換機端口自適應函數,即通過輪流監聽TCP或UDP等端口,在源端口發出數據后,在某些流量超過閾值的目標端口,將其數據分組自適應調整到其他流量較低的目標端口,可以避免由于源端口和目標端口沖突而增加的計算負擔。
為了評價上述方法的性能,在現有網絡環境中進行了評估與測試。實驗具體配置為:64臺服務器IBM-x3650M4-2U(2CPU,6核12線程Xeon E5-2620,48 GB內存,2 TB硬盤)分別作為DataNode,操作系統為Ubuntu11.10及Windows7,均預裝FTP服務。將其中一臺服務器定義為主服務器并部署了內網企業網站,網站的文本、圖像、視頻等數據資源分別存放在多個服務器上,通過改變訪問網站的訪問量來模擬負載均衡的效果。
服務器負載取決于負載指標,負載指標是衡量服務器負載狀態的特征值,用于描述服務器的忙閑程度,記錄服務器處理服務的能力,一般有CPU處理能力、CPU利用率、CPU就緒隊列長度、內存、磁盤容量、網絡帶寬、當前連接數等[13]。本文選取有代表性的CPU利用率和網絡上行速度作為負載指標,通過不同的采樣率下的指標來比較一般負載均衡方法與無端口自適應/有端口自適應流量采樣負載均衡方法的效果。在24 h內對該網絡環境中的性能進行統計,其結果如圖5和圖6所示。
從圖5可以看出,在CPU利用率最小值方面,提出的流量采樣負載均衡方法比一般的負載均衡方法存在一定優勢,尤其是采樣率相對較高的情況下;而有端口自適應流量采樣負載均衡方法在CPU利用率最大值這一指標上體現出的負載均衡程度存在明顯優勢。

圖4 基于軟件定義網絡的流量采樣流程
圖6則顯示出,采樣負載均衡方法與一般的負載均衡方法相比,在采樣率較低時差異不大;隨著采樣率的增加,有端口自適應流量采樣負載均衡方法比無端口自適應流量采樣負載均衡方法和一般負載均衡方法在各項指標上都表現出網絡上行速度指標有增加的趨勢。

圖5 CPU利用率最小值和最大值比較

圖6 網絡上行速度最小值和最大值比較
提出了一種基于軟件定義網絡的分布式數據庫負載均衡解決方案,為了減少控制器的開銷和交換機的計算代價,提出了一種基于OpenFlow的受限流量采樣方法。實驗結果表明,與一般的負載均衡方案相比,本文提出的方法在降低計算代價和提高負載均衡效果上有一定優勢。下一步將研究如何進一步提高檢索統計數據的精確性。
[1] ZHANG H, GUO X. SDN-based load balancing strategy for server cluster[C]//2014 IEEE 3rd International Conference on Cloud Computing and Intelligence Systems (CCIS), Nov 27-29,2014, Shenzhen, China. New Jersey: IEEE Jersey, 2014: 662-667.
[2] 張朝昆, 崔勇, 唐翯祎, 等. 軟件定義網絡 (SDN) 研究進展[J].軟件學報, 2015, 26(1): 62-81. ZHANG C K, CUI Y, TANG H Y, et al. State-of-the-art survey on software-defined networking(SDN)[J]. Journal of Software, 2015, 26(1): 62-81.
[3] 劉同. 負載均衡技術在數據庫集群系統中的應用與實現[D].長沙: 國防科學技術大學, 2009. LIU T. Application and realization of load balancing technology in database cluster system[D]. Changsha: National University of Defense Technology, 2009.
[4] DAS S K, SEN S K, JAYARAM R. A dynamic load balancing strategy for channel assignment using selective borrowing in cellular mobile environment[J]. Wireless Networks, 1997, 3(5): 333-347.
[5] DASGUPTA K, MANDAL B, DUTTA P, et al. A genetic algorithm based load balancing strategy for cloud computing [J]. Procedia Technology, 2013(10): 340-347.
[6] DAM S, MANDAL G, DASGUPTA K, et al. An ant colony based load balancing strategy in cloud computing [M]. Berlin: Springer International Publishing, 2014.
[7] MONDAL B, CHOUDHURY A. Simulated annealing (SA) based load balancing strategy for cloud computing[J]. International Journal of Computer Science and Information Technologies, 2015, 6(4): 3307-3312.
[8] IZAGIRRE A, MAKOWSKI A M. Light traffic behavior under the power-of-two load balancing strategy: the case of heterogeneous servers[J]. arXiv preprint arXiv:1701.06004, 2017.
[9] Load_balancing [EB/OL]. (2017-03-01)[2017-06-07]. https://en. wikipedia.org/wiki/Load_balancing.
[10] 王力, 趙季紅, 曲樺, 等. 軟件定義承載網中基于負載均衡的虛擬網絡資源分配算法[J]. 電信科學, 2015, 31(11): 32-38. WANG L, ZHAO J H, QU H, et al. Virtual network resource allocation algorithm based on load balance in carrier-SDN[J]. Telecommunications Science, 2015, 31(11): 32-38.
[11] LIU J, LAI Y, DIAO Z, et al. A trusted access method in software-defined network[J]. Simulation Modelling Practice and Theory, 2017(74): 28-45.
[12] TAHAEI H, SALLEH R, KHAN S, et al. A multi-objective software defined network traffic measurement[J]. Measurement, 2017(95): 317-327.
[13] 楊偉. 基于時間序列預測的 IP控制網關集群的設計與實現[D].蘇州: 蘇州大學, 2006. YANG W. Design and implementation of IP control gateway cluster based on time series prediction[D]. Suzhou: Soochow University, 2006.
A scalable load balancing strategy based on distributed server cluster
SUN Qiao1, DENG Buqiao1, WANG Zhiqiang2, PEI Xubin2
1. Beijing GuoDianTong Network Technology Co., Ltd., Beijing 100070, China 2. Information&Telecommunication Branch of State Grid Zhejiang Electric Power Company, Hangzhou 310007, China
A distributed database load balancing algorithm based on software defined networking was proposed, which separated the data, control and application to calculate the actual load of a single server in the server cluster. By querying the streams sampling record, the minimum number of server paths were determined, the request response time was reduced, the system throughput and fault tolerance were improved, and the full use of the purpose of server resources was achieved. The general load balancing technology was compared with the load balancing technology based on the software defined networking in the internal network of the distributed database experiment, the result shows that in the load state of the different server clusters, the average response time of the latter is smaller than that of the former, and can get better load balancing effect.
extensible load balancing strategy, software defined networking, adaptive stream sampling, distributed server cluster
s: Science and Technology Project of State Grid (No.SGBJDK00KJJS1500180), Science and Technology Project of State Grid Information& Telecommunication Group Co., Ltd. (No.SGITG-KJJSKF[2015]0010)
TN929.52
:A
10.11959/j.issn.1000-0801.2017264

孫喬(1978-),男,北京國電通網絡技術有限公司中心副總監,主要研究方向為實時庫及自主關系數據庫。

鄧卜僑(1985-),男,北京國電通網絡技術有限公司技術總監,主要從事關系數據庫及分布式關系數據庫研發工作。

王志強(1966-),男,國網浙江省電力信息通信分公司副總工程師,主要研究方向為電力信息新技術應用。

裴旭斌(1973-),男,國網浙江省電力信息通信分公司數據庫運維專職,主要研究方向為數據庫應用技術。
2017-06-07;
:2017-08-31
國家電網公司科技基金資助項目(No.SGBJDK00KJJS1500180);國網信息通信產業集團有限公司科技基金資助項目(No.SGITG- KJ-JSKF[2015]0010)