CN104166594A - 负载均衡控制方法及相关装置 - Google Patents

负载均衡控制方法及相关装置 Download PDF

Info

Publication number
CN104166594A
CN104166594A CN201410409949.7A CN201410409949A CN104166594A CN 104166594 A CN104166594 A CN 104166594A CN 201410409949 A CN201410409949 A CN 201410409949A CN 104166594 A CN104166594 A CN 104166594A
Authority
CN
China
Prior art keywords
node
migration
virtual machine
numa
physics
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.)
Granted
Application number
CN201410409949.7A
Other languages
English (en)
Other versions
CN104166594B (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.)
Hangzhou Huawei Digital Technologies Co Ltd
Original Assignee
Hangzhou Huawei Digital 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 Huawei Digital Technologies Co Ltd filed Critical Hangzhou Huawei Digital Technologies Co Ltd
Priority to CN201410409949.7A priority Critical patent/CN104166594B/zh
Publication of CN104166594A publication Critical patent/CN104166594A/zh
Application granted granted Critical
Publication of CN104166594B publication Critical patent/CN104166594B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例公开了负载均衡控制方法及相关装置,以优化负载均衡效果。上述方法包括:根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机;所述需迁移的虚拟机表示为目标虚拟机;计算按不同的迁移方式迁移所述目标虚拟机的迁移开销;按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移。可见,在本发明实施例中,在确定需迁移的虚拟机时,考虑了物理NUMA节点负载和虚拟机负载,由于考虑了物理NUMA节点负载,使得在迁移后,各物理NUMA节点间的负载均衡效果要优于现有技术。并且,在本发明实施例中,是根据虚拟机迁移开销选择了迁移开销最低的迁移方式,在实现负载均衡的同时,可减少迁移代价。

Description

