APP下载

基于Agent的开放云联盟计算任务分段及迁移机制

2012-05-04张以利杨万扣

计算机工程与设计 2012年12期
关键词:关节点管理器个子

张以利,杨万扣

(1.南京工业职业技术学院 计算机与软件学院,江苏 南京210046;2.东南大学 自动化学院,江苏 南京211189)

0 引 言

当前,云计算技术研究正方兴未艾,多云共享技术研究已成为云计算研究的另一个重要发展方向[1]。agent技术也是近年来研究热点之一,移动agent独立于网络传输层协议之外,适合于异构平台的运行,有利于多平台系统无缝集成。基于移动agent的开放云联盟 (open cloud computing federation based on mobile agent,CCFMA),借助于移动agent技术,进行多个云平台的 “对接”,实现 “海量”资源共享。提出云联盟平台计算任务分段及迁移机制 (computing tasks sectioning and moving scheme,CTSMS),研究计算任务带权分段并以此进行位置部署,设计实现由分段机制产生的超量子任务段随agent自适应迁移机制,并给出算法实现。使开放且异构的云联盟平台计算任务安全性和私密性有了保障,解决了用户群峰值需求时巨量子任务段随移动agent的迁移而带来的云联盟平台节点负载均衡问题,从而使云服务提供商不必为可能出现的短时间峰值需求而投入额外成本。

1 构建基于移动agent的云联盟平台

基于移动agent的云联盟平台,借助移动agent技术,将多个云计算平台进行松散结合,实现资源共享,具有开放性和异构性特点[2],如图1所示。

1.1 移动agent体系结构及其通信机制

移动agent具有主动性和智能性,适合在异构开放的网络环境中提供中间件服务或应用服务。

定义1 CCFMA平台移动agent模型

云联盟平台移动agent定义为五元组模型

ID标识云联盟平台移动agent唯一性,一个节点可以存在一个或多个agent,故ID由所在云控制域、任务管理器及本地序号共同组成。type是agent属性,任务管理器据此属性确定接收的数据包是一个agent。state标识agent当前工作状态是否忙,currPara描述agent当前资源共享情况及历史信息。policy是移动agent的任务策略属性,agent根据自身情况及相关环境参数,确定是否进行迁移以及往何处迁移。

移动agent系统包括agent及其运行环境 (mobile agent environment,MAE)。移动agent在云联盟平台中的运行机制,如图1所示。移动agent携带子任务段,由任务管理器调度并派遣,或者派到本云平台agent运行环境,或者派往云联盟内其它云平台。

移动agent采取 “黑板报”通信机制。“黑板报”是在任务管理器内开辟一块为全局共享的内存区域,是任务管理器所辖区域内agent及节点信息的 “目录表”,每个agent主动向其所在任务管理器 “黑板”上 “张贴”或 “读取”相关 “黑板报”信息,是移动agent行动决策的依据。

图1 基于移动agent的云联盟平台

1.2 基于移动agent的云联盟平台的搭建

云联盟平台 (CCFMA)是由多个云平台通过移动agent而实现松散联合。每个云平台有一个或多个云控制域,这是由其地理位置及管理策略因素决定的。例如,Google在许多国家和地区都有不同的云控制域。每个云控制域往往设计一个或多个任务管理器,用于管理其所辖区域[3]。

云联盟平台实行区域管理机制。在大规模的云联盟平台下,实现集中式管理是不现实的也是不可取的。任务管理器是云联盟平台的基本管理单位,是由高性能的物理机组建而成。负责派遣携带子任务段的移动agent到云联盟平台节点的虚拟机中运行,是移动agent的访问入口。负责管理区域内负载均衡、注册和管理agent并提供索引及目录服务等。同时与本云平台以及其它云平台任务管理器定期交换节点及负载相关信息,以便对本地发出的移动agent有效跟踪并对其他区域以至其他云平台派遣出的发往本地的移动agent进行高效管理。

任务管理器采用 “黑板报”的通信机制,节点和agent目录表等重要信息都 “张贴”在位于其中的 “黑板”上,其他任务管理器可获取此 “黑板报”以掌握平台全局信息,便于决策之用。

云联盟平台的任务管理器接收到用户任务以后,便根据松散耦合的原则及子任务重要程度对计算任务进行分解及子任务安全权重赋值,并按计算任务带权分段算法对子任务链进行若干分段,任务管理器根据需要派遣若干移动agent,把这些子任务段 “加”到不同的移动agent中,再根据这些子任务段的重要程度,将这些agent指派到本地或其他云平台的虚拟机运行环境中执行[4]。

2 CCFMA平台计算任务分段及迁移机制研究

2.1 CCFMA平台计算任务带权分段机制

