CN102508718B - 一种虚拟机负载均衡方法和装置 - Google Patents

一种虚拟机负载均衡方法和装置 Download PDF

Info

Publication number
CN102508718B
CN102508718B CN201110373058.7A CN201110373058A CN102508718B CN 102508718 B CN102508718 B CN 102508718B CN 201110373058 A CN201110373058 A CN 201110373058A CN 102508718 B CN102508718 B CN 102508718B
Authority
CN
China
Prior art keywords
virtual machine
physical host
factor
handling capacity
load
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110373058.7A
Other languages
English (en)
Other versions
CN102508718A (zh
Inventor
蔡志峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201110373058.7A priority Critical patent/CN102508718B/zh
Publication of CN102508718A publication Critical patent/CN102508718A/zh
Priority to PCT/CN2012/085028 priority patent/WO2013075640A1/en
Priority to US14/345,653 priority patent/US9286099B2/en
Application granted granted Critical
Publication of CN102508718B publication Critical patent/CN102508718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种虚拟机负载均衡方法,该方法通过周期监测各物理主机以及其上运行的虚拟机的负载信息,结合虚拟机与其所在物理主机的预设亲和因子,确定哪个物理主机上的虚拟机需要迁移到哪个相对空闲的物理主机上。基于同样的发明构思,本发明还提出一种装置,能够在降低开发复杂性和成本的情况下,实现虚拟机的负载均衡。

Description

一种虚拟机负载均衡方法和装置
技术领域
本发明涉及通信技术领域,特别涉及一种虚拟机负载均衡方法和装置。
背景技术
随着计算机、网络等各种技术的日趋发展,网络中聚合了各种计算资源、存储资源、数据资源、软件资源以及服务资源等,采用虚拟主机技术可以更加有效地整合这些分散的各种资源,实现资源共享和有效利用,降低能耗。
由于各物理主机处理能力的差异以及各应用程序的不确定性,导致了虚拟计算环境中各物理主机或虚拟机的负载失衡,即有些物理主机或虚拟机的资源利用率很高,导致该物理主机或虚拟机的资源被耗尽,而有些物理主机或虚拟机的资源利用率很低,甚至被闲置,没有得到有效地利用。因此,如何协调不同物理主机和虚拟主机的负载,维持高效的资源使用率,是虚拟计算环境中一个关健问题。
现有的虚拟机负载均衡方法,一般是在物理主机和虚拟机上安装专门的代理,通过代理搜集物理主机和虚拟机上的负载信息,一般仅考虑物理主机或虚拟机上的CPU负载情况,并通过代理来执行调度指令。
现有技术中至少存在如下缺点:需要在物理主机和虚拟机上安装专门的代理,由于虚拟机运行在不同的管理程序(hypervisor)上,如Xen、Hyper-V、VMware等,且运行在虚拟机之上的操作***也是多样的,如linux、windows等,如果在每个虚拟机上安装代理,不同操作***或同一操作***的不同版本都需要各自的代理版本,其开发和维护代价较大;而且现有实现仅仅考虑物理主机和虚拟机的CPU负载忽略了其他影响虚拟机负载均衡的因素。
发明内容
有鉴于此,本发明提供一种虚拟机负载均衡方法和装置,能够在降低开发复杂性和成本的情况下,实现虚拟机的负载均衡。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种虚拟机负载均衡方法,周期监测各物理主机及虚拟机的负载信息,并根据所述负载信息分别计算各物理主机及各物理主机上运行的虚拟机的负载指数,所述方法包括:
获取任一物理主机最近连续预设次数负载指数,若该物理主机的所述预设次数负载指数都大于第一预设阈值,则获取该物理主机上的所有当前运行的虚拟机的最近一次负载指数,并根据各虚拟机的预设亲和因子和其最近一次负载指数确定待迁移的虚拟机,其中,所述预设亲和因子表示虚拟机对自身所在物理主机的依赖程度;
获取各物理主机最近一次负载指数,确定负载指数最小且负载指数小于第二预设阈值的物理主机作为虚拟机迁移的目的物理主机,其中,所述第二预设阈值小于所述第二预设阈值;
将所述待迁移虚拟机迁移至所述目的物理主机。
一种虚拟机负载均衡装置,该装置包括:配置单元、监测单元、计算单元、第一获取确定单元、第二获取确定单元、第三获取确定单元和迁移单元;
所述配置单元,用于设置监测周期、预设次数,各虚拟机的预设亲和因子,第一预设阈值,第二预设阈值,其中,所述第二预设阈值小于所述第一预设阈值;
所述监测单元,用于根据所述配置单元设置的监测周期监测各物理主机及各物理主机上运行的虚拟机的负载信息;
所述计算单元,用于根据所述监测单元监测的负载信息计算各物理主机及各物理主机上运行的虚拟机的负载指数;
所述第一获取确定单元,用于获取所述计算单元计算的任一物理主机最近连续所述配置单元设置的预设次数负载指数,确定该物理主机的所述预设次数负载指数都大于所述配置单元设置的第一预设阈值;
所述第二获取确定单元,用于当所述第一获取单元确定该物理主机的所述预设次数负载指数都大于第一预设阈值时,获取所述计算单元计算的该物理主机上的所有当前运行的虚拟机的最近一次负载指数,并根据所述配置单元设置的各虚拟机的预设亲和因子和其最近一次负载指数确定待迁移的虚拟机,其中,所述预设亲和因子表示虚拟机对自身所在物理主机的依赖程度;
所述第三获取确定单元,用于当所述第一获取单元确定该物理主机的所述预设次数负载指数都大于第一预设阈值时,获取所述计算单元计算的各物理主机最近一次负载指数,确定负载指数最小且负载指数小于所述配置单元设置的第二预设阈值的物理主机作为待迁移虚拟机迁移的目的物理主机;
所述迁移单元,用于将所述第二获取确定单元确定的待迁移虚拟机迁移至所述第三获取确定单元确定的目的物理主机。
综上所述,本发明通过周期监测各物理主机和各物理主机上运行的虚拟机的负载信息,结合虚拟机与其所在物理主机的预设亲和因子,确定哪个物理主机上的虚拟机需要迁移到哪个相对空闲的物理主机上。能够在降低开发复杂性和成本的情况下,实现虚拟机的负载均衡。
附图说明
图1为本发明实施例中实现虚拟机负载均衡流程示意图;
图2为本发明具体实施例中实现虚拟机负载均衡的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
参见图1,图1为本发明实施例中实现虚拟机负载均衡流程示意图。具体步骤为:
步骤101,虚拟机管理平台周期监测各物理主机及各物理主机上运行的虚拟机的负载信息,并根据负载信息分别计算各物理主机及虚拟机的负载指数。
本步骤中根据负载信息分别计算各物理主机和虚拟机的负载指数的方法为:根据IO吞吐量确定IO吞吐量因子,并分别对CPU利用率、内存使用率和IO吞吐量因子进行加权计算负载指数,其中,负载信息包括CPU利用率、内存使用率和IO吞吐量。
根据IO吞吐量确定IO吞吐量因子的方法为:在监测到的各物理主机的IO吞吐量中,选择出值最大的IO吞吐量,则各物理主机的IO吞吐量因子为自身的IO吞吐量与最大的IO吞吐量的比值;在监测到的任一物理主机的各虚拟机的IO吞吐量中,选择出值最大的IO吞吐量,则该物理主机的各虚拟机的IO吞吐量因子为自身的IO吞吐量与最大的IO吞吐量的比值。
在上述的虚拟机的IO吞吐量因子计算中,是各物理主机的虚拟机分别计算的,即最大IO吞吐量不是所有虚拟机的最大IO吞吐量,而是同一物理主机的各虚拟机中的最大IO吞吐量。
本步骤是周期执行的,并不是一直都在步骤102之前执行。
步骤102,虚拟机管理平台获取任一物理主机最近连续预设次数负载指数,若该物理主机的预设次数负载指数都大于第一预设阈值,则获取该物理主机上的所有当前运行的虚拟机的最近一次负载指数,并根据各虚拟机的预设亲和因子和其最近一次负载指数确定待迁移的虚拟机。
本步骤中预设亲和因子表示虚拟机对自身所在物理主机的依赖程度。根据各虚拟机的预设亲和因子和其最近一次负载指数确定待迁移的虚拟机的方法为:根据各虚拟机的预设亲和因子对各虚拟机的最近一次负载指数加权,将加权后值最大的虚拟机作为待迁移的虚拟机。由此可知本发明决定是否迁移一个虚拟机,不仅考虑该虚拟机的负载指数,还要考虑该虚拟机对自身所在物理主机的依赖程度。对于预设亲和因子的设置以及通过预设亲和因子对负载指数如何加权,使用者可以根据具体应用情况而定。
步骤103,虚拟机管理平台获取各物理主机最近一次负载指数,确定负载指数最小且负载指数小于第二预设阈值的物理主机作为虚拟机迁移的目的物理主机。
本步骤中的第二预设阈值小于步骤102中第一预设阈值。
步骤104,虚拟机管理平台将待迁移虚拟机迁移至目的物理主机。
当新增虚拟机时,虚拟机管理平台获取各物理主机最近一次负载指数,选择负载指数最小的物理主机,并在该物理主机上新增虚拟机。
本发明实施例中对各物理主机上运行的虚拟机进行监测,若该虚拟机未运行则无法监测其进程,无法获取其负载信息。
下面举具体实施例来详细说明本发明是如何实现虚拟机负载均衡的。
虚拟机管理平台需设置监测物理主机和虚拟机的监测周期,即多长时间对物理主机和虚拟机执行一次负载监测动作。若不设置默认该周期为5分钟。为各虚拟机设置一个亲和因子,表示虚拟机对自身所在物理主机的依赖性。具体实现可以设亲和因子为0到1之间的百分数。通常情况下不允许迁移。设置第一预设阈值,用于触发负载均衡操作,即触发虚拟机动态迁移;设置第二预设阈值,用于确定物理主机是否允许其他虚拟机迁入。
虚拟机管理平台周期性地对各物理主机及各物理主机上的虚拟机进行监测,分别获取其监测结果,即负载信息,包括CPU利用率、内存利用率、IO吞吐量等。
虚拟机管理平台监测各物理主机时可以使用python脚本通过ssh远程执行相关统计命令来实现,比如在linux上可以使用命令top/iostat等命令。
虚拟机管理平台监测虚拟机时,运行在物理主机上的各虚拟机实质上是通过该物理主机的一个进程来模拟的,因此可以使用python脚本通过安全框架(secure shell,ssh)远程执行相关统计命令从该虚拟机所在物理主机的对应进程。
以物理主机的运行程序为KVM,获取该物理主机上的各虚拟机的cpu、内存使用率和IO吞吐量为例。可以使用python脚本通过top–p pid来获取各虚拟机的cpu和内存使用率。这里获得的虚拟机的cpu和内存使用率与实际值不是完全相等的精确的值,只是一个等价值,这个值能够在特征上代表实际值,即实际值增加该值增加,实际值减小该值减小。IO吞吐量的获取通过virsh list获取到该物理主机上的所有running状态的虚拟机,从虚拟机的xml定义中检索出接口名称列表,依据该接口名称逐个接口执行相关命令查看IO吞吐量信息。将一个虚拟机下的所有接口的发送字节数和接收字节数分别相加,得到该虚拟机的IO吞吐量的总发送字节数和总接收字节数。这里只是具体举例的一种实现方式,实现本发明并不局限于该方式。
在具体实现时,虚拟机管理平台可以记录每次的监测结果,需要确定是否存在虚拟机需要迁移时,再根据记录的监测结果计算负载指数;也可监测到监测结果时就计算负载指数,将每次计算的负载指数按时间顺序记录,当然,这种情况下可以记录监测结果,也可以不监测。监测可以保存在数据库或文件中,也可以链表的形式保存在内存中。本发明为了实现的便捷,采取监测到监测结果直接计算负载指数。以各物理主机的负载指数计算为例,具体实现如下:
在该次监测结果中的IO吞吐量中,找出最大值ioMax,其对应的IO吞吐量百分比为1,其他的IO吞吐量百分比为:io/ioMax。IO吞吐量越大的虚拟机越不应该迁移,因为迁移过程中对于业务可能有影响。
获取物理主机i的监测结果Hi,依据事先设定好的各个负载因子的加权值计算负载指数。
假设仅考虑CPU利用率(A)、内存利用率(B)、IO吞吐量百分比(C)三个负载因子,且预先设定好的加权值分别为X、Y、Z,且(X+Y+Z)=1。则物理主机Hi的负载指数Li=Ai*X+Bi*Y+Ci*Z。假设集群内的物理主机个数为hMax,则i的取值为[0,hMax-1]。
若采用记录监测结果,需要计算负载指数再计算时,还需引入一个预设次数N,则Hin的负载指数Lin=Ain*X+Bin*Y+Cin*Z,n的取值为[0,N-1],其中最近一次监测数据其索引为0。
虚拟机管理平台获取各物理主机5次连续的负载指数,若存在某个物理主机的5次连续负载指数都超过第一预设阈值,则获取该物理主机上的各虚拟机的负载指数。各虚拟机的负载指数获取方式同上述各物理主机的负载指数。这里不再详细赘述。若不存在物理主机5次连续负载指数都超第一预设阈值时,结束此操作。
虚拟机管理平台根据预设亲和因子对获取的各虚拟机的负载指数分别加权,具体实现为:(1-affinityj)*lj其中,j的取值为[0,VMax-1],VMax为该物理主机上虚拟机的个数。将加权后值最大的虚拟机作为待迁移的虚拟机。其中,affinityj为各虚拟机预设的亲和因子,设各虚拟机的亲和因子为[0,1]之间的百分数,其中0表示无依赖性,1表示依赖性很大,一般不建议迁移。加权的时候,权值使用的是(1-亲和因子),表示亲和因子越大的,越不乐意迁移。
虚拟机管理平台通过上述同样的方法,获取各物理主机最近一次的负载指数,选择负载指数最小的物理主机,若该物理主机的负载指数小于第二预设阈值,即该物理主机能够再新增虚拟机的情况下,将该物理主机作为待迁移虚拟机的目的物理主机。否则,未有物理主机能够接受待迁移的虚拟机的迁移,该次操作结束。
虚拟机管理平台将待迁移的虚拟机迁移到目的物理主机。使用libvirt的virsh工具执行虚拟机迁移的动作,并将执行结果反馈给触发者。具体迁移过程同现有实现,这里不再赘述。
无论待迁移的虚拟机最终是否能够迁移,对于上述操作过程虚拟机管理平台都采用日志的形式记录上述操作,为管理员提供方便。
虚拟机管理平台对集群内的所有物理主机进行管理,包括增加、删除物理主机,通过libvirt增加、删除、暂停虚拟机等所有虚拟机生命周期。
在本发明的具体实现中,在确定存在负载太大,需要有虚拟机需要迁移的物理主机时,也可以先确定是否存在相对空闲的物理主机,当不存在时,直接结束本次操作,不再确定超负载的物理主机需要迁移的虚拟机。当然,在实际应用中,一般都会存在相对空闲的物理主机可迁入;否则,***内会增加新的物理主机。
基于上述同样的发明构思,本发明还提出一种虚拟机负载分担装置。参见图2,图2为本发明具体实施例中实现虚拟机负载均衡的装置结构示意图。该装置包括:配置单元201、监测单元202、计算单元203、第一获取确定单元204、第二获取确定单元205、第三获取确定单元206和迁移单元207。
配置单元201,用于设置监测周期、预设次数,各虚拟机的预设亲和因子,第一预设阈值,第二预设阈值,其中,所述第二预设阈值小于所述第一预设阈值。
监测单元202,用于根据配置单元201设置的监测周期监测各物理主机及各物理主机上运行的虚拟机的负载信息。
计算单元203,用于根据监测单元202监测的负载信息计算各物理主机及各物理主机上运行的虚拟机的负载指数。
第一获取确定单元204,用于获取计算单元203计算的任一物理主机最近连续配置单元201设置的预设次数负载指数,确定该物理主机的预设次数负载指数都大于配置单元201设置的第一预设阈值。
第二获取确定单元205,用于当第一获取单元204确定该物理主机的预设次数负载指数都大于第一预设阈值时,获取计算单元203计算的该物理主机上的所有当前运行的虚拟机的最近一次负载指数,并根据配置单元201设置的各虚拟机的预设亲和因子和其最近一次负载指数确定待迁移的虚拟机,其中,预设亲和因子表示虚拟机对自身所在物理主机的依赖程度。
第三获取确定单元206,用于当第一获取单元204确定该物理主机的预设次数负载指数都大于第一预设阈值时,获取计算单元203计算的各物理主机最近一次负载指数,确定负载指数最小且负载指数小于配置单元201设置的第二预设阈值的物理主机作为待迁移虚拟机迁移的目的物理主机。
迁移单元207,用于将第二获取确定单元205确定的待迁移虚拟机迁移至第三获取确定单元206确定的目的物理主机。
较佳地,
第二获取确定单元205,用于根据各虚拟机的预设亲和因子对各虚拟机的最近一次负载指数加权,将加权后值最大的虚拟机作为待迁移的虚拟机。
较佳地,
监测单元202,用于周期监测各物理主机时,使用python脚本通过ssh远程执行相关统计命令来获取各物理主机的负载信息;周期监测运行在物理主机上的各虚拟机时,使用python脚本通过ssh远程执行相关命令从该虚拟机所在物理主机的对应进程获取该虚拟机的负载信息,其中,负载信息包括CPU利用率、内存使用率和IO吞吐量,相关统计命令根据物理主机的运行程序确定。
较佳地,
计算单元203,用于根据IO吞吐量确定IO吞吐量因子,并分别对CPU利用率、内存使用率和IO吞吐量因子进行加权计算负载指数。
较佳地,
计算单元203,用于在监测单元202监测到的各物理主机的IO吞吐量中,选择出值最大的IO吞吐量,则各物理主机的IO吞吐量因子为自身的IO吞吐量与最大的IO吞吐量的比值;在监测单元202监测到的任一物理主机上的各虚拟机的IO吞吐量中,选择出值最大的IO吞吐量,则该物理主机上的各虚拟机的IO吞吐量因子为自身的IO吞吐量与最大的IO吞吐量的比值。
较佳地,
第三获取确定单元206,进一步用于当新增虚拟机时,获取计算单元203计算的各物理主机的最近一次负载指数,选择负载指数最小的物理主机,并在该物理主机上新增虚拟机。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明综合考虑物理主机和虚拟机的CPU利用率、内存利用率、IO吞吐量等负载因素来确定虚拟机的动态迁移动作,实现虚拟机分布的负载均衡,有效提高了虚拟机的平滑迁移,避免由于高内存利用率和IO吞吐量的情况下迁移虚拟机对虚拟机所造成的影响。
本发明不需要在物理主机或虚拟机上事先安装代理,减少了复杂性和成本。不仅考虑物物理主机的CPU负载,也考虑该物理主机上的虚拟机的负载,还通过配置虚拟机对物理主机的亲和性,亲和性越强越不建议动态迁移。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种虚拟机负载均衡方法,其特征在于,周期监测各物理主机及各物理主机上运行的虚拟机的负载信息,并根据所述负载信息分别计算各物理主机及各物理主机上运行的虚拟机的负载指数,所述方法包括:
获取任一物理主机最近连续预设次数负载指数,若该物理主机的所述预设次数负载指数都大于第一预设阈值,则获取该物理主机上的所有当前运行的虚拟机的最近一次负载指数,并根据各虚拟机的预设亲和因子和其最近一次负载指数确定待迁移的虚拟机,其中,所述预设亲和因子表示虚拟机对自身所在物理主机的依赖程度;所述预设亲和因子为[0,1]之间的百分数,0表示无依赖性,1表示依赖性最大;
获取各物理主机最近一次负载指数,确定负载指数最小且负载指数小于第二预设阈值的物理主机作为虚拟机迁移的目的物理主机,其中,所述第二预设阈值小于所述第一预设阈值;
将所述待迁移虚拟机迁移至所述目的物理主机;
其中,所述负载信息包括CPU利用率、内存使用率和IO吞吐量;所述根据负载信息分别计算各物理主机及各物理主机上运行的虚拟机的负载指数的方法为:
根据IO吞吐量确定IO吞吐量因子,并分别对CPU利用率、内存使用率和IO吞吐量因子进行加权计算负载指数;
其中,所述根据IO吞吐量确定IO吞吐量因子的方法为:
在监测到的各物理主机的IO吞吐量中,选择出值最大的IO吞吐量,则各物理主机的IO吞吐量因子为自身的IO吞吐量与最大的IO吞吐量的比值;
在监测到的任一物理主机的各虚拟机的IO吞吐量中,选择出值最大的IO吞吐量,则该物理主机的各虚拟机的IO吞吐量因子为自身的IO吞吐量与最大的IO吞吐量的比值。
2.根据权利要求1所述的方法,其特征在于,所述根据各虚拟机的预设亲和因子和其最近一次负载指数确定待迁移的虚拟机的方法为:
根据各虚拟机的预设亲和因子对所述各虚拟机的最近一次负载指数加权,将加权后值最大的虚拟机作为待迁移的虚拟机。
3.根据权利要求1所述的方法,其特征在于,所述周期监测各物理主机及各物理主机上运行的虚拟机的负载信息的方法为:
周期监测各物理主机时,使用python脚本通过安全框架ssh远程执行相关统计命令来获取各物理主机的负载信息;
周期监测运行在物理主机上的各虚拟机时,使用python脚本通过ssh远程执行相关命令从该虚拟机所在物理主机的对应进程获取该虚拟机的负载信息,其中,所述相关统计命令根据物理主机的运行程序确定。
4.根据权利要求1-3任意一项所述的方法,其特征在于,当新增虚拟机时,所述方法进一步包括:
获取各物理主机的最近一次负载指数,选择负载指数最小的物理主机,并在该物理主机上新增虚拟机。
5.一种虚拟机负载均衡装置,其特征在于,该装置包括:配置单元、监测单元、计算单元、第一获取确定单元、第二获取确定单元、第三获取确定单元和迁移单元;
所述配置单元,用于设置监测周期、预设次数,各虚拟机的预设亲和因子,第一预设阈值,第二预设阈值,其中,所述第二预设阈值小于所述第一预设阈值;
所述监测单元,用于根据所述配置单元设置的监测周期监测各物理主机及各物理主机上运行虚拟机的负载信息;其中,所述负载信息包括CPU利用率、内存使用率和IO吞吐量;
所述计算单元,用于根据所述监测单元监测的负载信息计算各物理主机及虚拟机的负载指数;
所述第一获取确定单元,用于获取所述计算单元计算的任一物理主机最近连续所述配置单元设置的预设次数负载指数,确定该物理主机的所述预设次数负载指数都大于所述配置单元设置的第一预设阈值;
所述第二获取确定单元,用于当所述第一获取单元确定该物理主机的所述预设次数负载指数都大于第一预设阈值时,获取所述计算单元计算的该物理主机上的所有当前运行的虚拟机的最近一次负载指数,并根据所述配置单元设置的各虚拟机的预设亲和因子和其最近一次负载指数确定待迁移的虚拟机,其中,所述预设亲和因子表示虚拟机对自身所在物理主机的依赖程度;所述预设亲和因子为[0,1]之间的百分数,0表示无依赖性,1表示依赖性最大;
所述第三获取确定单元,用于当所述第一获取单元确定该物理主机的所述预设次数负载指数都大于第一预设阈值时,获取所述计算单元计算的各物理主机最近一次负载指数,确定负载指数最小且负载指数小于所述配置单元设置的第二预设阈值的物理主机作为待迁移虚拟机迁移的目的物理主机;
所述迁移单元,用于将所述第二获取确定单元确定的待迁移虚拟机迁移至所述第三获取确定单元确定的目的物理主机;
其中,所述计算单元,具体用于根据IO吞吐量确定IO吞吐量因子,在监测到的各物理主机的IO吞吐量中,选择出值最大的IO吞吐量,则各物理主机的IO吞吐量因子为自身的IO吞吐量与最大的IO吞吐量的比值;在监测到的任一物理主机的各虚拟机的IO吞吐量中,选择出值最大的IO吞吐量,则该物理主机的各虚拟机的IO吞吐量因子为自身的IO吞吐量与最大的IO吞吐量的比值;并分别对CPU利用率、内存使用率和IO吞吐量因子进行加权计算负载指数。
6.根据权利要求5所述的装置,其特征在于,
所述第二获取确定单元,用于根据各虚拟机的预设亲和因子对所述各虚拟机的最近一次负载指数加权,将加权后值最大的虚拟机作为待迁移的虚拟机。
7.根据权利要求5所述的装置,其特征在于,
所述监测单元,用于周期监测各物理主机时,使用python脚本通过安全框架ssh远程执行相关统计命令来获取各物理主机的负载信息;周期监测运行在物理主机上的各虚拟机时,使用python脚本通过ssh远程执行相关命令从该虚拟机所在物理主机的对应进程获取该虚拟机的负载信息,其中,所述相关统计命令根据物理主机的运行程序确定。
8.根据权利要求5-7任意一项所述的装置,其特征在于,
所述第三获取确定单元,进一步用于当新增虚拟机时,获取所述计算单元计算的各物理主机的最近一次负载指数,选择负载指数最小的物理主机,并在该物理主机上新增虚拟机。
CN201110373058.7A 2011-11-22 2011-11-22 一种虚拟机负载均衡方法和装置 Active CN102508718B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201110373058.7A CN102508718B (zh) 2011-11-22 2011-11-22 一种虚拟机负载均衡方法和装置
PCT/CN2012/085028 WO2013075640A1 (en) 2011-11-22 2012-11-22 Balancing virtual machine loads
US14/345,653 US9286099B2 (en) 2011-11-22 2012-11-22 Balancing virtual machine loads

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110373058.7A CN102508718B (zh) 2011-11-22 2011-11-22 一种虚拟机负载均衡方法和装置

Publications (2)

Publication Number Publication Date
CN102508718A CN102508718A (zh) 2012-06-20
CN102508718B true CN102508718B (zh) 2015-04-15

Family

ID=46220810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110373058.7A Active CN102508718B (zh) 2011-11-22 2011-11-22 一种虚拟机负载均衡方法和装置

Country Status (3)

Country Link
US (1) US9286099B2 (zh)
CN (1) CN102508718B (zh)
WO (1) WO2013075640A1 (zh)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
CN102508718B (zh) 2011-11-22 2015-04-15 杭州华三通信技术有限公司 一种虚拟机负载均衡方法和装置
CN102868763B (zh) * 2012-10-08 2015-12-09 山东省计算中心 一种云计算环境下虚拟web应用集群节能的动态调整方法
CN102981910B (zh) * 2012-11-02 2016-08-10 曙光云计算技术有限公司 虚拟机调度的实现方法和装置
CN103812895A (zh) * 2012-11-12 2014-05-21 华为技术有限公司 调度方法、管理节点以及云计算集群
CN102938790B (zh) * 2012-11-20 2015-10-21 无锡城市云计算中心有限公司 云计算***中的资源分配方法
CN103019366B (zh) * 2012-11-28 2015-06-10 国睿集团有限公司 基于cpu心跳幅度的物理主机负载检测方法
CN103116517B (zh) * 2013-01-24 2016-09-14 华为技术有限公司 虚拟化平台下i/o通道的调整方法和调整装置
US8819685B2 (en) 2013-01-24 2014-08-26 Huawei Technologies Co., Ltd. Method and apparatus for adjusting I/O channel on virtual platform
US9665386B2 (en) 2013-06-14 2017-05-30 Nutanix, Inc. Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment
US9740514B1 (en) 2013-06-26 2017-08-22 Nutanix, Inc. Method and system to share data with snapshots in a virtualization environment
CN103617076A (zh) * 2013-10-31 2014-03-05 中兴通讯股份有限公司 一种虚拟化资源的调度方法和***及服务端
US9348654B2 (en) * 2013-11-19 2016-05-24 International Business Machines Corporation Management of virtual machine migration in an operating environment
CN103677960B (zh) * 2013-12-19 2017-02-01 安徽师范大学 一种能耗约束的虚拟机博弈重放置方法
TWI603266B (zh) * 2014-03-03 2017-10-21 廣達電腦股份有限公司 虛擬機器之資源調整方法及系統
US11243707B2 (en) 2014-03-12 2022-02-08 Nutanix, Inc. Method and system for implementing virtual machine images
CN104915241B (zh) 2014-03-12 2018-09-07 华为技术有限公司 一种虚拟机迁移控制方法及装置
JP6515920B2 (ja) * 2014-03-20 2019-05-22 日本電気株式会社 通信装置、通信方法、通信システムおよびプログラム
JP6326913B2 (ja) * 2014-03-31 2018-05-23 富士通株式会社 制御プログラムおよび制御方法
US9811365B2 (en) * 2014-05-09 2017-11-07 Amazon Technologies, Inc. Migration of applications between an enterprise-based network and a multi-tenant network
US20170006082A1 (en) * 2014-06-03 2017-01-05 Nimit Shishodia Software Defined Networking (SDN) Orchestration by Abstraction
US20170068558A1 (en) * 2014-06-12 2017-03-09 Hitachi, Ltd. Virtual machine management system and method therefor
CN105335209A (zh) * 2014-06-19 2016-02-17 联想(北京)有限公司 一种虚拟机调度方法、电子设备及服务器
US9483299B2 (en) * 2014-06-30 2016-11-01 Bmc Software, Inc. Capacity risk management for virtual machines
CN104199736A (zh) * 2014-06-30 2014-12-10 浙江大学苏州工业技术研究院 云环境下的数据中心节能方法
US9477743B2 (en) * 2014-07-02 2016-10-25 Oracle International Corporation System and method for load balancing in a distributed system by dynamic migration
US10235264B2 (en) 2014-09-11 2019-03-19 Infosys Limited Method and system for monitoring health of a virtual environment
CN105511953B (zh) * 2014-09-22 2019-04-05 ***股份有限公司 云环境下的虚拟机负载评估***、方法以及服务节点
CN105528234A (zh) * 2014-10-24 2016-04-27 中兴通讯股份有限公司 虚拟机迁移处理方法及装置
CN104375897B (zh) * 2014-10-27 2018-02-27 西安工程大学 基于最小相对负载不均衡度的云计算资源调度方法
KR20160070636A (ko) * 2014-12-10 2016-06-20 경희대학교 산학협력단 분산 클라우드 환경에서의 마이그레이션 제어 장치 및 이를 이용한 마이그레이션 제어 방법
CN104683186A (zh) * 2015-03-11 2015-06-03 杭州华三通信技术有限公司 网络资源调度方法及装置
CN104991825B (zh) * 2015-03-27 2019-07-05 北京天云融创软件技术有限公司 一种基于负载感知的Hypervisor资源超分配及动态调整方法及***
CN104750541B (zh) * 2015-04-22 2018-01-16 成都睿峰科技有限公司 一种虚拟机迁移方法
CN104834584B (zh) * 2015-06-04 2017-07-11 深圳市中博科创信息技术有限公司 一种监测主机硬件负载的方法和***
CN105592134B (zh) * 2015-08-26 2019-04-05 新华三技术有限公司 一种负载分担的方法和装置
US9942631B2 (en) * 2015-09-25 2018-04-10 Intel Corporation Out-of-band platform tuning and configuration
CN105138408B (zh) * 2015-09-28 2018-10-12 浪潮(北京)电子信息产业有限公司 一种基于OpenStack的虚拟机迁移方法和装置
US10613887B2 (en) 2015-10-21 2020-04-07 International Business Machines Corporation Ordering optimization of host machines in a computing environment based on policies
CN105607950A (zh) * 2015-10-30 2016-05-25 浪潮(北京)电子信息产业有限公司 一种虚拟机资源配置方法和装置
US10361919B2 (en) 2015-11-09 2019-07-23 At&T Intellectual Property I, L.P. Self-healing and dynamic optimization of VM server cluster management in multi-cloud platform
CN111953732B (zh) * 2015-11-10 2023-03-28 华为技术有限公司 一种云计算***中的资源调度方法及装置
US10067803B2 (en) * 2015-11-25 2018-09-04 International Business Machines Corporation Policy based virtual machine selection during an optimization cycle
CN105893155B (zh) * 2016-04-14 2019-12-03 广州杰赛科技股份有限公司 虚拟机负载均衡控制方法与装置
US10613947B2 (en) 2016-06-09 2020-04-07 Nutanix, Inc. Saving and restoring storage devices using application-consistent snapshots
WO2018004367A1 (en) * 2016-06-27 2018-01-04 Emc Corporation Techniques for accurately apprising a user of progress in booting a virtual appliance
CN106227578A (zh) * 2016-07-12 2016-12-14 腾讯科技(深圳)有限公司 一种虚拟机热迁移的方法、设备及***
CN106201659B (zh) * 2016-07-12 2019-07-05 腾讯科技(深圳)有限公司 一种虚拟机热迁移的方法及宿主机
CN106648829A (zh) * 2016-10-28 2017-05-10 广州市泰富信通科技有限公司 云资源高效利用的虚拟机迁移方法
CN108063780B (zh) * 2016-11-08 2021-02-19 中国电信股份有限公司 用于动态复制数据的方法和***
US10419393B2 (en) * 2017-05-11 2019-09-17 International Business Machines Corporation Using network configuration analysis to improve server grouping in migration
CN107220161B (zh) * 2017-06-21 2019-10-25 郑州云海信息技术有限公司 一种基于监控项的监测方法及装置
US10324662B2 (en) * 2017-08-28 2019-06-18 International Business Machines Corporation Rebalancing of the first extents of logical volumes among a plurality of ranks
CN107885579A (zh) * 2017-11-13 2018-04-06 郑州云海信息技术有限公司 虚拟机的负载均衡方法和计算机可读存储介质
US10824522B2 (en) 2017-11-27 2020-11-03 Nutanix, Inc. Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications
CN108259603B (zh) * 2018-01-17 2021-05-07 新华三技术有限公司 一种负载均衡方法及装置
CN109189556B (zh) * 2018-08-29 2022-08-12 郑州云海信息技术有限公司 一种基于负载均衡的亲和性规则冲突监测方法及装置
US11327780B2 (en) * 2018-09-18 2022-05-10 Vmware, Inc. Network-efficient isolation environment redistribution
CN109189581B (zh) * 2018-09-20 2021-08-31 郑州云海信息技术有限公司 一种作业调度方法和装置
CN109491788B (zh) * 2018-11-01 2022-12-09 郑州云海信息技术有限公司 一种虚拟化平台负载均衡实现方法及装置
CN110597631B (zh) * 2019-09-06 2022-06-21 广州华多网络科技有限公司 资源管理方法、监控服务器、代理服务器以及存储介质
CN111858031B (zh) * 2020-06-19 2022-06-07 浪潮电子信息产业股份有限公司 一种集群分布式资源调度方法、装置、设备及存储介质
CN112328573A (zh) * 2020-11-03 2021-02-05 杭州朗澈科技有限公司 kubernetes集群中数据库迁移方法和***
CN117891619A (zh) * 2024-03-18 2024-04-16 山东吉谷信息科技有限公司 基于虚拟化平台的主机资源同步方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593133A (zh) * 2009-06-29 2009-12-02 北京航空航天大学 虚拟机资源负载均衡方法及装置
CN102096601A (zh) * 2011-02-11 2011-06-15 浪潮(北京)电子信息产业有限公司 一种虚拟机迁移的管理方法和***
CN102110014A (zh) * 2011-03-15 2011-06-29 合肥华云通信技术有限公司 虚拟机负载均衡处理的方法
CN102187315A (zh) * 2009-04-28 2011-09-14 思科技术公司 在虚拟环境中获取用于服务器负载均衡的反馈信息的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060069761A1 (en) * 2004-09-14 2006-03-30 Dell Products L.P. System and method for load balancing virtual machines in a computer network
CN101504620A (zh) 2009-03-03 2009-08-12 华为技术有限公司 一种虚拟化集群***负载平衡方法、装置及***
US8489744B2 (en) * 2009-06-29 2013-07-16 Red Hat Israel, Ltd. Selecting a host from a host cluster for live migration of a virtual machine
US8423646B2 (en) * 2010-07-09 2013-04-16 International Business Machines Corporation Network-aware virtual machine migration in datacenters
CN102508718B (zh) 2011-11-22 2015-04-15 杭州华三通信技术有限公司 一种虚拟机负载均衡方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102187315A (zh) * 2009-04-28 2011-09-14 思科技术公司 在虚拟环境中获取用于服务器负载均衡的反馈信息的方法和装置
CN101593133A (zh) * 2009-06-29 2009-12-02 北京航空航天大学 虚拟机资源负载均衡方法及装置
CN102096601A (zh) * 2011-02-11 2011-06-15 浪潮(北京)电子信息产业有限公司 一种虚拟机迁移的管理方法和***
CN102110014A (zh) * 2011-03-15 2011-06-29 合肥华云通信技术有限公司 虚拟机负载均衡处理的方法

Also Published As

Publication number Publication date
CN102508718A (zh) 2012-06-20
WO2013075640A1 (en) 2013-05-30
US20140229949A1 (en) 2014-08-14
US9286099B2 (en) 2016-03-15

Similar Documents

Publication Publication Date Title
CN102508718B (zh) 一种虚拟机负载均衡方法和装置
Li et al. An optimization of virtual machine selection and placement by using memory content similarity for server consolidation in cloud
CN102696000B (zh) 用于虚拟化数据中心中的协调能量管理的方法和设备
CN102326132B (zh) 最大化虚拟机平台的降低功率状态的电源管理
Hu et al. A time-series based precopy approach for live migration of virtual machines
CN102236582B (zh) 虚拟化集群负载在多台物理机中均衡分配的方法
US20140082202A1 (en) Method and Apparatus for Integration of Virtual Cluster and Virtual Cluster System
CN103885831B (zh) 虚拟机宿主机的选择方法与装置
CN104899095A (zh) 虚拟机器的资源调整方法及***
CN103365700A (zh) 一种面向云计算虚拟化环境的资源监测和调整***
Xu et al. A heuristic virtual machine scheduling method for load balancing in fog-cloud computing
CN103383650A (zh) 管理方法及其***
Ranjana et al. A survey on power aware virtual machine placement strategies in a cloud data center
CN102594881A (zh) 一种虚拟机负载均衡方法、管理模块及虚拟机集群***
Wei et al. Energy optimized modeling for live migration in virtual data center
Tuli et al. Efficient virtual machine migration algorithms for data centers in cloud computing
Singh et al. Comparative analysis of VM consolidation algorithms for cloud computing
Xu et al. Energy-Aware Resource Management in Cloud Computing Considering Load Balance.
Tian et al. Efficient algorithms for VM placement in cloud data centers
CN105183563A (zh) 一种面向关键任务计算机的cpu资源动态自配置方法
Kanagasubaraja et al. Energy optimization algorithm to reduce power consumption in cloud data center
Yu et al. Constraint programming-based virtual machines placement algorithm in datacenter
CN106227600B (zh) 一种基于能量感知的多维虚拟资源分配方法
CN107562510B (zh) 一种应用实例的管理方法及管理设备
Vahora et al. Efficient Virtual Machine management based on dynamic workload in cloud computing environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: Huasan Communication Technology Co., Ltd.

CP03 Change of name, title or address