负载均衡控制方法及相关装置
技术领域
本发明涉及通信技术领域,具体涉及负载均衡控制方法及相关装置。
背景技术
随着虚拟化、云计算的发展,非一致性内存架构(Non-uniformMemory Architecture,NUMA)的物理机(物理服务器)上广泛部署了虚拟机。
在基于NUMA架构的物理机中,包含多个物理处理器和多个内存。上述多个物理处理器和多个内存可被划分为多个组(也可称为物理NUMA节点)。
在实施本发明创造中,发明人发现,现有技术中根据物理机上运行的虚拟机负载来调整各物理NUMA节点的内存分布,以期实现各物理NUMA节点的负载均衡。但这种负载均衡控制只是基于虚拟机负载来进行调整,调整后,各物理NUMA节点间的负载均衡效果并不理想。
发明内容
本发明实施例的目的在于提供负载均衡控制方法及相关装置,以优化负载均衡效果。
本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,提供一种负载均衡控制方法,包括:
根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机;所述需迁移的虚拟机表示为目标虚拟机;
计算按不同的迁移方式迁移所述目标虚拟机的迁移开销;
按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移。
结合第一方面,在第一种可能的实现方式中,还包括:迁移后,更新所述目标虚拟机的虚拟NUMA拓扑结构;通知所述目标虚拟机更新自身的虚拟NUMA拓扑结构。
结合第一方面或第一方面第一种可能的实现方式,在第二种可能的实现方式中,任一所述迁移方式用于指示所述目标虚拟机的内存页欲迁移至的、至少一个物理NUMA节点;以及,当前存储有所述目标虚拟机的内存页的各物理NUMA节点,向所述至少一个物理NUMA节点中的各节点所迁移的内存页;其中:所述至少一个物理NUMA节点表示为目标迁移节点;所述目标迁移节点中的其中一个物理NUMA节点为,所述目标虚拟机中的虚拟处理器欲迁移至的节点;所述目标虚拟机中的虚拟处理器欲迁移至的节点表示为目标主节点。
结合第一方面第二种可能的实现方式,在第三种可能的实现方式中,所述目标迁移节点中的各物理NUMA节点的内存利用率小于第一阈值。
结合第一方面第二种可能的实现方式,在第四种可能的实现方式中,被执行后,所述迁移开销最低的迁移方式所指示的目标主节点的内存利用率小于第二阈值。
结合第一方面第二种可能的实现方式,在第五种可能的实现方式中,任一迁移方式还用于指示:在所述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在所述当前主节点上所占的内存份额比例回收内存;将回收的内存中的内存页分配至至少一个新物理NUMA节点上;所述目标迁移节点包含所述至少一个新物理NUMA节点;所述按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移包括:在所述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在所述当前主节点上所占的内存份额比例回收内存;将回收的内存中的内存页分配至所述迁移开销最低的迁移方式指示的至少一个新物理NUMA节点上。
结合第一方面第二种可能的实现方式,在第六种可能的实现方式中,任一迁移方式还用于指示:将所述目标虚拟机在远端节点上存储的内存页向目标主节点或者邻居节点迁移;所述邻居节点为所述目标主节点的邻居节点,并且内存使用率低于第四阈值;所述远端节点为所述目标主节点的远端节点;所述按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移包括:将所述目标虚拟机在远端节点上存储的内存页,向所述迁移开销最低的迁移方式指示的目标主节点或者邻居节点迁移;所述邻居节点为所述目标主节点的邻居节点,并且内存使用率低于第四阈值;所述远端节点为所述目标主节点的远端节点。
结合第一方面,在第七种可能的实现方式中,根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机包括:计算各物理NUMA节点的负载;根据所述各物理NUMA节点的负载计算物理机负载分布均衡度;计算各虚拟机的负载以及各虚拟机的内存权重;在所述物理机负载分布均衡度大于负载分布均衡度阈值时,将负载最高的物理NUMA节点上内存权重最大的虚拟机确定为需迁移的虚拟机;在所述物理机负载分布均衡度小于或等于负载分布均衡度阈值并存在负载大于负载阈值的虚拟机时,将负载最高的虚拟机确定为需迁移的虚拟机。
根据本发明实施例的第二方面,提供一种宿主机,包括:
虚拟机确定单元,用于根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机;所述需迁移的虚拟机表示为目标虚拟机;
迁移开销计算单元,用于计算按不同的迁移方式迁移所述目标虚拟机的迁移开销;
迁移单元,用于按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移。
结合第二方面,在第一种可能的实现方式中,还包括:拓扑结构更新单元,用于在所述迁移单元完成迁移后,更新所述目标虚拟机的虚拟NUMA拓扑结构;通知单元,用于通知所述目标虚拟机更新自身的虚拟NUMA拓扑结构。
结合第二方面或第二方面第一种可能的实现方式,在第二种可能的实现方式中,任一所述迁移方式用于指示所述目标虚拟机的内存页欲迁移至的、至少一个物理NUMA节点;以及,当前存储有所述目标虚拟机的内存页的各物理NUMA节点,向所述至少一个物理NUMA节点中的各节点所迁移的内存页;其中:所述至少一个物理NUMA节点表示为目标迁移节点;所述目标迁移节点中的其中一个物理NUMA节点为,所述目标虚拟机中的虚拟处理器欲迁移至的节点;所述目标虚拟机中的虚拟处理器欲迁移至的节点表示为目标主节点。
结合第二方面第二种可能的实现方式,在第三种可能的实现方式中,所述目标迁移节点中的各物理NUMA节点的内存利用率小于第一阈值。
结合第二方面第二种可能的实现方式,在第四种可能的实现方式中,被执行后,所述迁移开销最低的迁移方式所指示的目标主节点的内存利用率小于第二阈值。
结合第二方面第二种可能的实现方式,在第五种可能的实现方式中,至少所述迁移开销最低的迁移方式还用于指示:将所述目标虚拟机在远端节点上存储的内存页向目标主节点或者邻居节点迁移;所述邻居节点为所述目标主节点的邻居节点,并且内存使用率低于第四阈值;所述远端节点为所述目标主节点的远端节点;在所述按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移方面,所述迁移单元用于:将所述目标虚拟机在远端节点上存储的内存页,向所述迁移开销最低的迁移方式指示的目标主节点或者邻居节点迁移;所述邻居节点为所述目标主节点的邻居节点,并且内存使用率低于第四阈值;所述远端节点为所述目标主节点的远端节点。
结合第二方面第二种可能的实现方式,在第六种可能的实现方式中,至少所述迁移开销最低的迁移方式还用于指示:在所述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在所述当前主节点上所占的内存份额比例回收内存;将回收的内存中的内存页分配至至少一个新物理NUMA节点上;所述目标迁移节点包含所述至少一个新物理NUMA节点;在所述按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移方面,所述迁移单元用于:在所述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在所述当前主节点上所占的内存份额比例回收内存;将回收的内存中的内存页分配至所述迁移开销最低的迁移方式指示的至少一个新物理NUMA节点上。
根据本发明实施例的第三方面,提供一种物理主机,包括:硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟机VM;所述硬件层包括至少一个物理非一致性内存架构NUMA节点;所述物理NUMA节点包含存储器和至少一个处理器;其中,所述Host用于:
根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机;所述需迁移的虚拟机表示为目标虚拟机;
计算按不同的迁移方式迁移所述目标虚拟机的迁移开销;
按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移。
结合第三方面,在第一种可能的实现方式中,所述Host还用于:迁移后,更新所述目标虚拟机的虚拟NUMA拓扑结构;通知所述目标虚拟机更新自身的虚拟NUMA拓扑结构。
可见,在本发明实施例中,在确定需迁移的虚拟机时,考虑了物理NUMA节点负载和虚拟机负载,由于考虑了物理NUMA节点负载,使得在迁移后,各物理NUMA节点间的负载均衡效果要优于现有技术。并且,在本发明实施例中,是根据虚拟机迁移开销选择了迁移开销最低的迁移方式,在实现负载均衡的同时,可减少迁移代价。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的NUMA结构的物理机示例图;
图2为本发明实施例提供的NUMA结构的物理机应用场景示例图;
图3为本发明实施例提供的负载均衡控制方法流程图;
图4为本发明实施例提供的迁移示意图;
图5为本发明实施例提供的负载均衡控制方法另一流程图;
图6为本发明实施例提供的目标虚拟机选择流程图;
图7为本发明实施例提供的另一迁移示意图;
图8为本发明实施例提供的又一迁移示意图;
图9为本发明实施例提供的负载均衡控制方法又一流程图;
图10为本发明实施例提供的宿主机结构示例图;
图11为本发明实施例提供的宿主机另一结构示例图;
图12为本发明实施例提供的物理主机结构示例图;
图13为本发明实施例提供的物理主机另一结构示例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个术语:
虚拟机VM:通过虚拟机软件可以在一台物理主机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
硬件层:虚拟化环境运行的硬件平台。其中,硬件层可包括多种硬件,例如某物理主机的硬件层可包括处理器(例如CPU)和内存,还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备,及具有特定处理功能的其它设备,如输入输出内存管理单元(IOMMU,Input/Output Memory Management Unit),其中IOMMU可用于虚拟机物理地址和Host物理地址的转换。
宿主机(Host):作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(如VCPU)、虚拟内存、虚拟磁盘、虚拟网卡等等。虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。
本发明实施例的负载均衡控制方法可以应用于基于非一致性内存架构(Non-uniform Memory Architecture,NUMA)的物理机(物理服务器)。
上述物理机(物理服务器)可包含硬件层、运行在该硬件层之上的宿主机(Host)、以及运行在该Host之上的至少一个虚拟机VM。
上述硬件层可包括单板,单板上包含多个物理处理器和多个内存。
上述单板上的几个物理处理器通过内存总线与一块内存相连构成一个组(也可称为物理NUMA节点),这样,单板上的多个物理处理器和多个内存就可以被划分为若干个物理NUMA节点。
对于某一物理NUMA节点(例如物理NUMA节点1)而言,处于该物理NUMA节点中的内存被称为本地内存(local memory),而处于其他物理NUMA节点中的内存,相对于物理NUMA节点1而言,被称为外部内存(foreign memory)。每个物理NUMA节点中的处理器访问本地内存和访问外部内存的延迟是不同的。
此外,物理NUMA节点又可以分为三类,即本地节点(local node),邻居节点(neighbour node)和远端节点(remote node)。对于某个物理NUMA节点中的所有CPU而言,该节点为本地节点,与本地节点相邻的物理NUMA节点可称为邻居节点,而非本地节点或邻居节点的节点,则可称为远端节点。
CPU访问本地节点上的内存时,访问延迟最低,而访问邻居节点就会比访问本地节点的访问延迟高,访问远端节点的访问延迟则更高。
除本地节点,邻居节点和远端节点外,本发明实施例中还将涉及主节点。对于某一虚拟机而言,其虚拟处理器(VCPU)绑定在哪个物理NUMA节点上,该物理NUMA节点就是其主节点。
或者说,由哪个物理NUMA节点上的处理器承载运行虚拟机,该物理NUMA节点就是这一虚拟机的主节点。
请参见图1,为本发明实施例设定的一种NUMA结构的物理机100(也可称为计算机系统)。上述物理机(物理服务器)的硬件层包括物理NUMA节点101-103。
每个物理NUMA节点可包括一个或多个处理器和本地内存。示例性的,在本实施例中,每个物理NUMA节点包括4个处理器(处理器104-107)和存储器108。
当然,在每个物理NUMA节点内的处理器的数目可以是可变的,以及每个物理NUMA节点可以具有自己的RAM(随机存储器)。
物理机100的硬件层上运行有Host109,更具体的,Host109可由VMM和VMM上运行的特权虚拟机结合组成。
Host109上还可运行有多个虚拟机(虚拟机110-112)。
需要说明的是,虽然物理机100在本实施例中被描绘为包括虚拟机110-112,但在其他实施例中,物理机100可执行更多或更少的虚拟机。
Host109为虚拟机指定主物理NUMA节点(可简称为主节点),在分配硬件资源时,优先将主节点上的硬件资源(物理处理器和物理内存)分配给虚拟机。
请参见图2,与物理主机相类似,虚拟机上可运行客户操作系统(guest OS)。并且,每个虚拟机中可包含一个或多个虚拟NUMA节点。以虚拟机110为例,其包含虚拟NUMA节点113和114。
进一步的,一个虚拟NUMA节点中可包含一个或多个虚拟处理器以及一个虚拟存储器。
示例性的,图2中,虚拟NUMA节点中包含两个虚拟处理器—VCPU115和116,以及,虚拟存储器117。
需要说明的是,虽然在本实施例中虚拟机被描绘为包括两个虚拟NUMA节点,但在其他实施例中,其可包括更多或更少的虚拟NUMA节点。另外,虽然在本实施例中,虚拟UNMA节点被描绘为具有两个虚拟处理器,但在其他实施例中,虚拟NMUA节点可以具有更多或更少的虚拟处理器。此外,每个虚拟NUMA节点可以具有与其他虚拟NUMA节点不同的虚拟NUMA拓扑结构。例如,一个虚拟NUMA节点可以具有4个虚拟处理器和16G字节的RAM,而另一个虚拟NUMA节点可以具有2个虚拟处理器和8G字节的RAM。
上述负载均衡控制方法的执行主机可为负载均衡控制装置。而负载均衡控制装置则可作为Host109的一个组件。
请参见图3,由负载均衡控制装置执行的负载均衡方法至少可包括如下步骤:
S1、根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机。
为称呼方便,可将上述需迁移的虚拟机称为目标虚拟机。
本文后续将对如何确定需迁移的虚拟机,以及如何计算各物理NUMA节点的负载以及各虚拟机的负载进行介绍。
S2、计算按不同的迁移方式迁移上述目标虚拟机的迁移开销。
具体的,每一迁移方式可用于指示目标虚拟机的CPU绑定关系、内存页欲迁移至的、至少一个物理NUMA节点,以及,当前存储有上述目标虚拟机的内存页的各物理NUMA节点,向上述至少一个物理NUMA节点中的各节点所迁移的内存页。
举例来讲,请参见图4,假定有4个物理NUMA节点(N1-N4)。并假定目标虚拟机的当前主节点为N1。
如迁移方式1指示目标虚拟机的CPU绑定关系为N2。则意味着,N2是目标虚拟机中的虚拟处理器欲迁移至的节点。为方便起见,可将目标虚拟机中的虚拟处理器欲迁移至的节点称为目标主节点。则在本例中,N2为目标主节点。也即,如迁移方式1最终被采纳执行,则迁移后,目标虚拟机的主节点为N2。
迁移处理器的开销很小,可忽略不计。
在迁移目标虚拟机过程中,除需要迁移处理器外,还需要将目标虚拟机的内存页进行迁移,迁移内存页开销相对较大,本文后续计算迁移开销时,也主要是考虑了迁移内存页的开销。
为方便起见,可将目标虚拟机的内存页欲迁移至的、至少一个物理NUMA节点称为目标迁移节点。当然,目标主节点也属于目标迁移节点中的一员。
仍以图4所示节点为例,假定在节点N1和N4的存储器上都存储有目标虚拟机的内存页。并假定,迁移方式1指定了节点N2和N3为目标迁移节点。如迁移方式1被执行,则目标虚拟机在N1和N4上存储的内存页将迁移至节点N2和N3。同时,迁移方式1还需指示将N1节点中的哪些内存页迁移至节点N2(或N3),以及将N4节点中的哪些内存页迁移至节点N3(或N2)。
S3、按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移。
举例来讲,假定一共有三种迁移方式,迁移方式1的迁移开销为1000,迁移方式2的迁移开销为2000,迁移方式3的迁移开销为500。则按迁移方式3对目标虚拟机进行迁移。
本文后续还将详细介绍如何计算迁移开销。
可见,在本发明实施例中,在确定需迁移的虚拟机时,考虑了物理NUMA节点负载和虚拟机负载,由于考虑了物理NUMA节点负载,使得在迁移后,各物理NUMA节点间的负载均衡效果要优于现有技术。并且,在本发明实施例中,是根据虚拟机迁移开销选择了迁移开销最低的迁移方式,在实现负载均衡的同时,可减少迁移代价。
下面,将详细介绍如何根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机。请参见图5,步骤S1至少可包括如下步骤:
S11、计算各物理NUMA节点的负载。
如何计算物理NUMA节点的负载可有多种方式。
例如,假定一共有n个物理NUMA节点,其中的第i个物理NUMA节点的负载表示为NLi,该物理NUMA节点的CPU利用率表示为NCi,内存利用率表示为NMi,则NLi可通过如下公式计算:
NL i = 1 1 - NC i * 1 1 - NM i               (公式一)
再例如,NLi还可以采用NCi、NMi、虚拟CPU复用比(NRi),以及复用比系数α来计算,其计算公式为:
NL i = ( 1 1 - NC i + α NR i ) * 1 1 - NM i                  (公式二)
引入NRi及α的原因是,由于CPU利用率的不确定性而导致节点负载不可靠。
其中,NRi=VCHi/PCHi。VCHi表示第i个物理NUMA节点上运行的虚拟CPU(处理器)个数,而PCHi表示第i个物理NUMA节点上的物理CPU个数。
而α可用下述公式计算:
α=1/(1-NCi)                (公式三)
公式三建立的是,α与NCi成反比的一个表达式,还可以用其他方式来求取α。
此外,一个物理NUMA节点上可运行多个物理CPU。在此情况下,可对第i个物理NUMA节点上各物理CPU利用率取平均值作为NCi
需要说明的是,宿主机上记录有各NUMA节点的物理CPU利用率,并记录有各虚拟机在物理NUMA节点上的内存分布。因此,可直接获取到NCi,以及,利用宿主机记录的内存分布来计算物理NUMA节点的内存利用率。
各物理NUMA节点的负载可构成负载矩阵:[NL1,NL2,...NLn]。
S12、根据上述各物理NUMA节点的负载计算物理机负载分布均衡度;
假定,物理NUMA节点的个数为n,则所有物理NUMA节点的负载平均值为(NLave表示负载平均值)。
则负载分布均衡度LBVnl可通过下式计算得到:
LBV nl = 1 n Σ i = 1 n ( NL i - NL ave ) 2                  (公式四)
S13、计算物理机上执行的各虚拟机的负载;
虚拟机的负载VL可有多种计算方式。
例如,以虚拟机j为例,其负载VLj可通过下述公式五计算得到:
VL j = 1 ( 1 - VC j ) * ( 1 - VM j )                   (公式五)
其中,VCj表示虚拟机j的虚拟CPU利用率,而VMj表示虚拟机j的虚拟内存利用率。
需要说明的是,宿主机上记录有各虚拟机上的虚拟CPU利用率和虚拟内存率。因此,可直接根据宿主机上的记录计算各虚拟机的负载。
S14、计算各虚拟机的内存权重。
虚拟机的内存权重可有多种计算方式。
例如,以虚拟机j为例,其内存权重VWj可通过下述公式六或公式七计算得到:
VW j = VCH j PCPU total * 1 1 - VMH j Memory total                 (公式六)
VW j = VCH j PCPU total * VMH j Memory total                    (公式七)
其中,VCHj表示虚拟机j上的虚拟CPU个数,PCPUtotal表示物理机上的物理CPU的总个数,Memorytotal表示物理机上总内存大小,VMHj表示虚拟机j初始创建时为其分配的上限内存大小。
S15、在上述物理机负载分布均衡度(LBVnl)大于负载分布均衡度阈值(LBV)时,将负载最高的物理NUMA节点上内存权重最大的虚拟机确定为需迁移的虚拟机。
举例来讲,一共有4个物理NUMA节点(N1-N4),负载分别为10、30、17、50,假定LBVnl>LBV,则N4的负载最高。
再假定,N4上有3个虚拟机,内存权重分别为0.2、0.5、0.1,则将N4节点上内存权重为0.5的虚拟机确定为需迁移的虚拟机,也即目标虚拟机。
S16、在上述物理机负载分布均衡度小于或等于负载分布均衡度阈值并存在负载大于负载阈值(VLV)的虚拟机时,将负载最高的虚拟机确定为需迁移的虚拟机。
举例来讲,假定一共有2个物理NUMA节点,并且LBVnl≤LBV,物理机上一共运行5台虚拟机(VM1-VM5),其负载分别为20、10、80、40、60,VLV=25。
则VM3-VM5的负载均高于VLV,在VM3-VM5中,VM3的负载最高,因此将VM3确定为目标虚拟机。
图6示出了涉及步骤S15和步骤S16的更具体的流程。
此外,在本发明其他实施例中,也可在LBVnl>LBV时,选择负载最高或内存权重最高的虚拟机为目标虚拟机。而在LBVnl≤LBV时,不作操作。本领域技术人员可根据实际需要进行灵活设计,在此不作赘述。
在本发明其他实施例中,上述方法还可包括如下步骤:采集信息。
具体的,采集的信息可包含各物理NUMA节点的CPU的利用率,以及,各虚拟机在物理NUMA节点上的内存分布。
下面将介绍如何计算迁移开销。
针对上述不同的迁移方式中的第i种迁移方式(1≤i≤N,N为不同的迁移方式的总数目),其对应的迁移开销通过如下方式计算:
计算当前存储有上述目标虚拟机的内存页的每一物理NUMA节点,向上述第i种迁移方式指示的目标迁移节点迁移内存页的迁移开销并累加。
更具体的,可通过如下两种方式计算迁移开销。
第一种方式:
记目标虚拟机当前在物理NUMA节点N1至NK均分布有内存页。则第i种迁移方式的迁移开销可通过下述公式八或公式九来计算:
C i = Σ k = 1 K w k * f k                    (公式八)
C i = Σ k = 1 K w k * f k * NL k                    (公式九)
其中,wk表示节点Nk与目标迁移节点之间的距离权值,fk表示节点Nk向相应目标迁移节点迁移的内存页数目,NLk表示节点Nk当前的负载。NLk可通过公式一或二计算得到。
前述提及了,有本地节点、邻居节点和远端节点之分。则当节点Nk是目标迁移节点的远端节点时,节点Nk与目标迁移节点之间的距离权值wk具体可取wr;当节点Nk是目标迁移节点的邻居节点时,节点Nk与目标迁移节点之间的距离权值wk具体可取wneighbor;而当节点Nk就是目标迁移节点时(也即节点Nk为本地节点),节点Nk与目标迁移节点之间的距离权值wk具体可取wL(当节点Nk为本地节点时,表示不迁移,开销为0)。
wr、wneighbor与wL之间的关系为:wL<wneighbor<wr
wr、wneighbor与wL是硬件属性性能,宿主机可直接获得。
公式八与公式九类似,本文后续将以公式八的计算方式为例,对迁移开销的计算进行介绍。
举例来讲,以图7所示节点为例,假定在节点N1和N4的存储器上都存储有目标虚拟机的内存页。并假定,迁移方式i仅指示了节点N2为目标迁移节点(节点N2亦为目标主节点),并指示将节点N1上存储的P1-P1000共1000页迁移至节点N2,将节点N4上存储的P2000-P2100共100页迁移至节点N2。
由于N1是N2的邻居节点,则其对应的迁移开销为1000*wneighbor;而N4是N2的远端节点,则其对应的迁移开销为100*wr
则Ci=1000*wneighbor+100*wr
再例如,以图4所示节点为例,假定在节点N1和N4的存储器上都存储有目标虚拟机的内存页。迁移方式i指定了节点N2和N3为目标迁移节点,其中N2为目标主节点。
同时,迁移方式i还指示了将节点N1上存储的P1-P1000共1000页内存页迁移至节点N2,将节点N4上存储的P2000-P2100共100页内存页迁移至节点N3。
由于N1是N2的邻居节点,则将节点N1上存储的P1-P1000共1000页迁移至节点N2对应的迁移开销为1000*wneighbor;而N4亦是N3的邻居节点,则将节点N4上存储的P2000-P2100共100页迁移至节点N3对应的迁移开销为100*wneighbor
则Ci=1000*wneighbor+100*wneighbor=1100*wneighbor
下面,将对迁移方式进行详细介绍。
在实际运行中,可能会面临这样的场景:
假定共有N1-N4这四个节点,目标虚拟机的当前主节点为N1,N2的内存利用率超过第一阈值(第一阈值可为80%、90%等,可进行灵活设定)。则N2不适合作为目标主节点。因此,在此场景下制定的所有迁移方式中,目标主节点都不是N2。
进一步的,当某一节点上的内存利用率超过第一阈值时,任何虚拟机的内存页均不再往该节点上迁移内存页。
也即,若所有物理NUMA节点构成集合L,而所有内存利用率超过第一阈值的物理NUMA节点构成集合B,节点集L′=L-B。则在制定迁移方式时,会从集合L′中选取一个或多个节点作为目标迁移节点。
此外,在本发明其他实施例中,在制定迁移方式时,可令迁移方式被执行后,其指示的目标主节点的内存率小于第二阈值。第二阈值可为80%、90%等,可进行灵活设定。
举例来讲,有N1-N4四个物理NUMA节点,N1为当前主节点。N2-N4的内存利用率分别为50%、60%和70%。N2-N4的内存利用率均不超过第一阈值(80%)。
假定迁移方式1中将节点N2作为目标主节点,当前主节点N1上有P1-P1300共1300页内存页需要迁移,但N2节点再存储1200页内存页其内存利用率就超过第二阈值了。则在迁移方式1中可进行如下指示:
N1向N2迁移P1-P1200;N1向N3迁移P1201-P1300。
或者,在本发明其他实施例中,至少上述所有实施例中迁移开销最低的迁移方式被执行后,该迁移开销最低的迁移方式所指示的目标主节点的内存利用率小于第二阈值。
在实际运行中,还可能会面临这样的场景:目标虚拟机的当前主节点的内存利用率大于第三阈值,第三阈值可为80%、90%等,可进行灵活设定。
举例来讲,有N1-N4四个物理NUMA节点,N1为当前主节点,并且N1的内存利用率大于第三阈值(80%)。
在目标虚拟机的当前主节点的内存利用率大于第三阈值时,在制定任一迁移方式时,可令该迁移方式指示:根据各虚拟机在当前主节点上所占的内存份额比例回收内存;将回收的内存中的内存页分配至至少一个新物理NUMA节点上。
前述的目标迁移节点包含上述至少一个新物理NUMA节点。
举例来讲,有N1-N4四个物理NUMA节点,N1为当前主节点,其内存大小为25G。
假定N1上运行着3个虚拟机(VM1-VM3),VM3为目标虚拟机。VM1-VM3在N1上占用的内存大小分别为5G、5G、10G,也即,各虚拟机在当前主节点上所占的内存份额比例为1:1:2。
如需迁移8G大小的内存页,则迁移方式可指示按1:1:2的比例,回收VM1共2G大小的内存页,回收VM1共2G大小的内存页,回收VM1共4G大小的内存页,并将回收的8G内存页向N2节点迁移6G(迁移后主节点为N2),向N3节点迁移2G。
相应的,上述所有实施例中的步骤S3(按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移)可包括如下步骤:
在上述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在上述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至上述迁移开销最低的迁移方式指示的至少一个新物理NUMA节点上。
仍沿用前例,假定N1上运行着3个虚拟机(VM1-VM3),VM3为目标虚拟机。VM1-VM3在N1上占用的内存大小分别为5G、5G、10G,也即,各虚拟机在当前主节点上所占的内存份额比例为1:1:2。
迁移开销最低的迁移方式指示按1:1:2的比例,回收VM1共2G大小的内存页,回收VM1共2G大小的内存页,回收VM1共4G大小的内存页,并将回收的8G内存页向N2节点迁移6G,向N3节点迁移2G。
则在真正迁移时,其操作如下:
在节点N2上申请6G的内存空间;
将节点N1上待迁移的共6G的内存页复制到在节点N2上申请的内存空间中;
将节点N1上的6G内存空间释放(标记为可分配);
在节点N3上申请2G的内存空间;
将节点N1上待迁移的共2G的内存页复制到在节点N3上申请的内存空间中;
将节点N1上的2G内存空间释放(标记为可分配)。
当然,在当前主节点内存利用率超过第三阈值的场景下,在本发明其他实施例中,也可令该迁移方式指示仅将目标虚拟机的内存页向其他节点迁移。
前述提及了,CPU访问本地节点上的内存时,访问延迟非常低,而访问邻居节点就会比访问本地节点的访问延迟高,访问远端节点的访问延迟则更高。
为了令迁移后,目标主节点上的CPU的访问延迟较小,在制定迁移方式时,会遵循将目标虚拟机在远端节点上存储的内存页向目标主节点或者内存率低于第四阈值的邻居节点迁移的原则。
需要说明的是,邻居节点为目标主节点的邻居节点,远端节点亦为上述目标主节点的远端节点。第四阈值可为50%、40%等,可进行灵活设定。
也即,任一迁移方式还可用于指示:将上述目标虚拟机在远端节点上存储的内存页向目标主节点或者邻居节点迁移。
相应的,上述所有实施例中的步骤S3(按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移)可包括如下步骤:
将上述目标虚拟机在远端节点上存储的内存页,向上述迁移开销最低的迁移方式指示的目标主节点或者邻居节点迁移。
举例来讲,请参见图8,共有N1-N5五个物理NUMA节点,N1为当前主节点,N2为目标主节点,N3、N4为N2的邻居节点,N5为N2的远端节点。目标虚拟机在N1、N5节点上存储有内存页。N3内存利用率为50%,N4则为60%。
则迁移方式可指示将目标虚拟机在N5节点上的内存页向N2或N3迁移。
假定,迁移开销最低的迁移方式指示,将目标虚拟机在N1节点上的内存页向N2迁移,将目标虚拟机在N5上的内存页向N3迁移。
则上述所有实施例中的步骤S3(按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移)可包括如下步骤:
将目标虚拟机在N1节点上的内存页向N2迁移;
将目标虚拟机在N5上的内存页向N3迁移。
Intel处理器通过ACPI规范对硬件资源进行管理,ACPI的SRAT(StaticResource Affinity Table)表和SLIT(System Locality Information Table)表能从硬件层收集系统资源拓扑信息。而虚拟机迁移,会破坏虚拟机Guest OS呈现的NUMA拓扑结构,严重影响guest OS上的应用性能。
为此,在本发明其他实施例中,请参见图9,上述方法还可包括:
S4、迁移后,更新上述目标虚拟机的虚拟NUMA拓扑结构;
S5、通知上述目标虚拟机更新自身的虚拟NUMA拓扑结构。
更具体的,迁移后,负载均衡控制装置(或宿主机)会更新物理NUMA节点负载矩阵。
之后,负载均衡控制装置(或宿主机)会根据节点负载矩阵更新目标虚拟机的虚拟NUMA拓扑结构。或可称为,负载均衡控制装置(或宿主机)会根据更新后的节点负载矩阵生成目标虚拟机新的虚拟NUMA拓扑结构。
随后,负载均衡控制装置(或宿主机)会根据更新后的虚拟NUMA拓扑结构更新SRAT表。或可称为,负载均衡控制装置(或宿主机)会根据更新后的虚拟NUMA拓扑结构生成新的SRAT表。
SRAT表的内容包含虚拟CPU亲和性结构和虚拟内存亲和性结构。
在现有技术中,仅当虚拟机启动时,会加载BIOS的SRAT表,使得可以呈现虚拟的NUMA节点关系。
在现有技术中,也是根据节点负载矩阵生成虚拟NUMA拓扑结构,以及根据虚拟NUMA拓扑结构生成SRAT表。因此,在获得更新后的节点负载结构矩阵后,如何生成新的虚拟NUMA拓扑结构和SRAT表可延用现有技术,在此不作赘述。
再之后,负载均衡控制装置(或宿主机)会通知目标虚拟机读取新的SRAT表,目标虚拟机再根据SRAT表上的记载更新自身的虚拟NUMA结构。
更具体的,目标虚拟机可采用VMM的CPU、memory热插拔技术来更新自身的虚拟NUMA结构。
与上述方法相对应,本发明实施例还要求保护宿主机。该宿主机可运行在源物理主机的硬件层。上述宿主机可以包括特权虚拟机、源虚拟机和VMM。
请参见图10,上述宿主机100还可包括:
虚拟机确定单元101,用于根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机;上述需迁移的虚拟机表示为目标虚拟机;
迁移开销计算单元102,用于计算按不同的迁移方式迁移上述目标虚拟机的迁移开销;
迁移单元103,用于按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移。
具体内容请参见本文前述方法部分的描述,在此不作赘述。
在本发明其他实施例中,请参见图11,上述宿主机100还可包括:
拓扑结构更新单元104,用于在迁移单元103完成迁移后,更新目标虚拟机的虚拟NUMA拓扑结构;
通知单元105,用于通知目标虚拟机更新自身的虚拟NUMA拓扑结构。
具体内容请参见本文前述方法部分的描述,在此不作赘述。
在本发明其他实施例中,任一上述迁移方式用于指示上述目标虚拟机的内存页欲迁移至的、至少一个物理NUMA节点;以及,当前存储有上述目标虚拟机的内存页的各物理NUMA节点,向上述至少一个物理NUMA节点中的各节点所迁移的内存页;
其中:
上述至少一个物理NUMA节点表示为目标迁移节点;
上述目标迁移节点中的其中一个物理NUMA节点为,上述目标虚拟机中的虚拟处理器欲迁移至的节点;上述目标虚拟机中的虚拟处理器欲迁移至的节点表示为目标主节点。
具体内容请参见本文前述方法部分的描述,在此不作赘述。
在本发明其他实施例中,上述所有实施例中的目标迁移节点中的各物理NUMA节点的内存利用率小于第一阈值。
在本发明其他实施例中,迁移开销最低的迁移方式被执行后,其所指示的目标主节点的内存利用率小于第二阈值。
在本发明其他实施例中,上述所有实施例中的迁移开销最低的迁移方式还用于指示:
将上述目标虚拟机在远端节点上存储的内存页向目标主节点或者邻居节点迁移;上述邻居节点为上述目标主节点的邻居节点,并且内存使用率低于第四阈值;上述远端节点为上述目标主节点的远端节点。
相应的,在按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移方面,上述迁移单元103用于:
将上述目标虚拟机在远端节点上存储的内存页,向上述迁移开销最低的迁移方式指示的目标主节点或者邻居节点迁移;上述邻居节点为上述目标主节点的邻居节点,并且内存使用率低于第四阈值;上述远端节点为上述目标主节点的远端节点。
在本发明其他实施例中,上述所有实施例中,至少迁移开销最低的迁移方式还用于指示:
在上述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在上述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至至少一个新物理NUMA节点上;上述目标迁移节点包含上述至少一个新物理NUMA节点。
相应的,在上述按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移方面,上述迁移单元103用于:
在上述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在上述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至上述迁移开销最低的迁移方式指示的至少一个新物理NUMA节点上。
具体内容请参见本文前述方法部分的描述,在此不作赘述。
本发明实施例提供一种物理主机,参见图12,该物理主机120包括硬件层,运行在所述硬件层之上的宿主机(Host)、以及运行在Host之上的至少一个虚拟机(VM)。
上述硬件层包括至少一个物理NUMA节点,其中,任一物理NUMA节点包含存储器和至少一个处理器。
其中,Host用于,
根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机;上述需迁移的虚拟机表示为目标虚拟机;
计算按不同的迁移方式迁移上述目标虚拟机的迁移开销;
按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移。
具体内容请参见本文前述方法部分的描述,在此不作赘述。
在本发明其他实施例中,上述Host还用于:
迁移后,更新目标虚拟机的虚拟NUMA拓扑结构;
通知目标虚拟机更新自身的虚拟NUMA拓扑结构。
在本发明其他实施例中,任一上述迁移方式用于指示上述目标虚拟机的内存页欲迁移至的、至少一个物理NUMA节点;以及,当前存储有上述目标虚拟机的内存页的各物理NUMA节点,向上述至少一个物理NUMA节点中的各节点所迁移的内存页;
其中:
上述至少一个物理NUMA节点表示为目标迁移节点;
上述目标迁移节点中的其中一个物理NUMA节点为,上述目标虚拟机中的虚拟处理器欲迁移至的节点;上述目标虚拟机中的虚拟处理器欲迁移至的节点表示为目标主节点。
具体内容请参见本文前述方法部分的描述,在此不作赘述。
在本发明其他实施例中,上述所有实施例中的目标迁移节点中的各物理NUMA节点的内存利用率小于第一阈值。
在本发明其他实施例中,迁移开销最低的迁移方式被执行后,其所指示的目标主节点的内存利用率小于第二阈值。
在本发明其他实施例中,上述所有实施例中的迁移开销最低的迁移方式还用于指示:
将上述目标虚拟机在远端节点上存储的内存页向目标主节点或者邻居节点迁移;上述邻居节点为上述目标主节点的邻居节点,并且内存使用率低于第四阈值;上述远端节点为上述目标主节点的远端节点。
相应的,在按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移方面,上述Host用于:
将上述目标虚拟机在远端节点上存储的内存页,向上述迁移开销最低的迁移方式指示的目标主节点或者邻居节点迁移;上述邻居节点为上述目标主节点的邻居节点,并且内存使用率低于第四阈值;上述远端节点为上述目标主节点的远端节点。
在本发明其他实施例中,上述所有实施例中,至少迁移开销最低的迁移方式还用于指示:
在上述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在上述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至至少一个新物理NUMA节点上;上述目标迁移节点包含上述至少一个新物理NUMA节点。
相应的,在上述按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移方面,上述Host用于:
在上述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在上述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至上述迁移开销最低的迁移方式指示的至少一个新物理NUMA节点上。
具体内容请参见本文前述方法部分的描述,在此不作赘述。
本发明实施例还提供一种物理主机,请参见图13,该物理主机130包括硬件层,上述硬件层包括多个处理器131和多个存储器132,用于进行该物理主机130内部各设备之间的连接的至少一个通信总线133,以实现各设备之间的连接和相互通信。
其中,上述多个处理器和多个内存可被划分为多个组(物理NUMA节点)。物理NUMA节点上会运行一台或多台虚拟机。
通信总线133可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。该总线133可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器132可以包括随机存取存储器,并向处理器131提供指令和数据。
处理器131可以是中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
其中,通过读取存储器132存储的指令,处理器131用于,
根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机;上述需迁移的虚拟机表示为目标虚拟机;
计算按不同的迁移方式迁移上述目标虚拟机的迁移开销;
按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移。
具体内容请参见本文前述方法部分的描述,在此不作赘述。
在本发明其他实施例中,上述处理器131还用于:
迁移后,更新目标虚拟机的虚拟NUMA拓扑结构;
通知目标虚拟机更新自身的虚拟NUMA拓扑结构。
在本发明其他实施例中,任一上述迁移方式用于指示上述目标虚拟机的内存页欲迁移至的、至少一个物理NUMA节点;以及,当前存储有上述目标虚拟机的内存页的各物理NUMA节点,向上述至少一个物理NUMA节点中的各节点所迁移的内存页;
其中:
上述至少一个物理NUMA节点表示为目标迁移节点;
上述目标迁移节点中的其中一个物理NUMA节点为,上述目标虚拟机中的虚拟处理器欲迁移至的节点;上述目标虚拟机中的虚拟处理器欲迁移至的节点表示为目标主节点。
具体内容请参见本文前述方法部分的描述,在此不作赘述。
在本发明其他实施例中,上述所有实施例中的目标迁移节点中的各物理NUMA节点的内存利用率小于第一阈值。
在本发明其他实施例中,迁移开销最低的迁移方式被执行后,其所指示的目标主节点的内存利用率小于第二阈值。
在本发明其他实施例中,上述所有实施例中的迁移开销最低的迁移方式还用于指示:
将上述目标虚拟机在远端节点上存储的内存页向目标主节点或者邻居节点迁移;上述邻居节点为上述目标主节点的邻居节点,并且内存使用率低于第四阈值;上述远端节点为上述目标主节点的远端节点。
相应的,在按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移方面,上述处理器131用于:
将上述目标虚拟机在远端节点上存储的内存页,向上述迁移开销最低的迁移方式指示的目标主节点或者邻居节点迁移;上述邻居节点为上述目标主节点的邻居节点,并且内存使用率低于第四阈值;上述远端节点为上述目标主节点的远端节点。
在本发明其他实施例中,上述所有实施例中,至少迁移开销最低的迁移方式还用于指示:
在上述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在上述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至至少一个新物理NUMA节点上;上述目标迁移节点包含上述至少一个新物理NUMA节点。
相应的,在上述按迁移开销最低的迁移方式,对上述目标虚拟机进行迁移方面,上述处理器131用于:
在上述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在上述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至上述迁移开销最低的迁移方式指示的至少一个新物理NUMA节点上。
具体内容请参见本文前述方法部分的描述,在此不作赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (17)

