虚拟机的部署方法、装置、设备以及计算机可读存储介质
技术领域
本申请涉及云计算平台
技术领域
,特别涉及一种虚拟机的部署方法;还涉及一种虚拟机的部署装置、设备以及计算机可读存储介质。背景技术
云数据中心广泛使用虚拟化技术实现将单一物理主机的资源分配给多个虚拟机,从而提高资源利用率,同时减少运营和维护成本。如何合理、均衡、批量部署虚拟机已成为云计算平台运营与维护过程中的重要任务。当前,确定在物理主机上批量部署虚拟机的最佳分配策略的方法主要是基于资源阈值的判断法和部分启发式智能算法。虽然,这些方法能够确定出一种或多种批量部署虚拟机到物理主机的分配策略,但是却无法保证云计算平台中资源的合理利用与负载均衡。
因此,提供一种能够使物理主机间达到最佳负载均衡的虚拟机批量部署方案已成为本领域技术人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种虚拟机的部署方法,能够实现快速批量部署虚拟机,并使物理主机间达到最佳负载均衡。本申请的另一个目的是提供一种虚拟机的部署装置、设备以及计算机可读存储介质,均具有上述技术效果。
为解决上述技术问题,本申请提供了一种虚拟机的部署方法,包括:
设置亲和度函数与约束条件,并以所述亲和度函数与所述约束条件作为抗原;
设置虚拟机与物理主机的映射关系,并以所述映射关系作为抗体;
计算所述抗体与所述抗原的亲和度;
从所述抗体中挑选出亲和度最高的所述抗体;
进化亲和度最高的所述抗体并对亲和度最高的所述抗体进行接种免疫,直到进化后的所述抗体与所述抗原的亲和度收敛;
根据亲和度收敛时的所述抗体对应的所述映射关系部署所述虚拟机;
进化所述抗体包括:
根据预设模糊子集调整交叉率与变异率;
根据调整后的所述交叉率与所述变异率,进化所述抗体。
可选的,设置虚拟机与物理主机的映射关系包括:
设置虚拟机与所述物理主机的映射关系,所述映射关系的个数为预设数量,且所述映射关系满足在所述映射关系下的所述物理主机不存在资源超配的情况。
可选的,所述计算所述抗体与所述抗原的亲和度包括:
计算所述抗体对应的所述映射关系下的所述物理主机的目标资源的使用率;
根据所述目标资源的使用率得到所述物理主机的负载;
计算各所述物理主机的负载的均值,并计算所述物理主机的负载与所述均值的欧式距离;
将所述欧式距离取倒数得到所述抗体与所述抗原的亲和度。
可选的,所述目标资源包括:CPU、内存以及硬盘。
可选的,所述约束条件为所述物理主机的所述目标资源的使用率位于预设区间。
可选的,对所述抗体进行接种免疫包括:
变异所述抗体得到新的抗体,并计算所述新的抗体与所述抗体的亲和度的差值;
根据所述亲和度差值以及退火因子,得到所述新的抗体替换所述抗体的概率;
根据所述概率将所述抗体替换为所述新的抗体。
可选的,所述根据所述亲和度差值以及退火因子,得到所述新的抗体替换所述抗体的概率包括:
依据公式得到所述新的抗体替换所述抗体的概率;
其中,Tg表示退火因子,∇L表示亲和度差值,P表示所述新的抗体替换所述抗体的概率。
为解决上述技术问题,本申请还提供了一种虚拟机的部署装置,包括:
第一设置模块,用于设置亲和度函数与约束条件,并以所述亲和度函数与所述约束条件作为抗原;
第二设置模块,用于设置虚拟机与物理主机的映射关系,并以所述映射关系作为抗体;
计算模块,用于计算所述抗体与所述抗原的亲和度;
挑选模块,用于从所述抗体中挑选出亲和度最高的所述抗体;
进化与免疫模块,用于进化亲和度最高的所述抗体并对亲和度最高的所述抗体进行接种免疫,直到进化后的所述抗体与所述抗原的亲和度收敛;
部署模块,用于根据亲和度收敛时的所述抗体对应的所述映射关系部署所述虚拟机;
进化所述抗体包括:
根据预设模糊子集调整交叉率与变异率;
根据调整后的所述交叉率与所述变异率,进化所述抗体。
为解决上述技术问题,本申请还提供了一种虚拟机的部署设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述的虚拟机的部署方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的虚拟机的部署方法的步骤。
本申请所提供的虚拟机的部署方法,包括:设置亲和度函数与约束条件,并以所述亲和度函数与所述约束条件作为抗原;设置虚拟机与物理主机的映射关系,并以所述映射关系作为抗体;计算所述抗体与所述抗原的亲和度;从所述抗体中挑选出亲和度最高的所述抗体;进化亲和度最高的所述抗体并对亲和度最高的所述抗体进行接种免疫,直到进化后的所述抗体与所述抗原的亲和度收敛;根据亲和度收敛时的所述抗体对应的所述映射关系部署所述虚拟机;进化所述抗体包括:根据预设模糊子集调整交叉率与变异率;根据调整后的所述交叉率与所述变异率,进化所述抗体。
可见,本申请所提供的虚拟机的部署方法,基于人工免疫算法,将批量部署虚拟机问题抽象为确定虚拟机与物理主机的映射关系的寻优问题,以物理主机达到负载最均衡作为寻优目标,通过设置并变换虚拟机与物理主机的映射关系,得到映射关系的最优解,即得到虚拟机的最佳部署方式。应用该部署方法在实现快速批量部署虚拟机的同时,能够使物理主机间达到最佳负载均衡,确保部署完成后,云计算平台在负载均衡较优且资源利用率较好的状态下运行。同时,该部署方法将模糊推理理论引入到人工免疫过程中,实现了智能化自适应地确定免疫过程的交叉率和变异率。
本申请所提供的虚拟机的部署装置、设备以及计算机可读存储介质均具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种虚拟机的部署方法的流程示意图;
图2为本申请实施例所提供的一种隶属函数的示意图;
图3为本申请实施例所提供的另一种隶属函数的示意图;
图4为本申请实施例所提供的一种虚拟机的部署装置的示意图;
图5为本申请实施例所提供的一种虚拟机的部署设备的示意图。
具体实施方式
本申请的核心是提供一种虚拟机的部署方法,能够实现快速批量部署虚拟机,并使物理主机间达到最佳负载均衡。本申请的另一个核心是提供一种虚拟机的部署装置、设备以及计算机可读存储介质,均具有上述技术效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种虚拟机的部署方法的流程示意图,参考图1所示,该方法主要包括:
S101:设置亲和度函数与约束条件,并以所述亲和度函数与所述约束条件作为抗原;
S102:设置虚拟机与物理主机的映射关系,并以所述映射关系作为抗体;
具体的,本申请基于人工免疫算法,将批量部署虚拟机问题抽象为确定虚拟机与物理主机的映射关系问题,故首先设置抗原与抗体。抗原包括亲和度函数与约束条件。抗体即虚拟机与物理主机的映射关系。设置多个虚拟机与多个物理主机之间的初始的映射关系,即设置初始抗体群。进而通过执行后续步骤确定最优映射关系。所谓最优映射关系是指物理主机依据该映射关系部署虚拟机时,各物理主机之间可以达到最佳的负载均衡。
设置虚拟机与物理主机的映射关系可抽象为编码抗体。抗体的结构是由多种氨基酸的排列组成的链条。本申请使用氨基酸的位置编号代表所需要部署的虚拟机的编号,而各个位置上的氨基酸的种类代表不同的物理主机。因此,一种抗体就代表着一种虚拟机部署方案,即一种虚拟机与物理主机的映射关系。假设,某云计算平台初始有M个物理主机,需要在这些物理主机上部署N个虚拟机,那么采用上述编码方式的得到抗体为:
,。表示第N个虚拟机映射在第个物理主机上。
在一种具体的实施方式中,设置虚拟机与物理主机的映射关系的方式为:设置虚拟机与所述物理主机的映射关系,所述映射关系的个数为预设数量,且所述映射关系满足在所述映射关系下的所述物理主机不存在资源超配的情况。
具体而言,在不考虑资源限制的情况下,N个虚拟机部署到M台物理主机上共有MN种部署方式,即有MN种映射关系,也即有MN种抗体。但是物理主机的资源是有限的,且具有一个最佳的使用率。因此,首先可利用Java语言中的Random随机函数为抗体的每个位置依次选取[1,M]中的整数,得到初始抗体群,即得到初始的一些映射关系。然后判断在这些映射关系下的物理主机是否存在资源超配的情况,并剔除掉存在资源超配的映射关系,即从抗体群中剔除掉无效的抗体。同时,若映射关系的数量过多,则会导致收敛速度过慢,映射关系的数量过少,则会导致无法得到最优解,因此本实施例最终设置的虚拟机与物理主机的映射关系为一个较为合适的数量即预设数量。例如,预设数量可以为30。
S103:计算所述抗体与所述抗原的亲和度;
具体而言,本申请将虚拟机的部署问题抽象为确定具有约束条件的最优求解问题。预先确定好亲和度函数与约束条件,在设置虚拟机与物理主机的映射关系的基础上,在约束条件下,根据亲和度函数计算各抗体的亲和度,即得到各映射关系下的所述物理主机的负载均衡值。负载均衡值反映的是在某种映射关系下的,各物理主机之间的负载均衡情况。
在一种具体的实施方式中,所述计算所述抗体与所述抗原的亲和度包括:
计算所述抗体对应的所述映射关系下的所述物理主机的目标资源的使用率;
根据所述目标资源的使用率得到所述物理主机的负载;
计算各所述物理主机的负载的均值,并计算所述物理主机的负载与所述均值的欧式距离;
将所述欧式距离取倒数得到所述抗体与所述抗原的亲和度。
其中,所述目标资源包括:CPU、内存以及硬盘。
具体而言,由于批量部署虚拟机最理想的方式是在部署完成后,各物理主机之间负载达到最佳均衡的状况,故本实施例重点关注物理主机的CPU、内存以及硬盘,物理主机的负载定义如下:
(1)
其中,d取3,则,用于分别表示物理主机M的CPU、内存与硬盘。Us表示s资源的使用率。例如,s取值1时,U1表示物理主机M的CPU的使用率。
对于每一种虚拟机与物理主机的映射关系,都可以相应的得到该映射关系下的,各物理主机的各资源的使用率,进而依据上式得到该映射关系下的,各物理主机的负载。表示物理主机M的负载。
物理主机之间的负载均衡使用欧氏距离进行度量,如下式所示:
(2)
其中,为各物理主机的负载的平均值。
亲和度函数为:(3)
对于每种映射关系,在基于式(1)得到各物理主机的负载之后,进一步基于式(2)与式(3)可以得到该映射关系下的,物理主机的负载均衡值,即得到抗体的亲和度。
进一步,约束条件可以为所述物理主机的所述目标资源的使用率位于预设区间。例如预设区间为[0,0.9],则约束条件为。
S104:从所述抗体中挑选出亲和度最高的所述抗体;
具体的,计算得到各映射关系下的物理主机的负载均衡值后,可采用精英选择与轮盘赌选择相结合的策略,从中挑选出亲和度最高的所述抗体,并将其存储到记忆单元库。
S105:进化亲和度最高的所述抗体并对亲和度最高的所述抗体进行接种免疫,直到进化后的所述抗体与所述抗原的亲和度收敛;
S106:根据亲和度收敛时的所述抗体对应的所述映射关系部署虚拟机。
具体的,进化抗体即是指变换映射关系,并在每次进化与免疫后,计算得到抗体的亲和度,直到抗体的亲和度收敛,至此以亲和度收敛时的抗体对应的映射关系作为最终的映射关系,并将该最终的映射关系封装为Json格式的参数,然后自动部署虚拟机的脚本使用该Json格式的参数,将任务分发给各个物理主机,使各个物理主机依次对创建部署所分配的虚拟机,最终快速完成虚拟机的批量部署。
其中,在一种具体的实施方式中,进化抗体的方式为:
根据预设模糊子集调整交叉率与变异率;
根据调整后的所述交叉率与所述变化率,进化所述抗体。
具体而言,通常情况下,在人工免疫算法中,免疫过程中的交叉率和变异率是固定不变的。这样虽然人工免疫算法的模型相对简单,但是这两个值取值的不同会严重影响整个免疫过程,例如过大的变异率和交叉率具有较大的跳跃性,可能会影响抗体进化的稳定。较小的变异率和交叉率又不能很好地模拟免疫过程中的多样性。因此,本实施例采用自适应的方法确定免疫过程中的交叉率和变异率。同时考虑到免疫过程的动态性、不确定性,本实施例将模糊推理理论引入到人工免疫过程中,实现智能化自适应地确定免疫过程的交叉率和变异率。
具体而言,使用代表第g代抗体与抗原的平均亲和度,则连续两代抗体平均亲和度的差值就可以表示抗体的进化效果,即:
;若,则代表抗体逐代向免疫效果更强的方向进化,此时适合适当地增加交叉率和变异率,若,则代表抗体在逐代的退化,可能是交叉率和变异率过大造成的,此时考虑适当地减小交叉率和变异率。
本实施例使用 NB( negative big),NS ( negative small), ZE(zero),PS(positive small), PB(positive big ),可以在∇L(g)论域上定义五个模糊子集,其隶属函数如图2所示。
同时,定义和的变化值为和,使用NH(negative huge),NB(negative big),NS( negative small), ZE(zero),PS(positive small), PB(positivebig )和 PH(positive huge)表示“负具大”、“负大”、“负小”、“不变”、“正小”、“正大”和“正具大”,也可以将∇L(g)论域定义七个模糊子集,其隶属函数如图3所示,。因此,在本实施例中的模糊推理规则可如表1所示:
表1
可以明白的是,对于NB、NS等的具体数值,可以进行差异性设置,本申请在此不做限定。
另外,在一种具体的实施方式中,对所述抗体进行接种免疫的方式为:
变异所述抗体得到新的抗体,并计算所述新的抗体与所述抗体的亲和度的差值;
根据所述亲和度差值以及退火因子,得到所述新的抗体替换所述抗体的概率;
根据所述概率将所述抗体替换为所述新的抗体。
具体而言,本实施例利用模拟退火优化疫苗接种过程。抗体每进化一代,从本待中挑选出最优的抗体,并对该抗体进行接种免疫。所谓接种免疫是使得抗体A中链条上发生一个小范围的位置交换,则产生一个新的抗体N,分别计算出这两个抗体的亲和度(即负载均衡值)分别为 L(A), L(N),二者的差值为∇L,进而根据Metropolis准测确定抗体N替代抗体A的概率P,如下式所示:
(4)
其中,Tg表示退火因子,为预先设定的定值。如果∇L≥0,则使用抗体N代替抗体A更新至记忆单元;若∇L<0,则以P的概率使用抗体N代替抗体A更新至记忆单元,例如,P为1/3,则抗体N代替抗体A的概率为1/3。
将模糊逻辑引入免疫过程中,可以实现动态的调整交叉率与变异率。模拟退火与动态调整交叉率与变异率的引入,既可以使整个免疫过程快速收敛,又能够保证最终得到最优的抗体,即得到最佳的部署方案,可以有效提高效率与性能。
经过多次接种免疫后,最终抗体的亲和度收敛,即最终物理主机的负载均衡值收敛,表明即使再变化映射关系,物理主机的负载均衡值也不会有大的差异,此时的映射关系最优。免疫终止时记忆单元库中的抗体即为最优的抗体,通过反编码此抗体即可得到最终的映射关系。
综上所述,本申请所提供的虚拟机的部署方法,基于人工免疫算法,将批量部署虚拟机问题抽象为确定虚拟机与物理主机的映射关系的寻优问题,以物理主机达到负载最均衡作为寻优目标,通过设置并变换虚拟机与物理主机的映射关系,得到映射关系的最优解,即得到虚拟机的最佳部署方式。应用该部署方法在实现快速批量部署虚拟机的同时,能够使物理主机间达到最佳负载均衡,确保部署完成后,云计算平台在负载均衡较优且资源利用率较好的状态下运行。
本申请还提供了一种虚拟机的部署装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图4,图4为本申请实施例所提供的一种虚拟机的部署装置的示意图,结合图4所示,该装置包括:
第一设置模块10,用于设置亲和度函数与约束条件,并以所述亲和度函数与所述约束条件作为抗原;
第二设置模块20,用于设置虚拟机与物理主机的映射关系,并以所述映射关系作为抗体;
计算模块30,用于计算所述抗体与所述抗原的亲和度;
挑选模块40,用于从所述抗体中挑选出亲和度最高的所述抗体;
进化与免疫模块50,用于进化亲和度最高的所述抗体并对亲和度最高的所述抗体进行接种免疫,直到进化后的所述抗体与所述抗原的亲和度收敛;
部署模块60,用于根据亲和度收敛时的所述抗体对应的所述映射关系部署所述虚拟机。
在上述实施例的基础上,可选的,所述第二设置模块20具体用于:
设置虚拟机与所述物理主机的映射关系,所述映射关系的个数为预设数量,且所述映射关系满足在所述映射关系下的所述物理主机不存在资源超配的情况。
在上述实施例的基础上,可选的,所述计算模块30具体用于:
计算所述抗体对应的所述映射关系下的所述物理主机的目标资源的使用率;
根据所述目标资源的使用率得到所述物理主机的负载;
计算各所述物理主机的负载的均值,并计算所述物理主机的负载与所述均值的欧式距离;
将所述欧式距离取倒数得到所述抗体与所述抗原的亲和度。
在上述实施例的基础上,可选的,所述目标资源包括:CPU、内存以及硬盘。
在上述实施例的基础上,可选的,所述约束条件为所述物理主机的所述目标资源的使用率位于预设区间。
在上述实施例的基础上,可选的,所述进化与免疫模块50具体用于:
根据预设模糊子集调整交叉率与变异率;
根据调整后的所述交叉率与所述变化率,进化所述抗体。
在上述实施例的基础上,可选的,所述进化与免疫模块50具体用于:
变异所述抗体得到新的抗体,并计算所述新的抗体与所述抗体的亲和度的差值;
根据所述亲和度差值以及退火因子,得到所述新的抗体替换所述抗体的概率;
根据所述概率将所述抗体替换为所述新的抗体。
本申请所提供的虚拟机的部署装置,基于人工免疫算法,将批量部署虚拟机问题抽象为确定虚拟机与物理主机的映射关系的寻优问题,以物理主机达到负载最均衡作为寻优目标,通过设置并变换虚拟机与物理主机的映射关系,得到映射关系的最优解,即得到虚拟机的最佳部署方式。应用该部署方法在实现快速批量部署虚拟机的同时,能够使物理主机间达到最佳负载均衡,确保部署完成后,云计算平台在负载均衡较优且资源利用率较好的状态下运行。
本申请还提供了一种虚拟机的部署设备,参考图5所示,该设备包括存储器1和处理器2。
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序实现如下的步骤:
设置亲和度函数与约束条件,并以所述亲和度函数与所述约束条件作为抗原;设置虚拟机与物理主机的映射关系,并以所述映射关系作为抗体;计算所述抗体与所述抗原的亲和度;从所述抗体中挑选出亲和度最高的所述抗体;进化亲和度最高的所述抗体并对亲和度最高的所述抗体进行接种免疫,直到进化后的所述抗体与所述抗原的亲和度收敛;根据亲和度收敛时的所述抗体对应的所述映射关系部署所述虚拟机。
对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:
设置亲和度函数与约束条件,并以所述亲和度函数与所述约束条件作为抗原;设置虚拟机与物理主机的映射关系,并以所述映射关系作为抗体;计算所述抗体与所述抗原的亲和度;从所述抗体中挑选出亲和度最高的所述抗体;进化亲和度最高的所述抗体并对亲和度最高的所述抗体进行接种免疫,直到进化后的所述抗体与所述抗原的亲和度收敛;根据亲和度收敛时的所述抗体对应的所述映射关系部署所述虚拟机。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的虚拟机的部署方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。