CN107103360B - 一种基于混合云的可靠应用分配分布式遗传方法 - Google Patents

一种基于混合云的可靠应用分配分布式遗传方法 Download PDF

Info

Publication number
CN107103360B
CN107103360B CN201710207785.3A CN201710207785A CN107103360B CN 107103360 B CN107103360 B CN 107103360B CN 201710207785 A CN201710207785 A CN 201710207785A CN 107103360 B CN107103360 B CN 107103360B
Authority
CN
China
Prior art keywords
application
service
copy
value
entity
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.)
Expired - Fee Related
Application number
CN201710207785.3A
Other languages
English (en)
Other versions
CN107103360A (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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201710207785.3A priority Critical patent/CN107103360B/zh
Publication of CN107103360A publication Critical patent/CN107103360A/zh
Application granted granted Critical
Publication of CN107103360B publication Critical patent/CN107103360B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Biology (AREA)
  • Genetics & Genomics (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Physiology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于混合云的可靠应用分配分布式遗传方法,包括下列步骤:S1、构建优化模型;S2、定义约束条件;S3、定义目标函数;S4、定义染色体;S5、构建分布式池模型;S6、编码;S7、判断应用程序放置的数量或迭代次数是否达到规定值;S8、计算个体的适应度;S9、复制;S10、选择交叉;S11、变异;S12、返回步骤S7进入下一次迭代;S13、结束输出最优解。本发明利用可靠性感知的偏随机秘钥遗传方法解决了混合云应用分配没有可靠性保证的问题;利用分布式可扩展的池模型提高了应用分配的可扩展性,同时减少了能耗,充分利用了网络边缘的计算资源,减小延迟,提升了用户的体验质量。

Description

一种基于混合云的可靠应用分配分布式遗传方法
技术领域
本发明涉及云技术技术领域,具体涉及一种基于混合云的可靠应用分配分布式遗传方法。
背景技术
由于现有的以云计算为核心的集中式大数据处理技术已经不能完全满足日益庞大的物联网边缘设备所产生的海量数据处理要求,所以需要一个新的云架构,这种新的架构体系应该能快速响应边缘设备的需求,以减少云计算中心的数据传输及处理压力。混合云概念应运而生,其由多个单个的具有异构功能的小云组成,他们在避免产生大的网络延迟的同时能提供更快地数据计算。然而,这种云环境常常包含一些容易导致任务失败的不可靠的节点和链路。因此,具有有效性保障的应用调度是目前研究面临的挑战。应用程序需要一种配置方法能兼顾CPU、存储、网络和有效性以尽可能优化地使用资源,并保持很小的出错率。应用程序在基础设施网络中的优化调度是一个NP-hard难度问题,因此,精确的方法用来解决此问题是不可扩展的。
遗传方法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传方法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于混合云的可靠应用分配分布式遗传方法,该方法创新应用程序分配方法,提升混合云环境中应用程序分配的可靠性,同时减小延迟。
本发明的目的可以通过采取如下技术方案达到:
一种基于混合云的可靠应用分配分布式遗传方法,所述方法包括:
S1、构建优化模型,该模型包括云环境模块和应用程序几何模块,过程如下:
S1-1、用一个实体设备集PMs和一个实体链路集PLs来构建云环境;
S1-2、将应用程序集合分配到云环境中,每个应用包括一个服务集和一个虚拟链路集VLs;
S2、根据混合云环境的特点及应用分配所涉及内容定义约束条件,过程如下:
S2-1、准入控制:每个应用程序分配的副本数最多不超过δ:
|D|=δ,
其中,δ为某个应用程序的副本数量,D为某个应用程序所有副本组成的集合;
至少有一个对应的副本被分配时,一个应用程序才能被认为成功分配:
Figure GDA0002475975030000021
其中,a表示某个应用程序;d表示应用程序a的副本d;A为所有应用程序组成的集合,Oa是一个变量,其定义为:如果应用程序a被成功分配则值为1,反之为0;Gd,a是一个变量,其定义为:如果应用程序a的副本d被分配则值为1,反之为0;
S2-2、节点嵌入:只在副本被认为已成功放置时才为其分配节点资源:
Figure GDA0002475975030000031
其中,s表示某个服务,n表示某个实体设备PM,S为所有的服务组成的集合,N为所有的实体设备PM组成的集合,
Figure GDA0002475975030000032
是一个变量,其定义为:如果节点是应用程序a的副本d对应的服务s所占用的宿主则值为1,反之为0;Ia,s是一个变量,其定义为:如果应用程序a对应的服务s被实例化则值为1,反之为0;
如果一个副本没有成功放置则不会有实例化的服务:
Figure GDA0002475975030000033
如果一个服务寄宿在一个节点上,那么CPU资源必须预先分配给该服务:
Figure GDA0002475975030000034
其中,
Figure GDA0002475975030000035
是一个变量,其定义为:如果实体设备PM运行应用程序a对应的服务s则值为1,反之为0;
对每个服务而言,其最多寄宿在一个节点上:
Figure GDA0002475975030000036
CPU和内存资源的保护约束:
Figure GDA0002475975030000041
其中,ωs为服务s要求的CPU资源,Ωn为实体设备PM的CPU容量,且
Figure GDA0002475975030000042
其中,Us,n是一个变量,其定义为:如果服务s寄宿在实体设备PM上则值为1,反之为0,γs为服务s的存储容量要求,Γn为实体设备PM的存储容量;
一旦一个服务被某个副本使用,此服务必须寄宿在某个节点上:
Figure GDA0002475975030000043
S2-3、链路嵌入:在每个节点上的多网络流约束可表示为:
Figure GDA0002475975030000044
Figure GDA0002475975030000045
其中,
Figure GDA0002475975030000046
是一个变量,其定义为:如果服务s1与服务s2之间的虚拟链路部署在应用程序a的副本d对应的节点n1和n2之间的实体链路上则值为1,反之为0,e表示某个实体链路PL,E表示所有实体链路PL组成的集合;其中,
Figure GDA0002475975030000047
其中,
Figure GDA0002475975030000048
是一个变量,其定义为:如果服务s1与服务s2之间的虚拟链路部署在应用程序a的副本d对应的实体链路PL上则值为1,反之为0,
Figure GDA0002475975030000051
是一个变量,其定义为:如果至少有一个应用程序a的副本通过部署在其上的服务s1与服务s2之间的虚拟链路使用实体链路PL则值为1,反之为0;
每个链路使用的总带宽不能超过总连接能力:
Figure GDA0002475975030000052
其中,
Figure GDA0002475975030000053
表示应用程序a所对应的两个服务s1,s2之间的带宽要求,Be是实体链路PL的带宽限制;
S2-4、可靠性感知约束:对于一个可用副本,它所使用的每一个单独组件必须是可用的,当一个组件被任意一个副本的服务或虚拟链路使用时即认为这个组件被此副本所使用:
Figure GDA0002475975030000054
其中,c表示某个实体组件,包括实体设备PM和实体链路PL,C为实体组件的集合,即C=N∪E,
Figure GDA0002475975030000055
是一个变量,其定义为:实体组件c被应用程序a的副本d所使用则值为1,反之为0;
单个组件的状态描述为:
Figure GDA0002475975030000056
其中,χc表示实体组件c的状态;
一个组件的失败概率:
Figure GDA0002475975030000057
基层网络状态可以被描述为:
X=(χ12,...,χ|C|);
S3、定义目标函数,将方法所要解决的问题转换为最大化分配的应用数量:
Figure GDA0002475975030000061
Figure GDA0002475975030000062
Figure GDA0002475975030000063
Figure GDA0002475975030000064
S4、定义染色体Ω,具体如下:
Ω=[A1,A2,...,AU,
Figure GDA0002475975030000065
Figure GDA0002475975030000066
其中,A1,A2,...,AU描述应用分配的顺序,其中AU表示应用程序集合A中的第U个应用程序;
Figure GDA0002475975030000067
描述如何给每个应用和每个副本分配服务的顺序,其中
Figure GDA0002475975030000068
表示服务集合S中第U个应用程序的副本δU所对应的第|SU|个服务;
Figure GDA0002475975030000069
被用于选择一个实体设备PM来运行一个给定应用的给定副本所对应的服务,其中
Figure GDA00024759750300000610
表示实体设备PM集合N中运行第U个应用程序的副本δU所对应的第|SU|个服务的实体设备PM;
S5、构建一个分布式池模型,一个集中池包含所有的遗传方法中的个体,任务将分布式地选择一个随机的个体集来进化成新的一代,在每一代中所有的个体都被存储在分布池中,每个任务可以检查结束条件,如有必要,任务可以计算下一代;
S6、译码,用一个译码方法将染色体转换成一个解空间的解,过程如下:
S6-1、将应用程序根据染色体的第一部分的值A1,A2,...,AU进行排序,如果要分配一个应用,从第一个副本开始分配,如果这个副本已被分配,检查其可用性;
S6-2、按照染色体第二部分的值
Figure GDA0002475975030000071
来确定一个给定的应用a的给定副本δ所对应的服务的排序;
S7、判断应用程序放置的数量或迭代次数是否达到规定值,过程如下:
S7-1、若已达到规定值,则跳到S13,方法结束得出对应解集合;
S7-2、若未达到规定值,则执行S8;
S8、计算个体的适应度;
S9、复制,复制过程采用精英策略,即根据约束条件和计算的适应度并按照一定比例选择一部分优秀个体复制形成下一代的子个体;
S10、选择交叉,交叉的两个个体,一个来自精英群体,另一个以随机方式从全部个体中产生;
S11、变异,变异操作在下一代种群中增加更多的新个体,即按照初始解空间生成相同的分布,以随机方式来选择一些个体加入新一代的解空间;
S12、返回步骤S7;
S13、结束,输出最优解。
进一步地,所述步骤S1-1中的云环境由5个实体设备PM和8个实体链路PL组成,实体链路PL按如下方式选择,首先创建一个最小生成树,之后随机添加边直到混合云中出现8个实体链路集PL;
每个实体链路PL拥有带宽为1,对每个实体设备PM:Ωn∈{0.5,2,10,50}并且Γn∈{1,1.5,2},其中,Ωn为实体设备PM的CPU容量,Γn为实体设备PM的存储容量;
对每个实体链路PL和每个实体设备PM,失效概率从集合{0,0.025,0.05}中均匀分布的随机选择;
每个实体设备PM有一个有限的CPU容量Ω和一个有限的存储容量Γ,节点间的实体链路PL的特征是一个有限带宽B,假设实体链路PL是对称链路,节点和链路都有一个已知的故障概率,分别为pN、pL,假设故障发生时相互独立的,同时也定义一个节点和链路的可用率分别为
Figure GDA0002475975030000081
Figure GDA0002475975030000082
进一步地,假设服务是相对应用独立的,所以不同应用可以共享同一个服务,但是虚拟链路集是应用专有的;每个服务都有一个确定的CPU容量ω和存储容量γ要求,每个虚拟链路VL要求一定量的带宽β;假设虚拟链路使用的带宽是对称的,应用要求一个最小有效值R,以及可能存在一个最大副本数δa。
进一步地,所述步骤S2-2中定义CPU负载系数CLF,即被要求的CPU和云环境中可用的CPU之比,以评估输入复杂性,CPU负载系数CLF的值取0.1~1范围,且步长为0.1。
进一步地,所述步骤S2-3中定义每一个包含10个应用的应用组至少有一个服务,每个应用的服务都从一个由3个服务组成的服务集合中以60%的概率随机的选择,对每个服务s:ωs在[0.2,1]的区间随机选择,而γs在[0.75,1]的区间随机选择,其中ωs为服务s要求的CPU资源,γs为服务s的存储容量要求,对每个应用a,所有的服务都相互连接至少|Sa|-1,且最大|Sa|双向VLs的带宽在[0.02,0.04]范围随机选择,其中,Sa为应用程序a占用的所有服务组成的集合。
进一步地,所述步骤S2-4中每个应用程序要求的最小可用性【90%,99%】,交叉操作是统一交叉的,并且一个浮动字符串以突变概率0.05发生个体突变,每个个体只能发生一个突变。
进一步地,所述步骤S4中定义染色体Ω采用一个偏随机秘钥,偏随机秘钥染色体是一个在0到1之间取值的浮点数组,被用于染色体的解码阶段进行决策,同时,利用偏随机秘钥定义解码方法。
进一步地,所述步骤S5中分布式池模型框架基于evospace,同时取代原来的重新插入管理,增加容错机制并且使用一致的数据库,每个分布式的任务可以直接在数据库中分配一存储桶的个体,而其他的分布式任务不能选择这个被分配的存储桶,如果一个任务已经完成工作,便将已经分配过的旧的存储桶从数据库移除并且插入从下一代的存储桶中随机选择的新的个体。
进一步地,所述步骤S6-1中如果可保证的可用性比此应用要求的可用性要高,则成功地分配了这个应用并且将尝试分配下一个应用,如果这个可用性保证低于应用要求,在还有多余的应用的副本前提下将尝试配置一个新的副本,如果可用性保证低于应用要求并且没有副本剩余,那这个应用将不能被分配并且将从分配集中移除;
进一步地,所述步骤S6-2中,对于每个服务s,创建一个所有能运行服务s的PMs的表L,以使得所有约束条件有效,同时必须检查每个PM的CPU和存储容量,以及相同副本的其它服务的带宽;只有服从于所有这些参数的PMs才是列表L的元素,如果表L为空,便可以从分配集合中移除应用a,否则,如果|L|>0,方法对表L中的所有PMs排序并选择在
Figure GDA0002475975030000091
位置的PM,这个PM将作为副本δ对应服务s的主机,并且通过检测这个PM是否可以和其它服务建立网络连接分配所找到的带宽。
进一步地,所述步骤S10中设交叉概率为0.7,即子代以0.7的概率从精英父代中获得基因,以0.3的概率从一般个体中获得基因。否则选择第二个染色体。
本发明相对于现有技术具有如下的优点及效果:
1)将传统云环境中在远距离的云中心中处理的应用程序放置到靠近终端用户的边缘云中的可用设备(包括基站、开关、路由器甚至终端移动设备等等)处理,不仅减少了延迟同时也节约了带宽资源,减小了能耗;
2)传统的应用分配方法是不可伸缩的,且没有可用性保证,导致在传统云环境中,本发明提出一种用副本来增加应用程序可用性的方法,同时也采用分布式遗传方法定义了一个可伸缩方法来寻找一个好的配置方法。
3)相比已经提出的ILP(整数线性规划)方法在可用性要求提高时不可扩展的缺点,本发明提出的分布式遗传方法是基于SOA(面向服务的架构)的可扩展的可调有效性的。
附图说明
图1是本发明公开的一种基于混合云的可靠应用分配分布式遗传方法流程图;
图2是EvoSpace模型主要的组件和数据流;
图3是偏随机秘钥遗传方法交叉操作实例;
图4是当最小可用性要求为90%且应用程序最大副本数为1时,整数线性规划(ILP)最优解与测试方法的平均应用配置比对比;
图5是当最小可用性要求为0时,整数线性规划(ILP)与测试方法的平均执行时间对比;
图6是当最小可用性要求为90%且应用程序最大副本数为1时,整数线性规划(ILP)与测试方法的平均执行时间对比。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
附图1是本发明公开的一种基于混合云的可靠应用分配分布式遗传方法流程图,下面结合附图1,对本发明的步骤做进一步描述:
S1、构建优化模型,包括两个主要的模块:云环境模块和应用程序几何模块。
S1-1、用一个实体设备集PM和一个实体链路集PL来构建云环境。
在具体实施方式中,混合云环境由5个实体设备PM和8个实体链路PL组成。实体链路PL按如下方式选择,首先创建一个最小生成树,之后随机添加边直到混合云中出现8个实体链路PL。每个实体链路PL拥有带宽为1。对每个实体设备PM:Ωn∈{0.5,2,10,50}并且Γn∈{1,1.5,2},其中,Ωn为实体设备PM的CPU容量,Γn为实体设备PM的存储容量。
对每个实体链路PL和每个实体设备PM,失效概率从集合{0,0.025,0.05}中均匀分布的随机选择。
每个实体设备PM有一个有限的CPU容量Ω和一个有限的存储容量Γ。节点间的实体链路PL的特征是一个有限带宽B。假设实体链路PL是对称链路。节点和链路都有一个已知的故障概率,分别为pN、pL。假设故障发生时相互独立的。同时也定义一个节点和链路的可用率分别为
Figure GDA0002475975030000111
Figure GDA0002475975030000112
S1-2、应用程序集合分配到云环境中,每个应用包括一个服务集和一个虚拟链路集。
假设服务是相对应用独立的,所以不同应用可以共享同一个服务,但是虚拟链路集是应用专有的;每个服务都有一个确定的CPU容量ω和存储容量γ要求,每个虚拟链路VL要求一定量的带宽β;假设虚拟链路使用的带宽是对称的,应用要求一个最小有效值R,以及可能存在一个最大副本数δa。
S2、根据混合云环境的特点及应用分配所涉及内容定义约束条件:
S2-1、准入控制:每个应用程序分配的副本数最多不超过δ:
|D|=δ,
其中,δ为某个应用程序的副本数量,D为某个应用程序所有副本组成的集合;
至少有一个对应的副本被分配时,一个应用程序才能被认为成功分配:
Figure GDA0002475975030000121
其中,a表示某个应用程序;d表示应用程序a的副本d;A为所有应用程序组成的集合,Oa是一个变量,其定义为:如果应用程序a被成功分配则值为1,反之为0;Gd,a是一个变量,其定义为:如果应用程序a的副本d被分配则值为1,反之为0。
S2-2、节点嵌入:只在副本被认为已成功放置时才为其分配节点资源:
Figure GDA0002475975030000122
其中,s表示某个服务,n表示某个实体设备PM,S为所有的服务组成的集合,N为所有的实体设备PM组成的集合,
Figure GDA0002475975030000123
是一个变量,其定义为:如果节点是应用程序a的副本d对应的服务s所占用的宿主则值为1,反之为0;Ia,s是一个变量,其定义为:如果应用程序a对应的服务s被实例化则值为1,反之为0;
如果一个副本没有成功放置则不会有实例化的服务:
Figure GDA0002475975030000131
如果一个服务寄宿在一个节点上,那么CPU资源必须预先分配给该服务:
Figure GDA0002475975030000132
其中,
Figure GDA0002475975030000133
是一个变量,其定义为:如果实体设备PM运行应用程序a对应的服务s则值为1,反之为0,
对每个服务而言,其最多寄宿在一个节点上:
Figure GDA0002475975030000134
CPU和内存资源的保护约束:
Figure GDA0002475975030000135
其中,ωs为服务s要求的CPU资源,Ωn为实体设备PM的CPU容量,且
Figure GDA0002475975030000136
其中,Us,n是一个变量,其定义为:如果服务s托管在实体设备PM上则值为1,反之为0,γs为服务s的存储容量要求,Γn为实体设备PM的存储容量;
一旦一个服务被某个副本使用,此服务必须寄宿在某个节点上:
Figure GDA0002475975030000141
在具体实施方式中,定义CPU负载系数CLF,即被要求的CPU和云环境中可用的CPU之比,以评估输入复杂性,CPU负载系数CLF的值取0.1~1范围,且步长为0.1。对每个CPU负载系数CLF值,创造100个随机应用例。
S2-3、链路嵌入:在每个节点上的多网络流约束(MCF)可表示为:
Figure GDA0002475975030000142
Figure GDA0002475975030000143
其中,
Figure GDA0002475975030000144
是一个变量,其定义为:如果服务s1与服务s2之间的虚拟链路部署在应用程序a的副本d对应的节点n1和n2之间的实体链路上则值为1,反之为0,e表示某个实体链路PL,E表示所有实体链路PL组成的集合;其中,
Figure GDA0002475975030000145
其中,
Figure GDA0002475975030000146
是一个变量,其定义为:如果服务s1与服务s2之间的虚拟链路部署在应用程序a的副本d对应的实体链路PL上则值为1,反之为0,
Figure GDA0002475975030000147
是一个变量,其定义为:如果至少有一个应用程序a的副本通过部署在其上的服务s1与服务s2之间的虚拟链路使用实体链路PL则值为1,反之为0;
每个链路使用的总带宽不能超过总连接能力:
Figure GDA0002475975030000148
其中,
Figure GDA0002475975030000154
表示应用程序a所对应的两个服务s1,s2之间的带宽要求,Be是实体链路PL的带宽限制。
在具体实施方式中,定义每一个包含10个应用的应用组至少有一个服务。每个应用的服务都从一个由3个服务组成的服务集合中以60%的概率随机的选择。对每个服务s:ωs在[0.2,1]的区间随机选择,而γs在[0.75,1]的区间随机选择,其中ωs为服务s要求的CPU资源,γs为服务s的存储容量要求。对每个应用程序a,所有的服务都相互连接至少|Sa|-1,且最大|Sa|双向VLs的带宽在[0.02,0.04]范围随机选择,其中,Sa为应用程序a占用的所有服务组成的集合。
S2-4、可靠性感知约束:对于一个可用副本,它所使用的每一个单独组件必须是可用的,当一个组件被任意一个副本的服务或虚拟链路使用时即认为这个组件被此副本所使用:
Figure GDA0002475975030000151
其中,c表示某个实体组件,包括实体设备PM和实体链路PL,C为实体组件的集合,即C=N∪E,
Figure GDA0002475975030000152
是一个变量,其定义为:实体组件c被应用程序a的副本d所使用则值为1,反之为0,
单个组件的状态描述为:
Figure GDA0002475975030000153
其中,χc表示实体组件c的状态,
一个组件的失败概率:
Figure GDA0002475975030000161
基层网络状态可以被描述为:
X=(χ12,...,χ|C|)。
在具体实施方式中,每个应用程序要求的最小可用性【90%,99%】,GA的操作者是统一交叉的,并且一个浮动字符串突变概率0.05发生个体突变。每个个体只能发生一个突变。
S3、定义目标函数,将方法所要解决的问题转换为最大化放置的应用数量:
Figure GDA0002475975030000162
如果一个对应不同副本或应用的服务被配置在同一个实体设备PM上,或者相同的虚拟链路VL被配置在一个实体链路PL上,它们可以重复使用资源,因此,如果服务s被同一个应用配置到实体设备PMn上两次,就没有必要再次分配CPU和存储资源,只有当服务s因不同应用而被安置时才需分配更多的CPU资源;
Figure GDA0002475975030000163
Figure GDA0002475975030000164
Figure GDA0002475975030000165
在具体实施方式中,设定结束条件:方法将在计算到100代时或者在计算到20时代出现相同解决方案时停止。
S4、定义染色体Ω,具体如下:
Ω=[A1,A2,...,AU,
Figure GDA0002475975030000171
Figure GDA0002475975030000172
其中,A1,A2,...,AU描述应用分配的顺序,其中AU表示应用程序集合A中的第U个应用程序;
Figure GDA0002475975030000173
描述如何给每个应用和每个副本分配服务的顺序,其中
Figure GDA0002475975030000174
表示服务集合S中第U个应用程序的副本δU所对应的第|SU|个服务;
Figure GDA0002475975030000175
被用于选择一个实体设备PM来运行一个给定应用的给定副本所对应的服务,其中
Figure GDA0002475975030000176
表示实体设备PM集合N中运行第U个应用程序的副本δU所对应的第|SU|个服务的实体设备PM。
采用一个偏随机秘钥,相比于用布尔数组构成染色体,一个偏随机秘钥染色体是一个在0到1之间取值的浮点数组,被用于染色体的解码阶段进行决策;利用偏随机秘钥定义解码方法,避免创建无效的解决方案,以优化解空间。
S5、构建一个分布式池模型:一个集中池包含所有的遗传方法中的个体,任务将分布式地选择一个随机的个体集来进化成新的一代。在每一代中所有的个体都被存储在分布池中,每个任务可以检查结束条件,如有必要,任务可以计算下一代。
这个集中池模型框架是基于evospace(图2)的,但是取代原来的重新插入管理,本发明增加容错机制并且使用一致的数据库(MongoDB,一个基于分布式文件存储的数据库)。每个分布式的任务可以直接在数据库中分配一存储桶的个体。而其他的分布式任务不能选择这个被分配的存储桶。如果一个任务已经完成了它的工作,便将已经分配过的旧的存储桶从数据库移除并且插入从下一代的存储桶中随机选择的新的个体。
S6、译码。用一个译码方法将染色体转换成一个解空间的解。
S6-1、将应用程序根据染色体的第一部分的值A1,A2,...,AU进行排序,如果要配置一个应用,本方法从第一个副本开始分配,如果这个副本已被分配,检查其可用性以保证对应的应用程序有效性。
所述步骤S6-1中,如果可保证的可用性比此应用要求的可用性要高,则成功地分配了这个应用并且将尝试分配下一个应用。如果这个可用性保证低于应用要求,在还有多余的应用的副本前提下将尝试配置一个新的副本。如果可用性保证仍然低于应用要求并且没有副本剩余,那这个应用将不能被分配并且将从分配集中移除。
S6-2、按照染色体第二部分的值
Figure GDA0002475975030000181
来确定一个给定的应用a的给定副本δ所对应的服务的排序。
所述步骤S6-2中,对于每个服务s,创建一个所有能运行服务s的PMs的表L,以使得所有约束条件有效。同时必须检查每个PM的CPU和存储容量,以及相同副本的其它服务的带宽。只有服从于所有这些参数的PMs才是列表L的元素。如果表L为空,便可以从配置集合中移除应用程序a,因为没有有效地方式来分配应用程序a。否则,如果|L|>0,方法对L中的所有PMs排序并选择在
Figure GDA0002475975030000182
位置的PM。这个PM将作为副本δ对应服务s的主机,并且通过检测这个PM是否可以和其它服务建立网络连接分配所找到的带宽(这时采用最短路径方法)。如最后一步所述,一个确定性的解码对于排序PMs非常重要。PMs必须有一个总的确定性的顺序并且是独立于配置资源的。本发明采用ID对PMs进行排序,其简单且具有确定性的,并且使最后一步大部分时间都处在一个好的随机顺序上。
S7、判断应用程序放置的数量或迭代次数是否达到规定值。
S7-1、若已达到规定值,则跳到S13,方法结束得出对应解集合。
S7-2、若未达到规定值,则执行S8。
S8、计算个体的适应度。
S9、复制。复制过程采用精英策略,即根据约束条件和计算的适应度并按照一定比例选择一部分优秀个体复制形成下一代的子个体。精英策略能有效地确保解的质量在进化过程中不断获得提升。
S10、选择交叉。交叉的两个个体,一个来自精英群体,另一个以随机方式从全部个体中产生。
所述步骤S10中,如图3所示,染色体1代表精英个体,染色体2表示一般个体。设交叉概率为0.7,即子代以0.7的概率从精英父代中获得基因,以0.3的概率从一般个体中获得基因。以掷硬币的方式决定从哪个染色体选择基因,头面朝上时选择第一个染色体,否则选择第二个染色体。模拟抛掷一枚偏斜的硬币来产生随机数,该硬币有0.7的概率头面朝上。当生成的随机数小于等于0.7时,从第一个染色体获得基因;当随机数大于0.7时,选择第二个染色体产生基因。这样产生的子代更接近于精英个体,可起到加速收敛的作用。
S11、变异。变异操作在下一代种群中增加更多的新个体,即按照初始解空间生成相同的分布,以随机方式来选择一些个体加入新一代的解空间,从而起到防止早熟的作用。
S12、返回步骤S7。
S13、结束,输出最优解。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (9)

1.一种基于混合云的可靠应用分配分布式遗传方法,其特征在于,所述方法包括:
S1、构建优化模型,该模型包括云环境模块和应用程序几何模块,过程如下:
S1-1、用一个实体设备集PMs和一个实体链路集PLs来构建云环境;
S1-2、将应用程序集合分配到云环境中,每个应用包括一个服务集和一个虚拟链路集VLs;
S2、根据混合云环境的特点及应用分配所涉及内容定义约束条件,过程如下:
S2-1、准入控制:每个应用程序分配的副本数最多不超过δ:
|D|=δ,
其中,δ为某个应用程序的副本数量,D为某个应用程序所有副本组成的集合;
至少有一个对应的副本被分配时,一个应用程序才能被认为成功分配:
Figure FDA0002475975020000011
其中,a表示某个应用程序;d表示应用程序a的副本d;A为所有应用程序组成的集合,Oa是一个变量,其定义为:如果应用程序a被成功分配则值为1,反之为0;Gd,a是一个变量,其定义为:如果应用程序a的副本d被分配则值为1,反之为0;
S2-2、节点嵌入:只在副本被认为已成功放置时才为其分配节点资源:
Figure FDA0002475975020000021
其中,s表示某个服务,n表示某个实体设备PM,S为所有的服务组成的集合,N为所有的实体设备PM组成的集合,
Figure FDA0002475975020000022
是一个变量,其定义为:如果节点是应用程序a的副本d对应的服务s所占用的宿主则值为1,反之为0;Ia,s是一个变量,其定义为:如果应用程序a对应的服务s被实例化则值为1,反之为0;
如果一个副本没有成功放置则不会有实例化的服务:
Figure FDA0002475975020000023
如果一个服务寄宿在一个节点上,那么CPU资源必须预先分配给该服务:
Figure FDA0002475975020000024
其中,
Figure FDA0002475975020000025
是一个变量,其定义为:如果实体设备PM运行应用程序a对应的服务s则值为1,反之为0;
对每个服务而言,其最多寄宿在一个节点上:
Figure FDA0002475975020000026
CPU和内存资源的保护约束:
Figure FDA0002475975020000027
其中,ωs为服务s要求的CPU资源,Ωn为实体设备PM的CPU容量,且
Figure FDA0002475975020000028
其中,Us,n是一个变量,其定义为:如果服务s寄宿在实体设备PM上则值为1,反之为0,γs为服务s的存储容量要求,Γn为实体设备PM的存储容量;
一旦一个服务被某个副本使用,此服务必须寄宿在某个节点上:
Figure FDA0002475975020000031
S2-3、链路嵌入:在每个节点上的多网络流约束可表示为:
Figure FDA0002475975020000032
Figure FDA0002475975020000033
其中,
Figure FDA0002475975020000034
是一个变量,其定义为:如果服务s1与服务s2之间的虚拟链路部署在应用程序a的副本d对应的节点n1和n2之间的实体链路上则值为1,反之为0,e表示某个实体链路PL,E表示所有实体链路PL组成的集合;其中,
Figure FDA0002475975020000035
其中,
Figure FDA0002475975020000036
是一个变量,其定义为:如果服务s1与服务s2之间的虚拟链路部署在应用程序a的副本d对应的实体链路PL上则值为1,反之为0,
Figure FDA0002475975020000037
是一个变量,其定义为:如果至少有一个应用程序a的副本通过部署在其上的服务s1与服务s2之间的虚拟链路使用实体链路PL则值为1,反之为0;
每个链路使用的总带宽不能超过总连接能力:
Figure FDA0002475975020000038
其中,
Figure FDA0002475975020000041
表示应用程序a所对应的两个服务s1,s2之间的带宽要求,Be是实体链路PL的带宽限制;
S2-4、可靠性感知约束:对于一个可用副本,它所使用的每一个单独组件必须是可用的,当一个组件被任意一个副本的服务或虚拟链路使用时即认为这个组件被此副本所使用:
Figure FDA0002475975020000042
其中,c表示某个实体组件,包括实体设备PM和实体链路PL,C为实体组件的集合,即C=N∪E,
Figure FDA0002475975020000043
是一个变量,其定义为:实体组件c被应用程序a的副本d所使用则值为1,反之为0;
单个组件的状态描述为:
Figure FDA0002475975020000044
其中,χc表示实体组件c的状态;
一个组件的失败概率:
Figure FDA0002475975020000045
基层网络状态描述为:
X=(χ12,...,χ|C|);
S3、定义目标函数,将方法所要解决的问题转换为最大化分配的应用数量:
Figure FDA0002475975020000046
实体设备PM所使用的
Figure FDA0002475975020000047
Figure FDA0002475975020000051
γs为服务s的存储容量要求,
Figure FDA0002475975020000052
S4、定义染色体Ω,具体如下:
Figure FDA0002475975020000053
其中,A1,A2,...,AU描述应用分配的顺序,其中AU表示应用程序集合A中的第U个应用程序;
Figure FDA0002475975020000054
描述如何给每个应用和每个副本分配服务的顺序,其中
Figure FDA0002475975020000055
表示服务集合S中第U个应用程序的副本δU所对应的第|SU|个服务;
Figure FDA0002475975020000056
被用于选择一个实体设备PM来运行一个给定应用的给定副本所对应的服务,其中
Figure FDA0002475975020000057
表示实体设备PM集合N中运行第U个应用程序的副本δU所对应的第|SU|个服务的实体设备PM;
S5、构建一个分布式池模型,一个集中池包含所有的遗传方法中的个体,任务将分布式地选择一个随机的个体集来进化成新的一代,在每一代中所有的个体都被存储在分布池中,每个任务可以检查结束条件,如有必要,任务可以计算下一代;
S6、译码,用一个译码方法将染色体转换成一个解空间的解,过程如下:
S6-1、将应用程序根据染色体的第一部分的值A1,A2,...,AU进行排序,如果要分配一个应用,从第一个副本开始分配,如果这个副本已被分配,检查其可用性;
S6-2、按照染色体第二部分的值
Figure FDA0002475975020000061
来确定一个给定的应用程序a的给定副本δ所对应的服务的排序;
S7、判断应用程序放置的数量或迭代次数是否达到规定值,过程如下:
S7-1、若已达到规定值,则跳到S13,方法结束得出对应解集合;
S7-2、若未达到规定值,则执行S8;
S8、计算个体的适应度;
S9、复制,复制过程采用精英策略,即根据约束条件和计算的适应度并按照一定比例选择一部分优秀个体复制形成下一代的子个体;
S10、选择交叉,交叉的两个个体,一个来自精英群体,另一个以随机方式从全部个体中产生;
S11、变异,变异操作在下一代种群中增加更多的新个体,即按照初始解空间生成相同的分布,以随机方式来选择一些个体加入新一代的解空间;
S12、返回步骤S7;
S13、结束,输出最优解。
2.根据权利要求1所述的一种基于混合云的可靠应用分配分布式遗传方法,其特征在于,所述步骤S1-1中的云环境由5个实体设备PM和8个实体链路PL组成,实体链路PL按如下方式选择,首先创建一个最小生成树,之后随机添加边直到混合云中出现8个实体链路集PL;
每个实体链路PL拥有带宽为1,对每个实体设备PM:Ωn∈{0.5,2,10,50}并且Γn∈{1,1.5,2},其中,Ωn为实体设备PM的CPU容量,Γn为实体设备PM的存储容量;
对每个实体链路PL和每个实体设备PM,失效概率从集合{0,0.025,0.05}中均匀分布的随机选择;
每个实体设备PM有一个有限的CPU容量Ω和一个有限的存储容量Γ,节点间的实体链路PL的特征是一个有限带宽B,假设实体链路PL是对称链路,节点和链路都有一个已知的故障概率,分别为pN、pL,假设故障发生时相互独立的,同时也定义一个节点和链路的可用率分别为
Figure FDA0002475975020000071
Figure FDA0002475975020000072
3.根据权利要求2所述的一种基于混合云的可靠应用分配分布式遗传方法,其特征在于,假设服务是相对应用独立的,所以不同应用可以共享同一个服务,但是虚拟链路集是应用专有的;每个服务都有一个确定的CPU容量ω和存储容量γ要求,每个虚拟链路VL要求一定量的带宽β;假设虚拟链路使用的带宽是对称的,应用要求一个最小有效值R,以及可能存在一个最大副本数δa。
4.根据权利要求1所述的一种基于混合云的可靠应用分配分布式遗传方法,其特征在于,定义CPU负载系数CLF,即被要求的CPU和云环境中可用的CPU之比,以评估输入复杂性,CPU负载系数CLF的值取0.1~1范围,且步长为0.1。
5.根据权利要求1所述的一种基于混合云的可靠应用分配分布式遗传方法,其特征在于,定义每一个包含10个应用的应用组至少有一个服务,每个应用的服务都从一个由3个服务组成的服务集合中以60%的概率随机的选择,对每个服务s:ωs在[0.2,1]的区间随机选择,而γs在[0.75,1]的区间随机选择,其中ωs为服务s要求的CPU资源,γs为服务s的存储容量要求,对每个应用程序a,所有的服务都相互连接至少|Sa|-1,且最大|Sa|双向VLs的带宽在[0.02,0.04]范围随机选择,其中,Sa为应用程序a占用的所有服务组成的集合。
6.根据权利要求1所述的一种基于混合云的可靠应用分配分布式遗传方法,其特征在于,所述步骤S4中定义染色体Ω采用一个偏随机秘钥,偏随机秘钥染色体是一个在0到1之间取值的浮点数组,被用于染色体的解码阶段进行决策,同时,利用偏随机秘钥定义解码方法。
7.根据权利要求1所述的一种基于混合云的可靠应用分配分布式遗传方法,其特征在于,所述步骤S5中分布式池模型框架基于evospace,同时取代原来的重新插入管理,增加容错机制并且使用一致的数据库,每个分布式的任务可以直接在数据库中分配一存储桶的个体,而其他的分布式任务不能选择这个被分配的存储桶,如果一个任务已经完成工作,便将已经分配过的旧的存储桶从数据库移除并且插入从下一代的存储桶中随机选择的新的个体。
8.根据权利要求1所述的一种基于混合云的可靠应用分配分布式遗传方法,其特征在于,所述步骤S6-1中如果可保证的可用性比此应用要求的可用性要高,则成功地分配了这个应用并且将尝试分配下一个应用,如果这个可用性保证低于应用要求,在还有多余的应用的副本前提下将尝试配置一个新的副本,如果可用性保证低于应用要求并且没有副本剩余,那这个应用将不能被分配并且将从分配集中移除;
所述步骤S6-2中,对于每个服务s,创建一个所有能运行服务s的PM的表L,以使得所有约束条件有效,同时必须检查每个PM的CPU和存储容量,以及相同副本的其它服务的带宽;只有服从于所有这些参数的PM才是列表L的元素,如果表L为空,便从分配集合中移除应用a,否则,如果|L|>0,方法对表L中的所有PMs排序并选择在
Figure FDA0002475975020000081
位置的PM,这个PM将作为副本δ对应服务s的主机,并且通过检测这个PM是否可以和其它服务建立网络连接分配所找到的带宽。
9.根据权利要求1所述的一种基于混合云的可靠应用分配分布式遗传方法,其特征在于,所述步骤S10中设交叉概率为0.7,即子代以0.7的概率从精英父代中获得基因,以0.3的概率从一般个体中获得基因,否则选择第二个染色体。
CN201710207785.3A 2017-03-31 2017-03-31 一种基于混合云的可靠应用分配分布式遗传方法 Expired - Fee Related CN107103360B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710207785.3A CN107103360B (zh) 2017-03-31 2017-03-31 一种基于混合云的可靠应用分配分布式遗传方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710207785.3A CN107103360B (zh) 2017-03-31 2017-03-31 一种基于混合云的可靠应用分配分布式遗传方法

Publications (2)

Publication Number Publication Date
CN107103360A CN107103360A (zh) 2017-08-29
CN107103360B true CN107103360B (zh) 2020-08-18

Family

ID=59675381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710207785.3A Expired - Fee Related CN107103360B (zh) 2017-03-31 2017-03-31 一种基于混合云的可靠应用分配分布式遗传方法

Country Status (1)

Country Link
CN (1) CN107103360B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110135584B (zh) * 2019-03-30 2022-11-18 华南理工大学 基于自适应并行遗传算法的大规模符号回归方法及系统
CN110691126B (zh) * 2019-09-25 2021-10-29 中南大学 一种物联网中提高代码覆盖率的可靠的代码分发策略
CN115150419B (zh) * 2022-09-05 2022-12-06 杭州华卓信息科技有限公司 一种混合云对象存储的配置和访问方法及系统
CN116610756B (zh) * 2023-07-17 2024-03-08 山东浪潮数据库技术有限公司 一种分布式数据库自适应副本选择方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101324854A (zh) * 2008-07-21 2008-12-17 武汉理工大学 一种基于并行遗传算法的网格资源分配方法
JP5695030B2 (ja) * 2009-04-28 2015-04-01 センティエント テクノロジーズ (バルバドス) リミテッド 資産管理及び資産取引の為の分散型進化的アルゴリズム
CN103345657B (zh) * 2013-04-02 2016-05-25 江苏大学 云计算环境下基于遗传和蚁群的任务调度方法
CN105740051B (zh) * 2016-01-27 2019-03-22 北京工业大学 基于改进的遗传算法的云计算资源调度实现方法

Also Published As

Publication number Publication date
CN107103360A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
CN107103360B (zh) 一种基于混合云的可靠应用分配分布式遗传方法
Blenk et al. Boost online virtual network embedding: Using neural networks for admission control
CN108667657B (zh) 一种面向sdn的基于局部特征信息的虚拟网络映射方法
Wang et al. Presto: Towards efficient online virtual network embedding in virtualized cloud data centers
CN108965014A (zh) QoS感知的服务链备份方法及系统
Mennes et al. GRECO: A distributed genetic algorithm for reliable application placement in hybrid clouds
Hu et al. Adaptive slave controller assignment for fault-tolerant control plane in software-defined networking
CN107453928A (zh) 一种电力通信网节点重要度评价方法及装置
CN114423023B (zh) 一种面向移动用户的5g网络边缘服务器部署方法
Candan et al. A dynamic island model for adaptive operator selection
CN112272102A (zh) 边缘网络业务卸载和调度方法及装置
CN111078380B (zh) 一种多目标任务调度方法及系统
Shukla et al. Fault tolerance based load balancing approach for web resources in cloud environment.
Keerthika et al. A multiconstrained grid scheduling algorithm with load balancing and fault tolerance
CN104348695B (zh) 一种基于人工免疫系统的虚拟网络映射方法及其系统
CN112130927B (zh) 一种可靠性增强的移动边缘计算任务卸载方法
CN111741069B (zh) 基于sdn和nfv分层式数据中心资源优化方法和系统
CN117391858A (zh) 一种基于图神经网络的归纳式区块链账户分配方法及装置
CN112787833B (zh) 内容分发网络cdn服务器的部署方法和装置
CN117311975A (zh) 大模型并行训练方法、系统及可读存储介质
CN108848027B (zh) 一种面向片上网络的最小故障链路感知映射方法
CN104022937B (zh) 一种基于细胞型p系统的虚拟网络映射方法
Abdellah et al. RAP-G: Reliability-aware service placement using genetic algorithm for deep edge computing
Wang et al. An efficient framework for online virtual network embedding in virtualized cloud data centers
CN109889573A (zh) 混合云中基于ngsa多目标的副本放置方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200818

CF01 Termination of patent right due to non-payment of annual fee