本发明涉及边缘计算技术领域,具体涉及一种基于资源占用的边缘服务迁移仿真方法。
背景技术:
边缘计算是继云计算后的一种新的物联网服务提供方式,它具有低延迟,多租户,实时交互,情景感知,实时分析以及支持移动性,异构性和工业应用等特点。边缘计算的应用非常广泛特别是当前5g通信的时代,例如智能城市、智能家庭、智能网格、智能健康和用于洪水监测和恢复的紧急响应系统等杰出服务。然而,相比于云计算来说,边缘计算是资源受限,对于不同的边缘节点所能承受的边缘服务的类型和数量都是不一样的。因而,在边缘资源利用达到某个范围时,将边缘节点上的服务部分或全部迁移到其他边缘节点继续提供服务。也就是在保证边缘服务正常的运行下,合理的迁移边缘服务。然而,如果将没有通过完全测试的边缘服务迁移算法直接应用于实际的边缘节点中,可能不会达到理想的效果。因此,需要一种仿真系统来得到边缘服务迁移算法在实验环境下测试边缘服务迁移算法的性能以及调节相关的参数,这样不仅能够得到边缘服务迁移算法的理论值,而且节约迁移服务在实际应用中多次的部署成本。
技术实现要素:
本发明所要解决的是现有边缘服务迁移算法没有通过完全测试便直接应用于实际的边缘节点中,可能不会达到理想的效果的问题,提供一种基于资源占用的边缘服务迁移仿真方法。
为解决上述问题,本发明是通过以下技术方案实现的:
一种基于资源占用的边缘服务迁移仿真方法,包括步骤如下:
步骤1、读取资源配置文件获得配置信息,其中配置信息包括边缘节点配置信息和边缘服务配置信息;
步骤2、读取到配置信息后,基于配置信息中的边缘节点配置信息创建边缘节点;
步骤3、成功创建边缘节点后,基于配置信息中的边缘服务配置信息为每个边缘节点创建各自的边缘服务;
步骤4、判断所有边缘节点里面是否还拥有边缘服务:如果是,则转至步骤5;否则,算法结束;
步骤5、启动边缘服务仿真,对边缘服务和边缘节点进行更新;
步骤6、更新完边缘服务以及边缘节点后,获取并记录边缘服务的日志信息到边缘服务日志文件中,同时获取并记录边缘节点的日志信息到边缘节点日志文件中;
步骤7、基于边缘服务的日志信息和边缘节点的日志信息,计算每个边缘节点的节点评估值
步骤8、计算当前边缘节点的每个边缘服务的服务评估值
步骤9、计算当前待迁移服务迁移到各个边缘节点后,各个边缘节点的预评估值
步骤10、将当前待迁移服务迁移到迁移目的地,迁移完成后,返回步骤4。
上述方法中,边缘节点配置信息包括,包括边缘节点的数量和每个边缘节点所拥有的资源;边缘服务配置信息包括每个边缘节点的边缘服务的数量和每个服务对资源的初始需求。
上述方法中,边缘服务的日志信息包括边缘服务所在的边缘节点,运行时间,以及边缘服务对每钟边缘资源占用的数量。
上述方法中,边缘节点的日志信息包括每个边缘节点上的服务数量和边缘节点每种资源的消耗数量。
上述方法中,第e个边缘节点的评估值
式中:re表示第e个边缘节点的资源种类数量,
上述方法中,第e个边缘节点的第sk个服务的评估值
式中:re表示节点e的资源种类数量,
上述方法中,第e个边缘节点的预评估值
式中:re表示节点e的资源种类数量,
上述方法中,云中心的资源数量大于所有边缘节点的资源数量的总和。
与现有技术相比,本发明能够实时的收集获取边缘节点以及边缘服务对资源的利用情况并利用边缘服务迁移算法实时动态的迁移边缘服务,使得边缘节点上的边缘服务为用户提供优质的体验以及动态的了解边缘节点,边缘服务的资源利用情况可以用于开发不同的边缘服务迁移算法。利用该系统完成了边缘节点以及服务的资源监控,根据资源的消耗动态的迁移边缘服务。本发明为开发边缘服务迁移算法提供一个仿真验证平台,以保证边缘节点以及边缘服务的正常高效的运行。
附图说明
图1为一种基于资源占用的边缘服务迁移仿真系统的原理示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本发明进一步详细说明。
一种基于资源占用的边缘服务迁移仿真方法,包括边缘节点及其上的边缘服务创建(creation)和边缘服务迁移仿真(simulation)两部分。
步骤1、边缘节点及其上的边缘服务创建(creation)
步骤1.1、读取边缘服务与边缘节点的配置文件(configurefile)得到配置信息。如果未读取到配置信息,则再次读取,如果始终未读取到配置信息则此次运行结束。
上述配置信息包括:边缘节点的数量e',其中所有的边缘节点ei构成一个边缘节点向量e如(1)所示;边缘节点i所拥有的服务的数量为si,所有的边缘节点上的边缘服务构成了一个边缘服务矩阵s如公式(2)所示,其中
e=[e1,e2,...,ee,...,ee'](1)
每个边缘节点上的边缘服务s为:
资源的种类scr为:
每个服务的资源数量:
每个边缘节点全部的资源种类及其资源数量
步骤1.2、如果读取到配置信息,则基于边缘节点配置信息创建边缘节点(即创建一个代表边缘计算节点的对象),如果创建失败则结束(由于该仿真程序运行的机器不能支持程序运行)。
步骤1.3、在成功创建边缘节点后,就基于边缘服务配置信息每个边缘节点创建各自的边缘服务(即边缘节点创建属于自己的边缘服务对象)。
当创建完配置信息中每个边缘节点所要求的边缘服务数量后进入仿真部分。
步骤2、边缘服务迁移仿真(simulation)过程
步骤2.1、首先判断所有边缘节点是否还拥有边缘服务,如果所有的边缘节点都没有边缘服务,则仿真结束,如果还有边缘服务,则启动边缘服务的仿真。
由于在本发明的边缘服务仿真系统中设置了一个资源数量远大于所有边缘节点的一个对象用于代表云中心,当所有边缘节点都不再满足服务迁移的要求时就将边缘服务迁移到云中心继续提供服务,从而避免相应的边缘服务停止提供服务,因此当所有的边缘节点上都不存在任何服务时,则仿真停止。
步骤2.2、启动边缘服务仿真,对边缘服务和边缘节点资源进行更新。
用
在得到所有边缘节点的所有服务资源的改变量后,通过公式(8)更新所有边缘节点上所有边缘服务的资源占用量。
scr=scr+newscr(8)
步骤2.3、在更新完边缘服务以及边缘节点后,获取并记录边缘节点的日志信息到边缘节点日志文件(edgenodelogfile)中,同时获取并记录边缘服务的日志信息到边缘服务日志文件(edgeservicelogfile)中。
边缘服务的日志信息包括边缘服务所在的边缘节点,运行时间,以及边缘服务对每钟边缘资源占用的数量。边缘节点的日志信息包括每个边缘节点上的服务数量和边缘节点每种资源的消耗数量,其中
步骤2.4、在获取到边缘节点和边缘服务的日志信息后,基于日志信息计算每个边缘节点的节点评估值
每个边缘节点的节点评估值
步骤2.5、计算当前边缘节点的每个边缘服务的服务评估值
边缘节点e的第sk个边缘服务的服务评估值
待迁移服务
步骤2.6、评估所有的边缘节点是否满足待迁移边缘服务的需求,即假定将待迁移服务迁移到各个边缘节点,并计算各个边缘节点的预评估值
另外,在选择迁移目的边缘节点时,如果边缘节点的预评估值
预评估值
目的边缘节点dest为:
步骤2.7、停止当前待迁移边缘服务的运行,并将其迁移到步骤2.6所确定的迁移目的地中,迁移完成后,返回步骤2.1,继续判断所有的边缘节点是否还存在边缘服务,如果还有则继续仿真,如果没有则结束仿真。
此边缘服务仿真过程是用于获得不同边缘节点服务迁移的最优阈值thresholde(每个边缘节点服务迁移的最优阈值不同主要是边缘设备资源的异构性导致的),从而指导实际生产中边缘服务迁移算法的部署与实施。
基于上述方法所设计的一种基于资源占用的边缘服务迁移仿真系统,如图1所示,由边缘节点创建模块、日志模块和仿真模块组成。
所述边缘节点创建模块包括边缘服务配置模块、边缘节点配置模块、边缘服务创建模块,其中:
边缘服务配置模块,读取并获取从资源配置文件中的边缘服务的资源配置信息,包括每个边缘节点的边缘服务的数量,以及每个服务对资源的初始需求(例如cpu,ram,storage等)。
边缘节点配置模块,读取并获取从资源配置文件中的边缘节点的资源配置信息,包括边缘节点的数量,以及每个边缘节点所拥有的资源(例如cpu,ram,storage等)。
边缘服务创建模块,边缘节点配置模块,通过边缘节点配置模块所获取到的边缘服务信息和边缘服务创建模块所创建的边缘服,用于创建边缘节点及其之上的边缘服务。
所述日志模块包括边缘服务日志模块和边缘节点日志模块,其中:
边缘服务日志模块,将实时获取的边缘服务对各种资源的使用情况(例如cpu,ram,storage等)反馈给边缘节点日志模块,并输出到边缘服务日志文件。
边缘节点日志模块,综合所有从边缘服务日志模块得到的资源使用情况,反馈给边缘服务迁移模块,并输出到边缘节点日志文件,其中包括边缘每个边缘节点上的服务数量,以及每个边缘服务对资源的占用数量。
所述仿真模块包括边缘服务更新模块、边缘节点更新模块和边缘服务迁移模块,其中:
边缘服务更新模块,用于更新边缘服务的资源利用情况,并调用边缘服务日志模块更新和反馈日志信息。
边缘节点更新模块,用于更新边缘节点的资源利用情况,并调用边缘节点日志模块更新和反馈日志信息。
边缘服务迁移模块,通过在边缘节点日志模块得到的日志信息,通过边缘服务迁移算法动态的迁移边缘服务。
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。