一种基于kvm虚拟化集群的负载均衡方法

文档序号:9276866阅读:928来源:国知局
一种基于kvm虚拟化集群的负载均衡方法
【技术领域】
[0001] 本发明涉及一种基于KVM虚拟化集群的负载均衡方法,属于云计算虚拟技术领 域。
【背景技术】
[0002] 云计算技术是IT产业界的一场技术革命,它能够按需部署计算资源,而用户只需 要为所使用的资源付费,从本质上讲,云计算是指用户终端通过远程连接获取存储、计算、 数据库等计算资源。这种变化使得IT基础架构的运维专业化程度不断集中和提高,从而对 基础架构层面,特别是服务器性能提出了更高的要求。
[0003] 虚拟化技术是云计算技术的核心组成之一,是将各种计算及存储资源充分整合和 高效利用的关键技术,包括服务器虚拟化和应用虚拟化。每一个应用部署的环境和物理平 台是没有关系的,通过虚拟平台进行管理达到对应用进行扩展、迀移、备份等操作。
[0004] 当前比较流行的虚拟化产品主要包括KVM (Kernel based Virtual Machine)、 VMware、XenServer等。其中,KVM的最大优势是完全开源,且KVM是基于内核的完全虚拟 化,与其他虚拟化产品相比,具有资源利用率高、性能良好的优势。
[0005] 目前,在KVM虚拟化集群中,当有大量的客户端访问请求时存在服务资源在虚拟 机之间分配不均衡的问题。

【发明内容】