1.一种负载均衡控制方法,其特征在于,包括:
根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机;所述需迁移的虚拟机表示为目标虚拟机;
计算按不同的迁移方式迁移所述目标虚拟机的迁移开销;
按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移。
2.如权利要求1所述的方法,其特征在于,还包括:
迁移后,更新所述目标虚拟机的虚拟NUMA拓扑结构;
通知所述目标虚拟机更新自身的虚拟NUMA拓扑结构。
3.如权利要求1或2所述的方法,其特征在于,
任一所述迁移方式用于指示所述目标虚拟机的内存页欲迁移至的、至少一个物理NUMA节点,以及,当前存储有所述目标虚拟机的内存页的各物理NUMA节点,向所述至少一个物理NUMA节点中的各节点所迁移的内存页;
其中:
所述至少一个物理NUMA节点表示为目标迁移节点;
所述目标迁移节点中的其中一个物理NUMA节点为,所述目标虚拟机中的虚拟处理器欲迁移至的节点;所述目标虚拟机中的虚拟处理器欲迁移至的节点表示为目标主节点。
4.如权利要求3所述的方法,其特征在于,所述目标迁移节点中的各物理NUMA节点的内存利用率小于第一阈值。
5.如权利要求3所述的方法,其特征在于,被执行后,所述迁移开销最低的迁移方式所指示的目标主节点的内存利用率小于第二阈值。
6.如权利要求3所述的方法,其特征在于,任一迁移方式还用于指示:
在所述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在所述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至至少一个新物理NUMA节点上;所述目标迁移节点包含所述至少一个新物理NUMA节点;
所述按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移包括:
在所述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在所述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至所述迁移开销最低的迁移方式指示的至少一个新物理NUMA节点上。
7.如权利要求3所述的方法,其特征在于,任一迁移方式还用于指示:
将所述目标虚拟机在远端节点上存储的内存页向目标主节点或者邻居节点迁移;所述邻居节点为所述目标主节点的邻居节点,并且内存使用率低于第四阈值;所述远端节点为所述目标主节点的远端节点;
所述按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移包括:
将所述目标虚拟机在远端节点上存储的内存页,向所述迁移开销最低的迁移方式指示的目标主节点或者邻居节点迁移;所述邻居节点为所述目标主节点的邻居节点,并且内存使用率低于第四阈值;所述远端节点为所述目标主节点的远端节点。
8.如权利要求1所述的方法,其特征在于,根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机包括:
计算各物理NUMA节点的负载;
根据所述各物理NUMA节点的负载计算物理机负载分布均衡度;
计算各虚拟机的负载以及各虚拟机的内存权重;
在所述物理机负载分布均衡度大于负载分布均衡度阈值时,将负载最高的物理NUMA节点上内存权重最大的虚拟机确定为需迁移的虚拟机;
在所述物理机负载分布均衡度小于或等于负载分布均衡度阈值并存在负载大于负载阈值的虚拟机时,将负载最高的虚拟机确定为需迁移的虚拟机。
9.一种宿主机,其特征在于,包括:
虚拟机确定单元,用于根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机;所述需迁移的虚拟机表示为目标虚拟机;
迁移开销计算单元,用于计算按不同的迁移方式迁移所述目标虚拟机的迁移开销;
迁移单元,用于按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移。
10.如权利要求9所述的宿主机,其特征在于,还包括:
拓扑结构更新单元,用于在所述迁移单元完成迁移后,更新所述目标虚拟机的虚拟NUMA拓扑结构;
通知单元,用于通知所述目标虚拟机更新自身的虚拟NUMA拓扑结构。
11.如权利要求9或10所述的宿主机,其特征在于,
任一所述迁移方式用于指示所述目标虚拟机的内存页欲迁移至的、至少一个物理NUMA节点;以及,当前存储有所述目标虚拟机的内存页的各物理NUMA节点,向所述至少一个物理NUMA节点中的各节点所迁移的内存页;
其中:
所述至少一个物理NUMA节点表示为目标迁移节点;
所述目标迁移节点中的其中一个物理NUMA节点为,所述目标虚拟机中的虚拟处理器欲迁移至的节点;所述目标虚拟机中的虚拟处理器欲迁移至的节点表示为目标主节点。
12.如权利要求11所述的宿主机,其特征在于,所述目标迁移节点中的各物理NUMA节点的内存利用率小于第一阈值。
13.如权利要求11所述的宿主机,其特征在于,被执行后,所述迁移开销最低的迁移方式所指示的目标主节点的内存利用率小于第二阈值。
14.如权利要求11所述的宿主机,其特征在于,至少所述迁移开销最低的迁移方式还用于指示:
将所述目标虚拟机在远端节点上存储的内存页向目标主节点或者邻居节点迁移;所述邻居节点为所述目标主节点的邻居节点,并且内存使用率低于第四阈值;所述远端节点为所述目标主节点的远端节点;
在所述按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移方面,所述迁移单元用于:
将所述目标虚拟机在远端节点上存储的内存页,向所述迁移开销最低的迁移方式指示的目标主节点或者邻居节点迁移;所述邻居节点为所述目标主节点的邻居节点,并且内存使用率低于第四阈值;所述远端节点为所述目标主节点的远端节点。
15.如权利要求11所述的宿主机,其特征在于,至少所述迁移开销最低的迁移方式还用于指示:
在所述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在所述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至至少一个新物理NUMA节点上;所述目标迁移节点包含所述至少一个新物理NUMA节点;
在所述按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移方面,所述迁移单元用于:
在所述目标虚拟机的当前主节点的内存利用率大于第三阈值时,根据各虚拟机在所述当前主节点上所占的内存份额比例回收内存;
将回收的内存中的内存页分配至所述迁移开销最低的迁移方式指示的至少一个新物理NUMA节点上。
16.一种物理主机,其特征在于,包括:硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟机VM;所述硬件层包括至少一个物理非一致性内存架构NUMA节点;所述物理NUMA节点包含存储器和至少一个处理器;其中,所述Host用于:
根据各物理NUMA节点的负载以及各虚拟机的负载,确定需迁移的虚拟机;所述需迁移的虚拟机表示为目标虚拟机;
计算按不同的迁移方式迁移所述目标虚拟机的迁移开销;
按迁移开销最低的迁移方式,对所述目标虚拟机进行迁移。
17.如权利要求16所述的物理主机,其特征在于,所述Host还用于:
迁移后,更新所述目标虚拟机的虚拟NUMA拓扑结构;
通知所述目标虚拟机更新自身的虚拟NUMA拓扑结构。
CN201410409949.7A 2014-08-19 2014-08-19 负载均衡控制方法及相关装置 Expired - Fee Related CN104166594B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410409949.7A CN104166594B (zh) 2014-08-19 2014-08-19 负载均衡控制方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410409949.7A CN104166594B (zh) 2014-08-19 2014-08-19 负载均衡控制方法及相关装置

