CN108469983B - 一种云环境下的基于粒子群算法的虚拟机部署方法 - Google Patents
一种云环境下的基于粒子群算法的虚拟机部署方法 Download PDFInfo
- Publication number
- CN108469983B CN108469983B CN201810283396.3A CN201810283396A CN108469983B CN 108469983 B CN108469983 B CN 108469983B CN 201810283396 A CN201810283396 A CN 201810283396A CN 108469983 B CN108469983 B CN 108469983B
- Authority
- CN
- China
- Prior art keywords
- particle
- virtual machine
- target physical
- physical host
- particles
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种云环境下的基于粒子群算法的虚拟机部署方法,属于云计算环境下的资源调度领域。解决只优化单个目标缺乏多个目标考虑;本发明提供了一种云环境下的基于粒子群算法的虚拟机部署方法。本发明在IaaS层建立起虚拟机和物理机之间的部署映射;部署映射的方法包括面向用户的虚拟机部署方法:接收到用户申请虚拟机,基于拥挤度判断的改进的多目标优化粒子群算法部署到目标物理主机上;面向平台自身的虚拟机动态管理方法:将虚拟机部署到目标物理主机上后,判断目标物理主机状态是否超出或低于正常阈值,基于共享程度判断的改进的多目标优化粒子群算法,确定目标物理主机和虚拟主机的映射关系。本发明用于将虚拟机部署在目标物理主机上。
Description
技术领域
一种云环境下的基于粒子群算法的虚拟机部署方法,用于将虚拟机部署在目标物理主机上,属于云计算环境下的资源调度领域,特别涉及一种基于改进的多目标优化粒子群算法的虚拟机部署方法。
背景技术
云环境建立在多种技术支持之上,其是由分布式计算、并行处理、网格计算发展而来。云服务主要由云数据中心提供,是通过虚拟化技术,将云数据中心中包含的大规模的高性能目标物理主机、网络设备、存储设备虚拟化为一个大型的计算、带宽、存储的虚拟资源池。
虚拟化技术本质是将一个个单一的物理机上的计算资源和实际硬件进行解耦合,一台实际目标物理主机上可以运行多台虚拟主机,以虚拟资源的形式提供给用户使用。这样虚拟化的资源管理方式,相比较传统的由单台物理机组成的机房方式,可以灵活地为用户提供计算、存储、网络等服务,提高硬件资源的利用率,降低数据中心整体的能耗成本。
由NIST(National Institute of Standards and Technology,美国国家标准技术研究院)定义,云计算主要分为三层:软件即服务,简称SaaS(Software as a Service),以软件的形式向用户提供服务。平台即服务,简称PaaS(Platform as a Service),以平台的形式向用户提供服务。基础设施即服务,简称IaaS(Infrastructure as a Service),以虚拟机等虚拟的基础设施资源提供给用户使用。
从此定义可以看出,对于虚拟物理机等基础设施资源的管理在IaaS层进行。这一层次主要以虚拟机为基本调度单元,其中虚拟机部署问题旨在建立虚拟机实例到整个云数据中心资源池内最合适的物理机的映射。
为保证云数据中心资源池中能够灵活地对虚拟机进行分配,虚拟机在线迁移技术十分重要。其中,在线迁移(也叫热迁移)技术能够保证用户使用质量,在不中断业务的情况完成迁移。主要技术手段在于快速复制技术,需要创建虚拟机的完整镜像,在复制过程中同步源端和目的端的数据,最后一次复制仅剩下十分少的内存数据,源端快速掉电之后,完成快速复制,然后在目的端启动虚拟机,由于掉电时间极短,并不影响业务的进行,这种方式的在线迁移技术尤为常见。
合适的虚拟机放置算法对于IaaS层的资源管理尤为重要,虚拟机部署策略的好坏直接影响到了云数据中心的整体能耗成本和资源利用率、以及SLA违约率。目前,企业级使用的超大规模的虚拟机部署算法需实现十万台物理机、百万虚拟机的部署方案。的增大会导致问题更加复杂,主要需要考虑以下几个方面:1.相对于传统分布式环境,云环境存在更复杂的异构性和多样性。2.运行过程中随着用户的需求变化,以及虚拟机生命周期的改变,宿主机上的虚拟机数目会动态改变。3.部署中存在多个优化目标,目标之间可能冲突,如何进行折中找到满足多个目标的较优解。4.云平台规模的增大,导致部署算法易于快速得出局部最优解,引起多次动态迁移调整过程。
目前面向虚拟机的部署问题的解决办法主要侧重在两个方面,性能优先和成本优先。性能优先考虑的是云计算数据中心资源的负载均衡、高可靠性等,成本优先的考虑主要集中在提高物理资源利用率、降低能耗等方面。具体措施和其主要的优缺点如下:
一是主要是采用轮询、贪心部署法、加权、首次匹配等基于运筹学的线性规划方法通过静态的阈值来确定调度时机和具体方法的方式,这样做的优点在于可以迅速地得出方案,而且可以轻易地设计衡量的指标,缺点在于算法不够灵活,难以应对大规模异构的云数据中心部署环境和用户动态的需求。
二是通过已有的解决NP-Hard问题的智能全局搜索算法来解决,如粒子群算法、遗传算法、蚁群算法等,通过从大规模的解中多次迭代,将群体逐渐趋于最优,得出全局最优解,这种方式的有点在于由于解集的庞大,有利于找到在全局范围内更加优秀的解。缺点在于使用中原始算法与实际问题之间需建立映射关系,如果建立不好的话,也容易快速收敛到局部最优,影响算法精确度。
三是尽管目前已有各式各样的算法运用到了虚拟机部署问题中,但是这些成果大部分仅关注在性能优化或者成本优化单个目标上,缺乏多个目标的综合考虑。
四是云平台资源自适应管理研究工作刚刚起步,大部分算法未能将保证用户动态的需求以及云数据中心能耗感知自适应结合起来,实际应用参考价值不高。
发明内容
本发明的目的在于:解决现有技术中虚拟机的部署只优化单个目标,且优化单个目标存在算法不够灵活,难以应对大规模异构的云数据中心部署环境和用户动态的需求;原始算法与实际问题之间需建立映射关系,如果建立不好,容易快速收敛到局部最优,影响算法精确度;在只优化单个目标存在上述缺陷的同时还缺乏多个目标的综合考虑和实际应用的考虑的问题;本发明提供了一种云环境下的基于粒子群算法的虚拟机部署方法。
本发明采用的技术方案如下:
一种云环境下的基于粒子群算法的虚拟机部署方法,其特征在于,在IaaS层建立起虚拟机和物理机之间的部署映射;部署映射的方法包括面向用户的虚拟机部署方法和面向平台自身的虚拟机动态管理方法;
面向用户的虚拟机部署方法:接收到用户申请虚拟机,基于拥挤度判断的改进的多目标优化粒子群算法部署到目标物理主机上;
面向平台自身的虚拟机动态管理方法:将虚拟机部署到目标物理主机上后,判断目标物理主机状态是否超出或低于正常阈值,基于共享程度判断的改进的多目标优化粒子群算法,确定目标物理主机和虚拟主机的映射关系。
进一步,面向用户的虚拟机部署方法具体包括如下步骤:
步骤1、接收到用户发出虚拟机申请的粒子编码请求;
步骤2、判断用户是否有申请虚拟机的历史数据,若有,进行预处理后转到步骤4,若无,转到步骤4;
步骤3、同步步骤2,判断目标物理主机的剩余物理资源是否满足当前用户实际申请的虚拟机的需求;若不满足,添加物理资源,并将添加的物理资源加入到剩余物理资源集合中,转到步骤4,若满足,转到步骤4;
步骤4、根据步骤2和步骤3得到的结果,使用改进的多目标优化粒子群算法给目标物理主机分配虚拟机。
进一步,所述步骤2的预处理的具体步骤为:
步骤2.1、根据统计的历史数据对下一个时间段内用户申请的不同规格的虚拟机数量进行增量预测;
步骤2.2、将预测到的增量使用改进的多目标优化粒子群算法进行求解,得出全局最优解集。
进一步,,所述步骤2.1的具体步骤为:
步骤2.11、周期性地监控每一个用户在不同时间周期内的不同规格的虚拟机的申请状况,计算第n种虚拟机在第t个时间周期中申请的虚拟机增量,公式如下:
步骤2.12、对T个时间周期里第n种的虚拟机申请的中的T进行判断,若T小于阈值为短期预测模型,使用二次指数平滑法对第T+1个时间周期进行增量预测,否则为长期预测模型,使用三次指数平滑法对第T+1个时间周期进行增量预测;
步骤2.13、重复步骤2.12,得到N种虚拟机申请的在第T+1个时间周期的虚拟机的增量预测。
进一步,所述步骤4的具体步骤为:
步骤2-1、基于负载不均衡度、目标物理主机数、目标物理主机利用率三个目标函数,若有历史数据,将全局最优解集加入初始化粒子群的外部归档集,若无历史数据,随机初始化粒子群,对初始化粒子群通过ε-Pareto支配方式进行筛选得到初始化的外部归档集;
步骤2-2、基于遗传算法的变异算子,采取高斯变异法对外部归档集中的粒子群进行种群突变操作;
步骤2-3、使用Pareto支配方式比较步骤2-2中得到的外部归档集中每一个粒子在不同迭代时期的状态,得到每一个粒子的最优粒子;
步骤2-4、得到每一个粒子的最优粒子后,基于ε-Pareto支配方式对每一个粒子的最优粒子和外部归档集中的每一个粒子做比较寻找全局最优解更新外部归档集;
步骤2-5、更新步骤2-4中得到的外部归档集中的粒子群速度和位置;
步骤2-6、将更新了粒子群速度和位置的外部归档集进行拥挤度判断,控制外部归档集的大小;
步骤2-7、判断迭代是否达到设定次数,或外部归档集在十次迭代都不发生变化,若满足迭代输出最佳粒子,解码最佳粒子,给目标物理主机分配虚拟机,否则基于步骤2-6中得到的外部归档集重复步骤2-2至步骤2-7。
进一步,所述步骤2-1中随机初始化粒子群的具体步骤为:
步骤2-11、将每一位粒子编码随机赋一个主机编号集合{1,…,M},形成每一个粒子;
步骤2-12、将粒子编码解码得到各个目标物理主机上虚拟机分布的情况,即解码得出的映射关系:1:{vm1,…}…M:{vmN,…},其中{vm1,…,vmn,…,vmN}表示用户发出的N个虚拟机请求集合VMD;
步骤2-13、衡量映射关系是否满足约束关系,若满足视为有效的粒子,该粒子加入初始粒子群,如果不满足的话,则为无效的粒子;约束关系的公式如下:
X={x|hostm-∑vmm>0,m∈[1,M]} (12)
其中,X表示约束关系,hostm表示第一台目标物理主机的剩余资源,m∈[1,M]表示编号集合,∑vmm表示编号为m的目标物理主机上负载的虚拟机资源总和;
步骤2-14、重复步骤2-13,直到有效加入的粒子个数满足粒子群初始化的规模,得到初始化粒子群;
所述步骤2-3的具体步骤为:
步骤2-31、通过负载不均衡度、目标物理主机数、目标物理主机利用率适应度函数计算步骤2-2中得到的外部归档集中每一个粒子的适应度;
步骤2-32、基于Pareto支配方式,将步骤2-31得到的适应度与该粒子个体历史最优的适应度进行比较;若当步骤2-31中计算的当前粒子支配历史最优粒子,则保留当前粒子为个体历史最优粒子,反之,则不作更改;
所述步骤2-4的具体步骤为:
步骤2-41、将负载不均衡度、目标物理主机数、目标物理主机利用率适应度函数所组成的向量空间划分为若干个格子,即粒子在目标函数空间中的格点位置,通过式(19)得到每一个粒子的最优粒子的格点函数B1、B2、B3,其中B1、B2、B3分别对应负载不均衡度、目标物理主机数、目标物理主机利用率适应度函数;在每一个粒子的最优粒子组成的集合中,通过每一个粒子的最优粒子的适应度函数所处的格点位置之间的关系判断ε-Pareto支配关系,寻找ε-Pareto最优解,形成ε-Pareto最优解的集合;
其中,表示第i个适应度函数整个粒子群中的最小值,εi为第i个目标值允许的偏差值,需要预先设定,实质为将目标函数构成的空间分为若干个格子,通过Bi(x)向量所处的格点位置的支配关系得到粒子之间的支配关系,Fi(x)表示粒子x的第i个适应度Fi的值;
步骤2-42、得到ε-Pareto最优解的集合后,判断当前外部归档集中是否为空,如果为空,则将当前最优解全部加入外部归档集中;如果不为空,转到步骤2-43;
步骤2-43、取出每一个最优解集中的粒子与外部归档集中存在的粒子一一比较,如果存在前者支配后者的情况,则用最优解集中的相应粒子替换归档集中的粒子;如果不存在支配关系或后者支配前者,则将相应粒子直接添加至归档集中;
所述步骤2-5的更新公式为:
vk+1=ωvk+c1(pbestk-xk)+c2(gbestk-xk) (21)
xk+1=xk+vk (22)
其中,vk代表当前迭代V的一个速度分量,xk代表对应粒子X的相应位置上的一个位置分量,pbestk代表该粒子的最优粒子的相应位置上的分量,gbestk代表对应外部归档集中随机的一个粒子的分量,ω为惯性因子或者称为惯性权重,其大小决定了粒子将继承当前速度的多少c1、c2为学习因子,分别决定了粒子向自身最优和群体最优位置的趋向程度;
所述步骤2-6的具体步骤为:
步骤2-61、判断外部归档集的大小是否超过了设定值K;
步骤2-62、将外部归档集中的粒子随机排序,通过如下公式计算外部归档集中粒子的拥挤度,公式如下:
其中,Pk表示步骤2-5中外部归档集中的粒子,Pk-1、Pk+1为Pk相邻两侧的粒子,m指的适应度函数数目,i是指对每一适应度函数进行遍历,这里我只有三个适应度函数,适应度函数也即是目标函数,即负载不均衡度、目标物理主机数、目标物理主机利用率;
步骤2-63、将外部归档集中的粒子按照拥挤度从小到大进行排序,只保留前K个粒子,去掉其他拥挤度较大的粒子。
进一步,所述面向平台自身的虚拟机动态管理方法的具体步骤如下:
步骤S1、使用二次指数平滑法对获取的负载历史数据进行虚拟机的增量预测;
步骤S2、将预测得到的增量虚拟机分别与当前目标物理主机上的各项资源负载率相加,得到每一台目标物理主机的预测负载后,再对每一台目标物理主机的综合负载率进行计算;
步骤S3、根据每一台目标物理主机的综合负载率,判断是否在设定的范围内,如果超出最大阈值,该目标物理主机标记为满;如果低于最小阈值,该目标物理主机标记为空;
步骤S4、对标记目标物理主机中的虚拟机进行待调整标记;
步骤S5、将所有标记为待调整的虚拟机重新部署,确定目标物理主机和虚拟主机的映射关系。
进一步,所述步骤S1的具体步骤如下:
步骤S11、从数据库获得数据后,计算第n种虚拟机在第t个时间周期中在目标物理主机上的变化量,即负载历史数据;由公式(23)得出,
步骤S12、根据T个时间周期里目标物理主机上的第n种虚拟机的负载历史数据,使用二次指数平滑法对第T+1个时间周期进行增量预测,得到虚拟机增量
所述步骤S2中的具体计算公式为:
其中,cpu、mem、bw分别表示目标物理主机或者虚拟机的CPU、内存、带宽利用率,C为每一台目标物理主机的预测负载,即每一台目标物理主机的综合负载率;
所述步骤S4的具体步骤如下:
步骤S41、如果目标物理主机标记为满,计算运行其上的虚拟机的综合负载率,对每台虚拟机按综合负载率大小顺序编号,将编号最大的虚拟机标记为待调整;
步骤S42、如果目标物理主机的标记为空,则将运行其上的所有虚拟机都标记为待调整。
进一步,所述步骤S5的具体步骤如下:
步骤S51、基于负载不均衡度、目标物理主机数、目标物理主机利用率三个目标函数,判断每一台目标物理主机是否满足如下约束关系,将满足约束关系的有效粒子加入到初始化的外部归档集中:
其中,第一个关系式表示每一台目标物理主机的剩余资源hostm是否满足将要部署其上的虚拟机资源需求之和∑vmm,第二个关系式表示X编码中的某一位xn表示第n台待调整的虚拟机,HOSTn表示这一台虚拟机所处的网络拓扑结构中可供迁移的目标物理主机编号集合;
步骤S52、基于遗传算法的变异算子,对外部归档集中的粒子群进行种群突变操作;
步骤S53、使用Pareto支配方式比较步骤2-2中得到的外部归档集中每一个粒子在不同迭代时期的状态,得到每一个粒子的最优粒子;
步骤S54、得到每一个粒子的最优粒子后,基于ε-Pareto支配方式对每一个粒子的最优粒子和外部归档集中的每一个粒子做比较寻找全局最优解更新外部归档集;
步骤S55、更新步骤S54中得到的外部归档集中的粒子群速度和位置;
步骤S56、基于小生境的粒子群算法控制更新了粒子群速度和位置的外部归档集的大小,得到最佳粒子;
步骤S57、判断迭代是否达到设定次数,或外部归档集在十次迭代都不发生变化,若满足迭代输出最佳粒子,解码最佳粒子,确定目标物理主机和虚拟主机的映射关系,否则基于步骤S56中得到的外部归档集重复步骤S52至步骤S57。
进一步,所述步骤S56的具体步骤如下:
步骤S561、计算外部归档集中每一个粒子Xi的共享程度,由公式(26)确定:
其中,fshare为共享函数,代表了粒子Xi和Xj之间的相似程度,Si为共享程度,α为控制大小的参数,σshare为设定的共享距离参数,dij表示Xi和Xj之间的欧式距离,i和j都是对粒子群的每一个粒子进行遍历的参数,N为粒子群的总粒子数,m表示对单个粒子编码中的每一位进行遍历,M为粒子的编码长度;
步骤S562、将得到的每一个粒子的共享程度按从小到大排序,只保留外部归档集前k个最佳粒子,k为设定的归档集的规模,去掉共享程度较大的粒子,得到最佳粒子。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明中,提出利用基于指数平滑法的预测机制来预测用户申请虚拟机的增量,增加云平台的按需分配能力,同时也加速粒子群算法的迭代过程,解决了使用进化算法相对贪婪算法较慢的问题,第五代I5处理器上的mac os系统在c louds im环境下仿真部署1000台虚拟机在200台的物理机上,时间耗费在10s内;
2.本发明中,加入种群变异,可以有效地克服粒子群算法本身的容易“早熟”的问题,保证了部署方案的准确度,加入拥挤度判定操作,控制了最优解的规模,保证了部署方案的高效;
3.基于ε-Pareto支配的多目标粒子群算法,可以综合考虑以资源负载均衡为代表的性能因素和以主机利用率、运行主机数为代表的能耗因素,得出折中最优的解决方案,解决单目标优化容易造成的负载不均衡、无作用能耗的问题;
4.本发明与传统的基于线性规划方法的云平台自调整方法相比,提出的基于小生境粒子群算法的云虚拟资源自适应管理方案,部署后资源负载均衡度在原来基础上增加了百分之二十以上,动态迁移数减少了一半,由于减少了主机数,有效降低了整体能耗。
附图说明
图1为本发明中用户申请虚拟机整体部署流程图;
图2为本发明中基于改进的多目标粒子群算法的虚拟机部署方案流程图;
图3为发明中用户申请虚拟机中虚拟机与物理机的编码;
图4为本发明中改进的多目标粒子群算法流程图;
图5为本发明中寻找全局Pareto最优解的流程图;
图6为本发明中面向平台自身的虚拟机动态管理方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
针对于目前云平台虚拟机部署存在的问题,本发明在IaaS层建立起虚拟机和物理机之间的部署映射,结合实际的云环境应用场景,综合粒子群原始算法、pareto最优前沿形成改进的多目标优化粒子群算法,运用指数平滑法对于用户的虚拟机申请量进行预测,提出一种面向用户的多目标虚拟机部署方案。引入云平台的物理机和虚拟机监控技术和小生境粒子群算法,提出一个面向平台自身的虚拟机资源动态自适应方案。以期同时对负载均衡、能耗、部署效率等三个目标进行优化,权衡得出更为折中的解决方法,最终达到提升云平台的服务质量,降低云平台的能耗成本为目的。
一种云环境下的基于粒子群算法的虚拟机部署方法,在IaaS层建立起虚拟机和物理机之间的部署映射;部署映射的方法包括面向用户的虚拟机部署方法和面向平台自身的虚拟机动态管理方法;
面向用户的虚拟机部署方法:接收到用户申请虚拟机,基于拥挤度判断的改进的多目标优化粒子群算法部署到目标物理主机上。
如图1所示,是针对于用户申请到虚拟机具体部署到目标物理主机上要经历五步,数据中心的物理监控机制可以由云平台自身提供,或者使用Hyperic-Sigar等开源工具集,
如图2所示,是为虚拟机分配目标主机提出的新部署方法,具体步骤如下:
步骤1、接收到用户发出虚拟机申请的粒子编码请求;如图3所示,用户实时发出虚拟机申请时,由于涉及到类似遗传算法的变异操作,所以需要对粒子进行编码。图3中,{vm1,…,vmn,…,vmN}表示用户发出的N个虚拟机请求集合VMD,编码中的每一位表示一个用户需求的虚拟机,编码长度为虚拟机申请的总量,为云数据中心的可利用的主机集合HM进行编号,编号为正整数,每一位数字代表对应位置上的虚拟机所部署的主机的编号。所以此步骤接收的是虚拟机与物理机的粒子编码。
步骤2、判断用户是否有申请虚拟机的历史数据,若有,进行预处理后转到步骤4,若无,转到步骤4;具体步骤为:
步骤2.1、根据统计的历史数据对下一个时间段内用户申请的不同规格的虚拟机数量进行增量预测;根据大多数云服务环境实际,用户所能订购的虚拟机规格实质上是有限的,当然也不乏可以是用户自定义的规格,本发明设定虚拟机规格种类预先为开发人员定义好。在实际运行环境中,用户申请的虚拟机所构成的时间序列曲线短期内呈波动状,短期内呈现稳定增长趋势,呈二次曲线趋势增长,故而使用二次指数平滑来预测其走势;而长期内呈现出周期性波动的趋势,所以当统计周期内的历史数据超过设定阈值后,就采用三次指数平滑来预测走势。具体步骤为:
步骤2.11、从数据库中得到用户申请的N种规格不同的虚拟机和其分别在T个时间周期的增量,不同种类的虚拟机表示为VM={VM1,…,VMn,…,VMN},所有种类虚拟机增量的集合表示为 表示在T个时间周期里第n种的虚拟机申请的,其分量表示为计算第n种虚拟机在第t个时间周期中申请的具体的,由公式(1)得出:
步骤2.12、对T个时间周期里第n种的虚拟机申请的中的T进行判断,若T小于阈值为短期预测模型,使用二次指数平滑法对第T+1个时间周期进行增量预测,否则为长期预测模型,使用三次指数平滑法对第T+1个时间周期进行增量预测;
如果T小于阈值t0则为短期模型,需要使用二次指数平滑法来进行预测;通过公式(2)、(3)分别得到一次、二次指数平滑值,通过公式(4)、(5)得到预测需要使用的参数,最后通过公式(6)得到第T+1个时间周期的预测结果。其中α是平滑系数,α取值范围为[0,1],α的选择是预测成功的关键,α值越大,则新数据所占比值越大,原来的预测值所占的比重越小。
如果T大于阈值t0则为长期预测模型,采取三次指数平滑法来进行预测;三次指数平滑实在二次指数平滑的基础上再进行一次平滑操作,所以仍然需要公式(2)、(3)得出一次、二次平滑指数值,再有公式(7)得出三次平滑指数值。由公式(8)(9)(10)得出预测所需使用到的参数,最终通过公式(11)得出第T+1个时间周期的预测结果。
步骤2.13、重复步骤2.22,得到N种虚拟机申请的在第T+1个时间周期的虚拟机的增量预测。对IVM中N个不同规格的虚拟机历史增量预测,需重复步骤2.22,得到了第T+1个时间周期的虚拟机增量预测集合为
步骤2.2、将预测到的增量使用改进的多目标优化粒子群算法进行求解,得出全局最优解集,其中求解的具体步骤与步骤4中有历史数据的求解方法一样。
步骤3、同步步骤2,判断目标物理主机的剩余物理资源是否满足当前用户实际申请的虚拟机的需求;若不满足,添加物理资源,并将添加的物理资源加入到剩余物理资源集合中,转到步骤4,若满足,转到步骤4;
步骤4、根据步骤2和步骤3得到的结果,使用改进的多目标优化粒子群算法给目标物理主机分配虚拟机。具体步骤为:
步骤2-1、基于负载不均衡度、目标物理主机数、目标物理主机利用率三个目标函数,若有历史数据,将全局最优解集加入初始化粒子群的外部归档集,若无历史数据,随机初始化粒子群,对初始化粒子群通过ε-Pareto支配方式进行筛选得到初始化的外部归档集;
选择最小化多目标为优化目的,为了综合性能优先和能耗优先的考量,设定三个目标函数负载不均衡度、目标物理主机数、目标物理主机利用率,计算总体的负载不均衡度、目标物理主机数、目标物理主机利用率。由公式(13)得出单台目标物理主机上的CPU、内存、带宽的利用率的标准差来衡量目标物理主机整体的资源使用情况,再由公式(14)得出云数据中心物理资源总体的利用率。通过粒子解码得出方案的目标物理主机数M,由此得公式(15)为第二个目标函数,公式(16)得出总体的负载不均衡度。
F2(x)=M (15)
其中,表示第m台目标物理主机上的计算能力总量,以MIPS(MillionInstruction Per Second)为单位,表示第m台目标物理主机已使用的计算能力,分别表示第m台目标物理主机上的内存总量和已使用量,分别表示带宽资源总量和已使用量,favg表示全体目标物理主机的平均资源利用率,M是粒子解码得出方案的目标物理主机数;F1、F2、F3为目标函数,也即为粒子的适应度函数,F1为资源平均利用率的负数,即目标物理主机利用率,其建立主要考虑云平台的性能优先;F2为目标物理主机数,建立F2主要是能耗方面的考量;F3为负载不均衡度,同时考虑了性能和成本两方面的因素。F1和F2之间相互冲突,对这三个目标的优化问题描述为:
X为粒子群解的可行域。使得F(x)在满足约束关系式(12)的情况下同时达到最优。其中,随机初始化粒子群的具体步骤为:
步骤2-11、将每一位粒子编码随机赋一个主机编号集合{1,…,M},形成每一个粒子;
步骤2-12、将粒子编码解码得到各个目标物理主机上虚拟机分布的情况,即解码得出的映射关系:1:{vm1,…}…M:{vmN,…},其中{vm1,…,vmn,…,vmN}表示用户发出的N个虚拟机请求集合VMD;
步骤2-13、衡量映射关系是否满足约束关系,若满足视为有效的粒子,该粒子加入初始粒子群,如果不满足的话,则为无效的粒子;约束关系的公式如下:
X={x|hostm-∑vmm>0,m∈[1,M]} (12)
其中,X表示约束关系,hostm表示第一台主机的剩余资源,m∈[1,M]表示编号集合,∑vmm表示编号为m的目标物理主机上负载的虚拟机资源总和;
步骤2-14、重复步骤2-13,直到有效加入的粒子个数满足粒子群初始化的规模,得到初始化粒子群;即每一台目标物理主机的剩余资源hostm是否满足将要部署其上的虚拟机资源需求之和∑vmm;如果满足公式(12)则视为有效的粒子,该粒子加入初始粒子群;如果不满足的话,则为无效的粒子。重复步骤2-13,直至有效加入的粒子个数满足初始化粒子群的规模。
步骤2-2、基于遗传算法的变异算子,采取高斯变异法对外部归档集中的粒子群进行种群突变操作;高斯变异本质上是希望产生一个服从高斯分布的随机数,替代原有编码中某些位的值,这里采取的措施为每一次迭代随机产生一个步长Si和一个随机的起始位置b(i为第i次迭代过程),发生变异的位为其中b+n+Si<M,M为粒子长度。高斯分布的概率密度函数由公式(17)给出。高斯变异方式由公式(18)(19)给出。
xj=gauss*(Upper-Lower)+Lower (19)
其中,Xmax表示粒子编码中最大的数,即为目标物理主机数M;Xmin表示粒子编码中最小的数,即为1。gauss是由公式(17)生成的高斯密度函数,为随机变量X服从一个数学期望为μ、方差为σ2的高斯(或正态)分布,这里采取的是java.util.Random类下的nextGaussian()方法来实现,Upper、Lower分别表示为变异范围的上限和下限,为了保证粒子变异后仍然处在有效范围内,μ为数学期望,σ为标准差,σ2为方差,j用来对粒子群中每一个粒子进行遍历,xj表示第j个粒子。公式(18)保证了变化范围一定是在有效范围内。
步骤2-3、使用Pareto支配方式比较步骤2-2中得到的外部归档集中每一个粒子在不同迭代时期的状态,得到每一个粒子的最优粒子;由于对于三个目标同时作优化,而其中两个目标之间存在冲突,所以引入Pareto支配概念。
使用Pareto支配方式更新个体最优粒子,具体操作方式为:(1)首先计算状态更改后的当前粒子(即步骤2-3中得到的突变后的外部归档集中的粒子)的适应度函数F1、F2、F3。(2)将当前粒子得出的适应度与该粒子个体历史最优(针对每一个粒子本身处在不同迭代周期里的状态,保留其历史最优的迭代周期的状态)的适应度进行比较;若当前值支配历史最优,则保留当前粒子为个体历史最优粒子,若后者支配前者,则不作更改。
步骤2-4、得到每一个粒子的最优粒子后,基于ε-Pareto支配方式对每一个粒子的最优粒子和外部归档集中的每一个粒子做比较寻找全局最优解更新外部归档集;
在当前迭代过程中,得出了每一个粒子的最优粒子(即步骤2-3中得到的结果)之后,利用外部归档技术来保存全局最优的解,这里引入ε-Pareto支配概念。ε-Pareto支配是在步骤2-3的Pareto支配概念基础上将适应度函数F(x)换成了B(x),B(x)表示粒子在目标函数(适应度函数)空间中的格点位置,定义为公式(19)。
其中,表示第i个适应度函数整个粒子群中的最小值,εi为第i个目标值允许的偏差值,需要预先设定。实质为将目标函数构成的空间分为若干个格子,通过Bi(x)向量所处的格点位置的支配关系得到粒子之间的支配关系。
寻找全局最优解的过程引入ε-Pareto最优解的概念,其定义可简述为:在有所有有效粒子组成的解空间F中存在一个个体p,如果其不被F中的任何其他个体所ε-Pareto支配,则p为最优解。由最优解组成的集合为当前进化群体的最优解。、
具体步骤如下:
步骤2-41、将负载不均衡度、目标物理主机数、目标物理主机利用率适应度函数所组成的向量空间划分为若干个格子,即粒子在目标函数空间中的格点位置,通过式(19)得到每一个粒子的最优粒子的格点函数B1、B2、B3,其中B1、B2、B3分别对应负载不均衡度、目标物理主机数、目标物理主机利用率适应度函数;在每一个粒子的最优粒子组成的集合中,通过每一个粒子的最优粒子的适应度函数所处的格点位置之间的关系判断ε-Pareto支配关系,寻找ε-Pareto最优解,形成ε-Pareto最优解的集合;如图5所示;
步骤2-42、得到Pareto最优解的集合后,判断当前外部归档集中是否为空,如果为空,则将当前最优解全部加入外部归档集中;如果不为空,转到步骤2-43;
步骤2-43、取出每一个最优解集中的粒子与外部归档集中存在的粒子一一比较,如果存在前者支配后者的情况,则用最优解集中的相应粒子替换归档集中的粒子;如果不存在支配关系或后者支配前者,则将相应粒子直接添加至归档集中;
步骤2-5、更新步骤2-4中得到的外部归档集中的粒子群速度和位置;这里进入传统的粒子群算法的步骤,对粒子的速度和位置进行更新。粒子的初始化速度表示为V0={v1,v2,…,vM},其中V0的每一个分量是一个[-M,M]范围内的随机数,其意义对应为粒子编码中每一个位置的改变。粒子群算法的精髓在于从无序到有序的过程,所以速度的变化将取决于全局最优和粒子局部最优的位置,随着迭代的进行,粒子将不断地趋于局部最优和全局最优。粒子速度和位置更新的公式如(21)、(22)
vk+1=ωvk+c1(pbestk-xk)+c2(gbestk-xk) (21)
xk+1=xk+vk (22)
其中vk代表当前迭代V的一个速度分量,对应粒子X的相应位置上的一个位置分量xk,pbestk代表该粒子的个体最优粒子的相应位置上的分量,gbestk对应归档集中随机的一个粒子的分量。ω为惯性因子或者称为惯性权重,其大小决定了粒子将继承当前速度的多少。c1、c2为学习因子,分别决定了粒子向自身最优和群体最优位置的趋向程度。
由公式(21)更新每一个粒子的速度,再利用式(22)更新粒子的位置,需要注意的是如果粒子位置更新之后粒子的分量超出有效范围[1,M],则取一个有效范围内的随机数作为该位置上的粒子分量。
步骤2-6、将更新了粒子群速度和位置的外部归档集进行拥挤度判断,控制外部归档集的大小;为了控制外部归档集的规模,得到收敛性更优,更精确的解,引入了拥挤度判定,定义为:对于ε-Pareto最优解集所形成的最优前沿上的粒子Pk,步骤2-5中外部归档集中的粒子,和其相邻两侧的粒子Pk-1、Pk+1,计算适应度函数值,得到函数值得欧式距离的均值定义为粒子Pk的拥挤度,如公式(20)所示。
其中,Pk表示步骤2-5中外部归档集中的粒子,Pk-1、Pk+1为Pk相邻两侧的粒子,m指的适应度函数数目,i是指对每一适应度函数进行遍历,这里我只有三个适应度函数,适应度函数也即是目标函数,即负载不均衡度、目标物理主机数、目标物理主机利用率。
具体操作为:a)判断外部归档集的大小是否超过了设定值K。b)将外部归档集中的粒子随机排序,通过公式(20)计算每一个粒子的拥挤度。c)将外部归档集中的粒子按照拥挤度函数进行按照从小到大进行排序,只保留前K个粒子,去掉其他拥挤度较大的粒子。
步骤2.5、解码步骤2.3和步骤2.4中的最佳粒子,形成虚拟机与目标主机的映射关系。
步骤2-7、判断迭代是否达到设定次数,或外部归档集在十次迭代都不发生变化,若满足迭代输出最佳粒子,解码最佳粒子,给目标物理主机分配虚拟机,否则基于步骤2-6中得到的外部归档集重复步骤2-2至步骤2-7。
面向平台自身的虚拟机动态管理方法:将虚拟机部署到目标物理主机上后,判断目标物理主机状态是否超出或低于正常阈值,基于共享程度判断的改进的多目标优化粒子群算法,确定目标物理主机和虚拟主机的映射关系。解决的主要问题有三个:一、如何定位状态异常(即过载或低载)的主机。二、决定那些虚拟机需要动态迁移。三、决定迁移的目标主机。本质上是为了增加云平台的服务弹性,使得能够根据负载的变化情况及时地调整部署情况。在用户动态的需求得到满足的情况下,结合云环境实时的情况,达到动态地提升资源利用率,降低能耗的目的。
具体步骤为:
步骤S1、使用二次指数平滑法对获取的负载历史数据进行虚拟机的增量预测;周期性地监控每台物理机的负载状态,保存物理机在T个时间周期中的负载历史数据。为实现监控机制的动态性,故而对每台物理机在下一个时间周期的负载状态进行增量预测,需要注意的情况有:其一,对于目标物理主机的状态要求实时性,需要及时地确定状态异常目标物理主机。其二,监控对于每一台目标物理主机的负载情况长期进行,需要高效且轻量级的预测算法。综合两个因素的考量,采取二次指数平滑法来预测目标物理主机负载的时间增量,相比较前文用户需求虚拟机增量预测算法而言,需要分析的时间周期数T要更小,为之前收集的历史周期数的四分之一。具体步骤如下:
步骤S11、从数据库中得到每一台主机上部署的N种规格不同的虚拟机和其分别在T个时间周期的增量,不同种类的虚拟机表示为VM={VM1,…,VMn,…,VMN},所有种类虚拟机增量的集合表示为 表示在T个时间周期里第n种的虚拟机的增量,其分量表示为 表示第n种虚拟机在第t个时间周期中在该目标物理主机上的变化量,
步骤S12、根据T个时间周期里目标物理主机上的第n种虚拟机的负载历史数据,使用二次指数平滑法对第T+1个时间周期进行增量预测,得到虚拟机增量具体的使用公式(2)、(3)分别得到一次、二次平滑指数值,通过公式(4)、(5)得到预测需要使用的参数,最后通过公式(6)得到第T+1个周期的预测结果,对应于该目标物理主机上的下一周期虚拟机增量为
步骤S2、将预测得到的增量虚拟机分别与当前目标物理主机上的各项资源负载率相加,得到每一台目标物理主机的预测负载,即每一台目标物理主机的综合负载率;具体计算公式为:
其中,cpu、mem、bw分别表示目标物理主机或者虚拟机的CPU、内存、带宽利用率,C为每一台目标物理主机的预测负载,即每一台目标物理主机的综合负载率;
步骤S3、根据每一台目标物理主机的综合负载率,判断是否在设定的范围内,如果超出最大阈值,该目标物理主机标记为满;如果低于最小阈值,该目标物理主机标记为空;
步骤S4、对标记目标物理主机中的虚拟机进行待调整标记;具体步骤如下:
步骤S41、如果目标物理主机标记为满,计算运行其上的虚拟机的综合负载率,对每台虚拟机按综合负载率大小顺序编号,将编号最大的虚拟机标记为待调整;
步骤S42、如果目标物理主机的标记为空,则将运行其上的所有虚拟机都标记为待调整。
步骤S5、将所有标记为待调整的虚拟机重新部署,确定目标物理主机和虚拟主机的映射关系。
具体步骤如下:
步骤S51、基于负载不均衡度、目标物理主机数、目标物理主机利用率三个目标函数,判断每一台目标物理主机是否满足如下约束关系,将满足约束关系的有效粒子加入到初始化的外部归档集中:
其中,第一个关系式表示每一台目标物理主机的剩余资源hostm是否满足将要部署其上的虚拟机资源需求之和∑vmm,第二个关系式表示X编码中的某一位xn表示第n台待调整的虚拟机,HOSTn表示这一台虚拟机所处的网络拓扑结构中可供迁移的目标物理主机编号集合;
步骤S52、基于遗传算法的变异算子,对外部归档集中的粒子群进行种群突变操作;
步骤S53、使用Pareto支配方式比较步骤2-2中得到的外部归档集中每一个粒子在不同迭代时期的状态,得到每一个粒子的最优粒子;
步骤S54、得到每一个粒子的最优粒子后,基于ε-Pareto支配方式对每一个粒子的最优粒子和外部归档集中的每一个粒子做比较寻找全局最优解更新外部归档集;
步骤S55、更新步骤S54中得到的外部归档集中的粒子群速度和位置;
步骤S56、基于小生境的粒子群算法控制更新了粒子群速度和位置的外部归档集的大小,得到最佳粒子;与用户的虚拟机部署的粒子群求解算法相比,由于使用了更为严格的约束条件,导致了有效粒子的数目减少,容易出现相似粒子的情况,为了防止这种情况,需要在原有算法的基础上进行更改,在原有算法更新外部归档集这一步骤中,用小生境的共享技术来取代拥挤度判定方法:具体步骤为:步骤S561、计算外部归档集中每一个粒子Xi的共享程度,由公式(26)确定:
其中,fshare为共享函数,代表了粒子Xi和Xj之间的相似程度,Si为共享程度,α为控制大小的参数,σshare为设定的共享距离参数,dij表示Xi和Xj之间的欧式距离,i和j都是对粒子群的每一个粒子进行遍历的参数,N为粒子群的总粒子数,m表示对单个粒子编码中的每一位进行遍历,M为粒子的编码长度;
步骤S562、将得到的每一个粒子的共享程度按从小到大排序,只保留外部归档集前k个最佳粒子,k为设定的归档集的规模,去掉共享程度较大的粒子,得到最佳粒子。
步骤S57、判断迭代是否达到设定次数,或外部归档集在十次迭代都不发生变化,若满足迭代输出最佳粒子,解码最佳粒子,确定目标物理主机和虚拟主机的映射关系,否则基于步骤S56的结果重复步骤S52至步骤S57。
按照引入小生境技术改进后的算法迭代更新,得出重新部署方案,使用动态迁移技术进行虚拟机资源调整。调整完毕后读取之前标记为空的物理机负载状态,如果无虚拟机负载,则进行关机或者置于低功耗休眠模式。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种云环境下的基于粒子群算法的虚拟机部署方法,其特征在于,在IaaS层建立起虚拟机和物理机之间的部署映射;部署映射的方法包括面向用户的虚拟机部署方法和面向平台自身的虚拟机动态管理方法;
面向用户的虚拟机部署方法:接收到用户申请虚拟机,基于拥挤度判断的改进的多目标优化粒子群算法部署到目标物理主机上;
面向平台自身的虚拟机动态管理方法:将虚拟机部署到目标物理主机上后,判断目标物理主机状态是否超出或低于正常阈值,基于共享程度判断的改进的多目标优化粒子群算法,确定目标物理主机和虚拟主机的映射关系;
面向用户的虚拟机部署方法具体包括如下步骤:
步骤1、接收到用户发出虚拟机申请的粒子编码请求;
步骤2、判断用户是否有申请虚拟机的历史数据,若有,进行预处理后转到步骤4,若无,转到步骤4;
步骤3、同步步骤2,判断目标物理主机的剩余物理资源是否满足当前用户实际申请的虚拟机的需求;若不满足,添加物理资源,并将添加的物理资源加入到剩余物理资源集合中,转到步骤4,若满足,转到步骤4;
步骤4、根据步骤2和步骤3得到的结果,使用改进的多目标优化粒子群算法给目标物理主机分配虚拟机;
所述步骤4的具体步骤为:
步骤2-1、基于负载不均衡度、目标物理主机数、目标物理主机利用率三个目标函数,若有历史数据,将全局最优解集加入初始化粒子群的外部归档集,若无历史数据,随机初始化粒子群,对初始化粒子群通过ε-Pareto支配方式进行筛选得到初始化的外部归档集;
步骤2-2、基于遗传算法的变异算子,采取高斯变异法对外部归档集中的粒子群进行种群突变操作;
步骤2-3、使用Pareto支配方式比较步骤2-2中得到的外部归档集中每一个粒子在不同迭代时期的状态,得到每一个粒子的最优粒子;
步骤2-4、得到每一个粒子的最优粒子后,基于ε-Pareto支配方式对每一个粒子的最优粒子和外部归档集中的每一个粒子做比较寻找全局最优解更新外部归档集;
步骤2-5、更新步骤2-4中得到的外部归档集中的粒子群速度和位置;
步骤2-6、将更新了粒子群速度和位置的外部归档集进行拥挤度判断,控制外部归档集的大小;
步骤2-7、判断迭代是否达到设定次数,或外部归档集在十次迭代都不发生变化,若满足迭代输出最佳粒子,解码最佳粒子,给目标物理主机分配虚拟机,否则基于步骤2-6中得到的外部归档集重复步骤2-2至步骤2-7;
所述步骤2-1中随机初始化粒子群的具体步骤为:
步骤2-11、将每一位粒子编码随机赋一个主机编号集合{1,…,M},形成每一个粒子;
步骤2-12、将粒子编码解码得到各个目标物理主机上虚拟机分布的情况,即解码得出的映射关系:1:{vm1,…}…M:{vmN,…},其中{vm1,…,vmn,…,vmN}表示用户发出的N个虚拟机请求集合VMD;
步骤2-13、衡量映射关系是否满足约束关系,若满足视为有效的粒子,该粒子加入初始粒子群,如果不满足的话,则为无效的粒子;约束关系的公式如下:
X={x|hostm-∑vmm>0,m∈[1,M]} (12)
其中,X表示约束关系,hostm表示第一台目标物理主机的剩余资源,m∈[1,M]表示编号集合,∑vmm表示编号为m的目标物理主机上负载的虚拟机资源总和;
步骤2-14、重复步骤2-13,直到有效加入的粒子个数满足粒子群初始化的规模,得到初始化粒子群;
所述步骤2-3的具体步骤为:
步骤2-31、通过负载不均衡度、目标物理主机数、目标物理主机利用率适应度函数计算步骤2-2中得到的外部归档集中每一个粒子的适应度;
步骤2-32、基于Pareto支配方式,将步骤2-31得到的适应度与该粒子个体历史最优的适应度进行比较;若当步骤2-31中计算的当前粒子支配历史最优粒子,则保留当前粒子为个体历史最优粒子,反之,则不作更改;
所述步骤2-4的具体步骤为:
步骤2-41、将负载不均衡度、目标物理主机数、目标物理主机利用率适应度函数所组成的向量空间划分为若干个格子,即粒子在目标函数空间中的格点位置,通过式(19)得到每一个粒子的最优粒子的格点函数B1、B2、B3,其中B1、B2、B3分别对应负载不均衡度、目标物理主机数、目标物理主机利用率适应度函数;在每一个粒子的最优粒子组成的集合中,通过每一个粒子的最优粒子的适应度函数所处的格点位置之间的关系判断ε-Pareto支配关系,寻找ε-Pareto最优解,形成ε-Pareto最优解的集合;
其中,表示第i个适应度函数整个粒子群中的最小值,εi为第i个目标值允许的偏差值,需要预先设定,实质为将目标函数构成的空间分为若干个格子,通过Bi(x)向量所处的格点位置的支配关系得到粒子之间的支配关系,Fi(x)表示粒子x的第i个适应度Fi的值;
步骤2-42、得到ε-Pareto最优解的集合后,判断当前外部归档集中是否为空,如果为空,则将当前最优解全部加入外部归档集中;如果不为空,转到步骤2-43;
步骤2-43、取出每一个最优解集中的粒子与外部归档集中存在的粒子一一比较,如果存在前者支配后者的情况,则用最优解集中的相应粒子替换归档集中的粒子;如果不存在支配关系或后者支配前者,则将相应粒子直接添加至归档集中;
所述步骤2-5的更新公式为:
vk+1=ωvk+c1(pbestk-xk)+c2(gbestk-xk) (21)
xk+1=xk+vk (22)
其中,vk代表当前迭代V的一个速度分量,xk代表对应粒子X的相应位置上的一个位置分量,pbestk代表该粒子的最优粒子的相应位置上的分量,gbestk代表对应外部归档集中随机的一个粒子的分量,ω为惯性因子或者称为惯性权重,其大小决定了粒子将继承当前速度的多少c1、c2为学习因子,分别决定了粒子向自身最优和群体最优位置的趋向程度;
所述步骤2-6的具体步骤为:
步骤2-61、判断外部归档集的大小是否超过了设定值K;
步骤2-62、将外部归档集中的粒子随机排序,通过如下公式计算外部归档集中粒子的拥挤度,公式如下:
其中,Pk表示步骤2-5中外部归档集中的粒子,Pk-1、Pk+1为Pk相邻两侧的粒子,m指的适应度函数数目,i是指对每一适应度函数进行遍历,这里我只有三个适应度函数,适应度函数也即是目标函数,即负载不均衡度、目标物理主机数、目标物理主机利用率;
步骤2-63、将外部归档集中的粒子按照拥挤度从小到大进行排序,只保留前K个粒子,去掉其他拥挤度较大的粒子;
所述面向平台自身的虚拟机动态管理方法的具体步骤如下:
步骤S1、使用二次指数平滑法对获取的负载历史数据进行虚拟机的增量预测;
步骤S2、将预测得到的增量虚拟机分别与当前目标物理主机上的各项资源负载率相加,得到每一台目标物理主机的预测负载后,再对每一台目标物理主机的综合负载率进行计算;
步骤S3、根据每一台目标物理主机的综合负载率,判断是否在设定的范围内,如果超出最大阈值,该目标物理主机标记为满;如果低于最小阈值,该目标物理主机标记为空;
步骤S4、对标记目标物理主机中的虚拟机进行待调整标记;
步骤S5、将所有标记为待调整的虚拟机重新部署,确定目标物理主机和虚拟主机的映射关系;
所述步骤S5的具体步骤如下:
步骤S51、基于负载不均衡度、目标物理主机数、目标物理主机利用率三个目标函数,判断每一台目标物理主机是否满足如下约束关系,将满足约束关系的有效粒子加入到初始化的外部归档集中:
其中,第一个关系式表示每一台目标物理主机的剩余资源hostm是否满足将要部署其上的虚拟机资源需求之和∑vmm,第二个关系式表示X编码中的某一位xn表示第n台待调整的虚拟机,HOSTn表示这一台虚拟机所处的网络拓扑结构中可供迁移的目标物理主机编号集合;
步骤S52、基于遗传算法的变异算子,对外部归档集中的粒子群进行种群突变操作;
步骤S53、使用Pareto支配方式比较步骤2-2中得到的外部归档集中每一个粒子在不同迭代时期的状态,得到每一个粒子的最优粒子;
步骤S54、得到每一个粒子的最优粒子后,基于ε-Pareto支配方式对每一个粒子的最优粒子和外部归档集中的每一个粒子做比较寻找全局最优解更新外部归档集;
步骤S55、更新步骤S54中得到的外部归档集中的粒子群速度和位置;
步骤S56、基于小生境的粒子群算法控制更新了粒子群速度和位置的外部归档集的大小,得到最佳粒子;
步骤S57、判断迭代是否达到设定次数,或外部归档集在十次迭代都不发生变化,若满足迭代输出最佳粒子,解码最佳粒子,确定目标物理主机和虚拟主机的映射关系,否则基于步骤S56中得到的外部归档集重复步骤S52至步骤S57。
2.根据权利要求1所述的一种云环境下的基于粒子群算法的虚拟机部署方法,其特征在于,所述步骤S1的具体步骤如下:
步骤S11、从数据库获得数据后,计算第n种虚拟机在第t个时间周期中在目标物理主机上的变化量,即负载历史数据;由公式(23)得出,
步骤S12、根据T个时间周期里目标物理主机上的第n种虚拟机的负载历史数据,使用二次指数平滑法对第T+1个时间周期进行增量预测,得到虚拟机增量
所述步骤S2中的具体计算公式为:
其中,cpu、mem、bw分别表示目标物理主机或者虚拟机的CPU、内存、带宽利用率,C为每一台目标物理主机的预测负载,即每一台目标物理主机的综合负载率;
所述步骤S4的具体步骤如下:
步骤S41、如果目标物理主机标记为满,计算运行其上的虚拟机的综合负载率,对每台虚拟机按综合负载率大小顺序编号,将编号最大的虚拟机标记为待调整;
步骤S42、如果目标物理主机的标记为空,则将运行其上的所有虚拟机都标记为待调整。
3.根据权利要求1所述的一种云环境下的基于粒子群算法的虚拟机部署方法,其特征在于,所述步骤2的预处理的具体步骤为:
步骤2.1、根据统计的历史数据对下一个时间段内用户申请的不同规格的虚拟机数量进行增量预测;
步骤2.2、将预测到的增量使用改进的多目标优化粒子群算法进行求解,得出全局最优解集。
4.根据权利要求3所述的一种云环境下的基于粒子群算法的虚拟机部署方法,其特征在于,所述,所述步骤2.1的具体步骤为:
步骤2.11、周期性地监控每一个用户在不同时间周期内的不同规格的虚拟机的申请状况,计算第n种虚拟机在第t个时间周期中申请的虚拟机增量,公式如下:
步骤2.12、对T个时间周期里第n种的虚拟机申请的中的T进行判断,若T小于阈值为短期预测模型,使用二次指数平滑法对第T+1个时间周期进行增量预测,否则为长期预测模型,使用三次指数平滑法对第T+1个时间周期进行增量预测;
步骤2.13、重复步骤2.12,得到N种虚拟机申请的在第T+1个时间周期的虚拟机的增量预测。
5.根据权利要求1所述的一种云环境下的基于粒子群算法的虚拟机部署方法,其特征在于,所述步骤S56的具体步骤如下:
步骤S561、计算外部归档集中每一个粒子Xi的共享程度,由公式(26)确定:
其中,fshare为共享函数,代表了粒子Xi和Xj之间的相似程度,Si为共享程度,α为控制大小的参数,σshare为设定的共享距离参数,dij表示Xi和Xj之间的欧式距离,i和j都是对粒子群的每一个粒子进行遍历的参数,N为粒子群的总粒子数,m表示对单个粒子编码中的每一位进行遍历,M为粒子的编码长度;
步骤S562、将得到的每一个粒子的共享程度按从小到大排序,只保留外部归档集前k个最佳粒子,k为设定的归档集的规模,去掉共享程度较大的粒子,得到最佳粒子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810283396.3A CN108469983B (zh) | 2018-04-02 | 2018-04-02 | 一种云环境下的基于粒子群算法的虚拟机部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810283396.3A CN108469983B (zh) | 2018-04-02 | 2018-04-02 | 一种云环境下的基于粒子群算法的虚拟机部署方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108469983A CN108469983A (zh) | 2018-08-31 |
CN108469983B true CN108469983B (zh) | 2021-10-19 |
Family
ID=63262423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810283396.3A Active CN108469983B (zh) | 2018-04-02 | 2018-04-02 | 一种云环境下的基于粒子群算法的虚拟机部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108469983B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240805B (zh) * | 2018-09-28 | 2020-10-20 | 北京邮电大学 | 虚拟机分配方法及装置 |
CN109445906B (zh) * | 2018-10-11 | 2021-07-23 | 北京理工大学 | 一种虚拟机需求数量预测方法 |
CN109976875A (zh) * | 2019-03-01 | 2019-07-05 | 厦门市世纪网通网络服务有限公司 | 一种超融合云计算系统的数据监测方法和装置 |
CN110046713B (zh) * | 2019-04-19 | 2023-05-12 | 井冈山大学 | 基于多目标粒子群优化的鲁棒性排序学习方法及其应用 |
CN110058924B (zh) * | 2019-04-23 | 2023-08-04 | 东华大学 | 一种多目标优化的容器调度方法 |
KR102062157B1 (ko) * | 2019-04-29 | 2020-01-03 | 오케스트로 주식회사 | 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치 |
CN110442452B (zh) * | 2019-07-31 | 2023-06-20 | 南京能迪电气技术有限公司 | 基于粒子群优化算法边缘计算终端硬件资源使用调度方法 |
CN111176784B (zh) * | 2019-12-02 | 2022-03-25 | 华南理工大学 | 一种基于极限学习机和蚁群系统的虚拟机整合方法 |
CN111124762B (zh) * | 2019-12-30 | 2023-11-14 | 航天科工网络信息发展有限公司 | 一种基于改进粒子群算法的动态副本放置方法 |
CN111338765B (zh) * | 2020-03-23 | 2023-07-25 | 武汉轻工大学 | 基于猫群算法的虚拟机部署方法、装置、设备及存储介质 |
CN111598447B (zh) * | 2020-05-15 | 2021-03-23 | 浙江大学 | 一种基于hmaqga的水库群联合优化调度方法 |
CN113157384B (zh) * | 2021-01-26 | 2023-02-28 | 北京邮电大学 | 用于虚拟机的动态迁移防御方法及系统 |
CN113721565A (zh) * | 2021-07-31 | 2021-11-30 | 盐城蜂群智能技术有限公司 | 一种可调式工业互联网控制设备 |
CN114185676B (zh) * | 2021-12-06 | 2022-12-16 | 深圳威科软件科技有限公司 | 服务器分配方法、装置、电子设备和计算机可读存储介质 |
CN115567397B (zh) * | 2022-09-21 | 2024-02-20 | 雅砻江流域水电开发有限公司 | 一种水电集控中心一体化平台系统的云部署方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103632626B (zh) * | 2013-12-03 | 2016-06-29 | 四川省计算机研究院 | 一种基于移动互联网的智能导游实现方法、装置及移动客户端 |
CN103699446B (zh) * | 2013-12-31 | 2017-02-15 | 南京信息工程大学 | 基于量子粒子群优化算法的多目标工作流动态调度方法 |
CN104811466B (zh) * | 2014-01-28 | 2018-06-01 | 青岛海尔电子有限公司 | 云媒体资源分配的方法及装置 |
CN103778020A (zh) * | 2014-02-08 | 2014-05-07 | 中国联合网络通信集团有限公司 | 一种虚拟机放置方法及装置 |
CN104063261A (zh) * | 2014-04-01 | 2014-09-24 | 杭州电子科技大学 | 一种基于云环境下的多目标优化虚拟机放置方法 |
CN105302630B (zh) * | 2015-10-26 | 2018-07-13 | 深圳大学 | 一种虚拟机的动态调整方法及其系统 |
CN106102079B (zh) * | 2016-06-08 | 2019-03-19 | 西安电子科技大学 | 基于改进pso的c-ran载波迁移资源需求预测方法 |
CN106095591A (zh) * | 2016-07-24 | 2016-11-09 | 成都育芽科技有限公司 | 一种基于云计算的虚拟机两级优化调度管理平台 |
CN106357676A (zh) * | 2016-10-21 | 2017-01-25 | 高道华 | 一种云服务资源开销优化方法 |
CN107491341B (zh) * | 2017-08-31 | 2018-09-18 | 福州大学 | 一种基于粒子群优化的虚拟机分配方法 |
-
2018
- 2018-04-02 CN CN201810283396.3A patent/CN108469983B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108469983A (zh) | 2018-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108469983B (zh) | 一种云环境下的基于粒子群算法的虚拟机部署方法 | |
WO2016165392A1 (zh) | 一种基于遗传算法的云计算资源调度方法 | |
Zhang et al. | Network-aware virtual machine migration in an overcommitted cloud | |
Dai et al. | A task scheduling algorithm based on genetic algorithm and ant colony optimization algorithm with multi-QoS constraints in cloud computing | |
Al-Maamari et al. | Task scheduling using PSO algorithm in cloud computing environments | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
CN111124689B (zh) | 一种集群中容器资源动态分配方法 | |
CN107273209B (zh) | 基于最小生成树聚类改进遗传算法的Hadoop任务调度方法 | |
CN111431961B (zh) | 一种云数据中心的节能任务分配方法 | |
Han et al. | Energy-efficient dynamic virtual machine management in data centers | |
CN111813506A (zh) | 一种基于粒子群算法资源感知计算迁移方法、装置及介质 | |
Liu et al. | A data placement strategy for scientific workflow in hybrid cloud | |
Kumar et al. | An efficient load balancing technique based on cuckoo search and firefly algorithm in cloud | |
Alla et al. | A novel architecture for task scheduling based on dynamic queues and particle swarm optimization in cloud computing | |
CN111176784B (zh) | 一种基于极限学习机和蚁群系统的虚拟机整合方法 | |
Samriya et al. | Spider monkey optimization based energy-efficient resource allocation in cloud environment | |
Su et al. | Research on virtual machine placement in the cloud based on improved simulated annealing algorithm | |
Song et al. | Server consolidation energy-saving algorithm based on resource reservation and resource allocation strategy | |
CN113139639B (zh) | 一种基于mombi面向智慧城市应用多目标计算迁移方法和装置 | |
More et al. | Energy-aware VM migration using dragonfly–crow optimization and support vector regression model in Cloud | |
Durai et al. | Hybrid Invasive Weed Improved Grasshopper Optimization Algorithm for Cloud Load Balancing. | |
Deiab et al. | Energy efficiency in cloud computing | |
Jiao et al. | Immune optimization of task scheduling on multidimensional QoS constraints | |
Ma et al. | SE-PSO: resource scheduling strategy for multimedia cloud platform based on security enhanced virtual migration | |
CN112882805A (zh) | 一种任务资源约束的利润优化调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |