云计算资源的调度方法、装置、设备及存储介质与流程

文档序号:15402302发布日期:2018-09-11 17:49阅读:162来源:国知局

本发明属于云计算技术领域,尤其涉及一种云计算资源的调度方法、装置、设备及存储介质。



背景技术:

随着互联网网络规模的扩大,互联网需要处理的业务量随之迅速增长,如何处理海量数据与服务,为用户提供方便、快捷的网络服务,成为互联网当前发展面临的一个问题。在这种背景下,基于分布式计算特别是网络技术的发展,产生了一种新型服务计算模型:云计算。

云计算资源调度是云计算的一个主要研究方向,在云计算资源调度方面,主要的方法是为虚拟资源动态优化分配物理资源(即为虚拟机动态优化分配宿主机),以减少云计算所需的物理资源和提高系统资源率。目前,可通过遗传算法、蚁群算法等实现云计算资源的调度,然而这些方法算法收敛速度慢、计算量较大、且计算出来的解代表性不强。



技术实现要素:

本发明的目的在于提供一种云计算资源的调度方法、装置、设备及存储介质,旨在解决由于现有技术中云计算资源的调度方法算法收敛速度慢、计算量较大且计算出来的解代表性不强,导致云计算资源的调度效率不佳的问题。

一方面,本发明提供了一种云计算资源的调度方法,所述方法包括下述步骤:

当接收到用户输入的云计算资源调度请求时,获取云计算环境中宿主机、虚拟机的数目和资源信息;

根据所述宿主机的数目、虚拟机的数目、以及预设的组编码策略,对所述云计算环境进行编码,生成编码种群;

通过预设的进化算法对所述编码种群进行进化,将每次进化后的所述编码种群存储在预先构建的历史信息库中;

检测所述云计算环境是否发生动态变化;

当所述云计算环境发生动态变化时,根据所述历史信息库生成下一代编码种群,并跳转至通过预设的进化算法对所述编码种群进行进化的步骤,否则获得进化后的最优编码个体;

对所述最优编码个体进行解码,获得解码结果,根据所述宿主机的资源信息、虚拟机的资源信息,判断所述解码结果是否符合预设的约束条件;

当所述解码结果符合所述约束条件时,根据所述解码结果对所述云计算环境进行资源调度。

另一方面,本发明提供了一种云计算资源的调度装置,所述装置包括:

信息获取单元,用于当接收到用户输入的云计算资源调度请求时,获取云计算环境中宿主机、虚拟机的数目和资源信息;

组编码单元,用于根据所述宿主机的数目、虚拟机的数目、以及预设的组编码策略,对所述云计算环境进行编码,生成编码种群;

种群进化单元,用于通过预设的进化算法对所述编码种群进行进化,将每次进化后的所述编码种群存储在预先构建的历史信息库中;

变化检测单元,用于检测所述云计算环境是否发生动态变化;

动态处理单元,用于当所述云计算环境发生动态变化时,根据所述历史信息库生成下一代编码种群,并触发所述种群进化单元执行通过预设的进化算法对所述编码种群进行进化的步骤,否则获得进化后的最优编码个体;

个体解码单元,用于对所述最优编码个体进行解码,获得解码结果,根据所述宿主机的资源信息、虚拟机的资源信息,判断所述解码结果是否符合预设的约束条件;以及

资源调度单元,用于当所述解码结果符合所述约束条件时,根据所述解码结果对所述云计算环境进行资源调度。

另一方面,本发明还提供了一种云计算设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述云计算资源的调度方法所述的步骤。

另一方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述云计算资源的调度方法所述的步骤。

本发明通过组编码策略生成云计算环境的编码种群,对编码种群进行进化,并将每次进化后的编码种群存储在历史信息库中,当云计算环境发生动态变化时,根据历史信息库生成下一代编码种群,以增加种群的多样性、又同时加快进化算法的收敛,继续跳转至对编码种群进行进化的步骤,否则直接获得进化后的最优编码个体,当最优编码个体的解码结果符合约束条件时,根据解码结果对云计算环境进行资源调度,从而提高了云计算资源调度算法的收敛速度、编码种群的代表性,且计算强度较小,进而提高了云计算资源的调度效率。

附图说明

图1是本发明实施例一提供的云计算资源的调度方法的实现流程图;

