透過您的圖書館登入
IP:18.117.184.189
  • 學位論文

基於SDN的伺服器叢集與動態負載平衡的研究

Research on SDN-based Server Clusters with Dynamic Load Balancing

指導教授 : 姜美玲

摘要


隨著雲端運算的快速發展,許多企業透過雲端平台的基礎設施即服務(IaaS),來提供穩定的網頁服務。對於這些雲端平台而言,如何管理大規模的網路,及以彈性化與高效率的方式來應付各式各樣的網路需求已成為一個重要的議題,故軟體定義網路(Software-Defined Networking, SDN)因而興起。SDN採取可程式化控制的架構,分離了網路交換器(Switch)的控制平面與資料平面,而控制平面以抽象化、可程式化、集中式控制的方式來提供所需的網路功能。因此,IT管理者可以利用統一的介面來進行所有與網路有關的資源配置。 本研究基於SDN領域最熱門的OpenFlow協議,使用OpenFlow Controller內建的負載平衡器來進行伺服器負載平衡的研究。我們探討基於OpenFlow所建置的伺服器叢集的效能,所使用的Controller為Floodlight。Floodlight原先預設的負載平衡策略是Round Robin (RR),在面對異質性的硬體環境時無法有效地運用整體伺服器叢集的資源。我們提出了新的負載平衡策略:Dynamic Weighted Random Selection (DWRS),它考量各伺服器的即時負載資訊來動態地調整各伺服器的權重,並依據此動態權重來分配Requests至各伺服器,使得Floodlight可以更精準的挑選負載較輕的伺服器來提供服務,讓各伺服器的資源可以更有效地被利用,使負載可以更加平衡。此外,Floodlight原本是以On-Demand的方式來執行負載平衡演算法,意即當Packet-in訊息抵達Floodlight時才會開始執行負載平衡演算法來挑選合適的伺服器。然而,Floodlight使用On-Demand的方法在處理大量的Packet-in訊息時會造成效能的瓶頸,故我們使用Multi-Thread的設計方式,於Floodlight中設計一專屬的Thread來預先即挑選好目前較合適的伺服器且預存好此資訊,而當Packet-in訊息抵達時即可以不用在當下再執行負載平衡演算法,直接從預存好的資訊來取得目前最合適的伺服器來提供服務。 我們除了在Floodlight 的負載平衡模組中實作了我們所提的DWRS策略之外,我們並且實作了Least Loading、Least Connections及Random Selection等負載平衡策略,並與Floodlight預設的RR策略來進行效能的評估和比較。在效能測試中,我們設計了同質與異質的硬體環境來測試所有負載平衡演算法的效能。實驗結果顯示,使用Multi-Thread方式來實作的DWRS在異質性的環境中,相較於Floodlight內建的RR負載平衡演算法,可有12%較佳的效能。

並列摘要


With the growth of cloud computing, lots of enterprises adopt cloud platforms to provide web services. The large-scale network management becomes a critical issue because providers of cloud platforms need to handle a great diversity of requirements in a complex network environment. Therefore, software defined networking (SDN) was proposed. SDN separates the control plane from a switch, and the control plane is centralized and programmable. It is more flexible and convenient for IT managers to manage a complicated and large-scale network. In this study, we develop a server cluster based on OpenFlow that is the most popular protocol in SDN field. We focus on the server-side load balancing issue and improve the performance of the OpenFlow-based server cluster. The OpenFlow controller we use is Floodlight that is open-source and has a built-in load balancer module. Its default load balancing policy is round-robin which is not appropriate for operating in a heterogeneous hardware environment and causes load imbalance. For this concern, we have modified the Floodlight’s load balancer module and proposed a load balancing policy: dynamic weighted random selection (DWRS). DWRS dynamically determines the weight of each server by collecting each server’s real-time loading, and dispatches requests according to the weight of each server. Therefore, the hardware resources can be utilized more effectively especially in a heterogeneous hardware environment. However, the way of executing load balancing algorithm in the original load balancer module is on-demand, meaning Floodlight executes the load balancing algorithm at once when it receives a packet-in message. It is not effective especially when mass packet-in messages arrive. Hence, we utilize multi-threaded technique in our design and devise a dedicated thread to pre-select the target server. This design enables Floodlight to directly designate the target server instead of executing the load-balancing algorithm at once while a packet-in message arrives. We have implemented various load-balancing policies in Floodlight’s load balancer module, including the proposed DWRS, least loading, least connections, and random selection. We then compare their performance with the default round-robin policy in Floodlight. During the performance evaluation, we design homogenous and heterogeneous hardware environments to evaluate the performance of all load balancing algorithms. The experimental results show the DWRS with multi-threaded implementation outperforms the default round-robin policy by 12%.

參考文獻


[1] F. Ieee et al., “Software-Defined Networking : A Comprehensive Survey,” Proceedings of the IEEE, vol. 103, pp. 14-76, 2015.
[2] N. Handigol and S. Seetharaman, “Plug-n-Serve: Load-balancing web traffic using OpenFlow,” ACM SIGCOMM 2009, 2009.
[3] M. A. Saifullah and M. A. M. Mohamed, “Open flow-based server load balancing using improved server health reports,” Proceedings of 2016 IEEE 2nd International Conference on Advances in Electrical, Electronics, Information, Communication and Bio-Informatics, pp. 649-651, 2016.
[4] H. Zhang and X. Guo, “SDN-based load balancing strategy for server cluster,” Proceedings of 2014 IEEE 3rd International Conference on Cloud Computing and Intelligence Systems, pp. 662-667, 2014.
[5] W. Chen, Z. Shang, X. Tian, and H. Li, “Dynamic Server Cluster Load Balancing in Virtualization Environment with OpenFlow,” International Journal of Distributed Sensor Networks, vol. 2015, no. 8, pp. 1-9, 2015.

延伸閱讀