一种基于改进蚁群算法的云计算虚拟机放置方法与流程

文档序号:18009188发布日期:2019-06-25 23:46阅读:469来源:国知局
一种基于改进蚁群算法的云计算虚拟机放置方法与流程

本发明属于云计算领域,具体涉及一种基于改进蚁群算法的云计算虚拟机放置方法。



背景技术:

云计算是目前国内外科研和商业机构重点研究的一种新兴计算与服务模式,体现为由数百万台物理计算机组成的庞大数据中心。云计算利用虚拟化技术,向用户提供虚拟化资源,用户可以随时随地按需请求资源和按需付费。但是随着用户需求多样化的增加,云计算中心的规模也与日俱增,这使得数据中心的能源消耗随之急剧增加并转化为高运行成本。

云计算通过使用虚拟化技术提高了数据中心的资源利用率,虚拟化技术是把一台物理机虚拟为多台逻辑计算机,也就是我们所说的虚拟机。由于能源消耗过高,为了提高资源利用率,节约成本,需要通过虚拟机迁移放置降低整个数据中心的能耗。所以虚拟机放置算法作为云计算的关键技术,具有重要研究意义。虚拟机的放置是一个从虚拟机到物理主机映射的过程,虚拟机的放置优化问题,是多个目标相互作用相互影响的组合优化问题。因此,解决基于多目标的虚拟机部署策略是云数据中心提高资源利用率和节省能耗的关键。目前提出的各种资源调度算法存在解集不够精准,复杂度较高,考虑目标单一等问题。



技术实现要素:

本发明提出了改进蚁群算法这一智能算法来减小陷入局部最优解的概率。针对单一目标资源调度优化方法不能满足云数据中心多维度多目标需求的问题,在蚁群算法的基础上加入多维约束条件,综合考虑需要优化的负载均衡模型和能源消耗两方面,建立功耗和负载均衡双目标虚拟机放置模型,基于蚁群算法实现以减少资源浪费节省能耗和负载均衡为目标的虚拟机放置优化方法。

一种基于改进蚁群算法的云计算虚拟机放置方法,包括如下步骤:

步骤1:定义虚拟机列表v,物理主机列表s;初始化虚拟机与物理机的匹配解集q,消散因子ρ,信息素浓度τij(0)=c;将m个蚂蚁随机一一对应放置在m个物理机上;

v=[v1,v2...,vi,...vn](1)

s=[s1,s2...,sj...,sm](2)

步骤2:如果虚拟机列表v为空,转至步骤8;

步骤3:蚂蚁m首先获取虚拟机列表v中能够装入当前物理机sj的虚拟机,组成一个虚拟机集合l,若集合l为空,则当前物理机sj已满,转到下一个物理机上进行搜索,并转至步骤2;

步骤4:蚂蚁m开始从虚拟机集合l中搜索虚拟机,计算虚拟机vi对放入当前物理主机sj的期望程度ηij(t);

步骤5:计算虚拟机vi被当前物理机sj选择的被选中概率

步骤6:根据被选中概率采用轮盘赌算法选择虚拟机,放置被选中的虚拟机vi到当前物理机sj上,并从虚拟机列表v中移除该虚拟机vi;

步骤7:更新当前物理机j的资源容量同时更新该步的信息素浓度τij(t),然后返回到步骤2;

步骤8:搜索完成,将虚拟机列表中放入物理主机sj上的虚拟机映射到物理主机sj上,更新虚拟机与物理机的匹配解集q;计算出负载均衡因子n和能源消耗归一化函数p(f);

步骤9:计算信息素增量更新全局信息素浓度τij(t);

步骤10:迭代次数加1,若迭代次数小于蚂蚁数量m,则转至步骤1;

步骤11:算法结束,退出迭代循环,输出最终虚拟机与物理机的匹配解集q。

进一步地,所述步骤4中,根据公式(3)计算虚拟机vi对放入当前物理主机sj的期望程度ηij(t)。

进一步地,所述步骤5中,根据公式(4)计算虚拟机vi被当前物理机sj选择的被选中概率

由信息素浓度τij(t)和期望程度ηij(t)得到α为信息启发因子,代表信息素浓度τij(t)的重要程度,β为期望启发因子,代表期望程度ηij(t)的重要程度。

进一步地,所述步骤7中,根据式(5),(6)更新当前物理机j的资源容量根据式(7)更新该步的信息素浓度τij(t);

τij(t)=(1-ρ)×τij(t-1)(7)