图2是本发明实施例二提供的云计算资源的调度装置的结构示意图;

图3是本发明实施例二提供的云计算资源的调度装置的优选结构示意图;以及

图4是本发明实施例三提供的云计算设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下结合具体实施例对本发明的具体实现进行详细描述:

实施例一:

图1示出了本发明实施例一提供的云计算资源的调度方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在步骤s101中,当接收到用户输入的云计算资源调度请求时,获取云计算环境中宿主机、虚拟机的数目和资源信息。

在本发明实施例中,在接收到用户输入的对云计算资源进行调度的请求时,从云计算环境中获取宿主机的数目、宿主机的资源信息、虚拟机的数目和虚拟机的资源信息,以便根据这些数据信息对云计算环境进行编码。其中,宿主机的资源信息可包括宿主机的cpu、内存和物理存储,虚拟机的资源信息可包括虚拟机的cpu、内存和物理存储。

在步骤s102中,根据宿主机的数目、虚拟机的数目、以及预设的组编码策略,对云计算环境进行编码,生成编码种群。

在本发明实施例中,组编码策略即把寄生于(或位于)同一宿主机上的虚拟机称为一个组,同一个组采用同一编号进行表示,不同的宿主机对应不同的编号。假设云计算环境由m台虚拟机、n台物理机组成,可以采用一个数组长度为m的整型数组来表示云计算资源的一个调度情况,其中,整型数组的下标为虚拟机的标号,整型数组的数组值为数组机的编号。

优选地,根据宿主机的数目、虚拟机的数目、以及预设的组编码策略,对云计算环境进行编码的过程,通过下述步骤实现:

(1)构建虚拟机数目大小的整型数组,根据宿主机数目对整型数组进行随机赋值,生成云计算环境的编码个体。

在本发明实施例中,构建数组长度为虚拟机数目的整型数组,根据宿主机数目确定整型数组的赋值范围,并从整型数组中随机选择宿主机数目个数组位置,根据该赋值范围对整型数组中每个数组位置处的数组值进行随机赋值,其中,随机选择的、宿主机数目个数组位置处的数组值各不相同。例如宿主机数目为n时,从整型数组中随机选择n个数组位置,且确定整型数组的赋值范围为0~n-1,为随机选择的n个数组位置赋值0~n-1的不同值,为整型数组的剩余位置赋值0~n-1的任意值,从而使得对云计算环境进行编码得到的编码个体和虚拟机与宿主机的对应关系之间一一对应,当编码个体中任一位置的值发生变化时,该位置处虚拟机对应的宿主机也会发生变化,进而使得对云计算环境的编码满足不冗余性。

(2)判断编码个体的数目是否达到预设的数目阈值。

在本发明实施例中,构建一次整型数组并为整型数组赋值,可以得到一个编码个体,多次执行步骤(1),可得到多个不同的编码个体。判断编码个体的数目是否达到预设数目阈值,是则执行步骤(3),否则跳转至步骤(1)继续对云计算环境进行编码。

(3)当编码个体的数目达到数目阈值时,由所有编码个体构成编码种群。

在本发明实施例中,由数目阈值个编码个体构成编码种群,以便后续进行种群进化。

在步骤s103中,通过预设的进化算法对编码种群进行进化,将每次进化后的编码种群存储在预先构建的历史信息库中。

在本发明实施例中,预先设置历史信息库的规模大小,并通过预设的进化算法(例如遗传算法)对编码种群进行进化,并将进化过程中的编码种群存储在历史信息库中。作为示例地,当历史信息库的规模大小为2个编码种群(即只能存储两个编码种群)时,按照进化过程,实时更新历史信息库,历史信息库中可存储当前进化得到的编码种群和该编码种群的上一代编码种群。

在步骤s104中,检测云计算环境是否发生动态变化。

在本发明实施例中,可通过检测用户对资源的需求发生了变化时,可认为云计算环境发生了动态变化。当云计算环境发生动态变化时,执行步骤s105,否则执行步骤s106。

在步骤s105中,根据历史信息库生成下一代编码种群,并跳转至步骤s103通过预设的进化算法对编码种群进行进化。

在本发明实施例中,当云计算环境发生动态变化时,可根据历史信息库对编码种群进行改变,以增加进化过程中编码种群的多样性。具体地,根据历史信息库中存储的编码种群进行种群预测,生成预测编码种群,再将预测编码种群和历史信息库中存储的最近一代的编码种群进行组合,生成下一代编码种群,并跳转至步骤s103,从而即通过对编码种群进化方向进行预测增加了编码种群的多样性,又基于历史信息库中编码种群携带的历史信息来加快进化算法的收敛。当云计算环境未发生动态变化时,执行步骤s106。

优选地,在根据历史信息库中存储的编码种群进行种群预测时,通过预设的指数平滑法和历史信息库中的所有编码种群,计算得到预测编码种群,有效地提高了对编码种群进化方向进行预测的准确性。进一步优选地,为了适应于云计算环境,当通过指数平滑法和历史信息库中的所有编码种群,计算得到的预测编码种群中编码个体内存在超过n-1(n为宿主机的数目)的数值时,将该数值设置为n-1。

优选地,在将预测编码种群和历史信息库中存储的最近一代的编码种群进行组合,生成下一代编码种群时,从预测编码种群中选取一半数目的优良编码个体,从历史信息库中最近一代的编码种群中选取一半数目的优良编码个体,将预测编码种群中一半数目的优良编码个体和历史信息库中最近一代的编码种群中一半数目的优良编码个体,构成下一代编码种群,从而有效地加快进化算法的收敛。此外,当历史信息库存储编码种群的数目为一时,直接将历史信息库中的编码种群设置为下一代编码种群。

优选地,在得到下一代编码种群后,当下一代编码种群中编码个体的数目未达到数目阈值时,继续通过组编码方式生成新的编码个体,将这些新生成的编码个体添加进下一点编码种群中,从而确保编码种群的完整性。

在步骤s106中,获得进化后的最优编码个体。

在本发明实施例中,当云计算环境未发生变化时,通过最后进化得到的编码种群,计算得到最优编码个体。

在步骤s107中,对最优编码个体进行解码,获得解码结果,根据宿主机的资源信息、虚拟机的资源信息,判断解码结果是否符合预设的约束条件。

在本发明实施例中,根据最优编码个体上的值和值所对应的数组位置,确定虚拟机在宿主机上的分布情况,即虚拟机与宿主机之间的对应关系,以对最优编码个体进行解码,例如,当最优编码个体为{3,3,1,2,0,1,2,3}时,解码结果为vm0、vm1、vm7寄生在pm3上,vm2、vm5寄生在pm1上,vm4寄生在pm0上,其中,vm表示虚拟机、pm表示宿主机。

优选地,在得到解码结果后,可根据宿主机和虚拟机的资源信息,计算解码结果中位于宿主机上所有虚拟机的cpu资源总和、内存资源总和、物理存储资源总和,判断解码结果中虚拟机的cpu资源总和、内存资源总和、物理存储资源总和是否超过这些虚拟机所在宿主机的cpu资源、内存资源以及物理存储资源,是则,认为最优编码个体不满足约束条件,否则,认为最优编码个体满足约束条件,从而有效地保证了对云计算环境进行编码的合法性。

在步骤s108中,当解码结果符合约束条件时,根据解码结果对云计算环境进行资源调度。

在本发明实施例中,当解码结果符合约束条件时,根据解码结果为云计算环境中的虚拟机分配宿主机。

在本发明实施例中,通过组编码策略生成云计算环境的编码种群,对编码种群进行进化,并将每次进化后的编码种群存储在历史信息库中,当云计算环境发生动态变化时,根据历史信息库生成下一代编码种群,以增加种群的多样性、又同时加快进化算法的收敛,继续跳转至对编码种群进行进化的步骤,否则直接获得进化后的最优编码个体,当最优编码个体的解码结果符合约束条件时,根据解码结果对云计算环境进行资源调度,从而提高了云计算资源调度算法的收敛速度、编码种群的代表性,且计算强度较小,进而提高了云计算资源的调度效率。

实施例二:

图2示出了本发明实施例二提供的云计算资源的调度装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:

信息获取单元21,用于当接收到用户输入的云计算资源调度请求时,获取云计算环境中宿主机、虚拟机的数目和资源信息。

在本发明实施例中,在接收到用户输入的对云计算资源进行调度的请求时,从云计算环境中获取宿主机的数目、宿主机的资源信息、虚拟机的数目和虚拟机的资源信息,以便根据这些数据信息对云计算环境进行编码。

