CN110389838B - 一种适用于虚拟资源的实时调度和在线迁移管控方法 - Google Patents
一种适用于虚拟资源的实时调度和在线迁移管控方法 Download PDFInfo
- Publication number
- CN110389838B CN110389838B CN201910672015.5A CN201910672015A CN110389838B CN 110389838 B CN110389838 B CN 110389838B CN 201910672015 A CN201910672015 A CN 201910672015A CN 110389838 B CN110389838 B CN 110389838B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- virtual
- utilization rate
- host
- computing node
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
- G06F9/5016—Allocation 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 the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
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
本发明公开了一种适用于虚拟资源的实时调度和在线迁移管控方法,涉及通信领域。首先在每个服务器上分别创建N台虚拟机,每台虚拟机自定义分配CPU、内存和磁盘的大小,所有虚拟机构成虚拟资源池。然后定时采集各个计算节点的CPU、内存和磁盘利用率信息,对当前计算节点收集的数据做预测;分别判断Host_i_CPUutil、Host_i_Memutil以及Host_i_Diskutil是否分别对应的超过设定的CPU、内存以及磁盘利用率的上限阈值,如果至少有一项指标超过了上限阈值,选择出虚拟机作迁移进行调度和迁移;当三项指标都不超过上限阈值,则判断如果至少有一项指标低于下限阈值,则关闭该节点;当三项指标数据均在设定的上下限阈值内,不作处理。本发明物理服务器资源利用率高,便于管理,节省人力。
Description
技术领域
本发明涉及通信领域,具体是一种适用于虚拟资源的实时调度和在线迁移管控方法。
背景技术
近年来,社交网络、电子商务和在线视频等新一代大规模互联网应用发展迅猛。这些新兴的应用具有数据存储量大和业务增长速度快等特点,对计算能力的需求远远超出自身IT架构的计算能力,这时就需要不断加大系统硬件投入来实现系统的可扩展性,从而导致对物理资源的需求增加。况且传统的资源分配是按硬件平台的实体资源进行管控的,无法对物理资源进行按需分割。因此在通常情况下用户不得不从传统数据中心租赁明显大于自身任务需求的实体硬件,导致传统的资源使用成本极其昂贵。
通过引入虚拟化技术,使硬件资源虚拟化,构建虚拟资源池,这些虚拟资源封装了应用执行环境,去耦合软硬件之间的相互依赖,使资源能够共享和灵活分配,同时可以自由地在各物理机之间平滑迁移,是进行系统维护、负载均衡、容错以及节能等的一个重要管理手段。
云计算将计算机软件和硬件资源作为服务通过网络提供给用户,并且提供资源的动态扩展功能,实现计算机资源的按需分配。与传统的方式相比,为用户节约了软件和硬件资源的管理成本。云平台下的资源监控系统为云平台的稳定运行和动态扩展提供了重要的数据支撑。虽然在技术方面讲,云计算日益成熟,而且云计算模式给用户带来便利、给企业带来收益,但随着云基础设施的不断增加,由于资源利用不合理等原因导致数据中心过度的能源消耗等问题也突显出来。因此,如何在需求量增加的情况下,保证服务的质量,同时在需求减少的情况下进行资源的动态调度,关闭闲置的物理机器,节省能耗至关重要。
云计算平台通过虚拟化技术将分布在各地的庞大的服务器资源,数据存储资源以及各种平台软件,组成可以共享并协作的资源池,并在这基础上抽象出具有层次化的服务。随着虚拟化技术的发展,对虚拟机的管理和控制也就变得越来越重要。虚拟机的管理包括对虚拟机的整个生命周期的管理以及虚拟机集群之间的管理和对虚拟机的基本状态的控制等。在云平台环境下,多个虚拟机运行在同一个物理主机上,难免会因为资源竞争而导致性能下降,如果能将过载的物理机上的虚拟实例迁移到其他主机上,可以有效的解决资源竞争,当系统服务器不能满足需求,需要更新换代新的服务器时,将虚拟机迁移到新的服务器上,能够提高系统的负载均衡能力同时提升用户的体验,减少了系统升级的困难。
云计算把各种成本较低的硬件和软件资源结合起来,组成一个整体的具有强大计算能力的平台,为用户提供各种计算资源和服务。当平台的服务器和虚拟机的数量越来越大时,要想快速有效的知道其运行情况,就要对物理机的状态性能,虚拟机的状态性能,虚拟机的调度和运行等情况进行控制和监控。
OpenStack是一个开源硬件集群环境的云计算平台,通过它可以维护整个集群的计算资源、存储资源和网络资源池。OpenStack旨在实现开放的、简单的、具有大规模可扩展性及丰富特征集的云计算平台。OpenStack采用分布式架构,整个平台按照功能的不同分为多个模块项目,可以根据实际需求进行项目组合,不同项目功能划分明确且耦合性低。
发明内容
本发明基于OpenStack云平台和Virt-manager图形管理,对物理资源进行整合,集中管控,构建虚拟资源池,当某主机资源竞争非常激烈时,能够将该主机上的虚拟机迁移到其他主机上,解决资源竞争;具体是一种适用于虚拟资源的实时调度和在线迁移管控方法。
具体步骤如下:
步骤一、借助KVM虚拟化技术,在每个服务器上分别创建N台虚拟机,每台虚拟机根据自身需求和服务器的特性自定义分配CPU、内存和磁盘的大小;将若干服务器上的所有虚拟机构成虚拟资源池;
N为正数,且大于等于5;服务器的数量用户根据自身需求设置。
步骤二、通过OpenStack云平台中的控制节点,定时采集并收集各个计算节点的CPU、内存和磁盘利用率信息。
OpenStack云平台部署一个服务器作为控制节点,将虚拟资源池所有的物理服务器部署为计算节点。
步骤三、控制节点从虚拟资源池中依次选取各计算节点,针对当前第i个计算节点,通过卡尔曼滤波算法对当前计算节点收集的数据做预测;
第i个计算节点收集的数据包括:CPU利用率Host_i_CPUutil、内存利用率Host_i_Memutil和磁盘利用率Host_i_Diskutil;
步骤四、分别判断Host_i_CPUutil是否超过设定的CPU利用率上限阈值,Host_i_Memutil是否超过设定的内存利用率上限阈值,以及Host_i_Diskutil是否超过设定的磁盘利用率的上限阈值,如果至少有一项指标超过了上限阈值,表明此刻第i个计算节点需要选择出虚拟机作迁移以进行调度,进入步骤五;否则,进入步骤六;
步骤五、确定需要调度迁移的虚拟机VMj,并选择目标迁移主机进行迁移;
针对当前第i个计算节点只有一项指标超过了上限阈值,具体步骤为:
步骤501、Virt-manager实时监控各虚拟机的资源利用率,依次选择资源使用率超出上限阈值的指标A,将各虚拟机的指标A的资源实际使用率与上限阈值之间的差值作为偏差值D;
指标A为CPU利用率Host_i_CPUutil、内存利用率Host_i_Memutil或者磁盘利用率Host_i_Diskutil;
步骤502、依次获取当前第i个计算节点上运行的各虚拟机,将各虚拟机上对应的指标A实际使用率与过载偏差值D之间作差,得到结果Δj;
步骤503、依次选取各虚拟机,判断当前虚拟机的差值Δj是否满足Δj≥0,如果是,说明只迁移这一台虚拟机,第i个计算节点即可恢复正常阈值范围,则将该虚拟机存放在表格list1中;否则,将当前虚拟机存放至表格list 2。
步骤504、判断表格list 1是否为空,如果是,从表格list 2中选择最大Δj值对应的虚拟机作为要迁移的虚拟机VMj;否则,从表格lsit 1中选择最大Δj值对应的虚拟机作为要迁移的虚拟机VMj。
表格lsit 1和表格lsit2中的各虚拟机按照差值Δj从大到小排序。
步骤505、针对待迁移虚拟机VMj,从虚拟资源池中依次选择其余各计算节点,检查如果该虚拟机VMj迁入后,各计算节点上的各虚拟机的资源情况是否分别满足各指标的阈值;如果是,进入步骤506作进一步预测;否则,返回“目标主机选择失败”;进入步骤508;
步骤506、针对虚拟机VMj迁入后,仍能满足资源阈值的各计算节点,筛选综合判断值F最低的计算节点作为虚拟机最终的迁移主机。
综合判断值计算公式如下:
F=W*U
W={w1,w2,w3}为计算节点的CPU、内存和磁盘利用率的权值集合;w1为计算节点的CPU利用率的权值;w2为计算节点的内存利用率的权值;w3为计算节点的磁盘利用率的权值。初始值均为0,若指标过载,则W值为1。
U={u_cpu,u_mem,u_disk}为各计算节点的CPU、内存和磁盘利用率信息与过载偏差值之间的差值合集。
将满足条件的各计算节点列表降序排序,选取综合判断值F最低的计算节点H作为虚拟机最终的迁移主机。
步骤507、将待迁移虚拟机VMj迁移到最终的迁移主机H上,实现虚拟资源根据自身资源负载情况,自主完成调度功能。
步骤508、依次选择表list1或list2中下一个排序的虚拟机作为要迁移的虚拟机VMj,返回步骤505。
首先按差值Δj从大到小的顺序依次选择表list1中的各虚拟机,当表list1中的各虚拟机都不满足条件,则依次从表list2中按差值Δj从大到小的顺序选择各虚拟机。当两个表格中的虚拟机都无法做迁移,返回“选择失败”,申请选择下一个计算节点,重新对数据做预测。
针对当前第i个计算节点至少两项指标超过了上限阈值,具体步骤为:
步骤I)、分别计算该第i个计算节点上的各虚拟机的综合判断值f:f=w*u
w={w1,w2,w3}为虚拟机的CPU、内存和磁盘利用率的权值集合;w1为虚拟机的CPU利用率的权值;w2为虚拟机的内存利用率的权值;w3为虚拟机的磁盘利用率的权值。初始值均为0,若指标过载,则w值为1。
u={u_cpu,u_mem,u_disk}为各虚拟机的CPU、内存和磁盘利用率信息与过载偏差值之间的差值合集。
步骤II)、将各虚拟机的综合判断值f按照从大到小的顺序排序,选择最大的综合判断值f对应的虚拟机作为迁移的虚拟机VMj。
步骤III)、针对待迁移虚拟机VMj,从虚拟资源池中依次选择其余各计算节点,检查如果该虚拟机VMj迁入后,各计算节点上的各虚拟机的资源情况是否分别满足各指标的阈值;如果是,进入步骤IV作进一步预测;否则,返回“目标主机选择失败”;进入步骤VI;
步骤IV)、针对虚拟机VMj迁入后,仍能满足资源阈值的各计算节点,筛选综合判断值F最低的计算节点作为虚拟机最终的迁移主机。
步骤V)、将待迁移虚拟机VMj迁移到最终的迁移主机H上,实现虚拟资源根据自身资源负载情况,自主完成调度功能。
步骤VI)、选择下一个排序的综合判断值f对应的虚拟机作为迁移的虚拟机VMj,返回步骤III;当所有排序的虚拟机都无法做迁移,返回“选择失败”,申请选择下一个计算节点,重新对数据做预测。
步骤六、当三项指标都不超过上限阈值,则继续判断是否分别低于各自设定的下限阈值,如果至少有一项指标低于下限阈值,则将该第i个计算节点上所有的虚拟机逐个迁出,关闭该节点;否则,进入步骤七;
具体过称为:
首先,从虚拟资源池中选择CPU利用率Host_i_CPUutil、内存利用率Host_i_Memutil和磁盘利用率Host_i_Diskutil均在设定的上下限阈值内的各计算节点;
然后,从指标低于下限阈值的第i个计算节点中按顺序选择各虚拟机,将当前选择的虚拟机随机放入一个在设定的上下限阈值内的计算节点中,判断该计算节点的资源数据是否仍在设定的上下限阈值内,如果是,则当前虚拟机与计算节点的迁出迁入匹配成功;否则,重新随机选择满足上下限阈值的计算节点进行匹配。
直至将所有虚拟机全部迁出迁入匹配成功后,关闭当前第i个计算节点。
步骤七、当三项指标数据均在设定的上下限阈值内,不作处理,继续选择下一个计算节点,返回步骤三进行判断。
本发明的优点在于:
1)、一种适用于虚拟资源的实时调度和在线迁移管控方法,采用OpenStack,Virt-manager和KVM共同构建虚拟资源池管理系统,对虚拟资源池集中管控,对物理资源进行整合,有效的解决了物理服务器资源利用率低难于管理的问题。
2)、一种适用于虚拟资源的实时调度和在线迁移管控方法,跟现有的需要管理员权限使用命令行或者在OpenStack管理页面手动点击才能触发虚拟机迁移相比,本发明在OpenStack云平台自有的动态迁移基础上增加了自主迁移的调度策略,对迁移触发设置门限,超过门限值,即触发迁移操作,并对目标虚拟机选择进行选择,确定要迁移的虚拟机,再进行虚拟机的动态迁移,可在有效管理大量物理资源的同时又省去了大量人工调度迁移虚拟机的操作。
附图说明
图1是本发明构建的基于Virt-manger和OpenStack的管控平台;
图2是本发明一种适用于虚拟资源的实时调度和在线迁移管控方法流程图;
图3是本发明当前第i个计算节点只有一项指标超过了上限阈值的处理流程图;
图4是本发明当前第i个计算节点至少两项指标超过了上限阈值的处理流程图;
图5是本发明虚拟机实现在线迁移的流程图。
具体实施方式
下面结合实施例和附图,对本发明的实施方式做详细、清楚的描述。
本发明将硬件平台的资源虚拟化,构建虚拟资源池,对虚拟资源进行管控,并构建了一个管控平台,如图1所示,选取图形化工具监控模块(Virt-manger)和管理模块-云计算平台(OpenStack)进行构建,对资源池进行管理并根据各资源实体的负载情况作适时地调度,通过KVM虚拟化技术进行虚拟机的迁移;针对资源利用不合理等原因导致物理资源过载的问题,提出了一种虚拟资源在线迁移的策略并且适用于虚拟资源池资源调度的管控方法,从而提高虚拟资源池的资源利用率,降低设备能耗。
具体是构建基于Openstack的云计算基础服务,将硬件资源虚拟化为云主机,实现云主机的操作管理、镜像快照管理、安全组管理以及网络资源管理;通过Virt-manager图形化工具对资源池的CPU、内存和网络等情况进行监控管理;Virt-manager图形化监控软件,负责整个资源池的统一管理和调度,负责整个平台运行监控;实现对虚拟机资源的利用率监控。
KVM负责创建虚拟机;增加自主迁移模块,当虚拟实例的资源情况超过设定阈值时主动触发动态迁移操作。
如图2所示,具体步骤如下:
步骤一、借助KVM虚拟化技术,在每个服务器上分别创建N台虚拟机,每台虚拟机根据自身需求和服务器的特性自定义分配CPU、内存和磁盘的大小;将若干服务器上的所有虚拟机构成虚拟资源池;
N为正数,且大于等于5;服务器的数量用户根据自身需求设置。
步骤二、通过OpenStack云平台中的控制节点,定时采集并收集各个计算节点的CPU、内存和磁盘利用率信息。
OpenStack云平台部署一个服务器作为控制节点,将虚拟资源池所有的物理服务器部署为计算节点。在控制节点和计算节点分别部署所需的服务项目,部署管理人员可通过控制节点的交互界面对整个虚拟池进行管控,通过Virt-manager对资源池的虚拟资源使用情况监控。
步骤三、控制节点从虚拟资源池中依次选取各计算节点,针对当前第i个计算节点,通过卡尔曼滤波算法对当前计算节点收集的数据做预测;
第i个计算节点收集的数据包括:CPU利用率Host_i_CPUutil、内存利用率Host_i_Memutil和磁盘利用率Host_i_Diskutil;
对于主机节点CPU、内存及磁盘利用率的获取,采取ssh远程监控获取主机的资源总量和已使用量。从而计算CPU利用率、内存利用率和磁盘利用率公式。
CPU利用率如公式所示:
通过/proc/stat文件读取实时的CPU使用情况,可以获取到CPU的各种时间。其中CPU_free(1)为第一次取值时第4项的值,CPU_free(2)为第二次取值时第4项的值,CPU_total(1)为第一次取值时各项数值的总和,CPU_total(2)为第二次取值时各项数值的总和。
内存利用率如公式所示:
通过远程执行‘cat/proc/meminfo’可以获取内存相关信息。本实施例只读取MemTotal和MemFree的信息。MemTotal和MemFree分别表示当前内存重量和孔余量。
磁盘的利用率如公式所示:
使用df命令获取磁盘使用情况,这个命令,既获取了磁盘的容量,也获取了使用率。Diskused是磁盘使用情况中“used”列数据总和,DiskTotal是磁盘使用情况中“1M-blocks”列数据总和。
卡尔曼滤波算法,用上一步的估计值更准确地求这一步的估计值,公式如下:
X[i+1]=(1-K[i+1])x[i]+K[i+1]*z[i+1] (4)
x即估计值,z即测量值。可以看出,这次的估计值是由上次的估计值和这次的测量值共同决定的,这两者所占权重由卡尔曼增益系数K决定。
卡尔曼增益系数K的获取公式如下:
K[i+1]=(P[i]+Q)/(P[i]+Q+R) (5)
P[i+1]=(1-K[i+1])P[i] (6)
其中P是上一次估计值的方差,Q是高斯噪声的方差,R是测量值的方差,Q和R都是常数。可以看出,K是由两类方差的比值决定的,因为Q和R都是常数,所以上一次估计值的方差起决定性作用,如果上一次估计完以后发现方差很大,说明估计的不太靠谱,在这个式子中易知K会随之变大更接近1,结合上一个公式,测量值所占比值就会更大,也就是说这一次的估计值更信任测量值。最后计算估值,如公式(6),这一次的方差由上一次的方差和这次的增益系数决定。
通过卡尔曼滤波算法可以有效的避免某一瞬间资源利用率的负载过高或过低而触发无效的迁移,从而造成系统能耗开销的浪费。
步骤四、分别判断Host_i_CPUutil是否超过设定的CPU利用率上限阈值,Host_i_Memutil是否超过设定的内存利用率上限阈值,以及Host_i_Diskutil是否超过设定的磁盘利用率的上限阈值,如果至少有一项指标超过了上限阈值,表明此刻第i个计算节点需要选择出虚拟机作迁移以进行调度,进入步骤五;否则,进入步骤六;
步骤五、确定需要调度迁移的虚拟机VMj,并选择目标迁移主机进行迁移;
针对当前第i个计算节点只有一项指标超过了上限阈值,如图3所示,具体步骤为:
步骤501、Virt-manager实时监控各虚拟机的资源利用率,依次选择资源使用率超出上限阈值的指标A,将各虚拟机的指标A的资源实际使用率与上限阈值之间的差值作为偏差值D;
指标A为CPU利用率Host_i_CPUutil、内存利用率Host_i_Memutil或者磁盘利用率Host_i_Diskutil;
步骤502、依次获取当前第i个计算节点上运行的各虚拟机,将各虚拟机上对应的指标A实际使用率与过载偏差值D之间作差,得到结果Δj;
步骤503、依次选取各虚拟机,判断当前虚拟机的差值Δj是否满足Δj≥0,如果是,说明只迁移这一台虚拟机,第i个计算节点即可恢复正常阈值范围,则将该虚拟机存放在表格list1中;否则,将当前虚拟机存放至表格list 2。
步骤504、判断表格list 1是否为空,如果是,从表格list 2中选择最大Δj值对应的虚拟机作为要迁移的虚拟机VMj;否则,从表格lsit 1中选择最大Δj值对应的虚拟机作为要迁移的虚拟机VMj。
表格lsit 1和表格lsit2中的各虚拟机按照差值Δj从大到小排序。
步骤505、针对待迁移虚拟机VMj,从虚拟资源池中依次选择其余各计算节点,检查如果该虚拟机VMj迁入后,各计算节点上的各虚拟机的资源情况是否分别满足各指标的阈值;如果是,进入步骤506作进一步预测;否则,返回“目标主机选择失败”;进入步骤508;
步骤506、针对虚拟机VMj迁入后,仍能满足资源阈值的各计算节点,筛选综合判断值F最低的计算节点作为虚拟机最终的迁移主机。
综合判断值计算公式如下:
F=W*U
W={w1,w2,w3}为计算节点的CPU、内存和磁盘利用率的权值集合;w1为计算节点的CPU利用率的权值;w2为计算节点的内存利用率的权值;w3为计算节点的磁盘利用率的权值。初始值均为0,若指标过载,则W值为1。
U={u_cpu,u_mem,u_disk}为各计算节点的CPU、内存和磁盘利用率信息与过载偏差值之间的差值合集。
将满足条件的各计算节点列表降序排序,选取综合判断值F最低的计算节点H作为虚拟机最终的迁移主机。
步骤507、将待迁移虚拟机VMj迁移到最终的迁移主机H上,实现虚拟资源根据自身资源负载情况,自主完成调度功能。
步骤508、依次选择表list1或list2中下一个排序的虚拟机作为要迁移的虚拟机VMj,返回步骤505。
首先按差值Δj从大到小的顺序依次选择表list1中的各虚拟机,当表list1中的各虚拟机都不满足条件,则依次从表list2中按差值Δj从大到小的顺序选择各虚拟机。当两个表格中的虚拟机都无法做迁移,返回“选择失败”,申请选择下一个计算节点,重新对数据做预测。
针对当前第i个计算节点至少两项指标超过了上限阈值,如图4所示,具体步骤为:
步骤I)、分别计算该第i个计算节点上的各虚拟机的综合判断值f:f=w*u
w={w1,w2,w3}为虚拟机的CPU、内存和磁盘利用率的权值集合;w1为虚拟机的CPU利用率的权值;w2为虚拟机的内存利用率的权值;w3为虚拟机的磁盘利用率的权值。初始值均为0,若指标过载,则w值为1。
u={u_cpu,u_mem,u_disk}为各虚拟机的CPU、内存和磁盘利用率信息与过载偏差值之间的差值合集。
步骤II)、将各虚拟机的综合判断值f按照从大到小的顺序排序,选择最大的综合判断值f对应的虚拟机作为迁移的虚拟机VMj。
步骤III)、针对待迁移虚拟机VMj,从虚拟资源池中依次选择其余各计算节点,检查如果该虚拟机VMj迁入后,各计算节点上的各虚拟机的资源情况是否分别满足各指标的阈值;如果是,进入步骤IV作进一步预测;否则,返回“目标主机选择失败”;进入步骤VI;
步骤IV)、针对虚拟机VMj迁入后,仍能满足资源阈值的各计算节点,筛选综合判断值F最低的计算节点作为虚拟机最终的迁移主机。
步骤V)、将待迁移虚拟机VMj迁移到最终的迁移主机H上,实现虚拟资源根据自身资源负载情况,自主完成调度功能。
步骤VI)、选择下一个排序的综合判断值f对应的虚拟机作为迁移的虚拟机VMj,返回步骤III;当所有排序的虚拟机都无法做迁移,返回“选择失败”,申请选择下一个计算节点,重新对数据做预测。
步骤六、当三项指标都不超过上限阈值,则继续判断是否分别低于各自设定的下限阈值,如果至少有一项指标低于下限阈值,则将该第i个计算节点上所有的虚拟机逐个迁出,关闭该节点;否则,进入步骤七;
具体过称为:
首先,从虚拟资源池中选择CPU利用率Host_i_CPUutil、内存利用率Host_i_Memutil和磁盘利用率Host_i_Diskutil均在设定的上下限阈值内的各计算节点;
然后,从指标低于下限阈值的第i个计算节点中按顺序选择各虚拟机,将当前选择的虚拟机随机放入一个在设定的上下限阈值内的计算节点中,判断该计算节点的资源数据是否仍在设定的上下限阈值内,如果是,则当前虚拟机与计算节点的迁出迁入匹配成功;否则,重新随机选择满足上下限阈值的计算节点进行匹配。
直至将所有虚拟机全部迁出迁入匹配成功后,关闭当前第i个计算节点。
步骤七、当三项指标数据均在设定的上下限阈值内,不作处理,继续选择下一个计算节点,返回步骤三进行判断。
虚拟机实现在线迁移的流程如图5所示,分为计算节点数据统计,迁移触发,目标虚拟机选择和目标主机选择模块。
(1)计算节点数据统计,定时采集各个计算节点的CPU、内存和磁盘利用率;
(2)判断触发迁移的时机,决定什么时候触发迁移操作。
当虚拟机的某个资源使用率,高于既定的阈值或者低于既定的阈值时,立刻触发宿主机实施迁移,如果至少有一项指标超过了该上限阈值,表明此刻该物理节点需要选择虚拟机作在线迁移;如果至少有一项指标不满足该下限阈值,则将该节点上所有虚拟机迁移,关闭该节。
(3)目标虚拟机选择:选取合适的目标虚拟机实施迁移操作,在实施迁移操作之前,必须选择好适合迁移的目标虚拟机,以便最大程度降低服务器因负载过高而增加的能耗。
(4)目标主机选择:一旦确定了迁移的目标虚拟机,进行迁移操作时,须选取合适的目标主机来接受这个虚拟机。
由于OpenStack云平台中Nova_Scheduler模块选择目标主机时,只是考虑了主机的内存剩余量,其目标主机选择算法比较简单,没有考虑其他资源使用情况和能耗。选择目标迁移主机,不仅要考虑该节点当前的资源使用情况,还要考虑虚拟机被迁移过来后该目标节点的C资源使用情况。如果某个节点恰好在当前时刻资源使用率处于谷值,按照资源使用率来说,是最合适的目标节点,而此后一段时间内资源使用率,如CPU使用率都是大于上限阈值的,那么把选择好的虚拟机迁移过去,在下一时刻,又要迁移出去;或者,将多个虚拟机迁移到一个目标节点上,导致该目标节点资源使用率超出阈值范围,从而触发迁移,增加了不必要的迁移。
在虚拟资源池管理基础上,如何实现虚拟资源的自主在线迁移是关键。在线迁移,是指在保证虚拟机上的服务可用情况下,将虚拟机从一个计算节点迁移到另外的节点上,迁移过程中的停机时间十分短暂,用户感觉不到服务的中断。因为热迁移要求虚拟机业务不能中断,因此一般都是在共享存储的条件下。要进行虚拟机的迁移,需要确定迁移的时机和对要迁移的虚拟机进行筛选,即虚拟机迁移的触发策略。为解决部分物理主机过载,导致用户需求不能满足的情况,需要确定虚拟机上限触发的时机。若一个节点主机的CPU、内存和磁盘利用率小于下限阈值,则认为该计算节点是空闲节点,此时,可以利用虚拟机迁移操作,将该计算节点中所有的虚拟机都迁移到目标主机,然后关闭该主机,从而达到节省该计算节点的主机浪费的电能消耗的目的。因此,对于虚拟机迁移的触发,需要选定迁移触发的阈值,同时还要选择准备迁移的目标虚拟机。
对于迁移触发后目标虚拟机的选择,对不同的衡量标准有不同的算法。由于虚拟机的CPU、内存和磁盘资源是通过物理主机共享的,因此物理主机资源的使用情况能够衡量虚拟机负载能力。例如,当物理主机CPU使用率越高,表示负载越严重,因此能够分给每个虚拟机的时间会更短,相对于虚拟机来说就是自身的CPU计算能力会较弱。物理服务器的资源使用率不稳定,为了防止某一瞬间资源利用率的负载过高或过低而触发无效的迁移,从而造成系统能耗开销的浪费,所以当物理服务器使用率高于设定的阈值并且在未来时间内都不低于该阈值时,才触发迁移。本发明采用卡尔曼滤波算法,对采集的信息数据作下一时刻的预测,从而提出一种基于主机资源利用率的历史数据而设计的双阈值约束条件下的在线迁移策略。
Claims (3)
1.一种适用于虚拟资源的实时调度和在线迁移管控方法,其特征在于,具体步骤如下:
步骤一、借助KVM虚拟化技术,在每个服务器上分别创建N台虚拟机,每台虚拟机根据自身需求和服务器的特性自定义分配CPU、内存和磁盘的大小;将若干服务器上的所有虚拟机构成虚拟资源池;
N为正数,且大于等于5;
步骤二、通过OpenStack云平台中的控制节点,定时采集并收集各个计算节点的CPU、内存和磁盘利用率信息;
OpenStack云平台部署一个服务器作为控制节点,将虚拟资源池所有的物理服务器部署为计算节点;
步骤三、控制节点从虚拟资源池中依次选取各计算节点,针对当前第i个计算节点,通过卡尔曼滤波算法对当前计算节点收集的数据做预测;
步骤四、分别判断Host_i_CPUutil是否超过设定的CPU利用率上限阈值,Host_i_Memutil是否超过设定的内存利用率上限阈值,以及Host_i_Diskutil是否超过设定的磁盘利用率的上限阈值,如果至少有一项指标超过了上限阈值,表明此刻第i个计算节点需要选择出虚拟机作迁移以进行调度,进入步骤五;否则,进入步骤六;
步骤五、确定需要调度迁移的虚拟机VMj,并选择目标迁移主机进行迁移;
针对当前第i个计算节点只有一项指标超过了上限阈值,具体步骤为:
步骤501、Virt-manager实时监控各虚拟机的资源利用率,依次选择资源使用率超出上限阈值的指标A,将各虚拟机的指标A的资源实际使用率与上限阈值之间的差值作为偏差值D;
指标A为CPU利用率Host_i_CPUutil、内存利用率Host_i_Memutil或者磁盘利用率Host_i_Diskutil;
步骤502、依次获取当前第i个计算节点上运行的各虚拟机,将各虚拟机上对应的指标A实际使用率与过载偏差值D之间作差,得到结果Δj;
步骤503、依次选取各虚拟机,判断当前虚拟机的差值Δj是否满足Δj≥0,如果是,说明只迁移这一台虚拟机,第i个计算节点即可恢复正常阈值范围,则将该虚拟机存放在表格list1中;否则,将当前虚拟机存放至表格list 2;
步骤504、判断表格list 1是否为空,如果是,从表格list 2中选择最大Δj值对应的虚拟机作为要迁移的虚拟机VMj;否则,从表格lsit 1中选择最大Δj值对应的虚拟机作为要迁移的虚拟机VMj;
表格lsit 1和表格lsit2中的各虚拟机按照差值Δj从大到小排序;
步骤505、针对待迁移虚拟机VMj,从虚拟资源池中依次选择其余各计算节点,检查如果该虚拟机VMj迁入后,各计算节点上的各虚拟机的资源情况是否分别满足各指标的阈值;如果是,进入步骤506作进一步预测;否则,返回“目标主机选择失败”;进入步骤508;
步骤506、针对虚拟机VMj迁入后,仍能满足资源阈值的各计算节点,筛选综合判断值F最低的计算节点作为虚拟机最终的迁移主机;
综合判断值计算公式如下:
F=W*U
W={w1,w2,w3}为计算节点的CPU、内存和磁盘利用率的权值集合;w1为计算节点的CPU利用率的权值;w2为计算节点的内存利用率的权值;w3为计算节点的磁盘利用率的权值;初始值均为0,若指标过载,则W值为1;
U={u_cpu,u_mem,u_disk}为各计算节点的CPU、内存和磁盘利用率信息与过载偏差值之间的差值合集;
将满足条件的各计算节点列表降序排序,选取综合判断值F最低的计算节点H作为虚拟机最终的迁移主机;
步骤507、将待迁移虚拟机VMj迁移到最终的迁移主机H上,实现虚拟资源根据自身资源负载情况,自主完成调度功能;
步骤508、依次选择表list1或list2中下一个排序的虚拟机作为要迁移的虚拟机VMj,返回步骤505;
首先按差值Δj从大到小的顺序依次选择表list1中的各虚拟机,当表list1中的各虚拟机都不满足条件,则依次从表list2中按差值Δj从大到小的顺序选择各虚拟机;当两个表格中的虚拟机都无法做迁移,返回“选择失败”,申请选择下一个计算节点,重新对数据做预测;
针对当前第i个计算节点至少两项指标超过了上限阈值,具体步骤为:
步骤I)、分别计算该第i个计算节点上的各虚拟机的综合判断值f:f=w*u
w={w1,w2,w3}为虚拟机的CPU、内存和磁盘利用率的权值集合;w1为虚拟机的CPU利用率的权值;w2为虚拟机的内存利用率的权值;w3为虚拟机的磁盘利用率的权值;初始值均为0,若指标过载,则w值为1;
u={u_cpu,u_mem,u_disk}为各虚拟机的CPU、内存和磁盘利用率信息与过载偏差值之间的差值合集;
步骤II)、将各虚拟机的综合判断值f按照从大到小的顺序排序,选择最大的综合判断值f对应的虚拟机作为迁移的虚拟机VMj;
步骤III)、针对待迁移虚拟机VMj,从虚拟资源池中依次选择其余各计算节点,检查如果该虚拟机VMj迁入后,各计算节点上的各虚拟机的资源情况是否分别满足各指标的阈值;如果是,进入步骤IV作进一步预测;否则,返回“目标主机选择失败”;进入步骤VI;
步骤IV)、针对虚拟机VMj迁入后,仍能满足资源阈值的各计算节点,筛选综合判断值F最低的计算节点作为虚拟机最终的迁移主机;
步骤V)、将待迁移虚拟机VMj迁移到最终的迁移主机H上,实现虚拟资源根据自身资源负载情况,自主完成调度功能;
步骤VI)、选择下一个排序的综合判断值f对应的虚拟机作为迁移的虚拟机VMj,返回步骤III;当所有排序的虚拟机都无法做迁移,返回“选择失败”,申请选择下一个计算节点,重新对数据做预测;
步骤六、当三项指标都不超过上限阈值,则继续判断是否分别低于各自设定的下限阈值,如果至少有一项指标低于下限阈值,则将该第i个计算节点上所有的虚拟机逐个迁出,关闭该节点;否则,进入步骤七;
步骤七、当三项指标数据均在设定的上下限阈值内,不作处理,继续选择下一个计算节点,返回步骤三进行判断。
2.如权利要求1所述的一种适用于虚拟资源的实时调度和在线迁移管控方法,其特征在于,步骤三中所述的第i个计算节点收集的数据包括:CPU利用率Host_i_CPUutil、内存利用率Host_i_Memutil和磁盘利用率Host_i_Diskutil。
3.如权利要求1所述的一种适用于虚拟资源的实时调度和在线迁移管控方法,其特征在于,所述的步骤六具体过称为:
首先,从虚拟资源池中选择CPU利用率Host_i_CPUutil、内存利用率Host_i_Memutil和磁盘利用率Host_i_Diskutil均在设定的上下限阈值内的各计算节点;
然后,从指标低于下限阈值的第i个计算节点中按顺序选择各虚拟机,将当前选择的虚拟机随机放入一个在设定的上下限阈值内的计算节点中,判断该计算节点的资源数据是否仍在设定的上下限阈值内,如果是,则当前虚拟机与计算节点的迁出迁入匹配成功;否则,重新随机选择满足上下限阈值的计算节点进行匹配;
直至将所有虚拟机全部迁出迁入匹配成功后,关闭当前第i个计算节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910672015.5A CN110389838B (zh) | 2019-07-24 | 2019-07-24 | 一种适用于虚拟资源的实时调度和在线迁移管控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910672015.5A CN110389838B (zh) | 2019-07-24 | 2019-07-24 | 一种适用于虚拟资源的实时调度和在线迁移管控方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110389838A CN110389838A (zh) | 2019-10-29 |
CN110389838B true CN110389838B (zh) | 2021-06-25 |
Family
ID=68287323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910672015.5A Active CN110389838B (zh) | 2019-07-24 | 2019-07-24 | 一种适用于虚拟资源的实时调度和在线迁移管控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389838B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908783A (zh) * | 2019-11-09 | 2020-03-24 | 苏州浪潮智能科技有限公司 | 一种云数据中心虚拟机的管控方法、系统及设备 |
CN111158846A (zh) * | 2019-11-22 | 2020-05-15 | 中国船舶工业系统工程研究院 | 一种面向实时虚拟计算的资源管理的方法 |
CN110909062A (zh) * | 2019-11-29 | 2020-03-24 | 迈普通信技术股份有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN111190688B (zh) * | 2019-12-19 | 2022-12-09 | 西安交通大学 | 一种面向云数据中心的Docker迁移方法及系统 |
CN111240797B (zh) * | 2019-12-31 | 2022-06-14 | 苏州浪潮智能科技有限公司 | 一种虚拟机性能优化的方法和设备 |
CN111258755A (zh) * | 2020-01-09 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 数据迁移及信息确定方法、数据处理系统、电子设备 |
CN111711575A (zh) * | 2020-03-18 | 2020-09-25 | 宁波送变电建设有限公司永耀科技分公司 | 分布式多站融合系统故障诊断与流量动态调度方法 |
CN112000436A (zh) * | 2020-08-21 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种虚拟机磁盘信息获取方法、装置及相关设备 |
CN112559122A (zh) * | 2020-11-12 | 2021-03-26 | 国家电网有限公司 | 一种基于电力专用安防设备的虚拟化实例管控方法及系统 |
CN112395045A (zh) * | 2020-11-13 | 2021-02-23 | 深圳力维智联技术有限公司 | 虚拟机回收及其资源调整方法 |
CN112416530B (zh) * | 2020-12-08 | 2023-12-22 | 西藏宁算科技集团有限公司 | 弹性管理集群物理机节点的方法、装置及电子设备 |
CN114760313B (zh) * | 2020-12-29 | 2023-11-24 | 中国联合网络通信集团有限公司 | 业务调度方法和业务调度装置 |
CN112732408A (zh) * | 2021-01-18 | 2021-04-30 | 浪潮云信息技术股份公司 | 一种用于计算节点资源优化的方法 |
CN113032098B (zh) * | 2021-03-25 | 2024-04-09 | 深信服科技股份有限公司 | 一种虚拟机调度方法、装置、设备及可读存储介质 |
CN113127208B (zh) * | 2021-05-06 | 2023-08-04 | 杭州天宽科技有限公司 | 一种基于线程限制用户访问服务的方法 |
CN113377496A (zh) * | 2021-05-18 | 2021-09-10 | 麒麟软件有限公司 | 一种虚拟机负载均衡方法 |
CN114598652B (zh) * | 2022-03-04 | 2024-01-30 | 中信银行股份有限公司 | 一种流量调控方法、装置、设备及可读存储介质 |
CN114500538A (zh) * | 2022-03-30 | 2022-05-13 | 重庆紫光华山智安科技有限公司 | 节点管理方法、装置、监控节点及存储介质 |
CN114490089A (zh) * | 2022-04-01 | 2022-05-13 | 广东睿江云计算股份有限公司 | 云计算资源自动调节方法、装置、计算机设备及存储介质 |
CN114697226A (zh) * | 2022-04-02 | 2022-07-01 | 阿里云计算有限公司 | 资源调度方法、系统、设备及存储介质 |
CN115269564B (zh) * | 2022-09-28 | 2022-12-27 | 中国人寿保险股份有限公司上海数据中心 | 一种用于大规模系统的集中信创化迁移方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10108517B1 (en) * | 2011-06-27 | 2018-10-23 | EMC IP Holding Company LLC | Techniques for data storage systems using virtualized environments |
CN102236582B (zh) * | 2011-07-15 | 2013-06-05 | 浙江大学 | 虚拟化集群负载在多台物理机中均衡分配的方法 |
US10356005B1 (en) * | 2016-05-27 | 2019-07-16 | EMC IP Holding Company LLC | Network switch aware migration of virtual resources |
CN106970831B (zh) * | 2017-05-15 | 2019-06-11 | 金航数码科技有限责任公司 | 一种面向云平台的虚拟机资源动态调度系统及方法 |
CN109271232B (zh) * | 2018-07-03 | 2019-11-19 | 广东省城乡规划设计研究院 | 一种基于云计算平台的集群资源分配方法 |
-
2019
- 2019-07-24 CN CN201910672015.5A patent/CN110389838B/zh active Active
Non-Patent Citations (2)
Title |
---|
Virtual Machine Migration Triggering using Application Workload Prediction;Bane Raman Raghunath;《Procedia Computer Science》;20151231;全文 * |
基于虚拟机迁移的虚拟机集群资源调度;周文煜;《华中科技大学学报(自然科学版)》;20110630;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110389838A (zh) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389838B (zh) | 一种适用于虚拟资源的实时调度和在线迁移管控方法 | |
CN108829494B (zh) | 基于负载预测的容器云平台智能资源优化方法 | |
US7856572B2 (en) | Information processing device, program thereof, modular type system operation management system, and component selection method | |
Dabbagh et al. | Energy-efficient cloud resource management | |
WO2013075640A1 (en) | Balancing virtual machine loads | |
Xia | Resource scheduling for piano teaching system of internet of things based on mobile edge computing | |
Liu et al. | Workload forecasting based elastic resource management in edge cloud | |
Huang et al. | M-convex VM consolidation: Towards a better VM workload consolidation | |
CN112380005A (zh) | 一种数据中心能耗管理方法及系统 | |
Farahnakian et al. | Self-adaptive resource management system in IaaS clouds | |
Mazidi et al. | Autonomic resource provisioning for multilayer cloud applications with K‐nearest neighbor resource scaling and priority‐based resource allocation | |
CN112559122A (zh) | 一种基于电力专用安防设备的虚拟化实例管控方法及系统 | |
Karthikeyan et al. | Saldeft: Self-adaptive learning differential evolution based optimal physical machine selection for fault tolerance problem in cloud | |
Fu et al. | An efficient VNF deployment scheme for cloud networks | |
Barlaskar et al. | Energy-efficient virtual machine placement using enhanced firefly algorithm | |
Mazidi et al. | An autonomic decision tree‐based and deadline‐constraint resource provisioning in cloud applications | |
Ahmadi et al. | A flexible approach for virtual machine selection in cloud data centers with AHP | |
Wang et al. | Adaptive performance control of computing systems via distributed cooperative control: Application to power management in computing clusters | |
Kaur et al. | A review on energy aware VM placement and consolidation techniques | |
Salimian et al. | Energy-efficient placement of virtual machines in cloud data centres based on fuzzy decision making | |
Liang et al. | Design of Virtual Machine Scheduling Algorithm in Cloud Computing Environment | |
Mendes et al. | Decision-theoretic planning for cloud computing | |
CN110187989B (zh) | 雾环境下基于Markov Chain的容错策略选择方法 | |
Yang et al. | A new trigger strategy based on live migration of the virtual machine | |
Zhang et al. | Proactive Data Placement for Surveillance Video Processing in Heterogeneous Cluster |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |