一种跨虚拟机的多服务调用方法及系统技术方案

技术编号:12354470 阅读:72 留言:0更新日期:2015-11-19 04:32
本发明专利技术提供一种跨虚拟机的多服务调用方法及系统,方法包括:第一虚拟机接收第一网络请求,根据所述第一网络请求执行第一任务后向虚拟机监控器发送第一上下文切换请求;所述虚拟机监控器接收所述第一上下文切换请求,将所述第一任务的上下文切换至第二虚拟机中执行第二任务的上下文;所述第二虚拟机执行所述第二任务,完成后向所述虚拟机监控器发送关于所述第一任务的第二上下文切换请求;所述虚拟机监控器接收所述第二上下文切换请求,将所述第二任务的上下文切换至所述第一虚拟机中第一任务的上下文。本发明专利技术可实现位于不同虚拟机中的多服务调用,避免了额外的系统调度,提高了系统的响应速度。

【技术实现步骤摘要】

本专利技术涉及计算机虚拟化
,特别是涉及一种跨虚拟机的多服务调用方法及系统
技术介绍
虚拟化技术在计算机领域被广泛使用,是当前云计算环境的基础架构技术。通过将一台计算机硬件资源进行统一抽象化管理,虚拟出多台相互隔离的虚拟机,从而大幅度提升资源利用率。企业可在减少额外硬件的采购下获得成本节约。在网络功能虚拟化场景中,传统的多网络应用部署是将不同的应用部署在单独的物理机器中,不同的应用通过物理网络连接线进行通讯。如图1所示,在流水线型的多网络应用中,一个网络请求需要依次经过防火墙1、认证服务器2,通过认证后应用业务服务器3对其进行处理,处理完成后将新的网络请求发送到应用业务服务器4进行处理,最终通过网络出口发出响应信息。网络功能虚拟化技术(Network Funct1n Virtualizat1n,简称NFV)将不同的网络应用运行在虚拟化环境中一个独立的虚拟机里,使得通过物理网络连接线进行通讯的方式转变为跨虚拟机的通讯方式。如图2所示,网络请求依次经过虚拟机5至8,在每个虚拟机中完成相应角色的处理,最终发出响应信息。然而,云平台中虚拟机之间较高的隔离性使得各虚拟机间的通讯变得复杂,完成通讯的时间也难以预测。例如,一个跨虚拟机的服务调用,即从一个虚拟机中调用另一个虚拟机的代码,需要利用底层虚拟机监控器的调度从一个虚拟机切换到另一个虚拟机中执行,而调度本身的时间并不确定,因为虚拟机监控器可能调度到其他的虚拟机而不是目标虚拟机中运行,在经过几次调度后才调度到目标虚拟机,执行目标虚拟机中的代码后返回。目前,虚拟化环境中多个虚拟机以流水线的方式处理外部请求时,要么以同步调用的方式借助底层虚拟机监控器将请求依次传递给下一个虚拟机处理,要么以异步调用的方式通过共享内存的方法将请求交由下一虚拟机处理。上述两种方法,前者需经过虚拟机监控器的调度,使得下一个虚拟机获取并处理外部请求的时间不能确定,在高负载的情况下延迟较大导致响应时间变长。后者通过共享内存,以轮询的方式通知下一个虚拟机,在单核环境下与前者情况类似;在多核环境下,当系统处于低负载时,不断轮询会额外消耗处理器资源,导致系统的实际资源利用率低下。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种跨虚拟机的多服务调用方法及系统,用于解决现有技术中网络请求响应时间不确定,负载高时延迟较大,额外耗费处理器资源导致利用率低下等问题。为实现上述目的及其他相关目的,本专利技术提供一种跨虚拟机的多服务调用方法,包括:第一虚拟机接收第一网络请求,根据所述第一网络请求执行第一任务后向虚拟机监控器发送第一上下文切换请求。所述虚拟机监控器接收所述第一上下文切换请求,将所述第一任务的上下文切换至第二虚拟机中执行第二任务的上下文。所述第二虚拟机执行所述第二任务,完成后向所述虚拟机监控器发送关于所述第一任务的第二上下文切换请求。所述虚拟机监控器接收所述第二上下文切换请求,将所述第二任务的上下文切换至所述第一虚拟机中的第一任务的上下文。可选的,所述方法是在以共享内存的方式建立的数据共享区中实现的。可选的,所述第一、第二上下文切换是通过一个超调用向所述虚拟机监控器发送一即时切换请求实现的。可选的,所述第一、第二上下文切换是通过切换进程的页表状态实现的。可选的,所述虚拟机监控器收到第一或第二上下文切换请求后,对第一或第二虚拟机进行安全认证,认证通过时进行相应的上下文切换。为实现上述目的及其他相关目的,本专利技术提供一种跨虚拟机的多服务调用系统,包括:第一、第二虚拟机及虚拟机监控器。第一虚拟机用于接收第一网络请求,据以执行第一任务,发送第一上下文切换请求。第二虚拟机用于执行第二任务,发送关于所述第一任务的第二上下文切换请求。虚拟机监控器用于接收所述第一上下文切换请求,将所述第一任务的上下文切换至第二虚拟机中执行第二任务的上下文;接收所述第二上下文切换请求,将所述第二任务的上下文切换至所述第一虚拟机中的第一任务的上下文。可选的,所述系统是在以共享内存的方式建立的数据共享区中运行的。可选的,所述第一、第二上下文切换是通过一个超调用向所述虚拟机监控器发送一即时切换请求实现的。可选的,所述第一、第二上下文切换是通过切换进程的页表状态实现的。可选的,所述虚拟机监控器还用于:收到第一或第二上下文切换请求后,对第一或第二虚拟机进行安全认证,认证通过时进行相应的上下文切换。如上所述,本专利技术的一种跨虚拟机的多服务调用方法及系统,具有以下有益效果:I)相对于现有的同步调用,避免了高负载时虚拟机监控器在调度上的不确定性,大大提高了响应速度。2)相对于现有的异步调用,避免了低负载时空转轮询导致的处理器资源浪费,大大提高了处理器的资源利用率。【附图说明】图1显示为现有技术中不同物理设备组成的多网络应用环境示意图;图2显示为现有技术中虚拟化环境下多网络应用的处理过程示意图;图3显示为本专利技术一实施例中跨虚拟机的多服务调用方法流程图;图4显示为本专利技术一实施例中跨虚拟机的多服务调用系统示意图。元件标号说明I防火墙2认证服务器3,4 应用业务服务器5-8虚拟机9一种跨虚拟机的多服务调用系统91第一虚拟机92第二虚拟机93虚拟机监控器SI ?S4 步骤①-⑤顺序【具体实施方式】以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。请参阅图3,本专利技术提供一种跨虚拟机的多服务调用方法,应用于云环境虚拟化技术中对多网络应用的处理,包括:步骤S1:第一虚拟机接收第一网络请求,根据所述第一网络请求执行第一任务,当第一任务完成后,向虚拟机监控器发送第一上下文切换请求。在一实施例中,所述方法还包括初始化步骤,优选为首先通过共享内存的方式建立一个数据共享区,然后在收到网络请求时,按照步骤SI进行处理。在一实施例中,所述第一任务完成后,所述第一虚拟机将第二虚拟机所需要的网络请求数据写入共享内存中,通过一个超调用(hypercall)向所述虚拟机监控器发送一即时切换请求进而实现第一上下文切换请求。步骤S2:所述虚拟机监控器接收所述第一上下文切换请求,将所述第一任务的上下文切换至第二虚拟机中执行第二任务的上下文。需要说明的是,该步骤不同于现有技术中虚拟机监控器的调度程序,针对性更强。针对多核的情况,系统在启动每个任务处理程序时会为其创建一个或多个非活动状态的独立线程,用于作为上下当前第1页1 2 本文档来自技高网
...
一种跨虚拟机的多服务调用方法及系统

【技术保护点】
一种跨虚拟机的多服务调用方法,其特征在于,包括:第一虚拟机接收第一网络请求,根据所述第一网络请求执行第一任务后向虚拟机监控器发送第一上下文切换请求;所述虚拟机监控器接收所述第一上下文切换请求,将所述第一任务的上下文切换至第二虚拟机中执行第二任务的上下文;所述第二虚拟机执行所述第二任务,完成后向所述虚拟机监控器发送关于所述第一任务的第二上下文切换请求;所述虚拟机监控器接收所述第二上下文切换请求,将所述第二任务的上下文切换至所述第一虚拟机中第一任务的上下文。

【技术特征摘要】

【专利技术属性】
技术研发人员:利文浩张之收陈锴
申请(专利权)人:上海谐桐信息技术有限公司
类型:发明
国别省市:上海;31

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

1