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

具備負載平衡機制的虛擬機器叢集式系統的設計與實作

Design and Implementation of a Load-Balanced VM-based Server Cluster

指導教授 : 姜美玲

摘要


科技的日新月異與普及化,網際網路能提供的各式雲端服務也更加地多元,造成了使用者對於網路服務的需求以及對於資料豐富性的要求日益增加。但是傳統的伺服器已經不足已應付來自客戶端(Client)巨量的需求。為了滿足多元的服務需求與巨量的資料傳輸,並且持續地提供高品質與高可靠的服務,使用伺服器叢集(Server Cluster)是一個很好的解決方案。在雲端技術中,基礎設施即服務(Infrastructure as a Service,IaaS)就是虛擬機器應用的一個例子,私有數據中心可以藉由虛擬機器來建立虛擬機器叢集(Virtual Machine Cluster,VM Cluster)或是虛擬資料中心 (Virtual Data Center) ,而企業可以根據自己的需求向私有數據中心租用虛擬機器。 在本論文中,我們使用Kernel-based Virtual Machine (KVM)虛擬機器來建構一個基於Linux Virtual Server (LVS)的VM Cluster。但是目前的LVS只能依據IP位址來區分伺服器,並沒有辦法辨別此IP位址的伺服器是實體伺服器或者是虛擬機器。然而,實體伺服器與虛擬機器實際上是不同的,我們針對實體伺服器與虛擬機器的不同,實作了Virtual Machine Least Connections (VMLC)與Virtual Machine Weighted Least Connections (VMWLC)兩種負載排程演算法。VMLC可以直接找出目前適合的實體伺服器,再從此實體伺服器中快速地挑選適合的虛擬機器來處理封包,如負載最輕的伺服器。而VMWLC則是在挑選出適合的實體伺服器後,再藉由虛擬機器的權重與目前的負載量,挑選此實體伺服器中適合的虛擬機器來處理封包。 此外我們設計了三種不同的VM Cluster的架構:單一VM Cluster (Single VM Cluster, SVMC)、階層式多重VM Clusters架構與分散式多重VM Clusters架構。SVMC是利用一台實體伺服器的Host 作業系統作為負載平衡器(Load Balancer),而虛擬機器皆作為提供服務的伺服器。階層式多重VM Clusters架構是將所有實體伺服器的Host OS作為負載平衡器,而虛擬機器作為提供服務的伺服器,其中的一個主要的負載平衡器負責接收來自Clients的封包,並將封包轉發至其餘的負載平衡器或相同實體伺服器中的虛擬機器。而分散式多重VM Clusters架構是包含多組的VM Clusters,並使用DNS伺服器來輪流分配Request至各組VM Clusters。此架構並且會在所有實體伺服器的Host OS內建構負載平衡器,並在所有的實體伺服器內建構多台虛擬機器,將相同實體伺服器中的負載平衡器與虛擬機器組成一組VM Cluster。 在我們的實驗中,利用Apache Bench測效工具進行Requests Per Second、Transfer Rate與Failed Requests的測量,實驗結果顯示VMWLC負載排程演算法在SVMC中效能是最好的,並且SVMC可以比集中式前端伺服器架構的多重VM Clusters效能好約有76.3%。Transfer Rate的實驗中VMWLC在SVMC架構的傳輸量是最大的,比集中式前端伺服器架構的多重VM Clusters約有75.3%較佳的效能。

並列摘要


With the rapid growth and popularization of computer technology, a variety of cloud services arises in the internet. The requirement of network service and data variegation is increasing day by day. However, traditional network server is not able to deal with the huge amount of requests from clients. For the purpose of satisfying the requirement of diverse services and huge amount of data transmission, and continuously providing services with high quality and high reliability, using the server cluster is a good solution. In the cloud technology, Infrastructure as a Service (IaaS) is an example of applying virtual machine as the server cluster. The private data center builds Virtual Machine Cluster (VM Cluster) or virtual data center, and enterprises can rent virtual machines (VM) from the private data center. In this study, we use Kernel-based Virtual Machine (KVM) to build the virtual machine cluster based on Linux Virtual Server (LVS). The current LVS identifies a server only by IP Address and cannot recognize whether the IP Address is from a physical server or a virtual machine. However, it is unsuitable to apply the same scheduling mechanism to physical servers and virtual servers because the VMs in the same physical machine actually share resources. Therefore, we implement two kinds of scheduling algorithms, that is, Virtual Machine Least Connections (VMLC) and Virtual Machine Weighted Least Connections (VMWLC), to solve this problem. VMLC algorithm considers every physical server as a basic scheduling unit and dispatches a packet to a suitable physical server. VMLC then chooses a VM with least loading in this physical server to handle the packet. On other hand, the VMWLC algorithm dispatches a packet to a suitable physical server and then chooses a VM according to its assigned weight and loading. In the study, we have also designed three kinds of VM clusters with different architectures, i.e. Single VM cluster (SVMC), Hierarchical Multiple VM clusters (HVMC), and Distributed Multiple VM clusters. The SVMC architecture has a single physical server, in which the load balancer is constructed in the host Operating System (OS) and back-end servers are VMs. In the HVMC architecture, each host OS in physical servers plays the role of the load balancer, and other VMs located in the same machine are back-end servers. Besides, there is a main load balancer which receives packets from clients and forwards packets to VMs in the same machine or to other load balancers. The Distributed Multiple VM clusters uses different topology. There are multiple set of VM clusters and DNS server is responsible for dispatching requests to them. In this architecture, every physical server takes the host OS as the load balancer and VMs as the back-end servers. Each physical server has its own load balancer and back-end servers, and is an independent VM cluster system. In our experiment, by using Apache Bench performance testing tool for measuring request per second, transfer rate, and failed requests, the result shows that VMWLC has the best performance on SVMC. Moreover, SVMC has 76.3% higher performance than MVMC/CF that is the Multiple VM Clusters with the front-end servers centralized and located in the same physical server. In transfer rate experiment, VMWLC on SVMC structure has the maximal transmission capacity, and has 75.3% higher performance than MVMC/CF.

參考文獻


[1]「Server Cluster」, https://msdn.microsoft.com/en-us/library/ff649250.aspx, 2013.
[2]「TOP500」, http://www.mellanox.com/page/top_500, 2014.
[3]B. P. Rimal, C. Eunmi, and I. Lumb, 「A Taxonomy and Survey of Cloud Computing Systems」, the 2009 fifth International Joint Conference on INC, IMS and IDC, Washington, pp. 44-51, 2009.
[4]W. Zhou, S. Yang, J. Fang, X. Niu, and H. Song, 「VMCTune: A Load Balancing Scheme for Virtual Machine Cluster Based on Dynamic Resource Allocation」, International Conference on Ninth of Grid and Cloud Computing, 2010.
[5]Xuanhua Shi, Hai Jin, Hongbo Jiang, Xiaodong Pan, Dachuan Huang, and Bo Yu, 「Toward scalable Web systems on multicore clusters: making use of virtual machines」, Journal of Supercomputing, Volume 61, Issue 1 , pp. 27-45, 2012.

被引用紀錄


吳豐名(2016)。基於OpenStack動態負載平衡機制設計與實作〔碩士論文,國立臺中科技大學〕。華藝線上圖書館。https://www.airitilibrary.com/Article/Detail?DocID=U0061-1708201618253400

延伸閱讀