[0006] 针对现有技术的不足,本发明公开了一种基于KVM虚拟化集群的负载均衡方法。
[0007] 本发明在一台服务器上构建KVM虚拟化集群,该虚拟化集群包括客户端、负载均 衡服务器、计算服务器和存储服务器。在客户端访问负载均衡服务器时,负载均衡服务器通 过调用KVM的libvirt-java开发接口并使用SSH远程协议,获取各个计算服务器的配置信 息、网络负载状况等负载情况,再结合用户需求情况利用动态请求分配算法选择最优计算 服务器。
[0008] 本发明的技术方案为:
[0009] 一种基于KVM虚拟化集群的负载均衡方法,该方法在一台服务器上运行,在所述 服务器上构建KVM虚拟化集群,所述KVM虚拟化集群包括一台客户端、一台负载均衡服务 器、若干台计算服务器及一台存储服务器;在负载均衡服务器中搭建LNMP环境,配置nginx 的nginx. conf文件实现反向代理;在负载均衡服务器中安装jdk,搭建java运行环境,通 过"qemu+ssh://"的方式连接若干台计算服务器,利用java编程调用KVM的libvirt-java 开发接□获取每台计算服务器的配置信息、CPU使用率、网络宽带使用率、响应时间、负载, 所述配置信息包括内存memory、CPU个数cpus、每个节点的CPU socket数目sockets、每个 sockets的核数cores、超线程threads、期望的CPU频率mhz ;
[0010] 具体步骤包括:当客户端访问负载均衡服务器时,负载均衡服务器调用KVM的 libvirt-java开发接口并使用SSH远程协议获得各个计算服务器的负载,利用动态请求 分配算法找到分配权值最小的计算服务器,将新到达服务器的任务请求分配给该计算服务 器。
[0011] 根据本发明优选的,所述动态请求分配算法,具体步骤包括:
[0012] a、求取计算服务器当前的平均负载权值:计算公式如式(I )所示:
[0014] 式(I )中,m是指计算服务器的个数;Li是指计算服务器51当前的负载; 4=(7i v-7t),是指计算服务器5,实测的当前响应客户端请求的时间,:?:_通过网页 监控软件测得;Qi是指计算服务器3,的固有能力;叫=(Ii x -Tt),(^是指计算服务器 Si的可用资源为0时响应客户端请求的时间,Tlx通过以下方式测得:对计算服务器S i不断 增加客户端请求个数,当计算服务器Si响应请求个数达到最大值时,通过网页监控软件测 得此时计算服务器S i响应时间;r:是指计算服务器Sig身的响应时间,当客户端发送一
器Sii前的负载权值,计算服务器Si当前的负载权值是指计算服务器S ,当前的负载与 其固有能力的比值,%的计算公式如式(II )所示:
[0018] b、增加临界递减因子后计算每个计算服务器的负载权值:所述临界递减因子是指 进入临界状态时计算服务器的负载权值,负载权值增加递减因子S,则加入递减因子后的 计算服务器Sii前的负载权值计算公式如式(IV )所示:
器的响应时间会出现抖动时,则响应时间为I;,区间I;~Tmax称为临界状态;当客户端请求 数量小于L所对应的请求数量时,请求数量与响应时间成正比;其它状态时,S =〇;
[0021] 通过增加临界递减因子可以抑制服务器进入饱和状态,在实现的程序中,禁止负 载权值为1的计算服务器参加下一阶段的请求分配过程,这样就避免了服务器上原有的请 求任务受系统能力饱和影响出现响应时间急剧增加的情况,并对负载权值为1的计算服务 器进行警告,如果多台计算服务器进行警告,则启动冗余备份的服务器来分担请求负载。
[0022] c、计算下阶段每个计算服务器应被分配的请求个数:设定达到负载均衡状态时计 算服务器Si分配的请求个数为^,负载为Z;; JF,即下阶段计算服务器Si应被分配的请求个 数;在计算服务器SiI通过网页监控软件检测得到当前分配的请求个数Iii,测得当前负载Li,设定每台计算服务器在相同时间t内响应客户端请求个数相同,其中,t〈T_,因此,分配 的请求个数的变化与负载变化是一致的,如式(V )所示:
[0029] 对6取整,即得下阶段计算服务器SiS被分配的请求个数;
[0030] d、计算每个计算服务器分配权值:分配权值是指计算服务器应被分配的请求个数 与KVM虚拟化集群应达到的请求个数的比值,计算出计算服务器Si的分配权值V】,计算公 式如式(W)所示:
[0032] 求取每个计算服务器的分配权值,找到最小的分配权值对应的计算服务器。
[0033] 动态请求分配算法的主要思想是动态监测请求任务被分配后对各个计算服务器 工作负荷造成的影响,通过反馈计算服务器实际的工作负载状态,再结合设定的计算服务 器固有处理能力,负载均衡服务器计算出每台计算服务器当前的分配权值,找到最小的分 配权值对应的计算服务器,以达到负载均衡的目的。
[0034] 根据本发明优选的,所述网页监控软件是指httpwatch。
[0035] 本发明的有益效果为:
[0036] 本发明所述方法针对到达客户端的新的任务请求,根据KVM虚拟化集群虚拟机当 前负载状况动态选择最优计算服务器,构建管理性和高扩展性的KVM虚拟化集群计算服务 器。利用动态请求分配算法,动态监测请求任务被分配后对各个计算服务器工作负荷造成 的影响,通过反馈计算服务器实际的工作负载状态,再结合设定的计算服务器固有能力,负 载均衡服务器计算出每台计算服务器分配权值,找到最小的分配权值对应的计算服务器, 并将到达客户端的新的任务请求分配给该计算服务器,达到了负载均衡的目的。本发明解 决了虚拟化管理环境中虚拟机之间负载分配不均衡的问题,提高了服务器虚拟资源的利用 率。
【具体实施方式】
[0037] 下面结合实施例对本发明作进一步限定,但不限于此。
[0038] 实施例1
[0039] 一种基于KVM虚拟化集群的负载均衡方法,该方法在一台服务器上运行,在所述 服务器上构建KVM虚拟化集群,所述KVM虚拟化集群包括一台客户端、一台负载均衡服务 器、若干台计算服务器及一台存储服务器;在负载均衡服务器中搭建LNMP环境,配置nginx 的nginx. conf文件实现反向代理;在负载均衡服务器中安装jdk,搭建java运行环境,通 过"qemu+ssh://"的方式连接若干台计算服务器,利用java编程调用KVM的libvirt-java 开发接□获取每台计算服务器的配置信息、CPU使用率、网络宽带使用率、响应时间、负载, 所述配置信息包括内存memory、CPU个数cpus、每个节点的CPU socket数目sockets、每个 sockets的核数cores、超线程threads、期望的CPU频率mhz ;
[0040] 具体步骤包括:当客户端访问负载均衡服务器时,负载均衡服务器调用KVM的 libvirt-java开发接口并使用SSH远程协议获得各个计算服务器的负载,利用动态请求 分配算法找
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1