一种虚拟机调度方法和装置与流程

文档序号:13482867阅读:147来源:国知局

本申请涉及虚拟机技术领域,特别是涉及一种虚拟机调度方法和装置。



背景技术:

openstack是一个基于标准硬件集群环境的开源云平台,该项目旨在提升易用性,支持大规模扩展和提供更多优秀的特性。通过openstack可以维护云平台中的计算资源、存储资源和网络资源。

在openstack云平台的环境中,存在着诸多性能不同的物理主机,以及运行在不同的物理主机上的诸多性能不同的虚拟机。从虚拟机的创建开始,就存在着将虚拟机创建在哪个物理主机的问题,且随着系统的使用,虚拟机的各种操作或运行业务的多少,会导致物理主机的负载不均匀。

为了实现物理主机的负载均衡,需要将虚拟机在不同物理主机之间迁移。但是现有的openstack云平台中的虚拟机迁移只能在人工干预下触发,并不能实现虚拟机的自主迁移。



技术实现要素:

本申请实施例中提供了一种虚拟机调度方法和装置,以解决现有技术中虚拟机迁移只能在人工干预下触发,并不能实现虚拟机的自主迁移的问题。

第一方面,本申请实施例提供了一种虚拟机调度方法,所述方法包括:获取云平台中第一物理主机的资源使用率;根据所述资源使用率确定所述第一物理主机的虚拟机迁移策略;根据所述虚拟机迁移策略对所述第一物理主机所承载的虚拟机进行迁移。

可选地,所述根据所述资源使用率确定所述第一物理主机的虚拟机迁移策略,包括:若所述资源使用率大于或等于预设的第一阈值,则确定第一虚拟机迁移策略,所述第一虚拟机迁移策略用于指示迁移所述第一物理主机所承载的至少一个虚拟机;若所述资源使用率小于或等于预设的第二阈值,则确定第二虚拟机迁移策略,所述第二虚拟机迁移策略用于指示迁移所述第一物理主机所承载的所有虚拟机。

可选地,所述根据所述虚拟机迁移策略对所述第一物理主机所承载的虚拟机进行迁移,包括:确定所述第一物理主机中的待迁移虚拟机;确定所述云平台中的目标物理主机;将所述待迁移虚拟机由所述第一物理主机迁移至所述目标物理主机。

可选地,若所述虚拟机迁移策略为第一虚拟机迁移策略,所述确定所述第一物理主机中的待迁移虚拟机,包括:根据所述第一物理主机中的虚拟机的资源使用率,确定待迁移虚拟机;若所述虚拟机迁移策略为第二虚拟机迁移策略,所述确定所述第一物理主机中的待迁移虚拟机,包括:确定所述第一物理主机中的所有虚拟机为待迁移虚拟机。

可选地,确定所述云平台中的目标物理主机,包括:根据所述待迁移虚拟机的需求指标,确定所述云平台中的目标物理主机。

可选地,所述资源使用率包括处理器cpu使用率和/或所述内存使用率。

第二方面,本申请实施例提供了一种虚拟机调度装置,所述装置包括:获取模块,用于获取云平台中第一物理主机的资源使用率;迁移策略确定模块,用于根据所述资源使用率确定所述第一物理主机的虚拟机迁移策略;迁移模块,用于根据所述虚拟机迁移策略对所述第一物理主机所承载的虚拟机进行迁移。

可选地,所述迁移策略确定模块,包括:第一迁移策略确定子模块,用于若所述资源使用率大于或等于预设的第一阈值,则确定第一虚拟机迁移策略,所述第一虚拟机迁移策略用于指示迁移所述第一物理主机所承载的至少一个虚拟机;第二迁移策略确定子模块,用于若所述资源使用率小于或等于预设的第二阈值,则确定第二虚拟机迁移策略,所述第二虚拟机迁移策略用于指示迁移所述第一物理主机所承载的所有虚拟机。

可选地,所述迁移模块,包括:待迁移虚拟机确定模块,确定所述第一物理主机中的待迁移虚拟机;目标物理主机确定模块,用于确定所述云平台中的目标物理主机;迁移执行模块,用于将所述待迁移虚拟机由所述第一物理主机迁移至所述目标物理主机。

可选地,所述待迁移虚拟机确定模块,包括:第一待迁移虚拟机确定子模块,用于若所述虚拟机迁移策略为第一虚拟机迁移策略,根据所述第一物理主机中的虚拟机的资源使用率,确定待迁移虚拟机;第二待迁移虚拟机确定子模块,用于若所述虚拟机迁移策略为第二虚拟机迁移策略,确定所述第一物理主机中的所有虚拟机为待迁移虚拟机。

可选地,所述目标物理主机确定模块,具体用于根据所述待迁移虚拟机的需求指标,确定所述云平台中的目标物理主机。