目前,云计算平台内部安全性研究相对成熟了,部署在云平台内部计算任务是相对安全的。但是,由于云联盟平台是开放异构的平台,各云平台有着不同的安全机制和运行方式。如果用户任务随移动agent迁移到其它平台上运行,其安全性和私密性得不到保证。恶意的节点可能窥探用户任务的内部逻辑,获取程序实现目标,进而达到窃取目的[5]。为此,系统采用计算任务带权分段机制。

定义2 CCFMA平台子任务

云联盟平台子任务S定义为一个四元组

属性i为计算任务T的序号,属性j为Ti子任务Sj序号,属性weigPriv为子任务所要求的安全权重,是体现子任务在任务Ti中重要程度的量,一般地,weigPriv值越大,其要求安全性级别越高,其在Ti中越重要。clouPosi为Sj部署位置,是一个布尔量,1为云平台内,0为其他平台。

设计算任务Ti有M个子任务Sj,即T= (S1,S2,…,Sj,…,SM)(j∈ M),分别存放在agent集合A= (agent1,agent2,…,agentj,…,agentM)中 (j∈M)。Ti的第j个子任务记作,存放该子任务的agent记作。

首先,系统将计算任务按尽量降低子任务间耦合度原则分解子任务,并以其在整个任务中的重要程度赋以安全权值,权值大小表明该子任务要求安全程度高低。然后,提取子任务链中权值较大的 “重要点”,而将提取后剩下的子段按子任务前后链接及权值累加情况再次切分提取其中“关节点”,进而形成若干新子任务段。由于云平台内部安全性较好,故将这些 “重要点”和 “关节点”留在本云平台执行,而将其它子任务段由agent携带部署到其它云平台上。最后,本云平台任务管理器再将返回结果进行任务的“综合”处理。这样,其它平台节点在执行过程中,即使发现某段 “细节”也无法得到任务的关键部分和整体,无法实现对任务的协同攻击,因而任务是安全的,保护了计算任务的私密性[6]。

系统先扫描子任务链Sj并将其所有元素位置属性clouPosi置0,同时提取Sj中安全权重达到阈值threWeig的 “重要点”元素,并将其位置属性置1,这样,Sj第一次被截得到若干子任务段;再对这些子任务段进行二次扫描。扫描并累加首个子任务段元素,当累加值达到阈值时,提取该 “关节点”并将其位置属性置1,继续扫描其余元素,扫描时从零累加权值;照此方法,扫描其余子任务段。至此,二次扫描得到了若干 “重要点”、“关节点”以及次子任务段[7]。计算任务带权分段算法如下。

算法1 计算任务带权分段算法

先将赋值所有子任务位置属性clouPosi=0

该程序段反复迭代后,子任务链Sj(j∈M)就被截为若干 “重要点”“关键点”和次子任务段。cloudPosi值为1的子任务将部署在本云平台,而其余次子任务段由于cloudPosi值为0而由移动agent携带部署到其它云平台。

举例计算任务带权分段算法

设 T= (S1,S2,…,S11),threWeig=5,S=(weigPriv,clouPosi)

图2 计算任务带权分段算法示意图

分析:第1次扫描由于安全权重值达到阈值5而提取6和10号两个 “重要点”,如图2(a)所示。第二次扫描由子任务安全权重累加值达到5而提取3和9号两个 “关节点”,如图2(b)所示。经过二次扫描后剩下4个小子任务段,如图2(c)所示。

2.2 CCFMA平台移动agent自适应迁移机制

当遇到客户群短时间峰值需求时,云平台任务管理器会有大量的计算任务聚集,根据计算任务带权分段算法,最后会得到很多 “重要点”、 “关节点”以及次子任务段。因此,在某些 “热点”区域,可能会有超量子任务 “短暂”的 “扎堆”现象,出现云联盟平台负载不均衡问题。为此,系统采用移动agent自适应迁移机制。

定义3 CCFMA云节点间距离

云联盟平台中,设有两节点nodep和nodek,其所在的实际物理节点为physp和physk,则两云节点间距离[8]定义为

distPhysp,k为物理节点physp和physk间实际距离,该量影响网络延迟和数据传输可靠性。bandAver为平台物理节点平均带宽,bandPhysp、bandPhysk为物理节点physp、physk的带宽。云节点间距离,实际上是对节点带宽、节点间实际距离及网路状况等进行综合反映,此处的节点也可以是虚拟节点。特别的,当两节点 (虚拟节点)位于同一物理节点时,由于distPhsyp,k=0,由式3得distNodep,k=0。

定义4 CCFMA平台邻节点

云联盟平台邻节点是指与节点nodei的节点间距离小于或等于预设值threDistNode的节点,记做neigNodej(j∈m)。nodei的邻节 点 N= (neigNode1,neigNode2,…,neigNodej,…,neigNodem)(j∈ m)。关于nodei与neigNodej间距离计算方法,见式 (3)。

