云计算方法、云管理平台和客户端的制作方法

文档序号:7774836阅读:240来源:国知局
云计算方法、云管理平台和客户端的制作方法
【专利摘要】本发明实施例提供一种云计算方法、云管理平台和客户端。所述方法,包括:云管理平台接收用户设备发送的云资源请求,所述云资源请求中包含计算任务以及完成所述计算任务所需的计算资源信息;所述云管理平台根据所述云资源请求中包含的所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配的计算资源,所述计算资源由至少一个客户端提供,每个客户端上运行有至少一个虚拟机;所述云管理平台将所述计算任务发送给提供所述计算资源的至少一个客户端,使得所述各客户端分别通过运行的所述各虚拟机完成所述计算任务。由于客户端上运行有虚拟机,虚拟机的功能与实体计算机相同,因此在客户端上能够实现通用计算任务。
【专利说明】云计算方法、云管理平台和客户端
【技术领域】
[0001]本发明实施例涉及数据通讯技术,尤其涉及一种云计算方法、云管理平台和客户端。
【背景技术】
[0002]公有云服务是目前IT领域的热点,公有云的服务提供商一般拥有规模较大的数据中心,并利用这些数据中心对中小企业和个人提供服务。通常公有云运营商在自己的数据中心基础设施(服务器、网络设备、存储设备等)上运行虚拟化软件,把物理基础设施虚拟化成虚拟化基础设施之后,再对外出租虚拟主机等虚拟计算资源,按照使用量计费。中小企业使用公有云服务可以快速获得计算能力,避免了一次性的IT初期投入,而且具备随业务量弹性伸缩的能力。
[0003]在科学研究领域提出了志愿计算(Volunteer Computing),例如BOINC。BOINC的方案提供了利用互联网上成千上万台个人计算机的闲置计算能力来进行分布式科学计算的平台。科学计算项目的开发者可以利用这个平台,将需要巨大计算能力的任务分片之后,分配给支援计算的参与者所拥有的计算机来运行。但是,开发者需要针对不同的任务制定不同的算法,还要针对不同的任务考虑如何将计算任务分片,然后,将任务算法打包在软件包中供志愿者下载,因此,BOINC不能支持通用计算任务,只支持特定的分布式计算任务。

【发明内容】