在本申请实施例中,根据物理主机的资源使用率确定相应的虚拟机迁移策略,进而按照虚拟机迁移策略对虚拟机进行迁移,实现对虚拟机的自主调度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种云平台的场景示意图;

图2为本申请实施例提供的一种虚拟机调度方法流程示意图;

图3为本申请实施例提供的另一种虚拟机调度方法流程示意图;

图4为本申请实施例提供的一种虚拟机调度装置结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

图1为本申请实施例提供的一种云平台的场景示意图,在图1中示出了三台物理主机101a、101b和101c,且物理主机101a承载了两台虚拟机vm1和vm2,物理主机101b承载了三台虚拟机vm3、vm4和vm5,物理主机101c承载了一台虚拟机vm6。物理主机本身承载了不同数量的虚拟机,且随着系统的使用,虚拟机的各种操作或运行业务的多少,会导致物理主机的负载不均匀。有些物理主机负载过重,有些物理主机负载过轻。当负载过重时,资源竞争比较激烈,会严重影响虚拟机的性能;当负载过轻时,物理主机不能最大程度的充分利用,导致资源浪费。例如,物理主机101b的负载过重,则需要将物理主机101b上的部分虚拟机迁出,以降低物理主机101b的负载;物理主机101c的负载过轻,则需要将物理主机101c上的全部虚拟机迁出,然后对物理主机101c进行关机处理,以避免资源浪费。

需要指出的是,图1仅是本申请实施例所提供的一种具体场景,并不应当将其作为本申请保护范围的限制,例如,物理主机和虚拟机的数量可以根据实际需求进行相应调整。

为了实现虚拟机的自主迁移,本申请实施例提供了一种虚拟机调度方法。图2为本申请实施例提供的一种虚拟机调度方法流程示意图,如图2所示,其主要包括以下步骤。

步骤s201:获取云平台中第一物理主机的资源使用率。

在本申请实施例所涉及的第一物理主机可以为云平台中的任意一台物理主机,调整该任意一台物理主机的负载。当然,为了对云平台中的每一台物理主机的负载进行调整,可以周期性地遍历云平台中的每一台物理主机。

本申请实施例所涉及的资源使用率可以为cpu使用率和内存使用率。如果所有的物理主机不共享存储资源,则该资源使用率还可以包括存储使用率;如果所有的物理主机共享存储资源,则该资源使用率可以不包括存储使用率。换句话讲,如果所有的物理主机共享存储资源,无论虚拟机在哪台物理主机上,都使用相同的存储资源,则资源使用率的判定中没有必要再存储资源的维度进行判断。

具体地,资源使用率可以根据资源用量和资源总和的比值进行计算。例如,第一物理主机的内存总和为128g,内存用量为64g,则内存使用率为50%。

步骤s202:根据所述资源使用率确定所述第一物理主机的虚拟机迁移策略。

本申请实施例预设两个阈值,第一阈值和第二阈值。其中,第一阈值为物理主机过载的临界值;第二阈值为物理主机过轻的临界值。

具体地,若资源使用率大于或等于预设的第一阈值,则确定该第一物理主机过载,使用第一虚拟机迁移策略,所述第一虚拟机迁移策略用于指示迁移所述第一物理主机所承载的至少一个虚拟机;若所述资源使用率小于或等于预设的第二阈值,则确定第一物理主机过轻,采用第二虚拟机迁移策略,所述第二虚拟机迁移策略用于指示迁移所述第一物理主机所承载的所有虚拟机。

在一种可选实施例中,可以预测未来n个时刻的资源使用率,根据未来n个时刻的资源使用率确定第一物理主机的虚拟机迁移策略。例如,当未来n个时刻的资源使用率均大于或等于预设的第一阈值,确定第一虚拟机迁移策略;当未来n个时刻的资源使用率均小于或等于预设的第二阈值,确定第二虚拟机迁移策略。

在一种可选实施例中,资源使用率大于或等于预设的第一阈值,具体为:cpu使用率大于或等于预设的第一cpu阈值,或者,内存使用率大于或等于预设的第一内存阈值。资源使用率小于或等于预设的第二阈值,具体为:cpu使用率小于或等于预设的第二cpu阈值,或者,内存使用率小于或等于预设的第一内存阈值。在一种具体实现方式中,第一cpu阈值为0.85,第一内存阈值为0.8;第二cpu阈值和第二内存阈值均为0.2。

步骤s203:根据所述虚拟机迁移策略对所述第一物理主机所承载的虚拟机进行迁移。

具体地,若所述虚拟机迁移策略为第一虚拟机迁移策略,则需要对第一物理主机上的部分虚拟机进行迁移,以降低第一物理主机的负载;若所述虚拟机迁移策略为第二虚拟机迁移策略,则需要将第一物理主机上的全部虚拟机迁移,以便在第一物理主机迁空后,对第一物理主机进行关机处理。

