专利名称:互联网云计算资源虚拟化封装系统及方法
技术领域:
本发明属于云计算领域,具体涉及一种互联网云计算资源虚拟化封装系统及方法。
背景技术:
云计算(CloudComputing)是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(NetworkStorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。·通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和储存系统。互联网云计算环境在给人们带来无限的计算与储存等诸多好处的同时,由于计算节点数量庞大、节点种类繁多、节点应用软件十分丰富等也产生了诸多问题。维护和管理庞大而种类繁多的计算节点极具挑战管理层要实时的获取每个计算节点的在线状态、计算能力、存储能力以及任务的运行情况。如该计算节点具有什么样的硬件平台(CPU的位数、内存、磁盘的大小以及网络的带宽等等);该计算节点有什么样的操作系统、可具有哪些服务能力(可以为HTTP/FTP服务吗?是否可以编译和执行C99程序等等);该节点都有哪些任务在运行,这些任务都分别运行了多长时间,他们都使用多少资源
坐坐待自
寸寸I I=I尼、o一个计算平台可能要为成千上万种应用提供计算和存储服务,这些应用都怎么样来接收与运行,运行后的结果又怎么样的返回。为每种应用单独开发一套接口和单独管理每种应用肯定是一种噩梦。
发明内容
为克服上述缺陷,本发明提供了一种互联网云计算资源虚拟化封装系统及方法,具有对用户透明、对应用软件透明、高的执行效率、高容错性的特点。为实现上述目的,本发明提供一种互联网云计算资源虚拟化封装系统,包括任务代理层、应用文件服务器和资源代理层,其改进之处在于,所述系统包括分别与所述任务代理层、所述应用文件服务器、和所述资源代理层通信的封装装置。本发明提供的优选技术方案中,所述封装装置,包括虚拟机、虚拟机控制模块和信息显示模块;所述虚拟机控制模块对所述虚拟机进行控制;所述信息显示模块将从所述虚拟机接收的信息进行显示。本发明提供的第二优选技术方案中,所述信息显示模块将从所述虚拟机接收的信息包括动态信息、静态信息和任务信息。本发明提供的第三优选技术方案中,所述虚拟机,包括任务接收模块、任务准备模块、任务下载模块、任务执行模块、资源分析模块、资源执行模块、资源生成模块和资源发布模块;所述任务接收模块将从所述任务代理层接收的任务信息传递到所述任务准备模块;所述任务准备模块,和所述任务下载模块交互,准备任务执行的目录和环境;所述任务下载模块,下载应用文件,下载完成后对应用文件做一致性校验;所述任务执行模块启动进程执行任务;所述资源分析模块、所述资源执行模块、所述资源生成模块和所述资源发布模块依次连接。本发明提供的第四优选技术方案中,所述任务接收模块,从所述任务代理层接收任务下发信息和任务中止信息,并对外提供Socket接口,接收处理前检查当前是否有空闲的任务执行队列,如果有则将任务交给所述任务准备模块,否则返回错误信息。本发明提供的第五优选技术方案中,所述任务准备模块,与所述下载模块进行交互,用于准备任务执行的目录和环境。本发明提供的第六优选技术方案中,所述任务下载模块,下载应用文件,下载完成后对应用文件做一致性校验。本发明提供的第七优选技术方案中,所述资源分析模块,从所述任务接收模块中接收资源采集任务信息,对资源采集任务信息进行分析,并将资源采集任务信息转换后发给所述资源执行模块。本发明提供的第八优选技术方案中,资源采集任务信息包括采集的对象、频率和次数。本发明提供的第九优选技术方案中,所述资源执行模块,采集对象信息,并将采集结果发送给所述资源生成模块。本发明提供的第十优选技术方`案中,所述资源生成模块,从资源执行模块得到采集的对象信息,根据对象的类型找到对应的资源,并对资源进行更新。本发明提供的较优选技术方案中,所述资源发布模块,从资源上得到每个节点的信息,发布给资源代理层。本发明提供的第二较优选技术方案中,提供一种互联网云计算资源虚拟化封装方法,其改进之处在于,所述方法分别对任务和资源进行封装。本发明提供的第三较优选技术方案中,所述任务封装包括如下步骤(I) 接受任务;⑵.进行任务准备;(3).根据应用,对任务进行下载;(4).执行下载的任务;(5).任务结束。本发明提供的第四较优选技术方案中,任务封装内容,包括应用标识、代码相关信息、执行环境要求信息和结果返回信息。本发明提供的第五较优选技术方案中,应用标识,用于标识一种应用的一次任务,用于对任务的执行情况进行监控和执行结果的标识。本发明提供的第六较优选技术方案中,代码相关信息,用于描述应用程序、可执行脚本、参数文件的名称和具体的下载地址,以及与任务对应的md5值。本发明提供的第七较优选技术方案中,执行环境要求信息,包括软件方面信息和硬件方面信息;硬件方面信息包括CPU位数、可用内存的大小、可用硬盘的大小和网络带宽;软件方面信息包括对操作系统和库文件的要求。本发明提供的第八较优选技术方案中,结果返回信息,包括返回地址、用户名、密码和结果存放的绝对路径。本发明提供的第九较优选技术方案中,在所述步骤I中,检查是否有空闲的任务执行队列,如果没有则返回错误信息给任务代理层,否则检测任务参数是否按定义好的封装形式进行下发的,如果不正确则返回详细错误信息给任务代理层;判断任务类型,如果为资源采集任务则根据采集需求的描述,执行采集发布任务;如果为普通任务则加入任务准备队列,等待执行操作。本发明提供的第十较优选技术方案中,在所述步骤2包括如下步骤(2-1).从任务准备队列中获取等待执行的任务,然后根据任务标识在本地创建任务运行目录并开始记录日志;(2-2).检查本地是否存在任务的应用执行程序和启动脚本,如果不存在则下载应用可执行程序和启动脚 本;(2-3).下载启动脚本和参数文件。(2-4).对可执行程序、启动脚本和参数文件进行检验,判断md5值是否与任务参数中的md5值一致;(2-5).给相应可执行程序和脚本授权,加入任务执行队列,等待任务执行模块的执行。本发明提供的再优选技术方案中,在所述步骤3中,从接收任务信息中的应用文件下载地址列表中选择一个优先级较高的下载地址下载应用文件,当下载失败时则尝试下载列表中其他地址下载,如果全部下载地址都未下载成功,则等待I分钟后重试;当重试次数超过I小时标记任务下载失败返回给应用网关;当下载成功后将可执行程序和脚本缓存到本地,更新资源树,并将下载信息发布出去,准备为其它虚拟节点提供应用程序下载服务。本发明提供的第二再优选技术方案中,应用文件下载地址列表,是基于优先级的有序列表,由任务代理层的任务调度算法根据不同的虚拟节点到相应可执行程序缓存服务器的网络延迟和服务器的性能动态生成。本发明提供的第三再优选技术方案中,所述步骤4包括如下步骤,(4-1).启动需要执行的任务的进程;(4-2) 获得进程的ID;(4-3).进程不停的汇报当前程序的执行情况;(4-4).启动任务监控进程。本发明提供的第四再优选技术方案中,在所述步骤4-4中,通过任务进程ID判断进程的执行时间,判断是否超出估算时间,超时则将该任务停止,否则更新任务状态。本发明提供的第五再优选技术方案中,在所述步骤5中,进程可以根据任务ID在资源树中找到对应的进程ID,如果任务还在运行则杀死运行进程,并返回信息。本发明提供的第六再优选技术方案中,所述资源封装包括如下步骤(a).分析资源信息;
(b).执行资源采集;(c) 生成资源信息;(d).发布资源信息。本发明提供的第七再优选技术方案中,所述资源封装内容,包括硬件方面信息、系统方面信息和应用方面信息。本发明提供的第八再优选技术方案中,硬件方面信息包括采集虚拟资源的CPU的架构、颗数、位数、频率和使用率,内存的大小和可用情况,硬盘的大小、类型和可有情况,网络的带宽、接入方式和使用率;系统方面信息包括内核的版本、系统运行时间、各种库的安装情况以及各种服务的安装情况;应用方面信息包括应用的运行时间、应用的种类和应用的运行状态。本发明提供的第九再优选技术方案中,所述步骤a包括如下步骤,(a-1).解析任务需要采集哪些对象信息;(a-2).将对象信 息以参数的形式保存到对象列表中,等待执行,然后从任务队列中取出下一条任务。本发明提供的第十再优选技术方案中,对象信息,包括应用运行情况、硬件资源使用情况、操作系统信息和采集对象频率。本发明提供的还优选技术方案中,在所述步骤b中从资源分析模块的对象列表中取去一组对象信息,进行参数解析,采集对象信息,将采集结果加入到结果队列中,然后从对象队列中取出下一个对象进行采集。本发明提供的第二还优选技术方案中,在所述步骤c中从对象队列中取出一组对象采集结果,根据对象的ID找到对应资源上的节点并调用系统的设置函数更新此节点的数值。本发明提供的第三还优选技术方案中,所述步骤d中定期遍历整个资源,获得满足此更新频率的每个节点的数值,然后将结果发布给资源代理层。与现有技术比,本发明提供的一种互联网云计算资源虚拟化封装系统及方法,通过此模型使用户可以使用无限的计算资源、网络资源和存储资源;用户不必关心具体的计算节点,更不用担心计算节点是否会出现故障;具有对用户透明、对应用软件透明、高的执行效率、高容错性等多个特点。
图1为任务封装接口示意图。图2为任务封装接口参数示意图。图3为任务接收流程图。图4为任务准备流程图。图5为任务下载流程图。图6为任务执行流程图。图7为资源分析流程图。图8为资源获得流程图。图9为资源封装结构示意图。
图10为资源生成流程图。图11为资源发布流程图。
具体实施例方式如图1所示,互联网云计算资源虚拟化封装系统,互联网云计算资源虚拟化封装系统,包括任务代理层、应用文件服务器、虚拟资源代理单元、消息中间件和资源代理层,以及分别与所述任务代理层、所述应用文件服务器、所述虚拟资源代理单元、所述消息中间件和所述资源代理层通信的封装装置。所述封装装置,包括虚拟机、虚拟机控制模块和信息显示模块;所述虚拟机控制模块对所述虚拟机进行控制;所述信息显示模块将从所述虚拟机接收的信息进行显示。所述信息显示模块将从所述虚拟机接收的信息包括动态信息、静态信息和任务信息。所述虚拟机,包括 任务接收模块、任务准备模块、任务下载模块、任务执行模块、资源分析模块、资源执行模块、资源生成模块和资源发布模块;所述任务接收模块将从所述任务代理层接收的任务信息传递到所述任务准备模块;所述任务准备模块,和所述任务下载模块交互,准备任务执行的目录和环境;所述任务下载模块,下载应用文件,下载完成后对应用文件做一致性校验;所述任务执行模块启动进程执行任务;所述资源分析模块、所述资源执行模块、所述资源生成模块和所述资源发布模块依次连接。所述任务接收模块,从所述任务代理层接收任务下发信息和任务中止信息,并对外提供Socket接口,接收处理前检查当前是否有空闲的任务执行队列,如果有则将任务交给所述任务准备模块,否则返回错误信息。所述任务准备模块,与所述下载模块进行交互,用于准备任务执行的目录和环境。所述任务下载模块,下载应用文件,下载完成后对应用文件做一致性校验。所述资源分析模块,从所述任务接收模块中接收资源采集任务信息,对资源采集任务信息进行分析,并将资源采集任务信息转换后发给所述资源执行模块。资源采集任务信息包括采集的对象、频率和次数。所述资源执行模块,采集对象信息,并将采集结果发送给所述资源生成模块。所述资源生成模块,从资源执行模块得到采集的对象信息,根据对象的类型找到对应的资源,并对资源进行更新。所述资源发布模块,从资源上得到每个节点的信息,发布给资源代理层。一种互联网云计算资源虚拟化封装方法,所述方法分别对任务和资源进行封装。所述任务封装包括如下步骤(I) 接受任务;(2).进行任务准备;(3).根据应用,对任务进行下载;(4).执行下载的任务;(5).任务结束。如图2所示,任务封装内容,包括应用标识、代码相关信息、执行环境要求信息和结果返回信息。
应用标识,用于标识一种应用的一次任务,用于对任务的执行情况进行监控和执行结果的标识。代码相关信息,用于描述应用程序、可执行脚本、参数文件的名称和具体的下载地址,以及与任务对应的md5值。执行环境要求信息,包括软件方面信息和硬件方面信息;硬件方面信息包括CPU位数、可用内存的大小、可用硬盘的大小和网络带宽;软件方面信息包括对操作系统和库文件的要求。结果返回信息,包括返回地址、用户名、密码和结果存放的绝对路径。如图3所示,在所述步骤I中,检查是否有空闲的任务执行队列,如果没有则返回错误信息给任务代理层,否则检测任务参数是否按定义好的封装形式进行下发的,如果不正确则返回详细错误信息给任务代理层;判断任务类型,如果为资源采集任务则根据采集需求的描述,执行采集发布任务;如果为普通任务则加入任务准备队列,等待执行操作。如图4所示,在所述步骤2包括如下步骤(2-1).从任务准备队列中获取等待执行的任务,然后根据任务标识在本地创建任务运行目录并开始记录日志;(2-2).检查本地是否存在任务的应用执行程序和启动脚本,如果不存在则下载应用可执行程序和启动脚本;(2-3).下载启动脚本和参数文件。(2-4).对可执行程序、启动脚本和参数文件进行检验,判断md5值是否与任务参数中的md5值一致; (2-5).给相应可执行程序和脚本授权,加入任务执行队列,等待任务执行模块的执行。如图5所示,在所述步骤3中,从接收任务信息中的应用文件下载地址列表中选择一个优先级较高的下载地址下载应用文件,当下载失败时则尝试下载列表中其他地址下载,如果全部下载地址都未下载成功,则等待I分钟后重试;当重试次数超过I小时标记任务下载失败返回给应用网关;当下载成功后将可执行程序和脚本缓存到本地,更新资源树,并将下载信息发布出去,准备为其它虚拟节点提供应用程序下载服务。应用文件下载地址列表,是基于优先级的有序列表,由任务代理层的任务调度算法根据不同的虚拟节点到相应可执行程序缓存服务器的网络延迟和服务器的性能动态生成。如图6所示,所述步骤4包括如下步骤,(4-1).启动需要执行的任务的进程;(4-2) 获得进程的ID;(4-3).进程不停的汇报当前程序的执行情况;(4-4).启动任务监控进程。在所述步骤4-4中,通过任务进程ID判断进程的执行时间,判断是否超出估算时间,超时则将该任务停止,否则更新任务状态。在所述步骤5中,进程可以根据任务ID在资源树中找到对应的进程ID,如果任务还在运行则杀死运行进程,并返回信息。
所述资源封装包括如下步骤(a).分析资源信息;(b).执行资源采集;(c).生成资源信息;(d).发布资源信息。如图9所示,所述资源封装内容,包括硬件方面信息、系统方面信息和应用方面信息。硬件方面信息包括采集虚拟资源的CPU的架构、颗数、位数、频率和使用率,内存的大小和可用情况,硬盘的大小、类型和可有情况,网络的带宽、接入方式和使用率;系统方面信息包括内核的版本、系统运行时间、各种库的安装情况以及各种服务的安装情况;应用方面信息包括应用的运行时间、应用的种类和应用的运行状态。如图7所示,所述步骤a包括如下步骤,(a-1).解析任务需要采集哪些对象信息;(a-2).将对象信息以参数的形式保存到对象列表中,等待执行,然后从任务队列中取出下一条任务。 对象信息,包括应用运行情况、硬件资源使用情况、操作系统信息和采集对象频率。如图8所示,在所述步骤b中从资源分析模块的对象列表中取去一组对象信息,进行参数解析,采集对象信息,将采集结果加入到结果队列中,然后从对象队列中取出下一个对象进行采集。如图10所示,在所述步骤c中从对象队列中取出一组对象采集结果,根据对象的ID找到对应资源上的节点并调用系统的设置函数更新此节点的数值。如图11所示,所述步骤d中定期遍历整个资源,获得满足此更新频率的每个节点的数值,然后将结果发布给资源代理层。通过以下实施例对互联网云计算资源虚拟化封装系统及方法做进一步描述。本发明为于IVCE平台的虚拟资源层,本层的主要功能是为用户提供各个计算任务。得益于本发明的各种封装技术,充分发挥各种封装技术的优点,虚拟资源层可以用五花八门来形容。通过资源封装技术虚拟资源层已融入我们常见的所有硬件设备,包括手机、PC和高性能服务器等;操作系统上包含了 LINUX、UNIX、Windows和Android等。通过任务封装技术虚拟资源层使成百上千种应用的数以万计的任务在上面运行成为可能,其中既包括32位、64位也包括arm架构的。下面我们将从任务封装和资源封装两个方面以实例的形式对其进行说明。图1描述了虚拟资源层的主要模块包括 任务接收模块对外提供Socket接口,接收任务代理下发的任务,接收处理前检查当前是否有空闲的任务队列,如果有则将任务交给准备模块,否则返回错误信息。任务准备模块和下载模块交互,下载完成后准备任务执行的目录和环境。任务下载模块根据指定的地址下载应用文件,下载完成后对应用文件做一致性校验。任务执行模块任务准备好后会交给执行模块执行。任务执行需要启动新的进程来执行,执行过程中会和信息监控模块通信,检测任务的执行状态。系统信息监控模块对操作系统和任务信息进行监控,将采集的信息更新到资源树中。资源分析模块从任务接收模块中接收资源采集任务,对任务进行分析,得到要采集的对象、频率、次数等信息,将其转换后发给资源执行模块。资源执行模块从资源分析模块接收要采集的对象信息,然后对要采集的对象进行采集,并将采集结果发送给资源生成模块。资源生成模块资源生成模块从资源执行模块得到采集的对象信息,根据对象的类型找到对应的树上的叶节点,然后更新。资源发布模块从资源树上得到每个叶节点的信息,发布给资源代理服务器。图2描绘了本发明的任务封装方法的主要组成部分和封装的对象,任何满足上面封装要求的应用都可以在本平台上运行。任务封装主要包含四个方面,一是应用标识相关,主要用于标识一种应用的一次任务,用于对任务的执行情况进行监控和执行结果的标识。二是代码相关的信息,描述了应用程序、可执行脚本、参数文件的名称和具体的下载地址,以及对应的md5值,用于对上述文件进行检验。三是描述了任务对执行环境的要求,硬件方面主要包括CPU位数、可用内存的大小、可用硬盘的大小和网络带宽等相关要求,软件方面主要是包括对操作系统和库文件的要求,如操作系统的种类可能是windows,Iinux或者android以及对应操作系统的内核版本等,库文件主要描述了如jdk的版本,gcc的版本等信息。最后是定义了结果返回的信息,描述了应用希望运行结果以什么样的方式返回到哪里,包括了返回的地址、用户名、密码和结果存放的绝对路径等信息。图3,描绘虚拟层任务接收模块的流程图。对于本模块,无论任务来自任务层还是 资源管理层,也无论是何种任务均做一般的处理。通过socket形式接收从任务代理下发的任务,首先检查是否有空闲的任务执行队列,如果没有则返回错误信息给任务代理。否则检测任务参数是否按照图2定义好的封装形式进行下发的,如果不正确则返回详细错误信息给任务代理。因为我们对资源采集和计算任务都封装成为任务,所以下面要判断一下任务的类型,如果为资源采集任务则根据采集需求的描述,执行采集发布任务。如果为普通任务则加入任务准备队列,等待任务准备模块执行进一步的操作,最后将上述操作记录资源树的记录中。图4,描绘了任务准备模块的执行流程图。首先从任务准备队列中获取等待执行的任务,然后根据任务标识在本地创建任务运行目录并开始记录日志。检查本地是否存在任务的应用执行程序和启动脚本,如果不存在则调用下载模块下载应用执行可程序和启动脚本。应用执行可程序下载完成后下载启动脚本和参数文件。所有都下载完成后对可执行程序、启动脚本和参数文件进行检验,判断md5值是否与任务参数中的md5值一致。一切检查通过后给相应可执行程序和脚本授权,加入任务执行队列,等待任务执行模块的执行。图5,描绘了应用下载模块的执行流程图。从接收任务信息中的应用文件下载地址列表(基于优先级的有序列表,由任务代理服务器的任务调度算法根据不同的虚拟节点到相应可执行程序缓存服务器的网络延迟和服务器的性能动态生成)中选择一个优先级较高的下载地址下载应用文件。当下载失败时则尝试下载列表中其他地址下载。如果全部下载地址都未下载成功,则等待I分钟(可以配置)后重试。当重试次数超过I小时(可配置)时标记任务下载失败返回给应用网关。当下载成功后将可执行程序和脚本缓存到本地,更新资源树,并将下载信息发布出去,准备为其它虚拟节点提供应用程序下载服务。图6,描绘了应用执行模块的流程图。任务执行方式和以往有所不同,经过上面图
3、图4、图5的准备后,现在任务已经具备了可执行条件。每个任务是以单独的进程执行的,守护进程不必关心具体的应用,一切都按照封装好的格式进行执行,具体方式startup, shtask_id local app_dir parameter_fileresult_addr。所有的参数都已经在接收的任务中描述好的,其中startup, sh为可执行脚本的名称,些脚本可能之前存在本地或者通过应用下载模块重新下载;task_id为此任务的ID号,用于唯一标识些任务;local_app_dir为应用的执行路径,parameter_file为参数文件的名称,文件由应用下载模块下载,文件的作用为可执行程序提供配置参数,result_add为运行结果的返回地址,可能包括结果回收服务器的IP地址、路径、用户名和密码等(由应用指定与具体应用相关)。在新进程创建后,获得进程的ID,新进程不停的汇报当前程序的执行情况,虚拟资源通过进程ID判断此进行的执行时间,当超时时将其停止。最后将任务的执行情况记录到资源树中。图7,描绘了资源分析模块的流程图。首先各种资源的采集也是以任务的形式驱动的。当虚拟资源收到了关于资源采集的任务后,首先解析任务都需要采集哪些对象(包括应用运行情况、硬件资源使用情况以及操作系统的各种信息),这些对象都需要什么样频率,将这些资源采集的对象以参数的形式保存到对象列表中,等待资源获取模块来执行,然后从任务队列中取出下一条任务 。图8,从资源分析模块的对象列表中取去一组对象,对其参数进行解析,调用相关对象的采集方法,获取相关对象的信息,将结果加入到结果队列中,然后从对象队列中取出下一个对象进行采集。图9,由于本平台融合了各种硬件设备和多种操作系统,如何对这些资源进行采集和管理是一个挑战,也是本发明的一个重点。采集对象在硬件方面我们主要采集虚拟资源的CPU的架构、颗数、位数、频率、使用率等;内存的大小、可用情况等;硬盘的大小、类型、可有情况等;网络的带宽、接入方式、使用率等。在系统方面我们主要采集操作系统的种类,内核的版本、系统运行时间、各种库的安装情况以及各种服务的安装情况等。在应用方面我们采集应用的运行时间、应用的种类、应用的运行状态等信息。采集方法我们优先使用SNMP协议对虚拟资源的信息进行采集。对不支持SNMP协议的虚拟资源上我们通过脚本和命令等方式对资源进行采集。然后把采集的结果统一记录到图9的资源树中。资源树的形成由于虚拟资源环境复杂,每台虚拟节点都可能用不同的情况,而且由于多种原因SNMP协议的采集方式不可能在所有节点上实现,所以我们根据自己的实际需求,发明了一种将各种资源统一采集和管理的模型,叫资源树(RT resource tree)。资源树的目标就是将各种虚拟节点的资源以统一通用的模型描述起来,形成一棵树。树的根就是这个虚拟资源的唯一标识(此标识必须做到全局唯一,并且有很合理的规划,这样就以做到资源的汇聚),而各个采集对象只是树上的一片叶子。每片叶子的采集和管理都有统一的接口,只是根据不同的平台有不同的实现而已。每个接口的参数都可以通过任务的形式动态的调整,如更新CPU的采集频率等,只需要向此资源发送调整CPU频率的任务即可,任务中描述了更新的节点,以及更新的频率等。资源树生成情景举例虚拟资源软件启动后,对资源树进行初始化,首先以本机IP地址为根,下一级有三个树干分别是hardware, system, software。Hardware下面又分cpu, mem, disk, network, cpu 下面又有 cpu_type, cpu_bit, cpu_idle, cpu_architecture等叶子节点。每个树叶都对应一个采集方法,采集方法是根据不同的平台的实际情况分别实现的,而不管是哪种虚拟节点都有一样的资源树,这样就做到了资源的统一封装,对用户来说都是一样的。图10,描绘了资源生成模块从对象队列中取出一组对象采集结果,调用查找函数根据对象的ID找到对应资源树上的叶子节点并调用set_x系统的设置函数更新此节点的数值。图11,描绘了资源发布模块的流程图。资源发布模块定期遍历整个资源树,获得满足此更新频率的每个节点的数值,然后其结果发布给指定的资源代理服务器。需要声明的是,本发明内容及具体实施方式
意在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理启发下,可作各种修改 、等同替换、或改进。但这些变更或修改均在申请待批的保护范围内。
权利要求
1.一种互联网云计算资源虚拟化封装系统,包括任务代理层、应用文件服务器和资源代理层,其特征在于,所述系统包括分别与所述任务代理层、所述应用文件服务器、和所述资源代理层通信的封装装置。
2.根据权利要求1所述的系统,其特征在于,所述封装装置,包括虚拟机、虚拟机控制模块和信息显示模块;所述虚拟机控制模块对所述虚拟机进行控制;所述信息显示模块将从所述虚拟机接收的信息进行显示。
3.根据权利要求2所述的系统,其特征在于,所述信息显示模块将从所述虚拟机接收的信息包括动态信息、静态信息和任务信息。
4.根据权利要求2所述的系统,其特征在于,所述虚拟机,包括任务接收模块、任务准备模块、任务下载模块、任务执行模块、资源分析模块、资源执行模块、资源生成模块和资源发布模块;所述任务接收模块将从所述任务代理层接收的任务信息传递到所述任务准备模块;所述任务准备模块,和所述任务下载模块交互,准备任务执行的目录和环境;所述任务下载模块,下载应用文件,下载完成后对应用文件做一致性校验;所述任务执行模块启动进程执行任务;所述资源分析模块、所述资源执行模块、所述资源生成模块和所述资源发布模块依次连接。
5.根据权利要求4所述的系统,其特征在于,所述任务接收模块,从所述任务代理层接收任务下发信息和任务中止信息,并对外提供Socket接口,接收处理前检查当前是否有空闲的任务执行队列,如果有则将任务交给所述任务准备模块,否则返回错误信息。
6.根据权利要求4所述的系统,其特征在于,所述任务准备模块,与所述下载模块进行交互,用于准备任务执行的目录和环境。
7.根据权利要求4所述的系统,其特征在于,所述任务下载模块,下载应用文件,下载完成后对应用文件做一致性校验。
8.根据权利要求4所述的系统,其特征在于,所述资源分析模块,从所述任务接收模块中接收资源采集任务信息,对资源采集任务信息进行分析,并将资源采集任务信息转换后发给所述资源执行模块。
9.根据权利要求5所述的系统,其特征在于,资源采集任务信息包括采集的对象、频率和次数。
10.根据权利要求4所述的系统,其特征在于,所述资源执行模块,采集对象信息,并将采集结果发送给所述资源生成模块。
11.根据权利要求4所述的系统,其特征在于,所述资源生成模块,从资源执行模块得到采集的对象信息,根据对象的类型找到对应的资源,并对资源进行更新。
12.根据权利要求4所述的系统,其特征在于,所述资源发布模块,从资源上得到每个节点的信息,发布给资源代理层。
13.—种互联网云计算资源虚拟化封装方法,其特征在于,所述方法分别对任务和资源进行封装。
14.根据权利要求13所述的方法,其特征在于,所述任务封装包括如下步骤 (1).接受任务; (2).进行任务准备; (3).根据应用,对任务进行下载;(4).执行下载的任务; (5).任务结束。
15.根据权利要求13或者14所述的系统,其特征在于,任务封装内容,包括应用标识、代码相关信息、执行环境要求信息和结果返回信息。
16.根据权利要求15所述的系统,其特征在于,应用标识,用于标识一种应用的一次任务,用于对任务的执行情况进行监控和执行结果的标识。
17.根据权利要求15所述的系统,其特征在于,代码相关信息,用于描述应用程序、可执行脚本、参数文件的名称和具体的下载地址,以及与任务对应的md5值。
18.根据权利要求15所述的系统,其特征在于,执行环境要求信息,包括软件方面信息和硬件方面信息;硬件方面信息包括CPU位数、可用内存的大小、可用硬盘的大小和网络带宽;软件方面信息包括对操作系统和库文件的要求。
19.根据权利要求15所述的系统,其特征在于,结果返回信息,包括返回地址、用户名、密码和结果存放的绝对路径。
20.根据权利要求14所述的系统,其特征在于,在所述步骤I中,检查是否有空闲的任务执行队列,如果没有则返回错误信息给任务代理层,否则检测任务参数是否按定义好的封装形式进行下发的,如果不正确则返回详细错误信息给任务代理层;判断任务类型,如果为资源采集任务则根据采集需求的描述,执行采集发布任务;如果为普通任务则加入任务准备队列,等待执行操作。
21.根据权利要求14所述的系统,其特征在于,在所述步骤2包括如下步骤 (2-1).从任务准备队列中获取等待执行的任务,然后根据任务标识在本地创建任务运行目录并开始记录日志; (2-2).检查本地是否存在任务的应用执行程序和启动脚本,如果不存在则下载应用可执行程序和启动脚本; (2-3).下载启动脚本和参数文件。
(2-4).对可执行程序、启动脚本和参数文件进行检验,判断md5值是否与任务参数中的md5值一致; (2-5).给相应可执行程序和脚本授权,加入任务执行队列,等待任务执行模块的执行。
22.根据权利要求14所述的系统,其特征在于,在所述步骤3中,从接收任务信息中的应用文件下载地址列表中选择一个优先级较高的下载地址下载应用文件,当下载失败时则尝试下载列表中其他地址下载,如果全部下载地址都未下载成功,则等待I分钟后重试;当重试次数超过I小时标记任务下载失败返回给应用网关;当下载成功后将可执行程序和脚本缓存到本地,更新资源树,并将下载信息发布出去,准备为其它虚拟节点提供应用程序下载服务。
23.根据权利要求22所述的系统,其特征在于,应用文件下载地址列表,是基于优先级的有序列表,由任务代理层的任务调度算法根据不同的虚拟节点到相应可执行程序缓存服务器的网络延迟和服务器的性能动态生成。
24.根据权利要求14所述的系统,其特征在于,所述步骤4包括如下步骤, (4-1).启动需要执行的任务的进程; (4-2).获得进程的ID;(4-3).进程不停的汇报当前程序的执行情况; (4-4).启动任务监控进程。
25.根据权利要求24所述的系统,其特征在于,在所述步骤4-4中,通过任务进程ID判断进程的执行时间,判断是否超出估算时间,超时则将该任务停止,否则更新任务状态。
26.根据权利要求14所述的系统,其特征在于,在所述步骤5中,进程可以根据任务ID在资源树中找到对应的进程ID,如果任务还在运行则杀死运行进程,并返回信息。
27.根据权利要求13所述的方法,其特征在于,所述资源封装包括如下步骤 (a).分析资源信息; (b).执行资源采集; (c).生成资源信息; (d).发布资源信息。
28.根据权利要求10或者27所述的方法,其特征在于,所述资源封装内容,包括硬件方面信息、系统方面信息和应用方面信息。
29.根据权利要求28所述的方法,其特征在于,硬件方面信息包括采集虚拟资源的CPU的架构、颗数、位数、频率和使用率,内存的大小和可用情况,硬盘的大小、类型和可有情况,网络的带宽、接入方式和使用率;系统方面信息包括内核的版本、系统运行时间、各种库的安装情况以及各种服务的安装情况;应用方面信息包括应用的运行时间、应用的种类和应用的运行状态。
30.根据权利要求27所述的方法,其特征在于,所述步骤a包括如下步骤, (a-1).解析任务需要采集哪些对象信息; (a-2).将对象信息以参数的形式保存到对象列表中,等待执行,然后从任务队列中取出下一条任务。
31.根据权利要求30所述的方法,其特征在于,对象信息,包括应用运行情况、硬件资源使用情况、操作系统信息和采集对象频率。
32.根据权利要求27所述的方法,其特征在于,在所述步骤b中从资源分析模块的对象列表中取去一组对象信息,进行参数解析,采集对象信息,将采集结果加入到结果队列中,然后从对象队列中取出下一个对象进行采集。
33.根据权利要求27所述的方法,其特征在于,在所述步骤c中从对象队列中取出一组对象采集结果,根据对象的ID找到对应资源上的节点并调用系统的设置函数更新此节点的数值。
34.根据权利要求27所述的方法,其特征在于,在所述步骤d中定期遍历整个资源,获得满足此更新频率的每个节点的数值,然后将结果发布给资源代理层。
全文摘要
本发明提供了一种互联网云计算资源虚拟化封装系统及方法,互联网云计算资源虚拟化封装系统,包括任务代理层、应用文件服务器和资源代理层、以及分别与所述任务代理层、所述应用文件服务器、和所述资源代理层通信的封装装置;所述方法分别对任务和资源进行封装。本发明提供的互联网云计算资源虚拟化封装系统及方法,具有对用户透明、对应用软件透明、高的执行效率、高容错性的特点。
文档编号H04L29/08GK103067507SQ20121058589
公开日2013年4月24日 申请日期2012年12月28日 优先权日2012年12月28日
发明者刘欣然, 朱春鸽, 朱晓宁, 张鸿, 徐倩华 申请人:国家计算机网络与信息安全管理中心