CN109343933B - 基于改进遗传算法的虚拟机初始放置策略方法 - Google Patents

基于改进遗传算法的虚拟机初始放置策略方法 Download PDF

Info

Publication number
CN109343933B
CN109343933B CN201811079837.4A CN201811079837A CN109343933B CN 109343933 B CN109343933 B CN 109343933B CN 201811079837 A CN201811079837 A CN 201811079837A CN 109343933 B CN109343933 B CN 109343933B
Authority
CN
China
Prior art keywords
placement
virtual machine
host
node
virtual
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
Application number
CN201811079837.4A
Other languages
English (en)
Other versions
CN109343933A (zh
Inventor
陆佳炜
赵伟
李�杰
吴涵
肖刚
高燕煦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN201811079837.4A priority Critical patent/CN109343933B/zh
Publication of CN109343933A publication Critical patent/CN109343933A/zh
Application granted granted Critical
Publication of CN109343933B publication Critical patent/CN109343933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Hardware Redundancy (AREA)

Abstract

一种基于改进遗传算法的虚拟机初始放置策略方法,包括以下步骤:第一步:对于虚拟机放置问题提出以下的形式化描述,过程如下:1.1定义放置环境;1.2定义资源状态;1.3主机可用性;1.4计算电能消耗;1.5定义虚拟机放置;第二步:对虚拟机放置设定约束条件及优化目标;第三步:算法实现,过程如下:初始化;主机簇群划分;虚拟叶子节点扇区以及虚拟分层结构深度确定;各虚拟叶子节点扇区编号;将所有虚拟机选择权重得分最高的主机节点完成分配,通过改进遗传算法的交叉,变异,选择操作的迭代循环,获得理想的放置组方案。本发明尽可能的降低数据中心的能耗,减少现实主机的使用数量,并且得到可用性较高的虚拟机放置组。

Description

基于改进遗传算法的虚拟机初始放置策略方法
技术领域
本发明涉及到一种基于改进遗传算法的虚拟机放置策略方法。
背景技术
云计算是一种新型的基于互联网的计算模式,可以随时访问共享的可配置系 统资源和高级服务,这些服务通常可以通过互联网以极少的管理成本进行快速供 应。云计算类似于公共设施通过资源共享按需提供计算资源。第三方云模式可以 使组织能够专注于他们自身的核心业务,而不用将精力和资源花在计算机基础设 施和维护上。云计算可以为各大公司最大限度地降低前期IT基础设施成本。并 且,云计算可以使企业能够更快地部署运行应用程序并提高其运行速度,同时提 高应用程序的可管理性,减少了维护成本。自2006年亚马逊推出EC2以来,高 容量可用性网络、低成本计算机和存储设备、硬件虚拟化技术的普及、面向服务 结构的模式以及自动高效的计算等特点使得云计算得到广泛的应用。
云环境下的虚拟机放置(Virtual Machine Placement)问题是云数据中心虚拟机与物理主机之间的一个装箱问题,是云计算环境中资源管理和分配的重要组成 部分。在云环境下,若仅用单台虚拟机处理整个有限元分析任务,对于该虚拟机 的性能要求将非常之高,因此,通常的做法是将完整的有限元分析任务进行拆分, 交给不同的多个虚拟机进行处理,处理完成后返回计算结果,这样,不仅可以减 少有限元分析计算时间,提高有限元分析效率,而且可以有效降低对单个虚拟机 性能及存储要求。如何在满足虚拟机资源请求和相关约束条件的情况下,合理分 配虚拟机至服务器节点已经成为当今云计算下的一个研究热点。
W Wang,H Chen等人研究了应用程序的可用性对于工作负载变化情况下动 态提供虚拟资源的影响。他们通过建立基于云基础架构的分层结构,提供了一个 用于衡量应用程序可用性的计算模型,通过横向和纵向的扩展来实现高效地分配 虚拟资源给应用程序,从而满足可用性需求和最小化通信成本的优化目标。国内 李强等人针对云计算环境下的虚拟机放置问题提出了一种基于长期负载性能的 模型,结合多目标优化的遗传算法有效的减少物理主机节点的使用数量。AC Adamuthe等人使用遗传算法用于实现利润最大化且最大限度地提高负载平衡情 况下,最大限度地减少资源浪费。
发明内容
为将虚拟机放置请求的组放置在服务器节点上,尽可能的降低数据中心的能 耗,减少现实主机的使用数量,并且得到可用性较高的虚拟机放置组。本发明基 于一种改进遗传算法,提出一种主机簇的编码方式,通过改进遗传算法的交叉, 变异,选择操作的迭代循环,获得理想的放置组方案。
为了解决上述技术问题提供如下技术方案:
一种基于改进遗传算法的虚拟机初始放置策略方法,包括以下步骤:
第一步:对于虚拟机放置问题提出以下的形式化描述,过程如下:
1.1定义放置环境,数据中心存在物理主机集合PM={pm1,pm2,…,pmn},其 中主机数量为n,需要放置的虚拟机集合VM={vm1,vm2,…,vmm},其中虚拟机 数量为m,假设虚拟机数量m大于或等于主机n,定义虚拟机放置组集合 P={p1,p2,…,ph},h为放置组的数量;
1.2定义资源状态,对于给定的虚拟机vmi,定义
Figure BDA0001801643000000021
为虚拟机vmi所需的 CPU资源,
Figure BDA0001801643000000022
为虚拟机vmi所需的内存资源,Vi-pes为虚拟机vmi的CPU利 用率,Wi-ram为虚拟机vmi的内存利用率;对于给定的主机pmj,定义
Figure BDA0001801643000000023
为主 机pmj当前的CPU空闲资源,
Figure BDA0001801643000000024
为主机pmj的内存空闲资源,Uj-pes为主机pmj的CPU利用率,Uj-ram为主机pmj的内存利用率,则定义主机pmj的资源利用率 Uj为:
Uj=αUj-pes+βUj-ram
0<α<1,0<β<1,且α+β=1;
定义Tagij为当前时刻t,主机pmj能否满足虚拟机vmi的资源要求,即
Figure BDA0001801643000000025
1.3主机可用性,一个节点的可用性是指节点在整个服务时间内任意时刻的 工作概率,对于任意网络组件i,其可用性Ai以下公式计算获得:
Figure BDA0001801643000000026
其中MTTF代表平均故障时间,MTTR代表平均修复时间,假定服务器可用 性的值是已知的,且各服务器之间的可用性是相互独立互不相关的;
1.4计算电能消耗,在一个拥有n台运行的物理主机的云数据中心,对于任 意物理主机pmj∈PM,在某一时刻t的电源能耗如下公式所示:
Figure BDA0001801643000000031
其中cj为静态能耗标记,fj(t)为t时刻主机pmj的CPU频率,CPU利用率为 Uj-pes(t),k为常量系数,即电源能耗在一定程度上是基于CPU利用率的线性模 型;
1.5定义虚拟机放置,VM集合通过放置组pk∈P,选择对应的物理主机集合 中的主机完成放置映射,并且需要尽可能满足放置过程中的多种约束条件,定义 虚拟机放置矩阵Mk[i][j],若Mk[i][j]=1则表示放置组pk将虚拟机j放置在物理主 机i上,反之,若Mk[i][j]=0,表示放置组pk中,虚拟机j未放置在物理主机i上;
第二步:对虚拟机放置设定约束条件及优化目标,过程如下:
2.1在考虑范围内的约束有:服务器节点的最大使用数量最少,能耗最低, 负载较均衡和放置请求的可用性较高;
2.2选取可用性及能耗两方面对虚拟机放置问题进行优化研究;
第三步:算法实现,过程如下:
步骤3.1初始化主机集合PM,虚拟机集合VM,种群规模为S,代表通过步 骤3.2-3.7随机生成的放置请求组的数量,迭代次数T’,代表算法需要循环操作 的次数,其中T’≥S,单虚拟机最多放置组数量H,主机节点的可用性集合A以 及变异概率p,p为0到1的一个随机数;
步骤3.2主机簇群划分,首先选择一个常数z,即每个簇中的主机数为z, 将主机集合按照c=ceiling(n/z),其中ceiling函数表示将n除以z的值向上舍入为 最接近的整数,C0={cpm1,cpm2,…,cpmz},C1={cpmz+1,cpmz+2,…,cpm2z},… 直至每个主机都归属于一个簇。每个簇为虚拟分层结构中的最底层节点;
步骤3.3虚拟叶子节点扇区以及虚拟分层结构深度确定,选择虚拟分层结构 中每个子节点扇区的叶子数f,f为一位整数,选择合适的f和z会使得到的算法 效益和负载均衡度等和期望较相近,根据节点扇区的叶子数f以及主机簇个数z, 可以得到虚拟分层结构的深度d:
fd≥C
其中d是最小正整数,使得上述公式成立;
步骤3.4各虚拟叶子节点扇区编号,采用自然编号对每个扇区分别统一编号, 即从0,1,2,…,f-1;
步骤3.5对于某一虚拟机vmi,对于任意一个虚拟节点s,都有一个对应的权 重wis=h(vmi,s),h(vmi,s)内包含约定的哈希函数,在虚拟分层结构的每一层叶 子扇区,都可通过h(vmi,s)计算各虚拟节点权重,如果某虚拟节点sk的性能是其 他主机的h倍,则将sk等额分成h份;显然,现在虚拟机分配到该虚拟节点sk上 的概率是其他主机的h倍,将虚拟机vmi分配权重wis最高的虚拟节点继续向下 分层,直到选择至最底层的真实主机节点簇Cx
步骤3.6当虚拟机vmi选中真实主机节点簇Cx后,在进行真实节点选择时, 假设对于任意在真实节点簇Cx中的主机节点cpmxz+j,都有一个对应的权重得分 Wi(xz+j)=H(vmi,cpmxz+j)*Tagi(xz+j),若Tag为false,则为0,若为true默认为1;其 中,将虚拟机vmi分配给主机cpmxz+j之后,H(vmi,cpmxz+j)为在相同T时间段内, Eold与分配虚拟机vmi后的真实主机节点簇Cx的总体能耗的比值,与主机pmxz+j的资源利用率Uxz+j与1的差方和对应权重常数的乘积以及主机可用性与系数乘 积的和:
Figure BDA0001801643000000041
其中Exz+j为T时间段内主机cpmxz+j的能耗,Eold是指相同T时间段内,未 分配新虚拟机时,真实主机节点簇Cx的能耗,Axz+j为主机cpmxz+j的可用性;
α、β、γ是表示三者的权重;
步骤3.7循环步骤3.5-3.6,将所有虚拟机vmi选择权重得分Wi(xz+j)最高的主 机节点完成分配;
步骤3.8基于步骤3.2-3.7的生成种群大小为S的种群集合Xs。按主机节点 簇的分组编码方式进行编码,P表示放置组,主机簇Cx对应为染色体,每个主 机簇上的主机对应为基因,将操作从单个虚拟机转化为对主机簇的操作;
步骤3.9设置当前迭代次数t=0;
步骤3.10通过Random(X,Y,S)函数选择随机选择种群中两个个体进行交叉操 作,Random(X,Y,S)表示在规模为S的种群中挑选出不相同的两个种群X,Y;
步骤3.11遍历每个个体,根据每个个体的变异概率p,通过Rand()函数计算 一个随机数p′模拟事件发生的概率,将p′与变异概率p进行比较,若p′大于p表 示个体未发生变异,跳转至步骤3.12,反之则表示个体发生变异,Rand()函数的 功能为生成0到1内的一个随机数p′;
步骤3.12将交叉、变异操作得到的种群与原种群Xs合并,对于种群中的每 个个体Xi根据适应度函数fT(x)计算相应的值
Figure BDA0001801643000000051
Emin为T时间段内数据中心能耗的最小值;
Figure BDA0001801643000000052
为单个个体的能耗,sing le 指单一放置,Full指完全保护放置,Partial指部分保护放置,x为数量为H的个 体或者个体群;
根据适度函数选取前S个个体进入下一次迭代过程;
步骤3.13t=t+1,若t<T’,则返回到第3.10步继续迭代;否则,跳转到第 3.14步;
步骤3.14根据步骤3.12的适度函数fT(x)选择权值最高的H个个体,即为虚 拟机放置最优方案组vmp[H]。
进一步,所述步骤2.1中,提出以下约束条件:
2.1.1放置约束,任意虚拟机vmi,在同一放置组下,其能且只能放置在一个 服务器节点上;
约束表示:
对于
Figure BDA0001801643000000061
其中放置组pk∈P;
同一放置组内认为单个虚拟机只能在一个服务器节点上进行部署运行;
2.1.2资源约束,对于任何服务器节点来说,其各个资源类型的消耗应不能超 过上限,考虑CPU和内存的资源情况,定义服务器pmj的CPU和内存容量分别 为
Figure BDA0001801643000000062
Figure BDA0001801643000000063
表示;
约束表示:
对于
Figure BDA0001801643000000064
Figure BDA0001801643000000065
Figure BDA0001801643000000066
参数r为常量系数,服务器节点需要预留一部分的资源保证其自身的正常运转, r≤1;
2.1.3可达性约束,定义函数F(m,n,D)用于表示节点间通信的可达性,对于任 意链接(m,n)∈L,如果点m和n的通信延迟至多为D,则函数F(m,n,D)返回1, 否则返回0。
更进一步,所述步骤2.2中,优化研究的过程为:
2.2.1可用性优化
假设用户请求由具有相关通信要求的n个不同的VM对之间的虚拟机组成, 将其放置在同一个服务器节点pmj不止一次不能提高放置的可用性,因为当pmj失败时,所有放置在pmj上的虚拟机将同时失败;因而,需要尽量将vmj放置在 不同的节点上以增加可用性;用Hi来表示放置虚拟机vmi的最大节点数,即Hi表示vmi可以放置的最大服务器节点数量,定义
Figure BDA0001801643000000067
用于表示该n 个虚拟机中,单个虚拟机所需节点数最大为H;
2.2.2能耗优化
根据1.4中的公式,在T时间段内,物理主机pmj的总耗能
Figure BDA0001801643000000068
表示为:
Figure BDA0001801643000000069
因此,由以下公式可得,在T时间段内,数据中心的服务器总能耗ET为各运 行的服务器的能耗之和;
Figure BDA0001801643000000071
再进一步,所述步骤2.2.1中,虚拟机放置的可用性定义和计算分成三种: 单一放置、完全保护放置、部分受保护放置;
2.2.1.1单一放置
单一放置指每个虚拟机都只放在一个服务器节点上,即H=1;在单一放置的 情况下,如果n个服务器节点的可用性分别为A1,A2,…,An,k个虚拟机放置于此 n个节点之上,n≤k,则此虚拟机放置方案的可用性采用Ap表示,定义如下:
Figure BDA0001801643000000072
由于请求包含k个虚拟机,因此计算可用性时需要考虑k个虚拟机均在运行 的概率;
2.2.1.2完全保护放置
完全保护放置指对于任意虚拟机
Figure BDA0001801643000000073
均由放置组pi放置在H个不同 节点上,1≤i≤H;因此,认为一个完全保护放置方案P由H个单一放置方案构 成,且在各个单一放置方案内,虚拟机对之间都应该满足放置、资源和通信可达 性约束;
完全保护放置方案的可用性为在服务的生命周期内,存在至少一个放置组工 作的概率,可用性计算如下式所示:
Figure BDA0001801643000000074
2.2.1.3部分保护放置
部分保护放置指存在虚拟机vmi∈VM,被放置在少于H个不同节点上,即 两个或者更多个放置组将虚拟机vmi放置在相同的节点上,且存在某个虚拟机 vmj∈VM,使得H>1;在部分保护的放置情况下,若一个虚拟机放置在少于H 个节点上,可以认为这个虚拟机由多个放置组共同放置;无法直接通过2.2.1.2 中的公式计算其可用性,因为放置了共享的虚拟机的服务器节点的可用性会被计 算两次;为了处理该类放置情况,重新定义操作符,假设存在n个节点 pm1,pm2,…,pmn,它们的可用性分别为A1,A2,…,An,对于可用性为Ax的节点pmx, 给出如下关于操作符的定义:
Figure BDA0001801643000000081
则根据上述的公式,定义
Figure BDA0001801643000000083
为不同集合的操作,部分保护放置的可用性通过 如下公式计算获得:
Figure BDA0001801643000000082
所述步骤3.10中,交叉操作的过程如下:
步骤3.10.1根据Random(X,Y,S)函数挑选两个需要交配的父代,命名为X、 Y,随机挑选X父代中包含一个或多个基因的某一节点簇作为需要交叉的部分, 将该节点簇即其中所有基因插入到Y父代交叉点位置中,此时,将会产生包含X、 Y父代基因的新的子代;
步骤3.10.2在完成基因插入之后,由于使用基于主机簇的染色体分组编码方 式,可能会出现相同的主机簇,若出现该种情况,则将插入的基因合并到原先的 主机簇中;
步骤3.10.3若出现不同的主机节点上存在相同的两个虚拟机的情况,将先前 包含相同的虚拟机的主机,根据步骤1.2中的公式剔除利用率较低的主机节点;
步骤3.10.4被暂时的剔除主机节点上,可能包含未被其他主机部署的虚拟机 节点,针对这种情况,需要为这些虚拟机,通过循环步骤3.5-3.6,将剔除的虚拟 机重新编码至主机节点中,并选择染色体中使得满足约束条件的且能耗最低可用 性最高的基因完成分配;
步骤3.10.5若所有基因均不符合要求,则按照步骤3.2-3.7重新生成新基因片段,通过Random(X,Y,S)函数选择重新需要互换两个父代个体,跳转执行步骤 3.10.1。
所述步骤3.11中,变异操作的过程如下:
步骤3.11.1通过变异函数来确定需要变异的个体染色体基因,如下公式所示:
Figure BDA0001801643000000091
其中Uj-pes、Uj-ram分别为主机的CPU、内存利用率;
步骤3.11.2选择fc(j)较小的基因进行删除,使得每次删除的都是利用率较低 的较差基因;
步骤3.11.3然后将该基因上的虚拟机通过步骤3.10交叉操作的方法重新进行 编码插入到其他基因中。
本发明的有益效果为:采用一种主机簇的编码方式,通过改进遗传算法的交 叉,变异,选择操作的迭代循环,获得理想的放置组方案。
具体实施方式
下面对本发明做进一步说明。
一种基于改进遗传算法的虚拟机初始放置策略方法,包括以下步骤:
第一步:对于虚拟机放置问题提出以下的形式化描述,过程如下:
1.1定义放置环境,数据中心存在物理主机集合PM={pm1,pm2,…,pmn},其 中主机数量为n,需要放置的虚拟机集合VM={vm1,vm2,…,vmm},其中虚拟机 数量为m,假设虚拟机数量m大于或等于主机n,定义虚拟机放置组集合 P={p1,p2,…,ph},h为放置组的数量;
1.2定义资源状态,对于给定的虚拟机vmi,定义
Figure BDA0001801643000000092
为虚拟机vmi所需的 CPU资源,
Figure BDA0001801643000000093
为虚拟机vmi所需的内存资源,Vi-pes为虚拟机vmi的CPU利 用率,Wi-ram为虚拟机vmi的内存利用率;对于给定的主机pmj,定义
Figure BDA0001801643000000094
为主 机pmj当前的CPU空闲资源,
Figure BDA0001801643000000095
为主机pmj的内存空闲资源,Uj-pes为主机pmj的CPU利用率,Uj-ram为主机pmj的内存利用率,则定义主机pmj的资源利用率 Uj为:
Uj=αUj-pes+βUj-ram
0<α<1,0<β<1,且α+β=1;
定义Tagij为当前时刻t,主机pmj能否满足虚拟机vmi的资源要求,即
Figure BDA0001801643000000096
1.3主机可用性,一个节点的可用性是指节点在整个服务时间内任意时刻的 工作概率,对于任意网络组件i,其可用性Ai以下公式计算获得:
Figure BDA0001801643000000101
其中MTTF代表平均故障时间,MTTR代表平均修复时间,假定服务器可用 性的值是已知的,且各服务器之间的可用性是相互独立互不相关的;
1.4计算电能消耗,在一个拥有n台运行的物理主机的云数据中心,对于任 意物理主机pmj∈PM,在某一时刻t的电源能耗如下公式所示:
Figure BDA0001801643000000102
其中cj为静态能耗标记,fj(t)为t时刻主机pmj的CPU频率,CPU利用率为 Uj-pes(t),k为常量系数,即电源能耗在一定程度上是基于CPU利用率的线性模 型;
1.5定义虚拟机放置,VM集合通过放置组pk∈P,选择对应的物理主机集合 中的主机完成放置映射,并且需要尽可能满足放置过程中的多种约束条件,定义 虚拟机放置矩阵Mk[i][j],若Mk[i][j]=1则表示放置组pk将虚拟机j放置在物理主 机i上,反之,若Mk[i][j]=0,表示放置组pk中,虚拟机j未放置在物理主机i上;
第二步:对虚拟机放置设定约束条件及优化目标,过程如下:
2.1对于云环境下的虚拟机放置问题,既要考虑满足虚拟机资源的需求,又 要考虑如何减少数据中心的能耗、资源的高效利用,此外还要考虑放置请求的可 用性问题;因此,需要在考虑范围内的约束有:服务器节点的最大使用数量最少, 能耗最低,负载较均衡和放置请求的可用性较高,提出以下约束条件:
2.1.1放置约束,任意虚拟机vmi,在同一放置组下,其能且只能放置在一个 服务器节点上;
约束表示:
对于
Figure BDA0001801643000000103
其中放置组pk∈P;
同一放置组内认为单个虚拟机只能在一个服务器节点上进行部署运行;
2.1.2资源约束,对于任何服务器节点来说,其各个资源类型的消耗应不能超 过上限;服务器资源一般分为CPU、内存、网络带宽、磁盘资源等;考虑CPU 和内存的资源情况。定义服务器pmj的CPU和内存容量分别为
Figure BDA0001801643000000104
Figure BDA0001801643000000105
表 示;
约束表示:
对于
Figure BDA0001801643000000111
Figure BDA0001801643000000112
Figure BDA0001801643000000113
参数r为常量系数,服务器节点需要预留一部分的资源保证其自身的正常运转, r≤1;
2.1.3可达性约束,定义函数F(m,n,D)用于表示节点间通信的可达性,对于任 意链接(m,n)∈L,如果点m和n的通信延迟至多为D,则函数F(m,n,D)返回1, 否则返回0;
2.2虚拟机放置问题的优化目标众多,比较典型的包括能耗优化、网络流量 优化、资源分配优化、可用性优化和性能优化等;本发明主要选取可用性及能耗 两方面对虚拟机放置问题进行优化研究;
2.2.1可用性优化
假设用户请求由具有相关通信要求(考虑通信可达性)的n个不同的VM对 之间的虚拟机组成。将其放置在同一个服务器节点pmj不止一次不能提高放置的 可用性,因为当pmj失败时,所有放置在pmj上的虚拟机将同时失败;因而,需 要尽量将vmi放置在不同的节点上以增加可用性;用Hi来表示放置虚拟机vmi的 最大节点数,即Hi表示vmi可以放置的最大服务器节点数量,定义
Figure BDA0001801643000000114
Figure BDA0001801643000000115
用于表示该n个虚拟机中,单个虚拟机所需节点数最大为H;
虚拟机放置的可用性定义和计算分成三种:单一放置、完全保护放置、部分 受保护放置;
2.2.1.1单一放置
单一放置指每个虚拟机都只放在一个服务器节点上,即H=1;在单一放置的 情况下,如果n个服务器节点的可用性分别为A1,A2,…,An,k个虚拟机放置于此 n个节点之上,n≤k,则此虚拟机放置方案的可用性采用Ap表示,定义如下:
Figure BDA0001801643000000116
由于请求包含k个虚拟机,因此计算可用性时需要考虑k个虚拟机均在运行 的概率;
2.2.1.2完全保护放置
完全保护放置指对于任意虚拟机
Figure BDA0001801643000000121
均由放置组pi放置在H个不同 节点上,1≤i≤H;因此,认为一个完全保护放置方案P由H个单一放置方案构 成,且在各个单一放置方案内,虚拟机对之间都应该满足放置、资源和通信可达 性约束;
完全保护放置方案的可用性为在服务的生命周期内,存在至少一个放置组工 作的概率,可用性计算如下式所示:
Figure BDA0001801643000000122
2.2.1.3部分保护放置
部分保护放置指存在虚拟机vmi∈VM,被放置在少于H个不同节点上,即 两个或者更多个放置组将虚拟机vmi放置在相同的节点上,且存在某个虚拟机 vmj∈VM,使得H>1;在部分保护的放置情况下,若一个虚拟机放置在少于H 个节点上,可以认为这个虚拟机由多个放置组共同放置;无法直接通过2.2.1.2 中的公式计算其可用性,因为放置了共享的虚拟机的服务器节点的可用性会被计 算两次;为了处理该类放置情况,重新定义操作符,假设存在n个节点 pm1,pm2,…,pmn,它们的可用性分别为A1,A2,…,An,对于可用性为Ax的节点pmx, 给出如下关于操作符的定义:
Figure BDA0001801643000000123
则根据上述的公式,定义
Figure BDA0001801643000000125
为不同集合的操作,部分保护放置的可用性通过 如下公式计算获得:
Figure BDA0001801643000000124
2.2.2能耗优化
云计算环境中,数据中心产生的能耗主要为各种设备的能耗,包括服务器、 存储设备和网络通信设备等;其中服务器占能耗的绝大部分。从能耗的角度对虚 拟机放置进行优化,主要通过减少服务器设备的能耗,可以通过直接或间接减少 服务器的开机运行数量来达到一定的优化目标;
根据1.4中的公式,在T时间段内,物理主机pmj的总耗能
Figure BDA0001801643000000131
表示为:
Figure BDA0001801643000000132
因此,由以下公式可得,在T时间段内,数据中心的服务器总能耗ET为各运 行的服务器的能耗之和;
Figure BDA0001801643000000133
第三步:算法实现,过程如下:
步骤3.1初始化主机集合PM,虚拟机集合VM,种群规模为S,代表通过步 骤3.2-3.7随机生成的放置请求组的数量,迭代次数T’,代表算法需要循环操作 的次数,其中T’≥S,单虚拟机最多放置组数量H,主机节点的可用性集合A以 及变异概率p,p为0到1的一个随机数;
步骤3.2主机簇群划分,首先选择一个常数z,即每个簇中的主机数为z, 将主机集合按照c=ceiling(n/z),其中ceiling函数表示将n除以z的值向上舍入为 最接近的整数,C0={cpm1,cpm2,…,cpmz},C1={cpmz+1,cpmz+2,…,cpm2z},… 直至每个主机都归属于一个簇。每个簇为虚拟分层结构中的最底层节点;
步骤3.3虚拟叶子节点扇区以及虚拟分层结构深度确定,选择虚拟分层结构 中每个子节点扇区的叶子数f,一般情况下f为一位整数,选择合适的f和z会 使得到的算法效益和负载均衡度等和期望较相近,根据节点扇区的叶子数f以及 主机簇个数z,可以得到虚拟分层结构的深度d:
fd≥C
其中d是最小正整数,使得上述公式成立,
步骤3.4各虚拟叶子节点扇区编号,采用自然编号对每个扇区分别统一编号, 即从0,1,2,…,f-1;
步骤3.5对于某一虚拟机vmi,对于任意一个虚拟节点s,都有一个对应的权 重wis=h(vmi,s),h(vmi,s)内包含约定的哈希函数,如hash32、hash64等;在虚 拟分层结构的每一层叶子扇区,都可通过h(vmi,s)计算各虚拟节点权重,如果某 虚拟节点sk的性能是其他主机的h倍,则将sk等额分成h份,例如sk1,sk2,…,skh; 显然,现在虚拟机分配到该虚拟节点sk上的概率是其他主机的h倍,将虚拟机vmi分配权重wis最高的虚拟节点继续向下分层,直到选择至最底层的真实主机节点 簇Cx
步骤3.6当虚拟机vmi选中真实主机节点簇Cx后,在进行真实节点选择时, 假设对于任意在真实节点簇Cx中的主机节点cpmxz+j,都有一个对应的权重得分 Wi(xz+j)=H(vmi,cpmxz+j)*Tagi(xz+j),若Tag为false,则为0,若为true默认为1;其 中,将虚拟机vmi分配给主机cpmxz+j之后,H(vmi,cpmxz+j)为在相同T时间段内, Eold与分配虚拟机vmi后的真实主机节点簇Cx的总体能耗的比值,与主机pmxz+j的资源利用率Uxz+j与1的差方和对应权重常数的乘积以及主机可用性与系数乘 积的和:
Figure BDA0001801643000000141
其中Exz+j为T时间段内主机cpmxz+j的能耗,Eold是指相同T时间段内,未 分配新虚拟机时,真实主机节点簇Cx的能耗,Axz+j为主机cpmxz+j的可用性; α、β、γ是表示三者的权重;
步骤3.7循环步骤3.5-3.6,将所有虚拟机vmi选择权重得分Wi(xz+j)最高的主 机节点完成分配;
步骤3.8基于步骤3.2-3.7的生成种群大小为S的种群集合Xs。按主机节点 簇的分组编码方式进行编码,P表示放置组,主机簇Cx对应为染色体,每个主 机簇上的主机对应为基因,将操作从单个虚拟机转化为对主机簇的操作;
步骤3.9设置当前迭代次数t=0;
步骤3.10通过Random(X,Y,S)函数选择随机选择种群中两个个体进行交叉操 作,Random(X,Y,S)表示在规模为S的种群中挑选出不相同的两个种群X,Y;
步骤3.10.1根据Random(X,Y,S)函数挑选两个需要交配的父代,命名为X、 Y,随机挑选X父代中包含一个或多个基因的某一节点簇作为需要交叉的部分, 将该节点簇即其中所有基因插入到Y父代交叉点位置中,此时,将会产生包含X、 Y父代基因的新的子代;
步骤3.10.2在完成基因插入之后,由于使用基于主机簇的染色体分组编码方 式,可能会出现相同的主机簇,若出现该种情况,则将插入的基因合并到原先的 主机簇中;
步骤3.10.3若出现不同的主机节点上存在相同的两个虚拟机的情况,将先前 包含相同的虚拟机的主机,根据步骤1.2中的公式剔除利用率较低的主机节点;
步骤3.10.4被暂时的剔除主机节点上,可能包含未被其他主机部署的虚拟机 节点,针对这种情况,需要为这些虚拟机,通过循环步骤3.5-3.6,将剔除的虚拟 机重新编码至主机节点中,并选择染色体中使得满足约束条件的且能耗最低可用 性最高的基因完成分配;
步骤3.10.5若所有基因均不符合要求,则按照步骤3.2-3.7重新生成新基因片段,通过Random(X,Y,S)函数选择重新需要互换两个父代个体,跳转执行步骤 3.10.1;
步骤3.11遍历每个个体,根据每个个体的变异概率p,通过Rand()函数计算 一个随机数p′模拟事件发生的概率,将p′与变异概率p进行比较,若p′大于p表 示个体未发生变异,跳转至步骤3.12,反之则表示个体发生变异,进入步骤3.11.1, Rand()函数的功能为生成0到1内的一个随机数p′;
步骤3.11.1通过变异函数来确定需要变异的个体染色体基因,如下公式所示:
Figure BDA0001801643000000151
其中Uj-pes、Uj-ram分别为主机的CPU、内存利用率;
步骤3.11.2选择fc(j)较小的基因进行删除,使得每次删除的都是利用率较低 的较差基因;
步骤3.11.3然后将该基因上的虚拟机通过步骤3.10交叉操作的方法重新进行 编码插入到其他基因中;
步骤3.12将交叉、变异操作得到的种群与原种群Xs合并,对于种群中的每 个个体Xi根据适应度函数fT(x)计算相应的值
Figure BDA0001801643000000161
Emin为T时间段内数据中心能耗的最小值;
Figure BDA0001801643000000162
为单个个体的能耗。sing le 指单一放置,Full指完全保护放置,Partial指部分保护放置,x为数量为H的个 体或者个体群;
根据适度函数选取前S个个体进入下一次迭代过程;
步骤3.13t=t+1,若t<T’,则返回到第3.10步继续迭代;否则,跳转到第 3.14步;
步骤3.14根据步骤3.12的适度函数fT(x)选择权值最高的H个个体,即为虚 拟机放置最优方案组vmp[H]。

Claims (6)

1.一种基于改进遗传算法的虚拟机初始放置策略方法,其特征在于,所述方法包括以下步骤:
第一步:对于虚拟机放置问题提出以下的形式化描述,过程如下:
1.1定义放置环境,数据中心存在物理主机集合PM={pm1,pm2,…,pmn},其中主机数量为n,需要放置的虚拟机集合VM={vm1,vm2,…,vmm},其中虚拟机数量为m,假设虚拟机数量m大于或等于主机n,定义虚拟机放置组集合P={p1,p2,…,ph},h为放置组的数量;
1.2定义资源状态,对于给定的虚拟机vmi,定义
Figure FDA0003228513050000011
为虚拟机vmi所需的CPU资源,
Figure FDA0003228513050000012
为虚拟机vmi所需的内存资源,Vi-pes为虚拟机vmi的CPU利用率,Wi-ram为虚拟机vmi的内存利用率;对于给定的主机pmj,定义
Figure FDA0003228513050000013
为主机pmj当前的CPU空闲资源,
Figure FDA0003228513050000014
为主机pmj的内存空闲资源,Uj-pes为主机pmj的CPU利用率,Uj-ram为主机pmj的内存利用率,则定义主机pmj的资源利用率Uj为:
Uj=αUj-pes+βUj-ram
0<α<1,0<β<1,且α+β=1;
定义Tagij为当前时刻t,主机pmj能否满足虚拟机vmi的资源要求,即
Figure FDA0003228513050000015
1.3主机可用性,一个节点的可用性是指节点在整个服务时间内任意时刻的工作概率,对于任意网络组件i,其可用性Ai以下公式计算获得:
Figure FDA0003228513050000016
其中MTTF代表平均故障时间,MTTR代表平均修复时间,假定服务器可用性的值是已知的,且各服务器之间的可用性是相互独立互不相关的;
1.4计算电能消耗,在一个拥有n台运行的物理主机的云数据中心,对于任意物理主机pmj∈PM,在某一时刻t的电源能耗如下公式所示:
Figure FDA0003228513050000017
其中cj为静态能耗标记,fj(t)为t时刻主机pmj的CPU频率,CPU利用率为Uj-pes(t),k为常量系数,即电源能耗在一定程度上是基于CPU利用率的线性模型;
1.5定义虚拟机放置,VM集合通过放置组pk∈P,选择对应的物理主机集合中的主机完成放置映射,并且需要尽可能满足放置过程中的多种约束条件,定义虚拟机放置矩阵Mk[i][j],若Mk[i][j]=1则表示放置组pk将虚拟机j放置在物理主机i上,反之,若Mk[i][j]=0,表示放置组pk中,虚拟机j未放置在物理主机i上;
第二步:对虚拟机放置设定约束条件及优化目标,过程如下:
2.1在考虑范围内的约束有:服务器节点的最大使用数量最少,能耗最低,负载较均衡和放置请求的可用性较高;
2.2选取可用性及能耗两方面对虚拟机放置问题进行优化研究;
第三步:算法实现,过程如下:
步骤3.1初始化主机集合PM,虚拟机集合VM,种群规模为S,代表通过步骤3.2-3.7随机生成的放置请求组的数量,迭代次数T’,代表算法需要循环操作的次数,其中T’≥S,主机节点的可用性集合A以及变异概率p,p为0到1的一个随机数;
步骤3.2主机簇群划分,首先选择一个常数z,即每个簇中的主机数为z,将主机集合划分为c个簇,c=ceiling(n/z),其中ceiling函数表示将n除以z的值向上舍入为最接近的整数,C0={cpm1,cpm2,…,cpmz},C1={cpmz+1,cpmz+2,…,cpm2z},…直至每个主机都归属于一个簇,每个簇为虚拟分层结构中的最底层节点;
步骤3.3虚拟叶子节点扇区以及虚拟分层结构深度确定,选择虚拟分层结构中每个子节点扇区的叶子数f,f为一位整数,选择合适的f和z会使得到的算法效益和负载均衡度和期望较相近,根据节点扇区的叶子数f以及主机簇个数c,可以得到虚拟分层结构的深度d:
fd≥c
其中d是最小正整数,使得上述公式成立;
步骤3.4各虚拟叶子节点扇区编号,采用自然编号对每个扇区分别统一编号,即从0,1,2,…,f-1;
步骤3.5对于某一虚拟机vmi,对于任意一个虚拟节点s,都有一个对应的权重wis=hash(vmi,s),hash(vmi,s)内包含约定的哈希函数,在虚拟分层结构的每一层叶子扇区,都可通过hash(vmi,s)计算各虚拟节点权重,如果某虚拟节点sk的性能是其他主机的a倍,则将sk等额分成a份;显然,现在虚拟机分配到该虚拟节点sk上的概率是其他主机的a倍,将虚拟机vmi分配权重wis最高的虚拟节点继续向下分层,直到选择至最底层的真实主机节点簇Cx
步骤3.6当虚拟机vmi选中真实主机节点簇Cx后,在进行真实节点选择时,假设对于任意在真实节点簇Cx中的主机节点cpmxz+j,都有一个对应的权重得分Wi(xz+j)=HE(vmi,cpmxz+j)*Tagi(xz+j),若Tag为false,则为0,若为true默认为1;其中,将虚拟机vmi分配给主机节点cpmxz+j之后,HE(vmi,cpmxz+j)为在相同T时间段内,Eold与分配虚拟机vmi后的真实主机节点簇Cx的总体能耗的比值,与主机节点pmxz+j的资源利用率Uxz+j与1的方差和对应权重常数的乘积以及主机可用性与系数乘积的和:
Figure FDA0003228513050000021
其中Exz+j为T时间段内主机节点cpmxz+j的能耗,Eold是指相同T时间段内,未分配新虚拟机时,真实主机节点簇Cx的能耗,Axz+j为主机节点cpmxz+j的可用性;α、β、γ是表示三者的权重;
步骤3.7循环步骤3.5-3.6,将所有虚拟机vmi选择权重得分Wi(xz+j)最高的主机节点完成分配;
步骤3.8基于步骤3.2-3.7的生成种群大小为S的种群集合Xs,按主机节点簇的分组编码方式进行编码,P表示放置组,主机簇Cx对应为染色体,每个主机簇上的主机对应为基因,将操作从单个虚拟机转化为对主机簇的操作;
步骤3.9设置当前迭代次数t=0;
步骤3.10通过Random(X,Y,S)函数选择随机选择种群中两个个体进行交叉操作,Random(X,Y,S)表示在规模为S的种群中挑选出不相同的两个种群X,Y;
步骤3.11遍历每个个体,根据每个个体的变异概率p,通过Rand()函数计算一个随机数p′模拟事件发生的概率,将p′与变异概率p进行比较,若p′大于p表示个体未发生变异,跳转至步骤3.12,反之则表示个体发生变异,Rand()函数的功能为生成0到1内的一个随机数p′;
步骤3.12将交叉、变异操作得到的种群与原种群Xs合并,对于种群中的每个个体Xi根据适应度函数fT(x)计算相应的值
Figure FDA0003228513050000031
Emin为T时间段内数据中心能耗的最小值;
Figure FDA0003228513050000032
为单个个体的能耗,single指单一放置,Full指完全保护放置,Partial指部分保护放置,x为数量为H的个体或者个体群;
根据适度函数选取前S个个体进入下一次迭代过程;
步骤3.13t=t+1,若t<T’,则返回到第3.10步继续迭代;否则,跳转到第3.14步;
步骤3.14根据步骤3.12的适度函数fT(x)选择权值最高的H个个体,即为虚拟机放置最优方案组vmp[H]。
2.如权利要求1所述的基于改进遗传算法的虚拟机初始放置策略方法,其特征在于,所述步骤2.1中,提出以下约束条件:
2.1.1放置约束,任意虚拟机vmi,在同一放置组下,其能且只能放置在一个服务器节点上;
约束表示:
对于
Figure FDA0003228513050000033
其中放置组pk∈P;
同一放置组内认为单个虚拟机只能在一个服务器节点上进行部署运行;
2.1.2资源约束,对于任何服务器节点来说,其各个资源类型的消耗应不能超过上限,考虑CPU和内存的资源情况,定义服务器pmj的CPU和内存容量分别为
Figure FDA0003228513050000034
Figure FDA0003228513050000035
表示;
约束表示:
对于
Figure FDA0003228513050000036
Figure FDA0003228513050000037
Figure FDA0003228513050000038
参数r为常量系数,服务器节点需要预留一部分的资源保证其自身的正常运转,r≤1;
2.1.3可达性约束,定义函数F(m,n,D)用于表示节点间通信的可达性,对于任意链接(m,n)∈L,如果点m和n的通信延迟至多为D,则函数F(m,n,D)返回1,否则返回0。
3.如权利要求1或2所述的基于改进遗传算法的虚拟机初始放置策略方法,其特征在于,所述步骤2.2中,优化研究的过程为:
2.2.1可用性优化
假设用户请求由具有相关通信要求的n个不同的VM对之间的虚拟机组成,将其放置在同一个服务器节点pmj不止一次不能提高放置的可用性,因为当pmj失败时,所有放置在pmj上的虚拟机将同时失败;因而,需要尽量将vmi放置在不同的节点上以增加可用性;用Hi来表示放置虚拟机vmi的最大节点数,即Hi表示vmi可以放置的最大服务器节点数量,定义
Figure FDA0003228513050000041
用于表示该n个虚拟机中,单个虚拟机所需节点数最大为H;
2.2.2能耗优化
根据1.4中的公式,在T时间段内,物理主机pmj的总耗能
Figure FDA0003228513050000042
表示为:
Figure FDA0003228513050000043
因此,由以下公式可得,在T时间段内,数据中心的服务器总能耗ET为各运行的服务器的能耗之和;
Figure FDA0003228513050000044
4.如权利要求3所述的基于改进遗传算法的虚拟机初始放置策略方法,其特征在于,所述步骤2.2.1中,虚拟机放置的可用性定义和计算分成三种:单一放置、完全保护放置、部分受保护放置;
2.2.1.1单一放置
单一放置指每个虚拟机都只放在一个服务器节点上,即H=1;在单一放置的情况下,如果n个服务器节点的可用性分别为A1,A2,…,An,k个虚拟机放置于此n个节点之上,n≤k,则此虚拟机放置方案的可用性采用Ap表示,定义如下:
Figure FDA0003228513050000045
由于请求包含k个虚拟机,因此计算可用性时需要考虑k个虚拟机均在运行的概率;
2.2.1.2完全保护放置
完全保护放置指对于任意虚拟机
Figure FDA0003228513050000046
均由放置组pi放置在H个不同节点上,1≤i≤H;因此,认为一个完全保护放置方案P由H个单一放置方案构成,且在各个单一放置方案内,虚拟机对之间都应该满足放置、资源和通信可达性约束;
完全保护放置方案的可用性为在服务的生命周期内,存在至少一个放置组工作的概率,可用性计算如下式所示:
Figure FDA0003228513050000051
2.2.1.3部分保护放置
部分保护放置指存在虚拟机vmi∈VM,被放置在少于H个不同节点上,即两个或者更多个放置组将虚拟机vmi放置在相同的节点上,且存在某个虚拟机vmj∈VM,使得H>1;在部分保护的放置情况下,若一个虚拟机放置在少于H个节点上,可以认为这个虚拟机由多个放置组共同放置;无法直接通过2.2.1.2中的公式计算其可用性,因为放置了共享的虚拟机的服务器节点的可用性会被计算两次;为了处理该类放置情况,重新定义操作符·,假设存在n个节点pm1,pm2,…,pmn,它们的可用性分别为A1,A2,…,An,对于可用性为Ax的节点pmx,给出如下关于操作符·的定义:
Figure FDA0003228513050000052
则根据上述的公式,定义
Figure FDA0003228513050000054
为不同集合的·操作,部分保护放置的可用性通过如下公式计算获得:
Figure FDA0003228513050000053
5.如权利要求1或2所述的基于改进遗传算法的虚拟机初始放置策略方法,其特征在于,所述步骤3.10中,交叉操作的过程如下:
步骤3.10.1根据Random(X,Y,S)函数挑选两个需要交配的父代,命名为X、Y,随机挑选X父代中包含一个或多个基因的某一节点簇作为需要交叉的部分,将该节点簇即其中所有基因插入到Y父代交叉点位置中,此时,将会产生包含X、Y父代基因的新的子代;
步骤3.10.2在完成基因插入之后,由于使用基于主机簇的染色体分组编码方式,可能会出现相同的主机簇,若出现该种情况,则将插入的基因合并到原先的主机簇中;
步骤3.10.3若出现不同的主机节点上存在相同的两个虚拟机的情况,将先前包含相同的虚拟机的主机,根据步骤1.2中的两个公式剔除利用率较低的主机节点;
步骤3.10.4被暂时的剔除主机节点上,可能包含未被其他主机部署的虚拟机节点,针对这种情况,需要为这些虚拟机,通过循环步骤3.5-3.6,将剔除的虚拟机重新编码至主机节点中,并选择染色体中使得满足约束条件的且能耗最低可用性最高的基因完成分配;
步骤3.10.5若所有基因均不符合要求,则按照步骤3.2-3.7重新生成新基因片段,通过Random(X,Y,S)函数选择重新需要互换两个父代个体,跳转执行步骤3.10.1。
6.如权利要求1或2所述的基于改进遗传算法的虚拟机初始放置策略方法,其特征在于,所述步骤3.11中,变异操作的过程如下:
步骤3.11.1通过变异函数来确定需要变异的个体染色体基因,如下公式所示:
Figure FDA0003228513050000061
其中Uj-pes、Uj-ram分别为主机的CPU、内存利用率;
步骤3.11.2选择fc(j)较小的基因进行删除,使得每次删除的都是利用率较低的较差基因;
步骤3.11.3然后将该基因上的虚拟机通过步骤3.10交叉操作的方法重新进行编码插入到其他基因中。
CN201811079837.4A 2018-09-17 2018-09-17 基于改进遗传算法的虚拟机初始放置策略方法 Active CN109343933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811079837.4A CN109343933B (zh) 2018-09-17 2018-09-17 基于改进遗传算法的虚拟机初始放置策略方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811079837.4A CN109343933B (zh) 2018-09-17 2018-09-17 基于改进遗传算法的虚拟机初始放置策略方法

Publications (2)

Publication Number Publication Date
CN109343933A CN109343933A (zh) 2019-02-15
CN109343933B true CN109343933B (zh) 2021-11-23

Family

ID=65305160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811079837.4A Active CN109343933B (zh) 2018-09-17 2018-09-17 基于改进遗传算法的虚拟机初始放置策略方法

Country Status (1)

Country Link
CN (1) CN109343933B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124590A (zh) * 2018-10-31 2020-05-08 千寻位置网络有限公司 虚拟机放置方法及装置、服务器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2437165A1 (en) * 2010-09-13 2012-04-04 British Telecommunications Public Limited Company Distributing software applications to virtual machines using genetic algorithms with already optimized initial values
CN104811491A (zh) * 2015-04-17 2015-07-29 华南理工大学 一种基于遗传算法的云计算资源调度方法
CN105740051A (zh) * 2016-01-27 2016-07-06 北京工业大学 基于改进的遗传算法的云计算资源调度实现方法
CN107193640A (zh) * 2017-06-26 2017-09-22 浙江工业大学 一种基于Rendezvous哈希算法的虚拟机初始放置策略方法
WO2018015779A1 (en) * 2016-07-20 2018-01-25 Worldline Multi-criteria adaptive scheduling for a market-oriented hybrid cloud infrastructure
CN107885596A (zh) * 2017-06-22 2018-04-06 叶雅敏 用于音视频解码、编码的高频访问内存的程序优化方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2437165A1 (en) * 2010-09-13 2012-04-04 British Telecommunications Public Limited Company Distributing software applications to virtual machines using genetic algorithms with already optimized initial values
CN104811491A (zh) * 2015-04-17 2015-07-29 华南理工大学 一种基于遗传算法的云计算资源调度方法
CN105740051A (zh) * 2016-01-27 2016-07-06 北京工业大学 基于改进的遗传算法的云计算资源调度实现方法
WO2018015779A1 (en) * 2016-07-20 2018-01-25 Worldline Multi-criteria adaptive scheduling for a market-oriented hybrid cloud infrastructure
CN107885596A (zh) * 2017-06-22 2018-04-06 叶雅敏 用于音视频解码、编码的高频访问内存的程序优化方法
CN107193640A (zh) * 2017-06-26 2017-09-22 浙江工业大学 一种基于Rendezvous哈希算法的虚拟机初始放置策略方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Cool Cloud: A Practical Dynamic Virtual Machine Placement Framework for Energy Aware Data Centers;Zhiming Zhang,Chan-Ching Hsu,Morris Chang;《IEEE Xplore》;20150820;全文 *
IEEE Energy efficient virtual machine migrations based on genetic algorithm in cloud data center;Inderjit Singh Dhanoa,Sawtantar Singh Khurmi;《IEEE Xplore》;20161031;全文 *
面向多源异构数据的云推送平台的研究与应用;陆佳炜,王辰昊,肖刚,徐俊;《计算机科学》;20160830;全文 *

Also Published As

Publication number Publication date
CN109343933A (zh) 2019-02-15

Similar Documents

Publication Publication Date Title
Gan et al. Genetic simulated annealing algorithm for task scheduling based on cloud computing environment
Szabo et al. Science in the cloud: Allocation and execution of data-intensive scientific workflows
CN109447264B (zh) 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法
Chen et al. RIAL: Resource intensity aware load balancing in clouds
Chen et al. A profit-aware virtual machine deployment optimization framework for cloud platform providers
CN108170530B (zh) 一种基于混合元启发式算法的Hadoop负载均衡任务调度方法
Tripathi et al. Modified dragonfly algorithm for optimal virtual machine placement in cloud computing
Ma et al. Real-time virtual machine scheduling in industry IoT network: A reinforcement learning method
Idrissi et al. A new approach for a better load balancing and a better distribution of resources in cloud computing
CN110362379A (zh) 基于改进蚁群算法的虚拟机调度方法
Fathi et al. Consolidating VMs in green cloud computing using harmony search algorithm
CN111176784B (zh) 一种基于极限学习机和蚁群系统的虚拟机整合方法
Liumei et al. Towards energy efficient cloud: an optimized ant colony model for virtual machine placement
Sapkota et al. Multi-controller placement optimization using naked mole-rat algorithm over software-defined networking environment
Mylavarapu et al. An optimized capacity planning approach for virtual infrastructure exhibiting stochastic workload
Yousefipour et al. Improving the load balancing and dynamic placement of virtual machines in cloud computing using particle swarm optimization algorithm
CN109343933B (zh) 基于改进遗传算法的虚拟机初始放置策略方法
Wu et al. Heterogeneous virtual machine consolidation using an improved grouping genetic algorithm
Zhang et al. A dynamic placement policy of virtual machine based on MOGA in cloud environment
CN112187535A (zh) 雾计算环境下服务器部署方法及装置
CN109889573B (zh) 混合云中基于ngsa多目标的副本放置方法
Portaluri et al. Multi objective virtual machine allocation in cloud data centers
Zhang et al. A unified algorithm for virtual desktops placement in distributed cloud computing
Joseph et al. Improving the efficiency of genetic algorithm approach to virtual machine allocation
Prodan et al. Dynamic multi-objective virtual machine placement in cloud data centers

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