组编码单元22,用于根据宿主机的数目、虚拟机的数目、以及预设的组编码策略,对云计算环境进行编码,生成编码种群。

在本发明实施例中,构建数组长度为虚拟机数目的整型数组,根据宿主机数目确定整型数组的赋值范围,并从整型数组中随机选择宿主机数目个数组位置,根据该赋值范围对整型数组中每个数组位置处的数组值进行随机赋值,其中,随机选择的、宿主机数目个数组位置处的数组值各不相同。例如宿主机数目为n时,从整型数组中随机选择n个数组位置,且确定整型数组的赋值范围为0~n-1,为随机选择的n个数组位置赋值0~n-1的不同值,为整型数组的剩余位置赋值0~n-1的任意值。

在本发明实施例中,构建一次整型数组并为整型数组赋值,可以得到一个编码个体。在得到多个不同的编码个体,当编码个体的数目达到预设数目阈值时,由所有编码个体构成编码种群。

种群进化单元23,用于通过预设的进化算法对编码种群进行进化,将每次进化后的编码种群存储在预先构建的历史信息库中。

在本发明实施例中,预先设置历史信息库的规模大小,通过预设的进化算法对编码种群进行进化,并将进化过程中的编码种群存储在历史信息库中。作为示例地,当历史信息库的规模大小为2个编码种群时,按照进化过程,实时更新历史信息库。

变化检测单元24,用于检测云计算环境是否发生动态变化。

在本发明实施例中,可通过检测用户对资源的需求发生了变化时,可认为云计算环境发生了动态变化。

动态处理单元25,用于当云计算环境发生动态变化时,根据历史信息库生成下一代编码种群,并触发种群进化单元23执行通过预设的进化算法对编码种群进行进化的步骤,否则获得进化后的最优编码个体。

在本发明实施例中,当云计算环境发生动态变化时,可根据历史信息库对编码种群进行改变,以增加进化过程中编码种群的多样性。具体地,根据历史信息库中存储的编码种群进行种群预测,生成预测编码种群,再将预测编码种群和历史信息库中存储的最近一代的编码种群进行组合,生成下一代编码种群,并由种群进化单元23继续对编码种群进行进化,从而即通过对编码种群进化方向进行预测增加了编码种群的多样性,又基于历史信息库中编码种群携带的历史信息来加快进化算法的收敛。当云计算环境未发生动态变化时,通过最后进化得到的编码种群,计算得到最优编码个体。

优选地,在根据历史信息库中存储的编码种群进行种群预测时,通过预设的指数平滑法和历史信息库中的所有编码种群,计算得到预测编码种群,有效地提高了对编码种群进化方向进行预测的准确性。进一步优选地,为了适应于云计算环境,当通过指数平滑法和历史信息库中的所有编码种群,计算得到的预测编码种群中编码个体内存在超过n-1(n为宿主机的数目)的数值时,将该数值设置为n-1。

优选地,在得到下一代编码种群后,当下一代编码种群中编码个体的数目未达到数目阈值时,继续通过组编码方式生成新的编码个体,将这些新生成的编码个体添加进下一点编码种群中,从而确保编码种群的完整性。

个体解码单元26,用于对最优编码个体进行解码,获得解码结果,根据宿主机的资源信息、虚拟机的资源信息,判断解码结果是否符合预设的约束条件。

在本发明实施例中,根据最优编码个体上的值和值所对应的数组位置,确定虚拟机在宿主机上的分布情况,即虚拟机与宿主机之间的对应关系,以对最优编码个体进行解码。

优选地,在得到解码结果后,可根据宿主机和虚拟机的资源信息,计算解码结果中位于宿主机上所有虚拟机的cpu资源总和、内存资源总和、物理存储资源总和,判断解码结果中虚拟机的cpu资源总和、内存资源总和、物理存储资源总和是否超过这些虚拟机所在宿主机的cpu资源、内存资源以及物理存储资源,是则,认为最优编码个体不满足约束条件,否则,认为最优编码个体满足约束条件,从而有效地保证了对云计算环境进行编码的合法性

资源调度单元27,用于当解码结果符合约束条件时,根据解码结果对云计算环境进行资源调度。

