一种基于区块链的云计算任务调度系统及方法技术方案

技术编号:24251262 阅读:78 留言:0更新日期:2020-05-22 23:25
本发明专利技术公开了一种基于区块链的云计算任务调度系统及方法,节点负载监测系统实时监测当前节点负载,需要进行任务迁移时,通过外部负载检测系统获取外部负载并确定迁移对象;通过节点路由系统确定迁移路由;通过节点任务迁移系统完成整个任务的迁移实现任务调度,节点负载监测系统、外部负载检测系统、节点路由系统和节点任务迁移系统共同运行在区块链网络中的每个节点中,通过区块链系统实现各节点安全查询全局记账的节点状态信息。本发明专利技术提出的基于区块链的云计算任务调度系统,考虑了异构资源与不同用户需求的情况,可以更加合理地对节点进行任务迁移调度。

A task scheduling system and method of cloud computing based on blockchain

【技术实现步骤摘要】
一种基于区块链的云计算任务调度系统及方法
本专利技术属于云计算
,具体涉及一种基于区块链的云计算任务调度系统及方法。
技术介绍
区块链是一种按照时间顺序将有效数据区块以链式形式组合而成的数据结构,也是一种通过密码学方式保证不可篡改和不可抵赖的、可附加的去中心化共享账本(Decentralizedsharedledger).广义的区块链技术是利用加密链式区块结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来编程和操作数据的一种全新的去中心化的基础架构与分布式计算范式。随着计算机技术的蓬勃发展和互联网技术的飞速进步,云计算作为一种革新性的计算模式应运而生。基础设施即服务是云计算的基础,它的核心是将数据中心的计算资源通过虚拟化技术形成资源池,并按照用户提交任务规格和资源请求进行合理的分配,为用户按需提供规模可伸缩的实体或虚拟的计算、存储和网络等资源。现有的任务调度算法主要通过设置主节点来对全网络节点进行集中式负载信息收集,再根据相关负载信息进行静态调度或者启发式调度。但是这种中心化的调度方式对于数据中心动态扩容的支持较差,尤其是分布在不同地域的数据中心。而且其在面对资源异构性强,用户需求不一致的情况时,比如说云边混合计算,效果也较差。
技术实现思路
本专利技术所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于区块链的云计算任务调度系统及方法,针对任务调度中对动态扩容的支持不够好,以及针对异构性强的资源需要区别使用不同的调度算法的现状,使用区块链技术实现对全局节点状态信息的获取以及迁移调度中的任务溯源,节点可以自由地加入与退出网络,而且能够根据当前需求选择合适的调度算法。本专利技术采用以下技术方案:一种基于区块链的云计算任务调度系统,包括节点负载监测系统,节点负载监测系统实时监测当前节点负载,需要进行任务迁移时,通过外部负载检测系统获取外部负载并确定迁移对象;通过节点路由系统确定迁移路由;通过节点任务迁移系统完成整个任务的迁移实现任务调度,节点负载监测系统、外部负载检测系统、节点路由系统和节点任务迁移系统共同运行在区块链网络中的每个节点中,通过区块链系统实现各节点安全查询全局记账的节点状态信息。具体的,节点负载监测系统在每一个节点上运行一个基于python的守护进程,每隔五分钟收集当前节点瓶颈资源信息、当前时间戳数据,经过处理计算得到一个八元组节点状态数组S作为系统资源瓶颈的参数,用于为其他节点进行任务迁移提供对本节点状态的参考。进一步的,八元组节点状态数组S包括节点ID、当前时间戳、CPU个数、CPU利用率、内存大小、内存利用率、上行带宽和下行带宽。具体的,外部负载检测系统使用区块链智能合约维护全局的节点状态,并使用区块链技术保证平台任务迁移状态,智能合约对每个节点维护一个节点状态数组S,数组S中每个节点存储一个八元组,用于表示节点的当前状态信息。进一步的,外部负载检测过程具体为:首先,调用智能合约获取最新代epoch(N)的节点状态数组,将当前状态数组与当前预估负载需求进行对比,获得可迁移节点列表,如果当前代缺少可迁移节点,说明短时间内没有节点可用或者老节点没有更新最新状态信息,这时继续查询上一代状态信息,并进行可迁移列表获取;如果持续十代都没有查询到可用节点。具体的,节点路由系统用于查找其他同伴的网络地址和专门用于服务特定对象的对等节点,节点路由系统使用分布式哈希的方式进行路由查找,当前策略使用迁移对象节点的区块链ID作为哈希表key值,在确定迁移目的节点的ID后,对区块链ID运用哈希算法SHA1得到160位的散列值,根据生成结果对目的节点附近的节点进行路由查找,直到找到目的节点。具体的,节点任务迁移系统在本地节点对节点负载监测系统中收集到的各种指标进行分析,判断当前节点是否需要进行任务迁移;如果需要迁移,当前节点根据节点自身特性选择特定的迁移策略选择待迁移任务,并得到任务的预估容器负载需求;然后通过外部负载检测系统进行外部节点负载检测,获取全局节点负载信息,并结合上一步选择的迁移策略产生拟迁移目标节点列表,选择列表首位的节点作为当前拟迁移目标节点;然后通过节点路由系统进行节点路由查找,通过分布式哈希算法获取到当前拟迁移目标节点;然后当前节点发送预估迁移任务负载到拟迁移目标节点作为请求迁移消息,如果在1s内收到拟迁移目标节点发出的拟迁移消息回复,则说明目标节点已经准备接收迁移任务;否则判断迁移失败,从拟迁移目标节点列表中选择下一个节点进行请求迁移。进一步的,确定目标节点准备接收迁移任务后,当前节点使用CRIU生成相应容器镜像;然后与目标节点建立网络连接,发送任务验证信息;目标节点对任务验证信息进行验证,验证正确则向当前节点发送确认消息;收到确认消息后,当前节点与目标节点建立对CRIU所生成的容器镜像的传输,传输完成后使用先前的任务验证消息对镜像进行验证;如果成功验证,则在目的节点继续运行任务,并更新自身状态信息,同时向当前节点发送验证成功的反馈,当前节点调用智能合约更新自身状态信息,同时根据任务信息生成区块信息以及本节点新的状态信息,调用智能合约进行全链广播。更进一步的,任务验证信息中包含任务大小,任务镜像merkle树hash,任务验证信息hash。本专利技术的另一个技术方案是,一种基于区块链的云计算任务调度方法,利用所述的基于区块链的云计算任务调度系统,包括以下步骤:S1、运行负载监测系统,确定是否需要进行任务迁移;S2、选择任务迁移,并根据全局状态获取目的迁移节点ID;S3、计算ID的哈希值,查找路由表中距离较近的节点,以找到目的节点;如果没有找到目的节点,重新选取目的迁移节点,返回重新计算ID的哈希值;S4、建立连接,生成容器镜像,发送请求迁移与内容验证消息,确定是否看会迁移确认消息;如果没有返回迁移确认消息,重新选取目的迁移节点,返回步骤S3;S5、将镜像传输到目的节点,进行内容验证,如果验证失败,返回步骤S4;S6、验证成功后,继续运行程序镜像,更新最新状态信息到区块链中,结束。与现有技术相比,本专利技术至少具有以下有益效果:本专利技术提出的基于区块链的云计算任务调度系统,通过区块链对当前分布式系统状态进行实时同步,保证了网络中各个独立节点对全局历史状态的获取;独立节点可以按照自身任务情况选择适合自己的独特的任务迁移策略,从而选定任迁移目标节点,相比于集中化的任务调度方法,本专利技术面对资源异构和不同用户需求的适应性更强。进一步的,节点负载监测系统通过获取当前节点自身的节点状态信息,以此判断是否需要迁移调度。进一步的,外部负载检测系统使用区块链技术获取最新代的全局节点信息,能够保证外部节点状态信息的可追溯以及传输过程中的完整性。进一步的,节点路由系统使用分布式哈希算法进行路由查找,相比普通的路由,当前系统使用节点id的哈希对目的节点进行查找,能够保证对于N个节点,最多查询log2(N)次就可以找到目的节点,本文档来自技高网...