[0004]本发明实施例提供一种云计算方法、云管理平台和客户端,能够支持通用计算任务。
[0005]本发明第一方面提供一种云计算方法,包括:
[0006]云管理平台接收用户设备发送的云资源请求,所述云资源请求中包含计算任务以及完成所述计算任务所需的计算资源信息;
[0007]所述云管理平台根据所述云资源请求中包含的所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配的计算资源,所述计算资源由至少一个客户端提供,每个客户端上运行有至少一个虚拟机;
[0008]所述云管理平台将所述计算任务发送给提供所述计算资源的至少一个客户端,使得所述各客户端分别通过运行的所述各虚拟机完成所述计算任务,并向所述云管理平台返回所述计算任务对应的计算结果;
[0009]所述云管理平台接收所述计算任务对应的计算结果,根据所述计算结果确定所述计算任务对应的最终计算结果。
[0010]在本发明第一方面的第一种可能的实现方式中,所述云管理平台根据所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配的计算资源,包括:
[0011]所述云管理平台根据所述计算资源信息,以及所述用户设备与提供所述空闲计算资源的各客户端之间的网络资源,从所述空闲资源中确定出为所述用户设备分配的所述计算资源。
[0012]在本发明第一方面的第二种可能的实现方式中,所述云管理平台接收所述计算结果,根据所述计算结果确定最终计算结果之后,还包括:
[0013]所述云管理平台接收所述用户设备发送的资源释放请求;
[0014]所述云管理平台根据所述资源释放请求释放所述至少一个客户端提供的所述计算资源。
[0015]在本发明第一方面的第三种可能的实现方式中,还包括:
[0016]所述云管理平台接收所述各客户端上报的空闲计算资源信息。
[0017]在本发明第一方面的第四种可能的实现方式中,所述空闲计算资源信息至少包括:所述各客户端的中央处理单元CPU的剩余能力、剩余内存空间、剩余磁盘空间。
[0018]结合本发明第一方面及第一方面的第一种至第四种可能的实现方式,在本发明第一方面的第五种可能的实现方式中,所述计算资源以标准化后的计算单元度量,每个计算单元具有相同的CPU处理能力和内存空间、磁盘空间,则所述云资源请求中包含的完成所述计算任务所需的计算资源信息为完成所述计算任务所需的计算单元的个数N ;
[0019]所述云管理平台根据所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配的计算资源,包括:
[0020]所述云管理平台根据完成所述计算任务所需的计算单元的个数N,从空闲的计算单元中确定出为所述用户设备分配的N个计算单元。
[0021]在本发明第一方面的第六种可能的实现方式中,所述云资源请求中还包括:
[0022]冗余资源标识,所述冗余资源标识用于向所述云管理平台申请三组计算资源,所述每组计算资源分别包括N个计算单元,所述每组计算资源分别用于完成所述计算任务;
[0023]相应的,所述云管理平台根据所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配计算资源,包括:
[0024]所述云管理平台根据所述冗余计算标识和所述计算资源信息,从所述空闲计算单元中确定出为所述用户设备分配的三组计算资源;
[0025]所述云管理平台将所述计算任务发送给提供所述计算资源的至少一个客户端,使得所述各客户端分别通过运行的所述各虚拟机完成所述计算任务,并向所述云管理平台返回所述计算任务对应的计算结果,包括:
[0026]所述云管理平台将所述计算任务分别发送给提供所述三组计算资源的各客户端,以使所述各客户端上运行的各虚拟机分别计算所述计算任务,并向所述云管理平台返回所述计算任务对应的三个计算结果;
[0027]所述云管理平台接收所述计算任务对应的计算结果,根据所述计算结果确定所述计算任务对应的最终计算结果,包括:
[0028]所述云管理平台接收所述计算任务对应的三个计算结果,根据所述计算任务对应的三个计算结果确定所述计算任务对应的最终计算结果。
[0029]在本发明第一方面的第七种可能的实现方式中,如果所述计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点,所述检查点用于当所述各客户端运行至所述检查点时,所述各客户端分别将各自本步骤的计算结果上报至所述云管理平台;
[0030]相应地,所述云管理平台接收所述计算任务对应的三个计算结果,根据所述计算任务对应的三个计算结果确定所述计算任务对应的最终计算结果,包括:
[0031]所述云管理平台根据在先接收到两组计算资源中的客户端分别上报的各自本步骤的计算结果,判断所述两组计算资源上报的本步骤的计算结果是否相同;
[0032]若是,则所述云管理平台将所述两组计算资源上报的相同的计算结果作为本步骤的最终计算结果,如果所述管理平台还没有收到另一组计算资源上报的本步骤的计算结果,则终止所述另一组计算资源的运行;
[0033]若否,则所述云管理平台等待所述另一组计算资源上报的本步骤的计算结果,判断所述三组计算资源上报的本步骤的计算结果中是否有两组计算结果相同;
[0034]若所述三组计算资源上报的本步骤的计算结果中有两组计算结果相同,则所述云管理平台将所述两组计算资源上报的相同的计算结果作为本步骤的最终计算结果;
[0035]所述云管理平台在同一时刻,将所述本步骤的最终计算结果作为下一步的初始值分别发送给所述三组计算资源的各客户端,以使所述三组计算资源的各客户端根据所述本步骤的最终计算结果同时开始下一步计算,直至M个步骤结束;
[0036]所述云管理平台将所述第M步骤的最终结果作为所述计算任务对应的最终计算结果。
[0037]在本发明第一方面的第八种可能的实现方式中,如果某个步骤中三组计算资源上报的三个计算结果都不同,则所述管理平台结束所述三组计算资源的计算任务。
[0038]本发明第二方面提供一种云计算方法,包括:
[0039]客户端在本地创建至少一个虚拟机,所述各虚拟机用于向云管理平台提供计算资源;
[0040]所述客户端接收所述云管理平台发送的计算任务,通过运行所述各虚拟机利用所述计算资源完成所述计算任务,并将所述计算任务对应的计算结果发送给所述云管理平台,以使所述云管理平台根据所述计算任务对应的计算结果确定所述计算任务的最终计算结果。
[0041]在本发明第二方面的第一种可能的实现方式中,所述客户端在本地创建至少一个虚拟机,包括:
[0042]所述客户端从所述云管理平台下载云服务插件,在本地运行所述云服务插件,通过所述云服务插件在本地创建所述至少一个虚拟机。
[0043]在本发明第二方面的第二种可能的实现方式中,还包括:
[0044]所述客户端获取本地中央处理单元CPU的利用率、磁盘利用率、内存利用率,确定本地空闲计算资源,向所述云管理平台上报所述空闲计算资源,空闲计算资源信息至少包括:所述各客户端的CPU的剩余能力、剩余内存空间、剩余磁盘空间。
[0045]在本发明第二方面的第三种可能的实现方式中,所述客户端接收所述云管理平台发送的计算任务,通过运行所述虚拟机利用所述计算资源完成所述计算任务之后,还包括:
[0046]所述客户端接收所述云管理平台发送的资源释放请求,根据所述资源释放请求释放所述计算资源。
[0047]结合本发明第二方面及第二方面的第一种至第三种可能的实现方式,在本发明第二方面的第四种可能的实现方式中,所述计算资源以标准化后的计算单元度量,每个计算单元位具有相同的CPU处理能力、内存空间和磁盘空间;
[0048]相应地,所述客户端向所述云管理平台上报所述空闲计算资源,包括:
[0049]所述客户端向所述云管理平台上报空闲的计算单元的个数。
[0050]在本发明第二方面的第五种可能的实现方式中,如果所述计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点;
[0051]当所述客户端运行至所述检查点时,将本步骤的计算结果上报给所述云管理平台,以使所述云管理平台根据所述本步骤的计算结果,确定本步骤的最终计算结果,将本步骤的最终计算结果作为下一步的初始值发送给所述客户端;
[0052]相应的,所述客户端还接收所述云管理平台发送的下一步的初始值。
[0053]本发明第三方面提供一种云管理平台,包括:
[0054]接收模块,用于接收用户设备发送的云资源请求,所述云资源请求中包含计算任务以及完成所述计算任务所需的计算资源信息;
[0055]资源确定模块,用于根据所述云资源请求中包含的所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配的计算资源,所述计算资源由至少一个客户端提供,每个客户端上运行有至少一个虚拟机;
[0056]发送模块,用于将所述计算任务发送给提供所述计算资源的至少一个客户端,使得所述各客户端分别通过运行的所述各虚拟机完成所述计算任务,并向所述云管理平台返回所述计算任务对应的计算结果;
[0057]所述接收模块,还用于接收所述计算任务对应的计算结果;
[0058]计算结果确定模块,用于根据所述接收模块接收的所述计算结果确定所述计算任务对应的最终计算结果。
[0059]在本发明第三方面的第一种可能的实现方式中,所述资源确定模块具体用于:
[0060]根据所述计算资源信息,以及所述用户设备与提供所述空闲计算资源的各客户端之间的网络资源,从所述空闲资源中确定出为所述用户设备分配的所述计算资源。
[0061]在本发明第三方面的第二种可能的实现方式中,还包括:资源释放模块;
[0062]所述接收模块还用于:接收所述用户设备发送的资源释放请求;
[0063]所述资源释放模块,用于根据所述资源释放请求释放所述至少一个客户端提供的所述计算资源。
[0064]在本发明第三方面的第三种可能的实现方式中,所述接收模块还用于:
[0065]接收所述各客户端上报的空闲计算资源信息。
[0066]在本发明第三方面的第四种可能的实现方式中,所述空闲计算资源信息至少包括:所述各客户端的中央处理单元CPU的剩余能力、剩余内存空间、剩余磁盘空间。
[0067]结合本发明第三方面及第三方面的第一种至第四种可能的实现方式,在本发明第三方面的第五种可能的实现方式中,所述计算资源以标准化后的计算单元度量,每个计算单元具有相同的CPU处理能力和内存空间、磁盘空间,则所述云资源请求中包含的完成所述计算任务所需的计算资源信息为完成所述计算任务所需的计算单元的个数N ;
[0068]所述资源确定模块具体用于:根据完成所述计算任务所需的计算单元的个数N,从空闲的计算单元中确定出为所述用户设备分配的N个计算单元。
[0069]在本发明第三方面的第六种可能的实现方式中,所述云资源请求中还包括:[0070]冗余资源标识,所述冗余资源标识用于向所述云管理平台申请三组计算资源,所述每组计算资源分别包括N个计算单元,所述每组计算资源分别用于完成所述计算任务;
[0071]相应的,所述资源确定模块具体用于:根据所述冗余计算标识和所述计算资源信息,从所述空闲计算单元中确定出为所述用户设备分配的三组计算资源;
[0072]所述发送模块具体用于:将所述计算任务分别发送给提供所述三组计算资源的各客户端,以使所述各客户端上运行的各虚拟机分别计算所述计算任务,并向所述云管理平台返回所述计算任务对应的三个计算结果;
[0073]所述接收模块具体用于:接收所述计算任务对应的三个计算结果;
[0074]所述计算结果确定模块具体用于:根据所述计算任务对应的三个计算结果确定所述计算任务对应的最终计算结果。
[0075]在本发明第三方面的第七种可能的实现方式中,如果所述计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点,所述检查点用于当所述各客户端运行至所述检查点时,所述各客户端分别将各自本步骤的计算结果上报至所述云管理平台;
[0076]相应地,计算结果确定模块具体用于:根据在先接收到两组计算资源中的客户端分别上报的各自本步骤的计算结果,判断所述两组计算资源上报的本步骤的计算结果是否相同;
[0077]若是,则将所述两组计算资源上报的相同的计算结果作为本步骤的最终计算结果,如果所述管理平台还没有收到另一组计算资源上报的本步骤的计算结果,则终止所述另一组计算资源的运行;
[0078]若否,则等待所述另一组计算资源上报的本步骤的计算结果,判断所述三组计算资源上报的本步骤的计算结果中是否有两组计算结果相同;
[0079]若所述三组计算资源上报的本步骤的计算结果中有两组计算结果相同,则将所述两组计算资源上报的相同的计算结果作为本步骤的最终计算结果;
[0080]在同一时刻,将所述本步骤的最终计算结果作为下一步的初始值分别发送给所述三组计算资源的各客户端,以使所述三组计算资源的各客户端根据所述本步骤的最终计算结果同时开始下一步计算,直至M个步骤结束;
[0081]将所述第M步骤的最终结果作为所述计算任务对应的最终计算结果。
[0082]在本发明第三方面的第八种可能的实现方式中,如果某个步骤中三组计算资源上报的三个计算结果都不同,则所述计算结果确定模块具体用于:结束所述三组计算资源的计算任务。
[0083]本发明第四方面提供一种客户端,包括:
[0084]虚拟机创建模块,用于在本地创建至少虚拟机,所述各虚拟机用于向云管理平台提供计算资源;
[0085]接收模块,用于接收所述云管理平台发送的计算任务;
[0086]计算模块,用于通过运行所述各虚拟机利用所述计算资源完成所述计算任务;
[0087]发送模块,用于将所述计算任务对应的计算结果发送给所述云管理平台,以使所述云管理平台根据所述计算任务对应的计算结果确定所述计算任务的最终计算结果。
[0088]在本发明第四方面的第一种可能的实现方式中,所述虚拟机创建模块具体用于:
[0089]从所述云管理平台下载云服务插件,在本地运行所述云服务插件,通过所述云服务插件在本地创建所述至少一个虚拟机。
[0090]在本发明第四方面的第二种可能的实现方式中,还包括:
[0091]空闲资源上报模块,用于获取本地中央处理单元CPU的利用率、磁盘利用率、内存利用率,确定本地空闲计算资源,向所述云管理平台上报所述空闲计算资源,空闲计算资源信息至少包括:所述各客户端的CPU的剩余能力、剩余内存空间、剩余磁盘空间。
[0092]在本发明第四方面的第三种可能的实现方式中,还包括:资源释放模块;
[0093]所述接收模块还用于:接收所述云管理平台发送的资源释放请求;
[0094]所述资源释放模块,用于根据所述资源释放请求释放所述计算资源。
[0095]结合本发明第四方面及第四方面的第一种至第三种可能的实现方式,在本发明第四方面的第四种可能的实现方式中,所述计算资源以标准化后的计算单元度量,每个计算单元位具有相同的CPU处理能力、内存空间和磁盘空间;
[0096]相应地,所述空闲资源上报模块具体用于:向所述云管理平台上报空闲的计算单元的个数。
[0097]在本发明第四方面的第五种可能的实现方式中,如果所述计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点;
[0098]所述发送模块具体用于:当运行至所述检查点时,将本步骤的计算结果上报给所述云管理平台,以使所述云管理平台根据所述本步骤的计算结果,确定本步骤的最终计算结果,将本步骤的最终计算结果作为下一步的初始值发送给所述客户端;
[0099]相应的,所述接收模块还用于,接收所述云管理平台发送的下一步的初始值。
[0100]本发明实施例的云计算方法、云管理平台和客户端,云管理平台通过用户设备发送的云资源请求,确定为用户设备为分配的计算资源,并将计算任务发送给提供计算资源的至少一个客户端,使得各客户端分别通过运行的各虚拟机完成计算任务,并向云管理平台返回计算任务对应的计算结果。由于客户端上运行有虚拟机,虚拟机的功能与实体计算机相同,因此在客户端上能够实现通用计算任务。
【专利附图】

