一种资源调度方法及装置与流程

文档序号:11829173阅读:266来源:国知局
一种资源调度方法及装置与流程

本发明涉及云计算技术领域,特别是涉及一种资源调度方法及装置。



背景技术:

当前,市场上绝大数服务器虚拟化产品都提供虚拟机迁移、动态资源调度等虚拟化高级功能。而在虚拟机迁移、动态资源调度功能设计中,通常仅将物理主机CPU、内存、存储、网络等的利用率作为选择迁移目的条件。仅通过主机CPU、内存、存储、网络等的利用率来选择目的主机的传统方式,在大多数情况下是可行的,但在某些异常情况下,诸如某个主机风扇异常时,我们再将业务迁移到此主机上,在应用时是会面临宕机风险,即便虚拟化有高可用机制的保护,但还是会出现短暂的业务中断。

由此可见,如何提高资源调度的可靠性以保证在应用时降低宕机的风险是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种资源调度方法及装置,用于提高资源调度的可靠性以保证在应用时降低宕机的风险。

为解决上述技术问题,本发明提供一种资源调度方法,包括:

监控当前环境中各个主机的健康状态信息,并将所述健康状态信息输入至预定义的健康状态数据模型中得到各个主机的健康状态数据;

获取当前环境中各个主机的资源利用率数据;

筛选出所述健康状态数据和所述资源利用率数据在预设范围内的主机作为待用主机,并生成调度准备指令;

依据所述资源利用率数据和所述健康状态数据为参考对象在所述待用主机中选择目的主机,将所述目的主机加入到目的主机列表中,并结合资源调度信息生成调度指令;

依据所述调度指令执行资源调度过程。

优选地,通过与各个主机连接的传感器监控当前环境中各个主机的健康状态信息。

优选地,所述主机的资源利用率数据具体包括:CPU利用率数据、内存利用率数据、磁盘利用率数据、网络利用率数据。

优选地,所述健康状态信息包括CPU电压的健康状态信息、风扇转速的健康状态信息、磁盘转速的健康状态信息。

优选地,当所述健康状态信息包含CPU电压的健康状态信息时,依据所述资源利用率数据、所述健康状态数据和所述CPU电压的健康状态信息为参考对象在所述待用主机中选择目的主机,将所述目的主机加入到目的主机列表中,并结合资源调度信息生成调度指令。

一种资源调度装置,包括:

健康状态监控模块,用于监控当前环境中各个主机的健康状态信息,并将所述健康状态信息输入至预定义的健康状态数据模型中得到各个主机的健康状态数据;

资源利用率监控模块,用于获取当前环境中各个主机的资源利用率数据;

资源调度模块,用于筛选出所述健康状态数据和所述资源利用率数据在预设范围内的主机作为待用主机,并生成调度准备指令;

调度指令生成模块,用于依据所述资源利用率数据和所述健康状态数据为参考对象在所述待用主机中选择目的主机,将所述目的主机加入到目的主机列表中,并结合资源调度信息生成调度指令;

调度指令执行模块,用于依据所述调度指令执行资源调度过程。

优选地,所述健康状态监控模块与各个主机对应的传感器连接,通过所述传感器监控当前环境中各个主机的健康状态信息。

优选地,所述主机的资源利用率数据具体包括:CPU利用率数据、内存利用率数据、磁盘利用率数据、网络利用率数据。

优选地,所述健康状态信息包括CPU电压的健康状态信息、风扇转速的健康状态信息、磁盘转速的健康状态信息。

优选地,当所述健康状态信息包含CPU电压的健康状态信息时,所述调度指令生成模块,具体依据所述资源利用率数据、所述健康状态数据和所述CPU电压的健康状态信息为参考对象在所述待用主机中选择目的主机,将所述目的主机加入到目的主机列表中,并结合资源调度信息生成调度指令。

本发明所提供的资源调度方法及装置,获取各个主机的健康状态数据和资源利用率数据,通过这两个参数筛选出在预设范围内的主机作为待用主机,并生成调度准备指令。然后在筛选出的待用主机中选取一个目的主机作为本次资源调度的目的地,并依据调度指令执行本次资源调度的过程。由上可知,本方法中,将主机的健康状态数据和资源利用率数据综合考虑,能够有效避免仅考虑资源利用率低这一参数导致的问题。通过本方法选取的目的主机所对应的健康状态数据和资源利用率数据都较好,因此提高了资源调度的可靠性,降低了宕机的风险。

附图说明

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

图1为本发明体的一种资源调度方法的流程图;