【技术保护点】
1.一种基于区块链的云计算任务调度系统,其特征在于,包括节点负载监测系统,节点负载监测系统实时监测当前节点负载,需要进行任务迁移时,通过外部负载检测系统获取外部负载并确定迁移对象;通过节点路由系统确定迁移路由;通过节点任务迁移系统完成整个任务的迁移实现任务调度,节点负载监测系统、外部负载检测系统、节点路由系统和节点任务迁移系统共同运行在区块链网络中的每个节点中,通过区块链系统实现各节点安全查询全局记账的节点状态信息。/n

【技术特征摘要】
1.一种基于区块链的云计算任务调度系统,其特征在于,包括节点负载监测系统,节点负载监测系统实时监测当前节点负载,需要进行任务迁移时,通过外部负载检测系统获取外部负载并确定迁移对象;通过节点路由系统确定迁移路由;通过节点任务迁移系统完成整个任务的迁移实现任务调度,节点负载监测系统、外部负载检测系统、节点路由系统和节点任务迁移系统共同运行在区块链网络中的每个节点中,通过区块链系统实现各节点安全查询全局记账的节点状态信息。


2.根据权利要求1所述的基于区块链的云计算任务调度系统,其特征在于,节点负载监测系统在每一个节点上运行一个基于python的守护进程,每隔五分钟收集当前节点瓶颈资源信息、当前时间戳数据,经过处理计算得到一个八元组节点状态数组S作为系统资源瓶颈的参数,用于为其他节点进行任务迁移提供对本节点状态的参考。


3.根据权利要求2所述的基于区块链的云计算任务调度系统,其特征在于,八元组节点状态数组S包括节点ID、当前时间戳、CPU个数、CPU利用率、内存大小、内存利用率、上行带宽和下行带宽。


4.根据权利要求1所述的基于区块链的云计算任务调度系统,其特征在于,外部负载检测系统使用区块链智能合约维护全局的节点状态,并使用区块链技术保证平台任务迁移状态,智能合约对每个节点维护一个节点状态数组S,数组S中每个节点存储一个八元组,用于表示节点的当前状态信息。


5.根据权利要求4所述的基于区块链的云计算任务调度系统,其特征在于,外部负载检测过程具体为:首先,调用智能合约获取最新代epoch(N)的节点状态数组,将当前状态数组与当前预估负载需求进行对比,获得可迁移节点列表,如果当前代缺少可迁移节点,说明短时间内没有节点可用或者老节点没有更新最新状态信息,这时继续查询上一代状态信息,并进行可迁移列表获取;如果持续十代都没有查询到可用节点。


6.根据权利要求1所述的基于区块链的云计算任务调度系统,其特征在于,节点路由系统用于查找其他同伴的网络地址和专门用于服务特定对象的对等节点,节点路由系统使用分布式哈希的方式进行路由查找,当前策略使用迁移对象节点的区块链ID作为哈希表key值,在确定迁移目的节点的ID后,对区块链ID运用哈希算法SHA1得到160位的散列值,根据生成结果对目的节点附近的节点进行路由查找,直到找到目的节点。


7.根据权利要求1所述的基于区块链的云计算任务调度系统,其特征在于,节点任务迁移系...

【专利技术属性】
技术研发人员:伍卫国李祯华康益菲孙岚子崔舜
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1