Publications (2)

Publication Number Publication Date
CN104166594A true CN104166594A (zh) 2014-11-26
CN104166594B CN104166594B (zh) 2018-01-02

Family

ID=51910426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410409949.7A Expired - Fee Related CN104166594B (zh) 2014-08-19 2014-08-19 负载均衡控制方法及相关装置

Country Status (1)

Country Link
CN (1) CN104166594B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461735A (zh) * 2014-11-28 2015-03-25 杭州华为数字技术有限公司 一种虚拟化场景下分配cpu资源的方法和装置
CN104850461A (zh) * 2015-05-12 2015-08-19 华中科技大学 一种面向numa架构的虚拟cpu调度优化方法
WO2016091127A1 (zh) * 2014-12-09 2016-06-16 华为技术有限公司 一种存储管理方法,存储管理装置及存储设备
CN106293944A (zh) * 2016-08-11 2017-01-04 上海交通大学 虚拟化多核环境下基于非一致性i/o访问系统和优化方法
CN106293883A (zh) * 2016-08-15 2017-01-04 上海交通大学 基于混合扩展方式的云端虚拟机的优化配置方法及其系统
CN106502760A (zh) * 2016-09-21 2017-03-15 华为技术有限公司 一种虚拟机亲和性策略可视化的方法及装置
CN106686039A (zh) * 2015-11-10 2017-05-17 华为技术有限公司 一种云计算系统中的资源调度方法及装置
CN106897116A (zh) * 2017-02-27 2017-06-27 郑州云海信息技术有限公司 一种虚拟机迁移方法及装置
CN106909453A (zh) * 2015-12-22 2017-06-30 中国移动通信集团河北有限公司 一种资源配置方法和装置
CN108108227A (zh) * 2018-01-04 2018-06-01 郑州云海信息技术有限公司 一种云计算管理系统及其管理虚拟机的方法
CN108984271A (zh) * 2018-07-20 2018-12-11 浪潮电子信息产业股份有限公司 一种均衡负载的方法以及相关设备
CN109144658A (zh) * 2017-06-27 2019-01-04 阿里巴巴集团控股有限公司 有限资源的负载均衡方法、装置及电子设备
CN109697119A (zh) * 2017-10-20 2019-04-30 中兴通讯股份有限公司 终端内存回收处理方法及装置
CN113098917A (zh) * 2019-12-23 2021-07-09 华为技术有限公司 迁移功能节点的方法和相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504620A (zh) * 2009-03-03 2009-08-12 华为技术有限公司 一种虚拟化集群系统负载平衡方法、装置及系统
CN102571986A (zh) * 2012-02-27 2012-07-11 浙江大学 一种基于向量映射的负载均衡方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504620A (zh) * 2009-03-03 2009-08-12 华为技术有限公司 一种虚拟化集群系统负载平衡方法、装置及系统
CN102571986A (zh) * 2012-02-27 2012-07-11 浙江大学 一种基于向量映射的负载均衡方法

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461735A (zh) * 2014-11-28 2015-03-25 杭州华为数字技术有限公司 一种虚拟化场景下分配cpu资源的方法和装置
CN104461735B (zh) * 2014-11-28 2018-03-27 杭州华为数字技术有限公司 一种虚拟化场景下分配cpu资源的方法和装置
WO2016091127A1 (zh) * 2014-12-09 2016-06-16 华为技术有限公司 一种存储管理方法,存储管理装置及存储设备
CN104850461A (zh) * 2015-05-12 2015-08-19 华中科技大学 一种面向numa架构的虚拟cpu调度优化方法
CN104850461B (zh) * 2015-05-12 2018-05-11 华中科技大学 一种面向numa架构的虚拟cpu调度优化方法
CN106686039A (zh) * 2015-11-10 2017-05-17 华为技术有限公司 一种云计算系统中的资源调度方法及装置
CN106686039B (zh) * 2015-11-10 2020-07-21 华为技术有限公司 一种云计算系统中的资源调度方法及装置
CN106909453A (zh) * 2015-12-22 2017-06-30 中国移动通信集团河北有限公司 一种资源配置方法和装置
CN106909453B (zh) * 2015-12-22 2019-12-10 中国移动通信集团河北有限公司 一种资源配置方法和装置
CN106293944A (zh) * 2016-08-11 2017-01-04 上海交通大学 虚拟化多核环境下基于非一致性i/o访问系统和优化方法
CN106293944B (zh) * 2016-08-11 2019-12-10 上海交通大学 虚拟化多核环境下基于非一致性i/o访问系统和优化方法
CN106293883B (zh) * 2016-08-15 2019-09-24 上海交通大学 基于混合扩展方式的云端虚拟机的优化配置方法及其系统
CN106293883A (zh) * 2016-08-15 2017-01-04 上海交通大学 基于混合扩展方式的云端虚拟机的优化配置方法及其系统
CN106502760A (zh) * 2016-09-21 2017-03-15 华为技术有限公司 一种虚拟机亲和性策略可视化的方法及装置
CN106502760B (zh) * 2016-09-21 2019-06-21 华为技术有限公司 一种虚拟机亲和性策略可视化的方法及装置
CN106897116A (zh) * 2017-02-27 2017-06-27 郑州云海信息技术有限公司 一种虚拟机迁移方法及装置
CN109144658A (zh) * 2017-06-27 2019-01-04 阿里巴巴集团控股有限公司 有限资源的负载均衡方法、装置及电子设备
CN109144658B (zh) * 2017-06-27 2022-07-15 阿里巴巴集团控股有限公司 有限资源的负载均衡方法、装置及电子设备
CN109697119A (zh) * 2017-10-20 2019-04-30 中兴通讯股份有限公司 终端内存回收处理方法及装置
CN108108227A (zh) * 2018-01-04 2018-06-01 郑州云海信息技术有限公司 一种云计算管理系统及其管理虚拟机的方法
CN108984271A (zh) * 2018-07-20 2018-12-11 浪潮电子信息产业股份有限公司 一种均衡负载的方法以及相关设备
CN113098917A (zh) * 2019-12-23 2021-07-09 华为技术有限公司 迁移功能节点的方法和相关设备