在本申请实施例中,根据物理主机的资源使用率确定相应的虚拟机迁移策略,进而按照虚拟机迁移策略对虚拟机进行迁移,实现对虚拟机的自主调度。

在图2所示实施例的基础上,本申请实施例还提供了另一种虚拟机调度方法流程示意图,如图3所示,上述步骤s203具体包括以下步骤。

步骤s301:确定所述第一物理主机中的待迁移虚拟机。

若要对物理主机中的虚拟机进行迁移,则首先需要确定对第一物理主机上的哪一台或哪几台虚拟机进行迁移。

具体地,若虚拟机迁移策略为第一虚拟机迁移策略,则可以按照虚拟机的资源使用率确定待迁移虚拟机。具体地,可以遍历第一物理主机上的虚拟机,将满足迁移条件的所有虚拟机作为待迁移虚拟机。该迁移条件可以为虚拟机的资源使用率大于或等于预设的第三阈值,该第三阈值为虚拟机过载的临界值。或者,可以将第一物理主机上的虚拟机的资源使用率进行排序,将资源使用率最大的一台或多台虚拟机作为待迁移虚拟机。

步骤s302:确定所述云平台中的目标物理主机。

本申请实施例涉及的目标物理主机是用于承载待迁移虚拟机的物理主机。目标物理主机可以根据待迁移虚拟机的需求指标确定。

例如,待迁移虚拟机vm1对内存的需求较高,可以将云平台中内存最大的物理主机作为待迁移虚拟机vm1的目标物理主机;待迁移虚拟机vm2对cpu的需求较高,可以将云平台中cpu最大的物理主机作为待迁移虚拟机vm2的目标物理主机。也就是说,可以根据每台虚拟机的需求指标,确定相应的目标物理主机。

但是,在实际应用场景中,云平台中的物理主机可能均满载,不能再添加其它虚拟机。因此,一种可选实施例,在上述步骤s301之前可以先判断云平台中是否存在满足迁移条件的物理主机,该迁移条件是指物理主机仍然可以添加其它虚拟机,若存在则执行步骤s301;否者,结束虚拟机调度。其中,若开机的物理主机均不满足迁移条件,可以判断是否存在关机的物理主机,若存在,则将关机的物理主机开机,将该开机的物理主机作为目标物理主机。

步骤s303:将所述待迁移虚拟机由所述第一物理主机迁移至所述目标物理主机。

在选定待迁移虚拟机和目标物理主机后,可以将该带迁移虚拟机迁移至目标物理主机。其中,该待迁移虚拟机的数量可以为多个,目标物理主机的数量同样可以为多个。

在上述方法实施例的基础上,本申请还提供了一种装置实施例。图4为本申请实施例提供的一种虚拟机调度装置结构示意图,如图4所示,该装置包括获取模块401、迁移策略确定模块402和迁移模块403。

其中,获取模块401,用于获取云平台中第一物理主机的资源使用率;

迁移策略确定模块402,用于根据所述资源使用率确定所述第一物理主机的虚拟机迁移策略;

迁移模块403,用于根据所述虚拟机迁移策略对所述第一物理主机所承载的虚拟机进行迁移。

在一种可选实施例中,所述迁移策略确定模块402,包括:第一迁移策略确定子模块,用于若所述资源使用率大于或等于预设的第一阈值,则确定第一虚拟机迁移策略,所述第一虚拟机迁移策略用于指示迁移所述第一物理主机所承载的至少一个虚拟机;第二迁移策略确定子模块,用于若所述资源使用率小于或等于预设的第二阈值,则确定第二虚拟机迁移策略,所述第二虚拟机迁移策略用于指示迁移所述第一物理主机所承载的所有虚拟机。

在一种可选实施例中,所述迁移模块403,包括:待迁移虚拟机确定模块,确定所述第一物理主机中的待迁移虚拟机;目标物理主机确定模块,用于确定所述云平台中的目标物理主机;迁移执行模块,用于将所述待迁移虚拟机由所述第一物理主机迁移至所述目标物理主机。

在一种可选实施例中,所述待迁移虚拟机确定模块,包括:第一待迁移虚拟机确定子模块,用于若所述虚拟机迁移策略为第一虚拟机迁移策略,根据所述第一物理主机中的虚拟机的资源使用率,确定待迁移虚拟机;第二待迁移虚拟机确定子模块,用于若所述虚拟机迁移策略为第二虚拟机迁移策略,确定所述第一物理主机中的所有虚拟机为待迁移虚拟机。

在一种可选实施例中,所述目标物理主机确定模块,具体用于根据所述待迁移虚拟机的需求指标,确定所述云平台中的目标物理主机。

具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本申请实施方式并不构成对本申请保护范围的限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1