一种面向网络靶场的多目标优化虚拟机部署方法与流程

文档序号:18939494发布日期:2019-10-23 01:02阅读:213来源:国知局
一种面向网络靶场的多目标优化虚拟机部署方法与流程

本发明涉及云计算、虚拟化和网络靶场技术领域,具体涉及一种面向网络靶场的多目标优化虚拟机部署方法。



背景技术:

随着信息技术的发展,网络空间以信息为特征,成为继海、陆、空、天之后的第五维空间,对人类生产生活、社会意识形态、国家安全产生越来越重要的影响,网络空间安全问题已经成为各国关注的焦点问题,各国纷纷开始采取措施争夺主动权。

网络靶场的功能主要包括安全人员的培训、安全技术的实验、网络攻防武器的评测等。常见的网络靶场主要有三种:基于实物的高逼真靶场、基于仿真的靶场和基于虚拟化的互联网靶场。其中基于实物的高逼真靶场成本很高,基于仿真的靶场受限于仿真软件,基于虚拟化的网络靶场在灵活性以及复杂网络拓扑的构建上有所欠缺。近年来云计算的发展为网络靶场建设提供了新的解决方案,云计算平台能够通过高速网络完成对计算、存储、网络等资源的快速调度,并可实现大规模复杂网络的快速构建,无疑更适合靶场的构建。

云计算很多计算机技术融合的产物,它通过网络将一些成本较低的计算实体整合为一个拥有强大计算能力的系统,结合iaas、paas、saas等商业模式将相应的服务提供给终端用户。当前许多的云数据中心都采用了虚拟化技术,虚拟化技术可以将物理资源抽象成逻辑资源,使得一台物理服务器可以虚拟化为多台虚拟机,给数据中心带来了很多便利,但是由于物理节点的异构性以及用户资源需求的多样性,不同物理机之间往往会出现负载失衡的情况,同一物理机内不同资源的利用率也有较大差异。这一方面影响系统整体的性能,另一方面也会产生许多资源碎片,因此将虚拟机合理的部署到相应的物理机能够提升云数据中心系统性能。虚拟机部署(virtualmachinedeployment,简称vmp)问题是一种将虚拟机合理部署到物理机上的np难问题,针对该问题现有很多研究,多是从降低能耗、提高资源利用率、降低通信开销等角度优化。

但是,基于云计算的网络靶场和一般云平台有一些区别,主要体现在两个方面:一般云平台接收的虚拟机创建请求多是离散式的,虚拟机间没有密切的联系,而网络靶场是以场景为单位创建、删除虚拟机的,一个场景至少包含两个虚拟机:一个操作机,一个目标靶机,上不封顶;此外,网络靶场虚拟机间的通信只发生在同场景内,场景与场景之间是通信隔离的,而一般云计算平台对虚拟机通信关系的建模不够准确。因此,现有对云计算虚拟机部署问题的研究不适合网络靶场的情况,需要一个新的技术方案来解决这个问题。



技术实现要素:

发明目的:为了克服现有技术中存在的不足,提供一种面向网络靶场的多目标优化虚拟机部署方法,其结合网络靶场的特点解决vmp问题,在虚拟机(简称vm)请求到达时,找到一种虚拟机部署方案,使得靶场负载失衡度和虚拟机通信开销能够达到最小。

技术方案:为实现上述目的,本发明提供一种面向网络靶场的多目标优化虚拟机部署方法,包括如下步骤:

s1:获取靶场的物理机的数量m,获取每个物理机pj的cpu规格pjcpu、内存规格和带宽规格使用分别记录物理机pj已经使用的cpu、内存和带宽资源,获取待部署的虚拟机集合

令sx代表第x个场景,n代表场景的数量,获取每个虚拟机请求的cpu资源内存资源和带宽资源

s2:初始化算法所需参数α、β、ρ,以亲密度τ(0)和期望启发因子η(0)对虚拟机和物理机pj之间的亲密度τ(i,j)和期望启发因子η(i,j)进行初始化,设定控制节点的数量等同于场景数量n,当前控制节点为con1,设置最大迭代次数imax,当前迭代次数i=0,所述α代表亲密度的重要程度,β代表期望启发因子的重要程度,ρ代表亲密度挥发程度;

s3:选取第k个控制节点,记为conk,为conk初始化禁忌表tabuk={},代表已被部署的虚拟机,建立待部署虚拟机集合allowedk,tabuk+allowedk=vm,用fk表示第k个控制节点找到的解,令f(fk)表示该解对应的通信开销和负载失衡度的乘机;

s4:从集合allowedk中随机选择虚拟机计算能容纳虚拟机的物理机集合

