本发明涉及云计算技术领域,具体而言,涉及一种混合云安全调度方法和一种混合云安全调度系统。
背景技术:
混合云能够通过从公有云上租用或释放资源,弹性地扩展私有云的服务能力,受到越来越多的中小企业的青睐。对于混合云,如何高效地使用混合云资源是非常重要的问题,而任务调度是解决该问题的关键技术之一。任务调度通过合理映射计算资源与任务,达到减小任务的完成时间、减少供应商的成本支出、提高资源利用率或降低服务水平协议的违约次数等目的。
目前对于混合云任务调度相关的研究成果虽然在一定程度上优化了任务执行性能和混合资源使用效率,但仍然存在一些问题,特别是安全性问题,未考虑任务在公有云上执行的安全性隐患的问题,使得数据在执行过程中缺乏安全保障。
技术实现要素:
本发明正是基于上述技术问题至少之一,提出了一种新的混合云安全调度方案,确保了任务在公有云上执行时的安全性。
有鉴于此,根据本发明提出了一种混合云安全调度方法,包括:在获取到用户发送的任务的请求信息,基于所述任务的请求信息,判断将任务分配至目标私有云服务器或目标公有云虚拟机;在确定将任务分配至目标公有云虚拟机时,对目标公有云虚拟机执行的所述任务进行身份验证;在对所述任务的身份验证通过后,对所述任务所请求的输入数据进行加密处理,并将加密后的数据传输至所述任务;接收所述任务所传输的输出数据,以及对所述任务所传输的输出数据进行完整性验证,并在完成性验证通过时,将所述输出数据反馈至所述用户。
在上述技术方案中,优选地,所述基于所述任务的请求信息,判断将任务分配至私有云服务器或公有云虚拟机包括:获取多个私有云服务器的当前状态信息;根据所述任务的请求信息和所述多个私有云服务器的当前状态信息,判断是否存在所述任务的完成时间早于其截至时间的私有云服务器;若存在,则将其作为所述目标私有云服务器,以及将所述任务分配至所述目标私有云服务器,并为所述任务分配身份验证秘钥、输入数据加密秘钥和输出数据完整性验证秘钥;若不存在,则获取多个公有云虚拟机的当前状态信息;根据所述任务的请求信息和所述多个公有云虚拟机的当前状态信息,判断是否存在所述任务的完成时间早于其截至时间的公有云虚拟机;若存在,则将其作为所述目标公有云虚拟机,以及将所述任务分配至所述目标公有云虚拟机,并为所述任务分配身份验证秘钥、输入数据加密秘钥和输出数据完整性验证秘钥。
在上述任一项技术方案中,优选地,还包括:检测所述任务的完成时间早于其截至时间的私有云服务器的个数是否为多个;若为多个,则将完成时间最接近其截至时间的私有云服务器作为所述目标私有云服务器。
在上述任一项技术方案中,优选地,还包括:检测所述任务的完成时间早于其截至时间的公有云虚拟机的个数是否为多个;若为多个,则对满足所述任务的完成时间早于其截至时间的公有云虚拟机进行性价比排序,并将性价比最高的公有云虚拟机作为所述目标公有云虚拟机。
根据本发明的第二方面,提出了一种混合云安全调度系统,包括:分析模块,用于在获取到用户发送的任务的请求信息,基于所述任务的请求信息,判断将任务分配至目标私有云服务器或目标公有云虚拟机;第一验证模块,用于在确定将任务分配至目标公有云虚拟机时,对目标公有云虚拟机执行的所述任务进行身份验证;加密模块,用于在对所述任务的身份验证通过后,对所述任务所请求的输入数据进行加密处理,并将加密后的数据传输至所述任务;第二验证模块,用于接收所述任务所传输的输出数据,以及对所述任务所传输的输出数据进行完整性验证,并在完成性验证通过时,将所述输出数据反馈至所述用户。
在上述技术方案中,优选地,所述分析模块具体用于:第一获取模块,用于获取多个私有云服务器的当前状态信息;第一判断模块,用于根据所述任务的请求信息和所述多个私有云服务器的当前状态信息,判断是否存在所述任务的完成时间早于其截至时间的私有云服务器;第一确定模块,用于在确定存在所述任务的完成时间早于其截至时间的私有云服务器时,将其作为所述目标私有云服务器,以及将所述任务分配至所述目标私有云服务器,并为所述任务分配身份验证秘钥、输入数据加密秘钥和输出数据完整性验证秘钥;第二获取模块,用于在确定不存在所述任务的完成时间早于其截至时间的私有云服务器时,获取多个公有云虚拟机的当前状态信息;第二判断模块,用于根据所述任务的请求信息和所述多个公有云虚拟机的当前状态信息,判断是否存在所述任务的完成时间早于其截至时间的公有云虚拟机;第二确定模块,用于在确定存在所述任务的完成时间早于其截至时间的公有云虚拟机时,将其作为所述目标公有云虚拟机,以及将所述任务分配至所述目标公有云虚拟机,并为所述任务分配身份验证秘钥、输入数据加密秘钥和输出数据完整性验证秘钥。
在上述任一项技术方案中,优选地,还包括:第一检测模块,用于检测所述任务的完成时间早于其截至时间的私有云服务器的个数是否为多个;所述第一确定模块,具体用于在确定数量为多个时,将完成时间最接近其截至时间的私有云服务器作为所述目标私有云服务器。
在上述任一项技术方案中,优选地,还包括:第二检测模块,用于检测所述任务的完成时间早于其截至时间的公有云虚拟机的个数是否为多个;所述第二确定模块,具体用于在确定数量为多个时,对满足所述任务的完成时间早于其截至时间的公有云虚拟机进行性价比排序,并将性价比最高的公有云虚拟机作为所述目标公有云虚拟机。
通过以上技术方案,利用用户身份验证、数据加密算法和数据完整性验证保证了任务在公有云上的安全执行,并将任务调度到使其完成时间最接近截止时间的私有云资源或性价比最高的公有云资源上,能够在满足任务执行安全性的前提下,优化混合云资源使用效率。
附图说明
图1示出了根据本发明的实施例的混合云安全调度方法的流程示意图;
图2示出了根据本发明的一个实施例的混合云安全调度系统的示意框图;
图3示出了根据本发明的另一个实施例的混合云安全调度系统的示意框图;
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
以下结合图1至图3对本发明的技术方案做进一步说明:
如图1所示,混合云安全调度方法包括以下步骤:
步骤s102,在获取到用户发送的任务的请求信息,基于任务的请求信息,判断将任务分配至目标私有云服务器或目标公有云虚拟机。
步骤s104,在确定将任务分配至目标公有云虚拟机时,对目标公有云虚拟机执行的任务进行身份验证。
步骤s106,在对任务的身份验证通过后,对任务所请求的输入数据进行加密处理,并将加密后的数据传输至任务。
步骤s108,接收任务所传输的输出数据,以及对任务所传输的输出数据进行完整性验证,并在完成性验证通过时,将输出数据反馈至用户。
进一步地,基于任务的请求信息,判断将任务分配至私有云服务器或公有云虚拟机包括:获取多个私有云服务器的当前状态信息;根据任务的请求信息和多个私有云服务器的当前状态信息,判断是否存在任务的完成时间早于其截至时间的私有云服务器;若存在,则将其作为目标私有云服务器,以及将任务分配至目标私有云服务器,并为任务分配身份验证秘钥、输入数据加密秘钥和输出数据完整性验证秘钥;若不存在,则获取多个公有云虚拟机的当前状态信息;根据任务的请求信息和多个公有云虚拟机的当前状态信息,判断是否存在任务的完成时间早于其截至时间的公有云虚拟机;若存在,则将其作为目标公有云虚拟机,以及将任务分配至目标公有云虚拟机,并为任务分配身份验证秘钥、输入数据加密秘钥和输出数据完整性验证秘钥。
进一步地,还包括:检测任务的完成时间早于其截至时间的私有云服务器的个数是否为多个;若为多个,则将完成时间最接近其截至时间的私有云服务器作为目标私有云服务器。
进一步地,还包括:检测任务的完成时间早于其截至时间的公有云虚拟机的个数是否为多个;若为多个,则对满足任务的完成时间早于其截至时间的公有云虚拟机进行性价比排序,并将性价比最高的公有云虚拟机作为目标公有云虚拟机。
如图2所示,根据本发明的一个实施例的混合云安全调度系统200,包括:分析模块202、第一验证模块204、加密模块206和第二验证模块208。
其中,分析模块202用于在获取到用户发送的任务的请求信息,基于任务的请求信息,判断将任务分配至目标私有云服务器或目标公有云虚拟机;第一验证模块204用于在确定将任务分配至目标公有云虚拟机时,对目标公有云虚拟机执行的任务进行身份验证;加密模块206用于在对任务的身份验证通过后,对任务所请求的输入数据进行加密处理,并将加密后的数据传输至任务;第二验证模块208用于接收任务所传输的输出数据,以及对任务所传输的输出数据进行完整性验证,并在完成性验证通过时,将输出数据反馈至用户。
进一步地,分析模块202具体用于:第一获取模块2021,用于获取多个私有云服务器的当前状态信息;第一判断模块2022,用于根据任务的请求信息和多个私有云服务器的当前状态信息,判断是否存在任务的完成时间早于其截至时间的私有云服务器;第一确定模块2023,用于在确定存在任务的完成时间早于其截至时间的私有云服务器时,将其作为目标私有云服务器,以及将任务分配至目标私有云服务器,并为任务分配身份验证秘钥、输入数据加密秘钥和输出数据完整性验证秘钥;第二获取模块2024,用于在确定不存在任务的完成时间早于其截至时间的私有云服务器时,获取多个公有云虚拟机的当前状态信息;第二判断模块2025,用于根据任务的请求信息和多个公有云虚拟机的当前状态信息,判断是否存在任务的完成时间早于其截至时间的公有云虚拟机;第二确定模块2026,用于在确定存在任务的完成时间早于其截至时间的公有云虚拟机时,将其作为目标公有云虚拟机,以及将任务分配至目标公有云虚拟机,并为任务分配身份验证秘钥、输入数据加密秘钥和输出数据完整性验证秘钥。
进一步地,还包括:第一检测模块210,用于检测任务的完成时间早于其截至时间的私有云服务器的个数是否为多个;第一确定模块2023,具体用于在确定数量为多个时,将完成时间最接近其截至时间的私有云服务器作为目标私有云服务器。
进一步地,还包括:第二检测模块212,用于检测任务的完成时间早于其截至时间的公有云虚拟机的个数是否为多个;第二确定模块2026,具体用于在确定数量为多个时,对满足任务的完成时间早于其截至时间的公有云虚拟机进行性价比排序,并将性价比最高的公有云虚拟机作为目标公有云虚拟机。
以下结合图3进一步详细说明:
如图3所示,保障安全性的混合云调度系统由任务分发、用户身份验证、数据加密和数据完整性验证等四个功能模块。
任务分发模块(tdm)接收来自用户的任务请求,然后根据混合云当前状态将任务分发到合适的资源上。
身份验证模块(uam)对公有云上执行的任务所发出的数据请求进行身份验证,只有验证通过后,请求的数据才会被传输到该任务。
数据加密模块(dem)对传输到公有云的数据进行加密处理。
数据完整性验证模块(dim)对公有云上执行的任务所返回的输出数据进行完整性验证。
其中,任务分发模块tdm的工作过程包括以下步骤:
步骤a1.接收来自用户请求的任务的请求信息,包括请求任务的输入数据量、输出数据量、计算量、截止时间以及满足任务对身份验证、输入数据保密性和输出数据完整性等三类安全性要求的性能开销。
步骤a2.接收私有云资源的当前状态信息,包括每台私有云服务器的可用服务能力和数据传输带宽。
步骤a3.选择使步骤a1接收的任务的完成时间早于其截止时间的私有云服务器,其中任务的完成时间计算公式如下:
其中,ind和outd分别表示任务的输入和输出数据量,bw表示私有云服务器的数据传输带宽,wl表示任务的计算量,c表示私有云服务器的可用服务能力。如果不存在符合条件的私有云服务器,则执行步骤a4,反之若存在多个满足条件的私有云服务器,则将任务分发到使其完成时间最接近截止时间的私有云服务器上,若仅存在一个满足条件的私有云服务器,则将任务分发到该私有云服务器上,流程结束。
步骤a4:接收公有云资源信息,包括各类公有云虚拟机的服务能力、单价、数据传输带宽。
步骤a5:选择使步骤a1接收的任务的完成时间早于其截止时间的公有云虚拟机,其中任务的完成时间计算公式如下:
其中,ind和outd分别表示任务的输入和输出数据量,bwv表示公有云虚拟机的数据传输带宽,bw为私有云与用户之间的数据传输带宽,wl表示任务的计算量,cv表示公有云虚拟机的服务能力,oa为满足任务在身份验证方面的安全需求所带来的性能开销,op为满足任务在输入数据保密性方面的安全需求所带来的单位数据量的性能开销,oi为满足任务在输出数据完整性方面的安全需求所带来的单位数据量的性能开销。如果存在多个满足条件的公有云虚拟机,则为任务分配身份验证秘钥、输入数据加密秘钥和输出数据完整性验证秘钥,并将任务分发到性价比最高的公有云虚拟机上,若仅存在一个满足条件的公有云虚拟机,则为任务分配身份验证秘钥、输入数据加密秘钥和输出数据完整性验证秘钥,并将任务分发到该公有云虚拟机上。
进一步,用户身份验证模块uam的工作过程包括以下步骤:
步骤b1.接收在公有云虚拟机上执行任务的输入数据请求。
步骤b2.验证任务的身份验证秘钥是否与任务分发模块为其分配的身份验证秘钥匹配,若匹配,则通知数据加密模块为该任务传输所请求的数据加密,反之流程结束。
进一步,数据加密模块dem的功能包括以下步骤:
步骤c1.接收来自用户身份验证模块发出的为任务传输数据的通知。
步骤c2.利用任务分发模块为任务分配输入数据加密秘钥对该任务所请求的数据进行加密,并将加密的数据传输给该任务。
进一步,数据完整性验证模块dim的工作过程包括以下步骤:
步骤d1.接收来自公有云上执行的任务所传输的输出数据。
步骤d2.利用任务分发模块为任务分配的输出数据完整性验证秘钥验证任务的输出数据的完整性,若完整性验证成功,则将输出数据传输给用户。
通过利用用户身份验证、数据加密算法和数据完整性验证保证了任务在公有云上的安全执行,并将任务调度到使其完成时间最接近截止时间的私有云资源或性价比最高的公有云资源上,从而达到满足任务执行安全性的前提下,优化了混合云资源使用效率的目的。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。