如果agenti发现其所在节点nodei的负载loadNodei超过阈值threLoad,就寻找其邻节点中负载最小的节点neig-Nodej并与之比较,若该节点负载低于其所在节点,则agenti会自动迁移至这个负载最小的节点neigNodej。迁移后的agenti再以这个负载最小节点neigNodej为新 “据点”进行云节点间距离的计算,进而建立新的邻节点集合,并将该 “据点”负载与阈值threLoad进行比较,寻找负载更轻的节点并继续迁移。循环迭代此决策过程,直到agenti“跳”至负载低于阈值threLoad的节点[9]。否则,报告其所属任务管理器:nodei局部区域超载,该区域就会暂时停止部署新任务。

这里的 “阈值threLoad”的设置很关键,直接影响到agent迁移路径长短及用户群峰值需求问题解决,如果设置过高,则agent会在某个 “热点”节点上 “扎堆”,影响到峰值需求问题的解决,如果设置过低,则会使得agent为了寻找到低负载节点而不断迁移,并最终向任务管理器报告区域超载假象。为了避免后一种情况频繁发生,可设置agent“跳数”阈值,用来适当限定agent“跳数”。移动agent自适应迁移算法如下。

算法2 移动agent自适应迁移算法

输入携带子任务的agenti

3 仿真实验及性能分析

仿真实验计算任务:通过房价相关数据统计近20年中国房价变化情况,进而分析今后20年中国房价变化趋势。假设取25个 “代表省份”,每个省取20个 “代表城市”进行分析。

子任务分解如下:各 “代表城市”房价情况有500个子任务,各 “代表省份”房价情况有25个子任务,中国房价情况及变化趋势有1个子任务。

实验软硬件及参数设置:使用云平台A和云平台B仿真云联盟平台,A、B两云平台的软硬件配置相同。任务管理器task manager各1台,主机pc各40台,系统 WindowsXP,云平台 Hadoop,agent平台IKV++Grasshopper,开发语言和工具为java和Eclipse3.3。任务管理器功能和结构由程序事先产生,其余节点处理能力相同。

计算任务按低耦合原则分解子任务526个。按安全权重值赋予3个子任务类别:A类 “中国房价情况及变化趋势”1个,安全权重最高:weigPriv=15,B类 “代表省份”25,安全权重较高:weigPriv=10,而C类 “代表城市”500个,weigPriv=1。安全权重阈值设置threWeig=10,移动agent的 “跳数”阈值设置threStep=15。

3.1 计算任务带权分段机制有效性分析

容易得出A类和B类子任务由于其安全权重都达到10而首轮扫描即被 “选中”为 “重要点”。500个子任务由于其安全权重较低,经过第二次扫描后,将被分成若干子任务段。10个子任务的权重累计和才达到10,因而第10个才被提取为 “关节点”,以此类推。这526个子任务共提取“重要点”26个,提取 “关节点”50个,共被截50个次子任务段。

这些 “重要点”和 “关节点”的位置属性cloudPosi置1,即这些子任务留在本云平台执行,而50个子任务段则由任务管理器派遣移动agent携带到云联盟内其它平台执行。

实例分析:实例任务的 “代表省份房价情况”和 “中国房价情况及变化趋势”都是分析结论部分,当然是整个计算任务重要部分,而按照分段机制,这26个子任务均部署在本云平台上执行,其安全性当然会得到保障。500个子任务 “代表城市房价情况”尽管大部分被移动agent携带到云联盟内其它云平台上执行,其安全性及私密性同样可以保证。因为,按照分段机制这500个子任务经过二次扫描被分割50段,并且每连续的10个子任务中第10个 (即“关节点”)就要被 “提取”出来,并留在本云平台中执行,并且它们是安全权重累加值未达到权重阈值,其在全局任务中占据的重要程度较低。也就是说,送到云联盟内其它云平台上执行的子任务不是连续的,且在全局中的重要性较低,“恶意”节点即使得到子任务代码并进行分析,也无法分析到全局性的任务。

由此可见,CCFMA平台计算任务带权分段机制及其算法是有效的。

3.2 移动agent自适应迁移机制有效性验证

仿真实验中,设用户向云平台A的任务管理器提交任务。计算任务共分解526个子任务,其中有26个 “重要点”和50个 “关节点”部署在云平台A,而50个子任务段则由云平台A任务管理器派遣移动agent携带到云平台B执行,按移动agent自适应迁移机制运行。

对比实验中,携带子任务段的移动agent被派遣到云平台B的某位置后,仅受任务管理器调度而被动移动,自身不会随环境变化而自适应迁移。其它条件与仿真实验完全相同。

定义5 总体标准偏差

总体标准偏差 (overall standard deviation,OSD),以给定的样本作为总体来求标准偏差,是一个用来反映样本总体相对于样本平均值的离散程度的量。此处用来反映各节点负载相对于平台平均负载的离散程度[10]