公式(5),(6)分别表示将虚拟机vi放入物理主机sj后,物理主机sj的资源容量,包括内存资源容量与cpu资源容量根据消散因子ρ设置本步搜索后的信息素浓度τij(t)。

进一步地,所述步骤8中,根据式(8)和式(10)分别计算负载均衡因子n和能源消耗归一化函数p(f);

pj=pfree+(pfull-pfree)×uj(9)

pfree表示物理机空闲时的能耗,pfull表示物理机满载时候的能耗,根据式(9)可得到物理主机si的能耗pj;为了方便信息素浓度τij(t)的设置,根据式(10)将物理主机能耗归一化。

进一步地,所述步骤9中,根据式(11)计算信息素增量更新全局信息素浓度τij(t);

信息素增量由负载均衡因子n与能源消耗函数p(f)决定;负载均衡因子与能源消耗函数的值越小,其信息素增量越高。

本发明提出了改进蚁群算法这一智能算法来减小陷入局部最优解的概率。针对单一目标资源调度优化方法不能满足云数据中心多维度多目标需求的问题,在蚁群算法的基础上加入多维约束条件,综合考虑需要优化的负载均衡模型和能源消耗两方面,建立功耗和负载均衡双目标虚拟机放置模型,基于蚁群算法实现以减少资源浪费节省能耗和负载均衡为目标的虚拟机放置优化方法。该虚拟机放置方法有较好的可扩展性,可适应大规模云数据中心。

附图说明

图1为本发明所述的云计算虚拟机放置方法的步骤流程图。

具体实施方式

下面结合说明书附图对本发明的技术方案做进一步的详细说明。

一种基于改进蚁群算法的云计算虚拟机放置方法,包括如下步骤:

步骤1:定义虚拟机列表v,物理主机列表s;初始化虚拟机与物理机的匹配解集q,消散因子ρ,信息素浓度τij(0)=c;将m个蚂蚁随机一一对应放置在m个物理机上。

v=[v1,v2...,vi,...vn](1)

s=[s1,s2...,sj...,sm](2)

步骤2:如果虚拟机列表v为空,转至步骤8。

步骤3:蚂蚁m首先获取虚拟机列表v中能够装入当前物理机sj的虚拟机,组成一个虚拟机集合l,若集合l为空,则当前物理机sj已满,转到下一个物理机上进行搜索,并转至步骤2。

步骤4:蚂蚁m开始从虚拟机集合l中搜索虚拟机,计算虚拟机vi对放入当前物理主机sj的期望程度ηij(t)。

根据公式(3)计算虚拟机vi对放入当前物理主机sj的期望程度ηij(t)。

步骤5:根据公式(4)计算虚拟机vi被当前物理机sj选择的被选中概率

由信息素浓度τij(t)和期望程度ηij(t)得到α为信息启发因子,代表信息素浓度τij(t)的重要程度,β为期望启发因子,代表期望程度ηij(t)的重要程度。

步骤6:根据被选中概率采用轮盘赌算法选择虚拟机,放置被选中的虚拟机vi到当前物理机sj上,并从虚拟机列表v中移除该虚拟机vi。

步骤7:根据式(5),(6)更新当前物理机j的资源容量同时根据式(7)更新该步的信息素浓度τij(t),然后返回到步骤2。

τij(t)=(1-ρ)×τij(t-1)(7)

公式(5),(6)分别表示将虚拟机vi放入物理主机sj后,物理主机sj的资源容量,包括内存资源容量与cpu资源容量根据消散因子ρ设置本步搜索后的信息素浓度τij(t)。

步骤8:搜索完成,将虚拟机列表中放入物理主机sj上的虚拟机映射到物理主机sj上,更新虚拟机与物理机的匹配解集q;根据式(8)和式(10)分别计算出负载均衡因子n和能源消耗归一化函数p(f)。

pj=pfree+(pfull-pfree)×uj(9)

pfree表示物理机空闲时的能耗,pfull表示物理机满载时候的能耗,根据式(9)可得到物理主机si的能耗pj;为了方便信息素浓度τij(t)的设置,根据式(10)将物理主机能耗归一化。

步骤9:根据式(11)计算信息素增量更新全局信息素浓度τij(t)。

信息素增量由负载均衡因子n与能源消耗函数p(f)决定;负载均衡因子与能源消耗函数的值越小,其信息素增量越高。

步骤10:迭代次数加1,若迭代次数小于蚂蚁数量m,则转至步骤1。

步骤11:算法结束,退出迭代循环,输出最终虚拟机与物理机的匹配解集q。

以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。

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