s5:依次按顺序从步骤s4所得的物理机集合中选取物理机pj,根据期望启发因子更新式计算虚拟机和物理机pj新的期望启发因子η(i,j),其中mdi,j表示虚拟机和物理机pj资源的欧氏距离,m代表虚拟机所属场景sx中已部署的虚拟机个数,代表将虚拟机i部署到物理机j上对应的通信代价;

s6:根据虚拟机和物理机pj之间的亲密度τ(i,j)和期望启发因子η(i,j)计算虚拟机部署到物理机pj上的概率并以此概率完成部署,然后将虚拟机从allowedk移入禁忌表tabuk;

s7:更新虚拟机所选部署物理机pj剩余的资源;

s8:若allowedk为空,则跳转到步骤s9,否则跳转到步骤s4;

s9:若k小于控制节点数量n,则k=k+1,跳转到步骤s3,否则跳转到步骤s10;

s10:根据控制节点conk(k=1,2,...,n)找到的解fk,计算该解对应的目标函数f(fk),找出最小目标函数对应的解fmin;

s11:根据最优解fmin使用全局更新方式更新各虚拟机与部署的物理机的亲密度;

s12:若当前迭代次数i小于最大迭代次数imax,则i=i+1,k=0,跳转至步骤s3,否则输出全局最优解fmin。

进一步的,所述步骤s3中对应的目标函数f(fk)计算公式为:

其中,nbj代表物理机pj不同资源的负载失衡度,其中上标h代表cpu、内存和带宽3种不同资源,代表资源h的利用率,代表3中资源的平均利用率;cp代表虚拟机通信代价,其中xi,j代表虚拟机是否有通信需求,当且仅当虚拟机同属一个场景时,才会产生通信,di,j代表之间的通信距离。

是否部署到同一个物理机上来量化通信距离di,j,若部署在同一个物理机上,距离为1,部署在不同物理机上距离为2,若当前尚未部署,则暂不考虑通信关系,距离为0。

进一步的,所述步骤s6中概率的计算公式为:

其中,allowedk代表控制节点conk待部署虚拟机集合,代表能容纳虚拟机的物理机集合

本发明结合网络靶场虚拟机部署以场景为单位和场景间通信隔离的特点,参考蚁群算法的思想解决vmp问题,在虚拟机请求到达时,初始化控制节点集群和亲密度矩阵,各控制节点通过概率选择各虚拟机部署的位置,每轮迭代搜索后通过亲密度的增强和挥发实现正反馈,最后筛选出使得靶场物理机的负载失衡度和虚拟机的通信开销综合最小的方案。

有益效果:本发明与现有技术相比,参考蚁群算法的思想,结合网络靶场虚拟机部署、删除以场景为单位的特点和场景间通信隔离的特点,以减少物理机不同资源的负载失衡度和虚拟机通信开销为优化目标,计算出一种满足实际部署要求的虚拟机部署方案,减少各物理机上的资源碎片,提高网络靶场的性能,也使得靶场物理机的负载失衡度和虚拟机的通信开销实现最小化。

附图说明

图1为本发明的算法流程图;

图2为本发明算法仿真实验各场景包含的虚拟机数量图;

图3为本发明算法与随机算法和最佳适应下降算法在负载失衡度上的仿真对比图;

图4为本发明算法与随机算法和最佳适应下降算法在通信开销上的仿真对比图。

具体实施方式

下面结合附图和具体实施例,进一步阐明本发明。

本实施例中将地点设置在一个基于云计算的网络靶场中,有t台异构的物理机(异构值物理机的cpu、内存、带宽规格不同),记为集合p={p1,p2,…,pt},其中物理机pj的cpu规格、内存规格和带宽规格分别用pjcpu来表示。假设靶场接收到n个虚拟场景的创建请求,每个场景包括的虚拟机数量、虚拟机的资源需求各不相同,全部待部署的虚拟机记为集合

其中同场景的虚拟机之间有通信需求,不同场景的虚拟机通信隔离,将有通信需求的虚拟机集中部署有利于降低靶场的通信开销,但由于虚拟机的资源需求的多样性,会出现负载失衡的情况,比如将一台cpu需求很高的虚拟机部署到一台内存、带宽规格高但cpu规格低的物理机上,会产生很大的资源碎片。基于此,本实施例参考蚁群算法的思想,为待部署虚拟机选择合适的部署方案,以虚拟机通信开销和物理机资源负载失衡度为优化目标,在保证各物理机上产生资源碎片最小的同时降低虚拟机通信开销。

如图1所示,本实施例利用本发明提供的一种面向网络靶场的多目标优化虚拟机部署方法对虚拟机进行部署,其具体的过程步骤如下:

s1:获取靶场的物理机的数量m,获取每个物理机pj的cpu规格pjcpu、内存规格和带宽规格使用分别记录物理机pj已经使用的cpu、内存和带宽资源,获取待部署的虚拟机集合