式中:xi——节点nodei负载,——平台节点负载平均值,n——节点数量。

从任务管理器派遣的移动agent开始移动后,每隔500s记录一次节点负载数据。各节点负载总体标准偏差随时间变化情况,如图3所示。

图3 各节点负载总体标准偏差随时间变化情况

两组实验在各节点负载均衡方面的比较。由图3可以看出,CTSMS实验数据线总体标准方差下降速度比对比实验要来得快,随后很快稳定下来,而对比实验在开始的时候还不很稳定。这是由于仿真实验设计使用移动agent自适应迁移机制,携带子任务的移动agent被派遣到云平台B后,会根据所在节点及周围节点负载情况进行决策,按预设负载阈值寻找低负载节点并自动迁移。而对比实验中移动agent自身不会随环境变化而自适应迁移,仅靠任务管理器来分配,所以下降速度较慢,并且在任务执行的初期表现出一定的随机性。

4 结束语

基于移动agent的云联盟平台 (CCFMA),借助移动agent技术,实现多个云计算平台的 “对接”。采用计算任务分段及迁移机制,研究计算任务带权分段并以此进行位置部署,设计实现由分段机制产生的超量子任务段随agent自适应迁移机制,并给出算法实现。。使开放且异构的云联盟平台计算任务安全性有了保障,解决了用户群峰值需求时超量子任务段随移动agent迁移而带来节点负载均衡问题,从而使云服务提供商 (CSP)不必为可能出现的短时间用户群峰值需求而投入额外成本。

[1]LIU Xiaoqian.Research on data center structure and scheduling mechanism in cloud computing [D].Hefei:University of Science and Technology of China,2011 (in Chinese). [刘晓茜.云计算数据中心结构及其调度机制研究 [D].合肥:中国科学技术大学,2011.]

[2]XU Xiaolong,CHENG Chunling,XIONG Jingyi,et al.Mobile agent-based secure task partitioning and allocation algorithm for cloud &client computing[J].Transactions of Beijing Institute of Technology,2011,31 (8):922-926 (in Chinese). [徐小龙,程春玲,熊婧夷,等.一种基于移动Agent的云端计算任务安全分割与分配算法 [J].北京理工大学学报,2011,31(8):922-926.]

[3]LI Jing,HAN Qiyun.Resource cooperative discovery model in virtual computing systems [J].Computer Engineering,2012,38 (10):48-50 (in Chinese).[李静,韩起云.虚拟计算系统中资源协同发现模型 [J].计算机工程,2012,38 (10):48-50.]

[4] Mell J,Grance T.The NIST definition of cloud computing[EB/OL].[2011-10-20].http://csrc.nist.gov/publications/drafts/800-145/Draft-SP-800-145_cloud-definition.pdf.

[5]LIU Fan,YANG Ming.Ciphertext policy attribute based encryption scheme for cloud storage [J].Application Research of Computers,2012,29 (4):1452-1456 (in Chinese). [刘帆,杨明.一种用于云存储的密文策略属性基加密方案 [J].计算机应用研究,2012,29 (4):1452-1456.]

[6]Iosup A,Ostermann S,Yigitbasi M N.Performance analysis of cloud computing services for many-tasks scientific computing[J].IEEE Trans.on Parallel and Distributed System,2011,22 (6):931-945.

[7]Boss G,Malladi P.Cloud computing [EB/OL].[2011-10-20].http://www.jbm.com/developerworkers/websphere/zones/hipods/.

[8]ZHANG Zehua.Research on model and key realization issues of cloud computing federation [D].Kunming:Yunnan University,2010(in Chinese).[张泽华.云计算联盟建模及实现的关键技术研究 [D].昆明:云南大学,2010.]

[9]SHEN Lijun,LIU Li,LU Rui,et al.Task scheduling in cloud computing based on improved immune evolutionary algorithm[J].Computer Engineering,2012,38 (9):208-210 (in Chinese).[申丽君,刘丽,陆锐,等.基于改进免疫进化算法的云计算任务调度 [J].计算机工程,2012,38 (9):208-210.]

[10]CHENG Miao,CHEN Huaping.Weblog mining based on Hadoop[J].Computer Engineering,2011,37 (11):37-39 (in Chinese). [程苗,陈华平.基于Hadoop的 Web日志挖掘[J].计算机工程,2011,37 (11):37-39.]

猜你喜欢

关节点管理器个子
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
关节点连接历史图与卷积神经网络结合的双人交互动作识别
启动Windows11任务管理器的几种方法
应急状态启动磁盘管理器
Windows文件缓冲处理技术概述
难怪个子长不高
搞好新形势下军营美术活动需把握的关节点
RGBD人体行为识别中的自适应特征选择方法
说说我的脚
机智的回答