图2为本发明提供的一种资源调度装置的结构图。

具体实施方式

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

本发明的核心是提供一种资源调度方法及装置。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

图1为本发明体的一种资源调度方法的流程图。如图1所示,资源调度方法包括:

S10:监控当前环境中各个主机的健康状态信息,并将健康状态信息输入至预定义的健康状态数据模型中得到各个主机的健康状态数据。

在具体实施中,可以通过与各个主机连接的传感器监控当前环境中各个主机的健康状态信息。例如,各个主机中的CPU电压、风扇转速、磁盘转速等的健康状态信息。由于这些传感器器只能获取各个部件的运行状态,无法得到这些健康状态信息对应的健康状态数据,因此,需要将这些健康状态信息输入值预先定义的健康状态数据模型中以得到各个主机的健康状态数据。例如,在具体实施中,得到的CPU电压、风扇的转速,需要将这些具体的运行数据,即健康状态信息输入至健康状态数据模型,该模型可以根据经验或实验方法映射出何种健康状态信息对应何种健康状态数据。可以理解的是,不同的健康状态信息得到的健康状态数据可能相同,可能不相同。另外,健康状态数据可以是依据每个部件的健康状态信息获取一个单独的健康状态数据,然后将各个单独的健康状态数据相加得到本步骤中最终的健康状态数据,换句话说,本步骤的中的健康状态数据是反应主机中各个部件总体的评价结果。更为具体的,还可以根据各个部件所占的权重值来计算出各个部件对应的单独的健康状态数据。

S11:获取当前环境中各个主机的资源利用率数据。

主机在运行过程中,可以动态获取资源利用率数据。

在具体实施中,主机的资源利用率数据具体包括:CPU利用率数据、内存利用率数据、磁盘利用率数据、网络利用率数据。

资源利用率数据可以是依据每个部件的单独的资源利用率数据获取一个主机整体的资源利用率数据,换句话说,本步骤的中的资源利用率数据是反应主机中各个部件总体的评价结果。更为具体的,还可以根据各个部件所占的权重值来计算出各个部件对应的单独的资源利用率数据。

S12:筛选出健康状态数据和资源利用率数据在预设范围内的主机作为待用主机,并生成调度准备指令。

在步骤S10和步骤S11中,得到了各个主机的健康状态数据和资源利用率数据两个参数。在资源调度过程中,不仅主机的资源利率数据对调度过程有影响,而且主机的健康状态数据也会对调度过程有影响。可以理解的是,即使一个主机的资源利用率数据特别低,但是如果该主机的健康状态数据过低的话,有可能会影响调度过程,甚至导致宕机问题。例如,主机的健康状态数据过低的原因是CPU出现问题,那么即使该主机的资源利用率再低,其调度过程也会出现较多问题。

本步骤中,结合健康状态数据和资源利用率数据这两个参数作为筛选的条件,在多个主机中选取符合筛选条件的主机作为待用主机。例如有10个主机,其中的3个主机通过步骤S12之后被选为待用主机。由于当前的众多主机中,具有符合筛选条件的主机,因此,资源调度可以顺利进行,即步骤中的生成调度准备指令。

可以理解的是,如果当前全部主机都不满足筛序条件,那么此次的资源调度就无法完成。步骤S12的前提是,有符合筛选条件的主机,并且如果只有一个的话,那么该主机就是目标主机,因此,步骤S12的另一个前提是,有至少两个符合筛选条件的主机。

S13:依据资源利用率数据和健康状态数据为参考对象在待用主机中选择目的主机,将目的主机加入到目的主机列表中,并结合资源调度信息生成调度指令。

依据资源利用率数据和健康状态数据为参数,将待用主机进行排序。本发明中,步骤S13选取目的主机的方法有很多,例如,如果两个待用主机的资源利用率数据和健康状态数据的总和相同,则优先选择资源利用率数据低的待用主机作为目的主机;如果两个待用主机的资源利用率数据和健康状态数据的总和不相同,则优先选择资源利用率数据较低的待用主机作为目的主机;或者如果两个待用主机的资源利用率数据和健康状态数据的总和不相同,则选取总和较低的主机作为目的主机;或者将健康状态数据设置一个下限值,如果没有达到这个下限值,则该主机无法作为目的主机。上述多种方式只是一种具体的应用场景,可以根据实际情况设定。

可以理解的是,资源调度信息可以包括迁移时间、迁移时长等参数,即通过调度指令就可以知道调度的目的地是哪里,何如开始调度,调度持续多长时间。