在本发明实施例中,当解码结果符合约束条件时,根据解码结果为云计算环境中的虚拟机分配宿主机。

优选地,如图3所示,动态处理单元25包括:

种群预测单元351,用于根据历史信息库中的编码种群进行种群预测,生成预测编码种群;以及

种群组合单元352,用于将预测编码种群和历史信息库中最近一代的编码种群,组合为下一代编码种群。

优选地,种群预测单元351包括:

指数平滑计算单元,用于通过预设的指数平滑法和历史信息库中的编码种群,计算得到预测编码种群。

优选地,种群组合单元352包括:

个体选取单元,用于从预测编码种群中选取一半数目的优良编码个体,从历史信息库中最近一代的编码种群中选取一半数目的优良编码个体;以及

下一代种群生成单元,用于由预测编码种群中一半数目的优良编码个体和历史信息库中最近一代的编码种群中一半数目的优良编码个体,构成下一代编码种群。

在本发明实施例中,在将预测编码种群和历史信息库中存储的最近一代的编码种群进行组合,生成下一代编码种群时,从预测编码种群中选取一半数目的优良编码个体,从历史信息库中最近一代的编码种群中选取一半数目的优良编码个体,将预测编码种群中一半数目的优良编码个体和历史信息库中最近一代的编码种群中一半数目的优良编码个体,构成下一代编码种群,从而有效地加快进化算法的收敛。此外,当历史信息库存储编码种群的数目为一时,直接将历史信息库中的编码种群设置为下一代编码种群。

在本发明实施例中,通过组编码策略生成云计算环境的编码种群,对编码种群进行进化,并将每次进化后的编码种群存储在历史信息库中,当云计算环境发生动态变化时,根据历史信息库生成下一代编码种群,以增加种群的多样性、又同时加快进化算法的收敛,继续跳转至对编码种群进行进化的步骤,否则直接获得进化后的最优编码个体,当最优编码个体的解码结果符合约束条件时,根据解码结果对云计算环境进行资源调度,从而提高了云计算资源调度算法的收敛速度、编码种群的代表性,且计算强度较小,进而提高了云计算资源的调度效率。

在本发明实施例中,云计算资源的调度装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。

实施例三:

图4示出了本发明实施例三提供的云计算设备的结构,为了便于说明,仅示出了与本发明实施例相关的部分。

本发明实施例的云计算设备4包括处理器40、存储器41以及存储在存储器41中并可在处理器40上运行的计算机程序42。该处理器40执行计算机程序42时实现上述方法实施例中的步骤,例如图1所示的步骤s101至s108。或者,处理器40执行计算机程序42时实现上述装置实施例中各单元的功能,例如图2所示单元21至27的功能。

在本发明实施例中,通过组编码策略生成云计算环境的编码种群,对编码种群进行进化,并将每次进化后的编码种群存储在历史信息库中,当云计算环境发生动态变化时,根据历史信息库生成下一代编码种群,以增加种群的多样性、又同时加快进化算法的收敛,继续跳转至对编码种群进行进化的步骤,否则直接获得进化后的最优编码个体,当最优编码个体的解码结果符合约束条件时,根据解码结果对云计算环境进行资源调度,从而提高了云计算资源调度算法的收敛速度、编码种群的代表性,且计算强度较小,进而提高了云计算资源的调度效率。

实施例四:

在本发明实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例中的步骤,例如,图1所示的步骤s101至s108。或者,该计算机程序被处理器执行时实现上述装置实施例中各单元的功能,例如图2所示单元21至27的功能。

在本发明实施例中,通过组编码策略生成云计算环境的编码种群,对编码种群进行进化,并将每次进化后的编码种群存储在历史信息库中,当云计算环境发生动态变化时,根据历史信息库生成下一代编码种群,以增加种群的多样性、又同时加快进化算法的收敛,继续跳转至对编码种群进行进化的步骤,否则直接获得进化后的最优编码个体,当最优编码个体的解码结果符合约束条件时,根据解码结果对云计算环境进行资源调度,从而提高了云计算资源调度算法的收敛速度、编码种群的代表性,且计算强度较小,进而提高了云计算资源的调度效率。

本发明实施例的计算机可读存储介质可以包括能够携带计算机程序代码的任何实体或装置、记录介质,例如,rom/ram、磁盘、光盘、闪存等存储器。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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