令sx代表第x个场景,n代表场景的数量,获取每个虚拟机请求的cpu资源内存资源和带宽资源

s2:初始化算法所需参数α、β、ρ,以亲密度τ(0)和期望启发因子η(0)对虚拟机和物理机pj之间的亲密度τ(i,j)和期望启发因子η(i,j)进行初始化,设定控制节点的数量等同于场景数量n,当前控制节点为con1,设置最大迭代次数imax,当前迭代次数i=0,所述α代表亲密度的重要程度,β代表期望启发因子的重要程度,ρ代表亲密度挥发程度;

s3:选取第k个控制节点,记为conk,为conk初始化禁忌表tabuk={},代表已被部署的虚拟机,建立待部署虚拟机集合allowedk,tabuk+allowedk=vm,用fk表示第k个控制节点找到的解,令f(fk)表示该解对应的通信开销和负载失衡度的乘机;

s4:从集合allowedk中随机选择虚拟机计算能容纳虚拟机的物理机集合

s5:依次按顺序从步骤s4所得的物理机集合中选取物理机pj,根据期望启发因子更新式计算虚拟机和物理机pj新的期望启发因子η(i,j),其中mdi,j表示虚拟机和物理机pj资源的欧氏距离,m代表虚拟机所属场景sx中已部署的虚拟机个数,代表将虚拟机i部署到物理机j上对应的通信代价;

s6:根据虚拟机和物理机pj之间的亲密度τ(i,j)和期望启发因子η(i,j)计算虚拟机部署到物理机pj上的概率并以此概率完成部署,然后将虚拟机从allowedk移入禁忌表tabuk;

s7:更新虚拟机所选部署物理机pj剩余的资源;

s8:若allowedk为空,则跳转到步骤s9,否则跳转到步骤s4;

s9:若k小于控制节点数量n,则k=k+1,跳转到步骤s3,否则跳转到步骤s10;

s10:根据控制节点conk(k=1,2,...,n)找到的解fk,计算该解对应的目标函数f(fk),找出最小目标函数对应的解fmin;

s11:根据最优解fmin使用全局更新方式更新各虚拟机与部署的物理机的亲密度;

s12:若当前迭代次数i小于最大迭代次数imax,则i=i+1,k=0,跳转至步骤s3,否则输出全局最优解fmin。

上述步骤当中通信开销的计算方法为:

其中,xi,j代表虚拟机是否有通信需求,当且仅当虚拟机同属一个场景时,才会产生通信,

di,j代表之间的通信距离,此处用它们是否部署到同一个物理机上来量化通信距离,若部署在同一个物理机上,距离为1,部署在不同物理机上距离为2,若当前尚未部署,则暂不考虑通信关系,距离为0。

物理机pj负载失衡度的计算方法为:

其中,上标h代表cpu、内存和带宽3种不同资源,代表资源h的利用率,代表3中资源的平均利用率。

本实施例的优化目标为:

minimize:

约束条件有:所有虚拟机都要找到合适的物理机部署,每个物理机上部署的虚拟机请求资源量不能超过该物理机的规格,同一个虚拟机只能部署到一个物理机上。

实际处理过程中:

步骤s6所述的虚拟机部署到物理机pj的概率计算公式为:

其中,allowedk代表控制节点conk待部署虚拟机集合,代表能容纳虚拟机的物理机集合

步骤s11中亲密度的更新公式为:

其中,δτ是亲密度增量,根据每轮迭代搜索找到的本轮最优解求得,最优解对应的目标函数越小,增量越大。

为了验证本发明在解决vmp问题上的可行性及优势,我们进行了仿真实验,并与随机算法random和最佳适应下降算法bfd进行了比较。

1)参数设置:

本发明创建50台物理机、184台虚拟机进行实验,根据表1随机生成各物理机的资源规格和各虚拟机的资源需求,随机从1-40为各虚拟机进行所属场景编号。

表1实验环境配置表

本实施例中亲密度τ(0)初始化为0.001,控制节点数量等同于场景数量为40,亲密度的重要程度α为1,期望启发因子的重要程度β为2,亲密度挥发系数ρ为0.5,最大迭代次数imax为50次。

2)结果比较:

附图2为仿真实验中各场景包含的虚拟机数量,附图3为随机算法random、最佳适应下降算法bfd和本发明提出的mvmdnr方法对应的各物理机的负载失衡度对比图,可以看到,本发明在降低各物理机的负载失衡度上具有显著优势。

附图4为随机算法random、最佳适应下降算法bfd和本发明提出的mvmdnr方法对应的各场景的虚拟机通信开销对比图,可以看出,本发明生成的部署方案对应的虚拟机通信开销整体小于random算法和bfd算法,综合而言,本发明更具有优势,进而说明了本发明的可行性和优势。

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