【附图说明】
[0101]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0102]图1为本发明云计算方法实施例一的流程图;
[0103]图2为本发明云计算方法实施例二的流程图;
[0104]图3为本发明云计算方法实施例三的流程图;
[0105]图4为本发明实施例适用的冗余计算流程图;
[0106]图5为本发明云计算方法实施例四的流程图;
[0107]图6为本发明云管理平台实施例一的结构示意图;
[0108]图7为本发明云管理平台实施例二的结构示意图;
[0109]图8为本发明客户端实施例一的结构示意图;
[0110]图9为本发明云管理平台实施例三的结构示意图;[0111]图10为本发明客户端实施例二的结构示意图。
【具体实施方式】
[0112]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0113]在介绍本发明提供的技术方案之前,先简单介绍一下本发明各实施例中所用到的网络设备的功能,云管理平台由云服务提供商(一下也称运营商)进行维护和管理,运营商(Operator)建立一个基于闲置本地计算能力的云计算服务,对所有用户提供IaaS云计算服务。运营商运营一个云管理平台(platform),允许提供者(Provider)注册本地计算能力,并提供应用程序云服务插件(cloud plug-1n)供提供者下载运行,提供者是指希望利用闲置计算资源获得利益的个人或企业的客户端,提供者拥有自己的本地计算机(即客户端),当提供者在云服务平台注册帐户之后,需要在客户端下载安装云服务插件,客户端通过云服务插件能够与云服务平台建立连接,并将客户端上的资源虚拟化,视中央处理单元(Central Processing Unit,简称CPU)和内存的占用情况,可将计算资源标准化为计算单元(Compute Unit,简称⑶)。云服务插件在客户端后台运行后,会在云管理平台上注册本地可用的计算单元(free CU), —台客户端根据计算能力情况和提供者的意愿,可能虚拟化一个或多个计算单元,每个计算单元都和提供者的帐号绑定。用户(User)可以在此云管理平台上租用虚拟化计算资源,进行数据分析、数据挖掘、视频转码、科学计算、企业业务逻辑处理等业务。
[0114]图1为本发明云计算方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
[0115]步骤101、云管理平台接收用户设备发送的云资源请求,云资源请求中包含计算任务以及完成计算任务所需的计算资源信息。
[0116]当用户有业务需求时,通过用户设备登录到云管理平台,向云管理平台发起云资源请求,云资源请求中包含计算任务以及完成计算任务所需的计算资源信息。计算资源信息可以为完成计算任务所需的CPU处理能力、占用的内存的大小、所需的磁盘空间的大小等。在本发明的一种实现方式中,将计算资源虚拟化为标准的计算单元,每个计算单元具有一定CPU处理能力和内存空间、磁盘空间,各计算单元大小相同。因此,在云资源请求中包含的完成计算任务所需的计算资源信息可以为完成计算任务所需的计算单元的个数N。
[0117]步骤102、云管理平台根据云资源请求中包含的计算资源信息,从空闲计算资源中确定出为用户设备分配的计算资源,计算资源由至少一个客户端提供,每个客户端上运行有至少一个虚拟机。
[0118]云管理平台在接收到云资源请求后,扫描系统中的空闲的计算资源,根据所需的计算资源信息从空闲计算资源中确定出为用户设备分配的计算资源,为用户分配的计算资源可以由多个客户端提供,每个客户端完成一部分计算任务,每个客户端上运行有至少一个虚拟机。空闲计算资源信息至少包括:各客户端的CPU的剩余能力、剩余内存空间、剩余磁盘空间。云管理平台下的各客户端可以主动上报自己的空闲计算资源。[0119]云管理平台根据计算资源信息,从空闲计算资源中确定出为用户设备分配的计算资源,具体为:云管理平台根据计算资源信息,以及用户设备与提供空闲计算资源的各客户端之间的网络资源,从空闲资源中确定出为用户设备分配的计算资源。如果计算资源以计算单元度量,则云管理平台根据用户设备和各计算单元所在的客户端之间的网络情况,如用户设备和计算单元之间的带宽,选取最有效率的一组计算单元。在用户设备的发起的资源请求中,可以携带用户设备的IP地址和网络情况,以便于云管理平台根据用户设备的IP地址和网络情况选取最有效率的一组计算单元。
[0120]客户端通过从云管理平台上下载云服务插件,云服务插件实在客户端上实现通用计算的关键,客户端通过云服务插件建立虚拟机,虚拟加相当于一台计算机,该虚拟机能够像真实的计算机一样实现通用计算功能。
[0121]以下将简单介绍一下云服务插件的主要功能:
[0122](I)为安全通信层提供加密的通信链路,例如采用安全套接字层(Secure SocketsLayer,简称SSL)加密算法对通信链路加密,该通信链路不仅作为业务请求的链路,也作为客户端上的虚拟机的通信链路。使得客户端与云管理平台通信,接受来自云管理平台的资源发放和资源释放请求。
[0123](2)完成本地资源的调度和测量,通过测量决定是否有足够的资源来接受来自云管理平台的请求,并将测量结果定时上报给云管理平台。测量的项目包括CPU、内存和磁盘的占用率,本地闲置计算能力评估等。
[0124](3)对用户租用的虚拟机中的数据加密,主要包括内存、硬盘、网络的加密,内存加密:用户在虚拟内存中的数据需要经过加密后再存储在客户端的物理内存中;硬盘加密:用户的虚拟机中的本地存储数据需要经过加密后再存储在客户端的本地存储介质中;网络加密:用户的虚拟机与外界的所有IP数据包需要经过加密后再通过客户端的物理网卡传输。通过加密技术,从而能够保证用户的数据的安全性,使得该客户端的提供者以及其他人员都无法看到虚拟机上存储的用户数据。
[0125](4)虚拟化层,通过在客户端的操作系统之上建立运行虚拟机,提供运行主流用户操作系统的能力,并将本地CPU、内存和硬盘虚拟化为标准的计算单元。
[0126]步骤103、云管理平台将计算任务发送给提供计算资源的至少一个客户端,使得各客户端分别通过运行的各虚拟机完成计算任务,并向云管理平台返回计算任务对应的计算结果。
[0127]在云管理平台确定出分配给用户的计算资源后,云管理平台可以与提供计算的客户端进行通信,云管理平台与被选中的客户端上运行的云服务插件通信,将计算任务分配在该客户端运行的虚拟机上,虚拟机执行计算任务,并向云管理平台返回计算任务对应的计算结果。
[0128]步骤104、云管理平台接收计算任务对应的计算结果,根据计算结果确定计算任务对应的最终计算结果。
[0129]本实施例提供的方法,云管理平台通过用户设备发送的云资源请求,确定为用户设备为分配的计算资源,并将计算任务发送给提供计算资源的至少一个客户端,使得各客户端分别通过运行的各虚拟机完成计算任务,并向云管理平台返回计算任务对应的计算结果。由于客户端上运行有虚拟机,虚拟机的功能与实体计算机相同,因此在客户端上能够实现通用计算任务。
[0130]由于目前连接到互联网的个人计算机数目非常巨大。在计算能力方面,由于英特尔多核CPU的普及,实际上个人用户已经很难用尽自己个人计算机(personal computer,简称PC)上的CPU能力了。网络带宽方面,近年来个人和家庭用户的接入带宽已经从56K拨号发展到了 20M甚至100M的各种数据用户线路(Digital Subscriber Line,简称DSL)和光线到户接入,主流的宽带计费方式是包月不限流量。大量个人计算机的平均利用率是相当低的,同样带宽的平均利用率也很低。本实施例提供的方法,通过利用个人及企业用户闲置的个人计算机(客户端)和宽带接入资源,建立一个基于用户本地计算能力的云计算服务,避免运营商前期建立数据中心的巨大投入,极大地降低计算成本和进入门槛,建立一种新的公有云商业模式和生态系统。站在提供者的角度来看,如果能够将这些闲置的计算和网络资源通过某种方式出售,至少抵消部分宽带开支,同时不影响正常的使用,对个人和家庭用户来说是非常具有吸引力的。除了个人和家庭用户之外,很多企业也拥有大量的计算资源和带宽。对于主要业务不是ISP或者云服务的企业来说,如果能够在不影响现有业务的情况下把闲置的计算资源和带宽利用起来,至少抵消部分IT费用,对于企业来言也是非常有价值的通过本实施例通过把个人计算机的闲置计算能力利用起来,通过一个集中的管理运营平台,提供公有云服务,从而满足了以下三方面的需求:1、个人和企业希望通过闲置的计算资源获得利益。2、IT企业希望以低成本开展公有云服务,避免初期的大量投入。3、企业希望以低成本获得大容量,按使用量付费的弹性计算能力。
[0131]本实施例中,云管理平台接收计算结果,根据计算结果确定最终计算结果之后,SP客户端完成了计算任务之后,云管理平台还接收用户设备发送的资源释放请求,然后根据资源释放请求释放至少一个客户端提供的计算资源。
[0132]图2为本发明云计算方法实施例二的流程图,因为提供的个人PC资源是不可靠的,发生故障或者网络断连等导致服务无法使用的概率比起运营商自建数据中心要高的多。如何在不可靠的资源上实现可靠的计算,是本实施例要解决的一个关键问题。本实施例中,通过冗余计算来保证计算结果的可靠性,以下将具体说明。如图2所示,本实施例的方法可以包括:
[0133]步骤201、云管理平台接收用户设备发送的云资源请求,云资源请求中包含计算任务、冗余计算标识、以及完成计算任务所需的计算资源信息。
[0134]本实施例中,云资源请求中还包括冗余资源标识,冗余资源标识用于向云管理平台申请三组计算资源,每组计算资源分别包括N个计算单元,每组计算资源分别用于完成计算任务。
[0135]步骤202、云管理平台根据冗余计算标识和计算资源信息,从空闲计算单元中确定出为用户设备分配的三组计算资源。
[0136]步骤203、云管理平台将计算任务分别发送给提供三组计算资源的各客户端,以使各客户端上运行的各虚拟机分别计算计算任务,并向云管理平台返回计算任务对应的三个
计算结果。
[0137]每组计算资源包括N个计算单元,每组计算单元都能完成计算任务,云管理平台将计算任务分别发送给三组计算资源的各客户端,以使各组计算资源对应的客户端同时对计算任务进行计算,得到三个计算结果,并向云管理平台返回计算任务对应的三个计算结果O
[0138]步骤204、云管理平台接收计算任务对应的三个计算结果,根据计算任务对应的三个计算结果确定计算任务对应的最终计算结果。
[0139]一种实现方式中,云管理平台比较各组计算资源返回的计算结果,如果有一个计算结果与其他两个计算结果不同,则认为该计算结果出错,将其他两个相同的计算结果作为计算任务对应的最终计算结果。
[0140]一种可行的实现方式中,如果计算任务需要M个步骤才能完成计算,在每个步骤之后设置一个检查点,检查点用于当各客户端运行至检查点时,各客户端分别将各自本步骤的计算结果上报至云管理平台。
[0141]相应地,云管理平台接收计算任务对应的三个计算结果,根据三个计算结果确定计算任务对应的最终计算结果,具体为:
[0142]云管理平台根据在先接收到两组计算资源对应的客户端分别上报的各自本步骤的计算结果,判断两组计算资源上报的本步骤的计算结果是否相同,这里,每组计算资源对应的客户端都运行相同的计算逻辑,在执行完第一步骤后,各客户端分别上报本步骤的计算结果,云管理平台在接收到前两组计算资源对应的客户端上报的本步骤的计算结果时,例如云管理平台在第一时刻接收到第一计算资源对应的客户端上报的计算结果,在第二时刻接收到第二计算资源对应的客户端上报的计算结果,其中第二时刻大于第一时刻,则云管理平台在第二时刻接收到第二计算资源对应的客户端上报的计算结果后,比较两个计算结果是否相同。
[0143]若是,即两组计算资源上报的相同的计算结果相同,则云管理平台将两组计算资源上报的相同的计算结果作为本步骤的最终计算结果,如果管理平台还没有收到另一组计算资源上报的本步骤的计算结果,则终止另一组计算资源的运行,直接将相同的计算结果作为本步骤的最终计算结果。
[0144]若否,即两组计算资源上报的相同的计算结果不相同,则云管理平台等待另一组计算资源上报的本步骤的计算结果,判断三组计算资源上报的本步骤的计算结果中是否有两组计算结果相同,即两两进行比较,确定是否有两组计算资源上报的计算结果相同,若三组计算资源上报的本步骤的计算结果中有两组计算结果相同,则云管理平台将两组计算资源上报的相同的计算结果作为本步骤的最终计算结果;
[0145]在云管理平台确定本步骤的计算结果后,在同一时刻,将本步骤的最终计算结果分别发送给三组计算资源的各客户端,作为下一步的输入参数,以使三组计算资源的各客户端根据本步骤的最终计算结果同时开始下一步计算,直至M个步骤结束,云管理平台在每一步都执行上述的判断,并将上一步的技术结果作为下一步的输入参数,直至所有步骤结束,云管理平台将第M步骤的最终结果作为计算任务对应的最终计算结果。
[0146]如果某个步骤中三组计算资源上报的三个计算结果都不同,说明计算出错了,则管理平台结束三组计算资源的计算任务,可以重新开始计算。
[0147]本实施例提供的方法,通过申请另外两组多余的计算资源来同时执行计算任务,客户端在每一步执行完后,都向云管理平台上报本步骤的计算结果,云管理平台根据各组计算资源返回的每一步的计算结果,确定本步骤的最终计算结果,丢弃掉错误的计算结果,并将本步骤的最终计算结果作为下一个步骤的输入参数,从而保证每一步的计算结果都是准确的。因此,能够保证计算任务对应的最终计算结果的可靠性。
[0148]图3为本发明云计算方法实施例三的流程图,本实施例将通过一个具体的例子对图2所示方法实施例进行详细说明,由于每个计算单元的费用比传统公有云服务低很多,用户可以申请使用多个计算单元同时处理一个关键任务。例如申请三个虚拟机(VirtualManufacturing,简称VM)),运行相同的业务软件。如图4所示,图4为本发明实施例适用的冗余计算流程图,图4中vml,vm2,vm3分别表示三个虚拟机。请参照图3和图4所示,本实施例的方法可以包括:
[0149]步骤301、在vml, vm2, vm3上同时输入Dl,开始step I计算任务。
[0150]假设输入Dl最终需要得到输出D4,计算过程需要经过三个步骤(step)。用户在业务软件中每个step之后设置一个检查点。每次运行到检查点,虚拟机都会把结果上报给云管理平台,云管理平台作为一个仲裁平台。
[0151]仲裁平台的业务逻辑为:假设数据dl需要经过处理得到数据d2,普通计算需要使用一个计算单元,为了提高可靠性,采用冗余计算,在vml, vm2, vm3上同时执行同样的计算逻辑,可能在tl时刻得到d2(vml),可能在t2时刻得到d2 (vm2),可能在t3时刻得到d2 (vm3),假设tl〈t2〈t3,冗余计算成功的标准为:如果d2 (vml) =d2 (vm2),则输出d2(vml),并且将 d2 (vm3)强制设定为 d2 (vml) ;d2 (vml) ! =d2 (vm2) &&d2 (vml) =d2 (vm3),则输出d2 (vml),并且将 d2 (vm2)强制设定为 d2 (vml, d2 (vml) ! =d2 (vm2)&&d2 (vm2) =d2 (vm3),则输出d2(vm2),并且将d2(vml)强制设定为d2 (vm2),其它情况冗余计算失败,需要重新计笪
ο
[0152]步骤302、在stepl·检查点,云管理平台先于vm3得到vml和vm2的计算结果,且vml和vm2的计算结果相同,云管理平台终止vm3继续计算,将stepl的最终结果设定为d2(vml)。
[0153]在stepl检查点,云管理平台先于vm3得到vml和vm2的计算结果,vml的计算结果为d2(vml),vm2的计算结果为d2 (vm2),然后,云管理平台判断d2(vml)和d2 (vm2)是否相同,如果vml和vm2的计算结果相同,云管理平台终止vm3继续计算,将stepl的最终结果设定为d2 (vml)。
[0154]步骤303、在vml, vm2, vm3上同时输入d2(vml),开始step2计算任务。
[0155]三个虚拟机都使用同样的d2(vml),在相同时间点开始step2计算。
[0156]步骤304、在step2检查点,云管理平台先于vm2得到vml和vm3的计算结果,且vml和vm3的计算结果相同,云管理平台终止vm2继续计算,将stepl的最终结果设定为d3(vml)。
[0157]在stepl检查点,云管理平台先于vm2得到vml和vm3的计算结果,vml的计算结果为d3(vml),vm3的计算结果为d3 (vm3),然后,云管理平台判断d3(vml)和d3 (vm3)是否相同,如果d3(vml)和d3(vm3)相同,贝U云管理平台终止vm2继续计算,将step2的最终结果设定为d3 (vml)。
[0158]步骤305、在vml, vm2, vm3上同时输入d3(vml),开始step3计算任务。
[0159]三个虚拟机都使用同样的d3(vml),在相同时间点开始下一步计算。
[0160]步骤306、在step3检查点,云管理平台先于vm3得到vml和vm2的计算结果,且vml和vm2的计算结果相同,云管理平台终止vm3继续计算,将step2的最终结果设定为d4(vml)。
[0161]在step3检查点,云管理平台先于vm3得到vml和vm2的计算结果,vml的计算结果为d4(vml),vm2的计算结果为d4 (vm2),然后,云管理平台判断d4(vml)和d4(vm2)是否相同,如果vml和vm2的计算结果相同,云管理平台终止vm3继续计算,将step3的最终结果设定为d4(vml)。
[0162]以上描述的仲裁、结果强制设定,启动下一步计算等都是云管理平台提供的服务,不需要用户自行实现。云管理平台作为仲裁平台只需提供简单的API接口供用户程序或脚本调用。这些API接口包括:1、报告某个步骤的结果;2、强制停止计算步骤;3、以某个输入参数开始计算步骤。用户如果需要使用冗余计算,需要的操作:1、申请多个计算资源;2、在每个计算资源上运行相同的虚拟机镜像;3、在虚拟机镜像中预置应用程序,在应用程序中实现这些API接口。用户不需要考虑分布式计算的仲裁和调度过程,大大简化了使用冗余计算的难度。
[0163]需要说明的是,仲裁平台可以实现在云管理平台上,也可以使用基于选举的分布式算法实现在客户端的云服务插件上。
[0164]图5为本发明云计算方法实施例四的流程图,如图5所示,本实施例提供的云计算方法包括:
[0165]步骤401、客户端在本地创建至少一个虚拟机,各虚拟机用于向云管理平台提供计算资源。
[0166]客户端在本地创建至少虚拟机,具体为:客户端从云管理平台下载云服务插件,在本地运行云服务插件,通过云服务插件在本地创建至少一个虚拟机。云服务插件是在客户端上实现通用计算的关键,客户端通过云服务插件建立虚拟机,虚拟加相当于一台计算机,该虚拟机能够像真实的计算机一样实现通用计算功能。以下将简单介绍一下云服务插件的主要功能:
[0167](I)为安全通信层提供加密的通信链路,例如采用安全套接字层(Secure SocketsLayer,简称SSL)加密算法对通信链路加密,该通信链路不仅作为业务请求的链路,也作为客户端上的虚拟机的通信链路。使得客户端与云管理平台通信,接受来自云管理平台的资源发放和资源释放请求。
[0168](2)完成本地资源的调度和测量,通过测量决定是否有足够的资源来接受来自云管理平台的请求,并将测量结果定时上报给云管理平台。测量的项目包括CPU、内存和磁盘的占用率,本地闲置计算能力评估等。
[0169](3)对用户租用的虚拟机中的数据加密,主要包括内存、硬盘、网络的加密,内存加密:用户在虚拟内存中的数据需要经过加密后再存储在客户端的物理内存中;硬盘加密:用户的虚拟机中的本地存储数据需要经过加密后再存储在客户端的本地存储介质中;网络加密:用户的虚拟机与外界的所有IP数据包需要经过加密后再通过客户端的物理网卡传输。通过加密技术,从而能够保证用户的数据的安全性,使得该客户端的提供者以及其他人员都无法看到虚拟机上存储的用户数据。
[0170](4)虚拟化层,通过在客户端的操作系统之上建立运行虚拟机,提供运行主流用户操作系统的能力,并将本地CPU、内存和硬盘虚拟化为标准的计算单元。
[0171]步骤402、客户端接收云管理平台发送的计算任务,通过运行各虚拟机利用计算资源完成计算任务,并将计算任务对应的计算结果发送给云管理平台,以使云管理平台根据计算任务对应的计算结果确定计算任务的最终计算结果。
[0172]其中,计算资源可以以标准化后的计算单元度量,每个计算单元位具有相同的CPU处理能力和内存空间、磁盘空间,因此,本实施例提供的客户端还具有将本地资源虚拟化的功能,客户端通过获取本地CPU的利用率、磁盘利用率、内存利用率,确定本地空闲计算资源,然后将本地空闲计算资源虚拟化为标准化的计算单元后,向云管理平台上报空闲计算资源。如果客户端不对空闲计算资源进行虚拟化,则空闲计算资源信息至少包括:各客户端的CPU的剩余能力、剩余内存空间、剩余磁盘空间。如果客户端对空闲计算资源进行虚拟化,则上报的空闲计算资源为空闲计算单元的个数。
[0173]本实施例提供的方法,客户端通过在本地创建至少一个虚拟机,通过运行虚拟机实现通用计算任务。
[0174]在实施例四的基础上,在另一实施例中,在步骤402之后,即客户端接收云管理平台发送的计算任务,通过运行虚拟机利用计算资源完成计算任务之后,还包括:客户端接收云管理平台发送的资源释放请求,根据资源释放请求计算资源。在计算任务完成后,通过及时的将计算资源释放掉,一方面能够降低用户的成本,另一方面,通过将释放的资源供其他用户使用,也能够提高资源的利用率。
[0175]因为提供计算资源的个人PC资源是不可靠的,发生故障或者网络断连等导致服务无法使用的概率比起运营商自建数据中心要高的多。如何在不可靠的资源上实现可靠的计算,是一个关键问题。为了提高计算结果的可靠性,如果计算任务需要M个步骤才能完成计算,则在每个步骤之后设置一个检查点;当客户端运行至检查点时,将本步骤的计算结果上报至云管理平台,以使管理平台根据该客户端的计算结果和其他客户端的计算结果,通过仲裁机制保证计算结果的正确性,具体实现方式这里就不再赘述,可参照实施例二和实施例三的描述。
[0176]在实际的使用过程中,用户需按照实际使用的计算资源付费,费率标准由运营商制定,假设以每使用一个计算单元(CU) —个小时的计算时间记为作为基本计费单位(lcuhour)。用户需按照实际使用的cuhour数付费,费率标准由运营商制定,记为fl。同时,运营商按照提供者帐号记录的cuhour实际使用数,按月付费给提供者,费率标准由运营商制定,记为f2。运行商通过出租每个cuhour得到的毛利为fl-f2。提供者为了多盈利,需要在可能的用户和其他提供者之间具备高带宽,提供尽可能多的cuhour。很多情况下提供者是个人用户,只是利用闲置的个人计算机和宽带来获得一些收入,几乎没有开销。运营商的运营成本主要是维持云管理平台的正常工作,并不需要投入巨大资本建立和维护大型数据中心。而用户可以以比市场上其它云计算提供商(IaaS cloud provider)低得多的成本获得弹性计算能力。
[0177]图6为本发明云管理平台实施例一的结构示意图,如图6所示,本实施例的云管理平台可以包括:接收模块51、资源确定模块52、发送模块53、计算结果确定模块54。
[0178]其中,接收模块51,用于接收用户设备发送的云资源请求,云资源请求中包含计算任务以及完成计算任务所需的计算资源信息;
[0179]资源确定模块52,用于根据云资源请求中包含的计算资源信息,从空闲计算资源中确定出为用户设备分配的计算资源,计算资源由至少一个客户端提供,每个客户端上运行有至少一个虚拟机;
[0180]发送模块53,用于将计算任务发送给提供计算资源的至少一个客户端,使得各客户端分别通过运行的各虚拟机完成计算任务,并向云管理平台返回计算任务对应的计算结果;
[0181]接收模块51,还用于接收计算任务对应的计算结果;
[0182]计算结果确定模块54,用于根据接收模块接收的计算结果确定计算任务对应的最终计算结果。
[0183]本实施例中,资源确定模块52具体用于:根据计算资源信息,以及用户设备与提供空闲计算资源的各客户端之间的网络资源,从空闲资源中确定出为用户设备分配的计算资源。
[0184]本实施例提供的云管理平台还包括:资源释放模块,相应地,接收模块51还用于:接收用户设备发送的资源释放请求;资源释放模块,用于根据接收模块51接收的资源释放请求释放至少一个客户端提供的计算资源。
[0185]本实施例中,接收模块51还用于:接收各客户端上报的空闲计算资源信息。空闲计算资源信息至少包括:各客户端的CPU的剩余能力、剩余内存空间、剩余磁盘空间。由云管理平台统一管理各客户端的空闲计算资源,并为用户分配计算资源。
[0186]本实施例提供的云管理平台,可用于执行方法实施例一提供的技术方案,具体实现方式和技术效果类似,这里不再赘述。
[0187]图7为本发明云管理平台实施例二的结构示意图,如图7所示,本实施例的云管理平台包括:接收模块61、资源确定模块62、发送模块63、计算结果确定模块64。
[0188]其中,接收模块61,用于接收用户设备发送的云资源请求,云资源请求中包含计算任务以及完成计算任务所需的计算资源信息;
[0189]资源确定模块62,用于根据云资源请求中包含的计算资源信息,从空闲计算资源中确定出为用户设备分配的计算资源,计算资源由至少一个客户端提供,每个客户端上运行有至少一个虚拟机;
[0190]发送模块63,用于将计算任务发送给提供计算资源的至少一个客户端,使得各客户端分别通过运行的各虚拟机完成计算任务,并向云管理平台返回计算任务对应的计算结果;
[0191]接收模块61,还用于接收计算任务对应的计算结果;
[0192]计算结果确定模块64,用于根据接收模块接收的计算结果确定计算任务对应的最终计算结果。
[0193]本实施例中,计算资源以标准化后的计算单元度量,每个计算单元具有相同的CPU处理能力和内存空间、磁盘空间,则云资源请求中包含的完成计算任务所需的计算资源信息为完成计算任务所需的计算单元的个数N ;则资源确定模块62具体用于:根据完成计算任务所需的计算单元的个数N,从空闲的计算单元中确定出为用户设备分配的N个计算单
J Li ο
[0194]为了保证计算结果的可靠性,本实施例中,云资源请求中还包括:冗余资源标识,冗余资源标识用于向云管理平台申请三组计算资源,每组计算资源分别包括N个计算单元,每组计算资源分别用于完成计算任务;相应的,资源确定模块62具体用于:根据冗余计算标识和计算资源信息,从空闲计算单元中确定出为用户设备分配的三组计算资源;
[0195]相应的,发送模块63具体用于:将计算任务分别发送给提供三组计算资源的各客户端,以使各客户端上运行的各虚拟机分别计算计算任务,并向云管理平台返回计算任务对应的三个计算结果;接收模块61具体用于:接收计算任务对应的三个计算结果;计算结果确定模块64具体用于:根据计算任务对应的三个计算结果确定计算任务对应的最终计
晳奸里
[0196]如果计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点,检查点用于当各客户端运行至检查点时,各客户端分别将各自本步骤的计算结果上报至云管理平台;相应地,计算结果确定模块具体用于:根据在先接收到两组计算资源中的客户端分别上报的各自本步骤的计算结果,判断两组计算资源上报的本步骤的计算结果是否相同;
[0197]若是,即在先接收到两组计算资源中的客户端分别上报的各自本步骤的计算结果相同,则将两组计算资源上报的相同的计算结果作为本步骤的最终计算结果,如果管理平台还没有收到另一组计算资源上报的本步骤的计算结果,则终止另一组计算资源的运行。
[0198]若否,即在先接收到两组计算资源中的客户端分别上报的各自本步骤的计算结果相同不相同,则等待另一组计算资源上报的本步骤的计算结果,判断三组计算资源上报的本步骤的计算结果中是否有两组计算结果相同,即两两进行比较,判断是否有两组的计算结果相同,若三组计算资源上报的本步骤的计算结果中有两组计算结果相同,则将两组计算资源上报的相同的计算结果作为本步骤的最终计算结果。
[0199]然后,在同一时刻,将本步骤的最终计算结果作为下一步的初始值分别发送给三组计算资源的各客户端,以使三组计算资源的各客户端根据本步骤的最终计算结果同时开始下一步计算,直至M个步骤结束;将第M步骤的最终结果作为计算任务对应的最终计算结果O
[0200]本实施例中,如果某个步骤中三组计算资源上报的三个计算结果都不同,则计算结果确定模块具体用于:结束三组计算资源的计算任务。
[0201]本实施例的云管理平台,可以用于执行方法实施例二和实施例三提供的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0202]图8为本发明客户端实施例一的结构示意图,如图8所示,本实施例的客户端包括:虚拟机创建模块71、接收模块72、计算模块73和发送模块74。
[0203]其中,虚拟机创建模块71,用于在本地创建至少一个虚拟机,各虚拟机用于向云管理平台提供计算资源;
[0204]接收模块72,用于接收云管理平台发送的计算任务;
[0205]计算模块73,用于通过运行各虚拟机利用计算资源完成计算任务;
[0206]发送模块74,用于将计算任务对应的计算结果发送给云管理平台,以使云管理平台根据计算任务对应的计算结果确定计算任务的最终计算结果。
[0207]本实施例中,虚拟机创建模块71具体用于:从云管理平台下载云服务插件,在本地运行云服务插件,通过云服务插件在本地创建至少一个虚拟机。
[0208]本实施例的客户端,还可以包括:空闲资源上报模块,用于获取本地CPU的利用率、磁盘利用率、内存利用率,确定本地空闲计算资源,向云管理平台上报空闲计算资源,空闲计算资源信息至少包括:各客户端的CPU的剩余能力、剩余内存空间、剩余磁盘空间。[0209]进一步地,客户端还可以包括:资源释放模块,接收模块72还用于:接收云管理平台发送的资源释放请求;资源释放模块,用于根据资源释放请求释放计算资源。
[0210]在一种可选的实现方式中,计算资源可以以标准化后的计算单元度量,每个计算单元位具有相同的CPU处理能力、内存空间和磁盘空间;相应地,空闲资源上报模块具体用于:向云管理平台上报空闲的计算单元的个数。
[0211]为了保证计算结果的准确性,如果计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点;发送模块74还用于:当运行至检查点时,将本步骤的计算结果上报给云管理平台,以使云管理平台根据本步骤的计算结果,确定本步骤的最终计算结果,将本步骤的最终计算结果作为下一步的初始值发送给客户端,相应的,客户端的接收模块71接收云管理平台发送的下一步的初始值。
[0212]本实施例提供的客户端,可用于执行方法实施例四提供的技术方案,具体实现方式和技术效果类型,这里不再赘述。
[0213]图9为本发明云管理平台实施例三的结构示意图,如图9所示,本实施例提供的云管理平台800包括:处理器81、存储器82、发射器83、接收器84。存储器82、发射器83和接收器84通过总线和处理器81相连。其中,存储器82存储执行指令,当云管理平台800备运行时,处理器81与存储器82之间通信,处理器81执行执行指令使得云管理平台800执行本发明提供的云计算方法。
[0214]其中,接收器84.用于接收用户设备发送的云资源请求,云资源请求中包含计算任务以及完成计算任务所需的计算资源信息;
[0215]处理器81,用于根据云资源请求中包含的计算资源信息,从空闲计算资源中确定出为用户设备分配的计算资源,计算资源由至少一个客户端提供,每个客户端上运行有至少一个虚拟机;
[0216]发射器83,用于将计算任务发送给提供计算资源的至少一个客户端,使得各客户端分别通过运行的各虚拟机完成计算任务,并向云管理平台返回计算任务对应的计算结果;
[0217]接收器84还用于:接收计算任务对应的计算结果;
[0218]处理器81还用于根据接收器84接收的计算结果确定计算任务对应的最终计算结果O
[0219]本实施例中,处理器81可通过以下方式从空闲资源中确定出分配给客户端的计算资源,具体地,处理器81根据计算资源信息,以及用户设备与提供空闲计算资源的各客户端之间的网络资源,从空闲资源中确定出为用户设备分配的计算资源。空闲资源是根据客户端上报的空闲计算资源信息确定的,因此,接收器84还用于:接收各客户端上报的空闲计算资源信息。其中,空闲计算资源信息至少包括:各客户端的CPU的剩余能力、剩余内存空间、剩余磁盘空间。
[0220]在完成计算任务后,接收器84还用于:接收用户设备发送的资源释放请求;然后,处理器81根据资源释放请求释放至少一个客户端提供的计算资源。
[0221]在本实施例的一种实现方式中,计算资源可以以标准化后的计算单元度量,每个计算单元具有相同的CPU处理能力和内存空间、磁盘空间,则云资源请求中包含的完成计算任务所需的计算资源信息为完成计算任务所需的计算单元的个数N。则处理器81具体用于:根据完成计算任务所需的计算单元的个数N,从空闲的计算单元中确定出为用户设备分配的N个计算单元。
[0222]为了保证计算结果的准确性,在云资源请求中还包括:冗余资源标识,冗余资源标识用于向云管理平台申请三组计算资源,每组计算资源分别包括N个计算单元,每组计算资源分别用于完成计算任务;通过申请冗余计算资源来共同完成计算任务,从而保证结算结果的可靠。则处理器81具体用于根据冗余计算标识和计算资源信息,从空闲计算单元中确定出为用户设备分配的三组计算资源。
[0223]然后,发射器83将计算任务分别发送给提供三组计算资源的各客户端,以使各客户端上运行的各虚拟机分别计算计算任务,并向云管理平台返回计算任务对应的三个计算结果,相应的,接收器84接收客户端发送的计算任务对应的三个计算结果;处理器81根据计算任务对应的三个计算结果确定计算任务对应的最终计算结果。
[0224]本实施中,如果计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点,检查点用于当各客户端运行至检查点时,各客户端分别将各自本步骤的计算结果上报至云管理平台;
[0225]相应地,处理器81根据在先接收到两组计算资源中的客户端分别上报的各自本步骤的计算结果,判断两组计算资源上报的本步骤的计算结果是否相同。若是,则将两组计算资源上报的相同的计算结果作为本步骤的最终计算结果,如果管理平台还没有收到另一组计算资源上报的本步骤的计算结果,则终止另一组计算资源的运行;若否,则等待另一组计算资源上报的本步骤的计算结果,判断三组计算资源上报的本步骤的计算结果中是否有两组计算结果相同。
[0226]若三组计算资源上报的本步骤的计算结果中有两组计算结果相同,则将两组计算资源上报的相同的计算结果作为本步骤的最终计算结果;然后,在同一时刻,将本步骤的最终计算结果作为下一步的初始值通过发射器83分别发送给三组计算资源的各客户端,以使三组计算资源的各客户端根据本步骤的最终计算结果同时开始下一步计算,直至M个步骤结束;将第M步骤的最终结果作为计算任务对应的最终计算结果。
[0227]如果某个步骤中三组计算资源上报的三个计算结果都不同,则计算结果确定模块具体用于:结束三组计算资源的计算任务。
[0228]本实施例提供的云管理平台,可用于执行方法实施例一至三的技术方案,具体实现方式和技术效果类似,这里不再赘述。
[0229]图10为本发明客户端实施例二的结构示意图,如图10所示,本实施例提供的客户端900包括:处理器91、存储器92、发射器93、接收器94。存储器92、发射器93和接收器94通过总线和处理器91相连。其中,存储器92存储执行指令,当客户端900运行时,处理器91与存储器92之间通信,处理器91执行执行指令使得客户端900执行本发明提供的云计算方法。
[0230]其中,处理器91,用于在本地创建至少虚拟机,各虚拟机用于向云管理平台提供计算资源;
[0231]接收器94,用于接收云管理平台发送的计算任务;
[0232]处理器91,用于通过运行各虚拟机利用计算资源完成计算任务;
[0233]发射器93,用于将计算任务对应的计算结果发送给云管理平台,以使云管理平台根据计算任务对应的计算结果确定计算任务的最终计算结果。
[0234]处理器91具体用于通过以下方式创建虚拟机,处理器91具体用于:从云管理平台下载云服务插件,在本地运行云服务插件,通过云服务插件在本地创建至少一个虚拟机。
[0235]处理器91还用于获取本地CPU的利用率、磁盘利用率、内存利用率,确定本地空闲计算资源,并通过发射器93向云管理平台上报空闲计算资源,空闲计算资源信息至少包括:各客户端的CPU的剩余能力、剩余内存空间、剩余磁盘空间。
[0236]本实施例中,接收器94还用于:接收云管理平台发送的资源释放请求;处理器91用于根据资源释放请求释放计算资源。
[0237]—种可行的实现方式中,计算资源以标准化后的计算单元度量,每个计算单元位具有相同的CPU处理能力、内存空间和磁盘空间;相应地,发射器93具体用于向云管理平台上报空闲的计算单元的个数。
[0238]如果计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点;发射器93具体用于:当运行至检查点时,将本步骤的计算结果上报给云管理平台,以使云管理平台根据本步骤的计算结果,确定本步骤的最终计算结果,将本步骤的最终计算结果作为下一步的初始值发送给客户端;相应的,相应的,接收器94还用于,接收云管理平台发送的下一步的初始值。
[0239]本实施例的客户端,可以用于执行方法实施例四所提供的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0240]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0241]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种云计算方法,其特征在于,包括: 云管理平台接收用户设备发送的云资源请求,所述云资源请求中包含计算任务以及完成所述计算任务所需的计算资源信息; 所述云管理平台根据所述云资源请求中包含的所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配的计算资源,所述计算资源由至少一个客户端提供,每个客户端上运行有至少一个虚拟机; 所述云管理平台将所述计算任务发送给提供所述计算资源的至少一个客户端,使得所述各客户端分别通过运行的所述各虚拟机完成所述计算任务,并向所述云管理平台返回所述计算任务对应的计算结果; 所述云管理平台接收所述计算任务对应的计算结果,根据所述计算结果确定所述计算任务对应的最终计算结果。
2.根据权利要求1所述的方法,其特征在于,所述云管理平台根据所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配的计算资源,包括: 所述云管理平台根据所述计算资源信息,以及所述用户设备与提供所述空闲计算资源的各客户端之间的网络资源,从所述空闲资源中确定出为所述用户设备分配的所述计算资源。
3.根据权利要求1所述的方法,其特征在于,所述云管理平台接收所述计算结果,根据所述计算结果确定最终计算结果之后,还包括: 所述云管理平台接收所述用户设备发送的资源释放请求; 所述云管理平台根据所述资源释放请求释放所述至少一个客户端提供的所述计算资源。
4.根据权利要求1所述的方法,其特征在于,还包括: 所述云管理平台接收所述各客户端上报的空闲计算资源信息。
5.根据权利要求4所述的方法,其特征在于,所述空闲计算资源信息至少包括:所述各客户端的中央处理单元CPU的剩余能力、剩余内存空间、剩余磁盘空间。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述计算资源以标准化后的计算单元度量,每个计算单元具有相同的CPU处理能力和内存空间、磁盘空间,则所述云资源请求中包含的完成所述计算任务所需的计算资源信息为完成所述计算任务所需的计算单元的个数N ; 所述云管理平台根据所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配的计算资源,包括: 所述云管理平台根据完成所述计算任务所需的计算单元的个数N,从空闲的计算单元中确定出为所述用户设备分配的N个计算单元。
7.根据权利要求6所述的方法,其特征在于,所述云资源请求中还包括: 冗余资源标识,所述冗余资源标识用于向所述云管理平台申请三组计算资源,所述每组计算资源分别包括N个计算单元,所述每组计算资源分别用于完成所述计算任务; 相应的,所述云管理平台根据所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配计算资源,包括: 所述云管理平台根据所述冗余计算标识和所述计算资源信息,从所述空闲计算单元中确定出为所述用户设备分配的三组计算资源; 所述云管理平台将所述计算任务发送给提供所述计算资源的至少一个客户端,使得所述各客户端分别通过运行的所述各虚拟机完成所述计算任务,并向所述云管理平台返回所述计算任务对应的计算结果,包括: 所述云管理平台将所述计算任务分别发送给提供所述三组计算资源的各客户端,以使所述各客户端上运行的各虚拟机分别计算所述计算任务,并向所述云管理平台返回所述计算任务对应的三个计算结果; 所述云管理平台接收所述计算任务对应的计算结果,根据所述计算结果确定所述计算任务对应的最终计算结果,包括: 所述云管理平台接收所述计算任务对应的三个计算结果,根据所述计算任务对应的三个计算结果确定所述计算任务对应的最终计算结果。
8.根据权利要求7所述的方法,其特征在于,如果所述计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点,所述检查点用于当所述各客户端运行至所述检查点时,所述各客户端分别将各自本步骤的计算结果上报至所述云管理平台; 相应地,所述云管理平台接收所述计算任务对应的三个计算结果,根据所述计算任务对应的三个计算结果确定所述计算任务对应的最终计算结果,包括: 所述云管理平台根据在先接收到两组计算资源中的客户端分别上报的各自本步骤的计算结果,判断所述两组计算资源上报的本步骤的计算结果是否相同; 若是,则所述云管理平台将所述两组计算资源上报的相同的计算结果作为本步骤的最终计算结果,如果所述管理平台还没有收到另一组计算资源上报的本步骤的计算结果,则终止所述另一组计算资源的运行; 若否,则所述云管理平台等待所述另一组计算资源上报的本步骤的计算结果,判断所述三组计算资源上报的本步骤的计算结果中是否有两组计算结果相同; 若所述三组计算资源上报的本步骤的计算结果中有两组计算结果相同,则所述云管理平台将所述两组计算资源上报的相同的计算结果作为本步骤的最终计算结果; 所述云管理平台在同一时刻,将所述本步骤的最终计算结果作为下一步的初始值分别发送给所述三组计算资源的各客户端,以使所述三组计算资源的各客户端根据所述本步骤的最终计算结果同时开始下一步计算,直至M个步骤结束; 所述云管理平台将所述第M步骤的最终结果作为所述计算任务对应的最终计算结果。
9.根据权利要求8所述的方法,其特征在于,如果某个步骤中三组计算资源上报的三个计算结果都不同,则所述管理平台结束所述三组计算资源的计算任务。
10.一种云计算方法,其特征在于,包括:客户端在本地创建至少一个虚拟机,所述各虚拟机用于向云管理平台提供计算资源;所述客户端接收所述云管理平台发送的计算任务,通过运行所述各虚拟机利用所述计算资源完成所述计算任务,并将所述计算任务对应的计算结果发送给所述云管理平台,以使所述云管理平台根据所述计算任务对应的计算结果确定所述计算任务的最终计算结果。
11.根据权利要求10所述的方法,其特征在于,所述客户端在本地创建至少一个虚拟机,包括: 所述客户端从所述云管理平台下载云服务插件,在本地运行所述云服务插件,通过所述云服务插件在本地创建所述至少一个虚拟机。
12.根据权利要求10所述的方法,其特征在于,还包括: 所述客户端获取本地中央处理单元CPU的利用率、磁盘利用率、内存利用率,确定本地空闲计算资源,向所述云管理平台上报所述空闲计算资源,空闲计算资源信息至少包括:所述各客户端的CPU的剩余能力、剩余内存空间、剩余磁盘空间。
13.根据权利要求10所述的方法,其特征在于,所述客户端接收所述云管理平台发送的计算任务,通过运行所述虚拟机利用所述计算资源完成所述计算任务之后,还包括: 所述客户端接收所述云管理平台发送的资源释放请求,根据所述资源释放请求释放所述计算资源。
14.根据权利要求10-13任一项所述的方法,其特征在于,所述计算资源以标准化后的计算单元度量,每个计算单元位具有相同的CPU处理能力、内存空间和磁盘空间; 相应地,所述客户端向所述云管理平台上报所述空闲计算资源,包括: 所述客户端向所述云管理平台上报空闲的计算单元的个数。
15.根据权利要求14所述的方法,其特征在于,如果所述计算任务需要M个步骤才能完成计算,每个步骤之后设置 一个检查点; 当所述客户端运行至所述检查点时,将本步骤的计算结果上报给所述云管理平台,以使所述云管理平台根据所述本步骤的计算结果,确定本步骤的最终计算结果,将本步骤的最终计算结果作为下一步的初始值发送给所述客户端; 相应的,所述客户端还接收所述云管理平台发送的下一步的初始值。
16.一种云管理平台,其特征在于,包括: 接收模块,用于接收用户设备发送的云资源请求,所述云资源请求中包含计算任务以及完成所述计算任务所需的计算资源信息; 资源确定模块,用于根据所述云资源请求中包含的所述计算资源信息,从空闲计算资源中确定出为所述用户设备分配的计算资源,所述计算资源由至少一个客户端提供,每个客户端上运行有至少一个虚拟机; 发送模块,用于将所述计算任务发送给提供所述计算资源的至少一个客户端,使得所述各客户端分别通过运行的所述各虚拟机完成所述计算任务,并向所述云管理平台返回所述计算任务对应的计算结果; 所述接收模块,还用于接收所述计算任务对应的计算结果; 计算结果确定模块,用于根据所述接收模块接收的所述计算结果确定所述计算任务对应的最终计算结果。
17.根据权利要求16所述的云管理平台,其特征在于,所述资源确定模块具体用于: 根据所述计算资源信息,以及所述用户设备与提供所述空闲计算资源的各客户端之间的网络资源,从所述空闲资源中确定出为所述用户设备分配的所述计算资源。
18.根据权利要求16所述的云管理平台,其特征在于,还包括:资源释放模块; 所述接收模块还用于:接收所述用户设备发送的资源释放请求; 所述资源释放模块,用于根据所述资源释放请求释放所述至少一个客户端提供的所述计算资源。
19.根据权利要求16所述的云管理平台,其特征在于,所述接收模块还用于:接收所述各客户端上报的空闲计算资源信息。
20.根据权利要求19所述的云管理平台,其特征在于,所述空闲计算资源信息至少包括:所述各客户端的中央处理单元CPU的剩余能力、剩余内存空间、剩余磁盘空间。
21.根据权利要求16-20任一项所述云管理平台,其特征在于,所述计算资源以标准化后的计算单元度量,每个计算单元具有相同的CPU处理能力和内存空间、磁盘空间,则所述云资源请求中包含的完成所述计算任务所需的计算资源信息为完成所述计算任务所需的计算单元的个数N ; 所述资源确定模块具体用于:根据完成所述计算任务所需的计算单元的个数N,从空闲的计算单元中确定出为所述用户设备分配的N个计算单元。
22.根据权利要求21所述的云管理平台,其特征在于,所述云资源请求中还包括: 冗余资源标识,所述冗余资源标识用于向所述云管理平台申请三组计算资源,所述每组计算资源分别包括N个计算单元,所述每组计算资源分别用于完成所述计算任务; 相应的,所述资源确定模块具体用于:根据所述冗余计算标识和所述计算资源信息,从所述空闲计算单元中确定出为所述用户设备分配的三组计算资源; 所述发送模块具体用于:将所述计算任务分别发送给提供所述三组计算资源的各客户端,以使所述各客户端上运行的各虚拟机分别计算所述计算任务,并向所述云管理平台返回所述计算任务对应的三个计算结果; 所述接收模块具体用于:接收所述计算任务对应的三个计算结果; 所述计算结果确 定模块具体用于:根据所述计算任务对应的三个计算结果确定所述计算任务对应的最终计算结果。
23.根据权利要求22所述的云管理平台,其特征在于,如果所述计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点,所述检查点用于当所述各客户端运行至所述检查点时,所述各客户端分别将各自本步骤的计算结果上报至所述云管理平台; 相应地,计算结果确定模块具体用于:根据在先接收到两组计算资源中的客户端分别上报的各自本步骤的计算结果,判断所述两组计算资源上报的本步骤的计算结果是否相同; 若是,则将所述两组计算资源上报的相同的计算结果作为本步骤的最终计算结果,如果所述管理平台还没有收到另一组计算资源上报的本步骤的计算结果,则终止所述另一组计算资源的运行; 若否,则等待所述另一组计算资源上报的本步骤的计算结果,判断所述三组计算资源上报的本步骤的计算结果中是否有两组计算结果相同; 若所述三组计算资源上报的本步骤的计算结果中有两组计算结果相同,则将所述两组计算资源上报的相同的计算结果作为本步骤的最终计算结果; 在同一时刻,将所述本步骤的最终计算结果作为下一步的初始值分别发送给所述三组计算资源的各客户端,以使所述三组计算资源的各客户端根据所述本步骤的最终计算结果同时开始下一步计算,直至M个步骤结束; 将所述第M步骤的最终结果作为所述计算任务对应的最终计算结果。
24.根据权利要求23所述的云管理平台,其特征在于,如果某个步骤中三组计算资源上报的三个计算结果都不同,则所述计算结果确定模块具体用于:结束所述三组计算资源的计算任务。
25.—种客户端,其特征在于,包括: 虚拟机创建模块,用于在本地创建至少虚拟机,所述各虚拟机用于向云管理平台提供计算资源; 接收模块,用于接收所述云管理平台发送的计算任务; 计算模块,用于通过运行所述各虚拟机利用所述计算资源完成所述计算任务; 发送模块,用于将所述计算任务对应的计算结果发送给所述云管理平台,以使所述云管理平台根据所述计算任务对应的计算结果确定所述计算任务的最终计算结果。
26.根据权利要求25所述的客户端,其特征在于,所述虚拟机创建模块具体用于: 从所述云管理平台下载云服务插件,在本地运行所述云服务插件,通过所述云服务插件在本地创建所述至少一个虚拟机。
27.根据权利要求25所述的客户端,其特征在于,还包括: 空闲资源上报模块,用于获取本地中央处理单元CPU的利用率、磁盘利用率、内存利用率,确定本地空闲计算资源,向所述云管理平台上报所述空闲计算资源,空闲计算资源信息至少包括:所述各客户端的CPU的剩余能力、剩余内存空间、剩余磁盘空间。
28.根据权利要求25所述的客户端,其特征在于,还包括:资源释放模块; 所述接收模块还用于:接收所述云管理平台发送的资源释放请求; 所述资源释放模块,用于根据所述资源释放请求释放所述计算资源。
29.根据权利要求25-28任一项所述的客户端,其特征在于,所述计算资源以标准化后的计算单元度量,每个计算单元位具有相同的CPU处理能力、内存空间和磁盘空间; 相应地,所述空闲资源上报模块具体用于:向所述云管理平台上报空闲的计算单元的个数。
30.根据权利要求29所述的客户端,其特征在于,如果所述计算任务需要M个步骤才能完成计算,每个步骤之后设置一个检查点; 所述发送模块具体用于:当运行至所述检查点时,将本步骤的计算结果上报给所述云管理平台,以使所述云管理平台根据所述本步骤的计算结果,确定本步骤的最终计算结果,将本步骤的最终计算结果作为下一步的初始值发送给所述客户端; 相应的,所述接收模块还用于,接收所述云管理平台发送的下一步的初始值。
【文档编号】H04L29/08GK103544064SQ201310517736
【公开日】2014年1月29日 申请日期:2013年10月28日 优先权日:2013年10月28日
【发明者】庄震 申请人:华为数字技术(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1