S14:依据调度指令执行资源调度过程。

在步骤S13中,已经得到了调度指令,根据该指令就可以知道调度的目的地是哪里,何如开始调度,调度持续多长时间。至此,完成了整个资源调度方法的全部过程。

需要说明的是,上述步骤中,在能够实施的前提下,没有严格意义上的先后顺序,例如步骤S10和步骤S11可以同时进行,也可以先执行步骤S10再执行步骤S11,或者也可以先执行步骤S11再执行步骤S10。

本实施例提供的资源调度方法,获取各个主机的健康状态数据和资源利用率数据,通过这两个参数筛选出在预设范围内的主机作为待用主机,并生成调度准备指令。然后在筛选出的待用主机中选取一个目的主机作为本次资源调度的目的地,并依据调度指令执行本次资源调度的过程。由上可知,本方法中,将主机的健康状态数据和资源利用率数据综合考虑,能够有效避免仅考虑资源利用率低这一参数导致的问题。通过本方法选取的目的主机所对应的健康状态数据和资源利用率数据都较好,因此提高了资源调度的可靠性,降低了宕机的风险。

在上述实施例的基础上,健康状态信息包括CPU电压的健康状态信息、风扇转速的健康状态信息、磁盘转速的健康状态信息。

可以理解的是,上述三种健康状态信息只是一种优选的实施方式,在其它实施例中,可以是这三种中的任意一种或几种,还可以不是其它部件对应的健康状态信息。

在上述实施例的基础上,当健康状态信息包含CPU电压的健康状态信息时,步骤S13中具体为:

依据资源利用率数据、健康状态数据和CPU电压的健康状态信息为参考对象在待用主机中选择目的主机,将目的主机加入到目的主机列表中,并结合资源调度信息生成调度指令。

可以理解的是,步骤S13中以何种数据作为参考对象是可以改变的,但是至少有资源利用率数据和健康状态数据这个两个参数。例如当健康状态信息包含CPU电压的健康状态信息时,如果两个主机对应的资源利用率数据和健康状态数据都相同,那么就选择CPU电压的健康状态信息较好的待用主机作为目的主机。

图2为本发明提供的一种资源调度装置的结构图。如图2所示,资源调度装置包括:

健康状态监控模块10,用于监控当前环境中各个主机的健康状态信息,并将健康状态信息输入至预定义的健康状态数据模型中得到各个主机的健康状态数据;

资源利用率监控模块11,用于获取当前环境中各个主机的资源利用率数据;

资源调度模块12,用于筛选出健康状态数据和资源利用率数据在预设范围内的主机作为待用主机,并生成调度准备指令;

调度指令生成模块13,用于依据资源利用率数据和健康状态数据为参考对象在待用主机中选择目的主机,将目的主机加入到目的主机列表中,并结合资源调度信息生成调度指令;

调度指令执行模块14,用于依据调度指令执行资源调度过程。

本实施例提供的资源调度装置,获取各个主机的健康状态数据和资源利用率数据,通过这两个参数筛选出在预设范围内的主机作为待用主机,并生成调度准备指令。然后在筛选出的待用主机中选取一个目的主机作为本次资源调度的目的地,并依据调度指令执行本次资源调度的过程。由上可知,本装置中,将主机的健康状态数据和资源利用率数据综合考虑,能够有效避免仅考虑资源利用率低这一参数导致的问题。通过本装置选取的目的主机所对应的健康状态数据和资源利用率数据都较好,因此提高了资源调度的可靠性,降低了宕机的风险。

作为一种优选的实施方式,健康状态监控模块10与各个主机对应的传感器连接,通过传感器监控当前环境中各个主机的健康状态信息。

作为一种优选的实施方式,主机的资源利用率数据具体包括:CPU利用率数据、内存利用率数据、磁盘利用率数据、网络利用率数据。

作为一种优选的实施方式,康状态信息包括CPU电压的健康状态信息、风扇转速的健康状态信息、磁盘转速的健康状态信息。

作为一种优选的实施方式,当健康状态信息包含CPU电压的健康状态信息时,调度指令生成模块13,具体依据资源利用率数据、健康状态数据和CPU电压的健康状态信息为参考对象在待用主机中选择目的主机,将目的主机加入到目的主机列表中,并结合资源调度信息生成调度指令。

由于装置部分的实施例与方法部分的实施例相对应,因此,装置部分对应的实施例请参见方法部分的实施例的描述,这里暂不赘述。

以上对本发明所提供的资源调度方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

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