Also Published As

Publication number Publication date
CN104166594B (zh) 2018-01-02

Similar Documents

Publication Publication Date Title
CN104166594A (zh) 负载均衡控制方法及相关装置
CN104270416B (zh) 负载均衡控制方法及管理节点
CN104184813A (zh) 虚拟机的负载均衡方法和相关设备及集群系统
CN105843683B (zh) 用于动态优化平台资源分配的方法、系统和设备
JP2009110518A (ja) 仮想マシンデバイスの動的割り当て
CN104484220A (zh) 虚拟化集群的动态资源调度的方法及装置
CN103942087A (zh) 虚拟机热迁移方法及相关装置和集群系统
CN104123171A (zh) 基于numa架构的虚拟机迁移方法及系统
CN104995604A (zh) 虚拟机的资源分配方法及装置
CN102799465B (zh) 分布式虚拟化系统的虚拟中断管理方法及装置
CN106528270A (zh) 一种基于OpenStack云平台的虚拟机自动迁移方法及系统
KR20140080795A (ko) 가상화 환경 내 하둡 맵리듀스의 부하 분산 방법 및 시스템
CN105335223A (zh) 源主机和目的主机上的虚拟机内存迁移装置、方法及系统
CN105045670A (zh) 中央处理器和图形处理器负载均衡的方法和系统
CN105074651A (zh) 共享资源争用
CN103034526B (zh) 一种虚拟化服务的实现方法和装置
CN112256430A (zh) 容器的部署方法、装置、设备及存储介质
CN108713189A (zh) 推测性虚拟机执行
CN103986665A (zh) 云海os中网络负载均衡的方法
Biswas et al. A novel resource aware scheduling with multi-criteria for heterogeneous computing systems
Cardwell et al. An extended roofline model with communication-awareness for distributed-memory hpc systems
CN105653347A (zh) 一种服务器、资源管理方法及虚拟机管理器
KR20150090439A (ko) 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법
Moody et al. Reconfigurable network testbed for evaluation of datacenter topologies
Biswas et al. Parallel dynamic load balancing strategies for adaptive irregular applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180102

Termination date: 20190819