CN105068859B - 一种跨虚拟机的多服务调用方法及系统 - Google Patents

一种跨虚拟机的多服务调用方法及系统 Download PDF

Info

Publication number
CN105068859B
CN105068859B CN201510456088.2A CN201510456088A CN105068859B CN 105068859 B CN105068859 B CN 105068859B CN 201510456088 A CN201510456088 A CN 201510456088A CN 105068859 B CN105068859 B CN 105068859B
Authority
CN
China
Prior art keywords
virtual machine
context
task
handover request
monitor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510456088.2A
Other languages
English (en)
Other versions
CN105068859A (zh
Inventor
利文浩
张之收
陈锴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Mengyu Information Technology Co.,Ltd.
Original Assignee
Shanghai Xietong Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Xietong Information Technology Co Ltd filed Critical Shanghai Xietong Information Technology Co Ltd
Priority to CN201510456088.2A priority Critical patent/CN105068859B/zh
Publication of CN105068859A publication Critical patent/CN105068859A/zh
Application granted granted Critical
Publication of CN105068859B publication Critical patent/CN105068859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供一种跨虚拟机的多服务调用方法及系统,方法包括:第一虚拟机接收第一网络请求,根据所述第一网络请求执行第一任务后向虚拟机监控器发送第一上下文切换请求;所述虚拟机监控器接收所述第一上下文切换请求,将所述第一任务的上下文切换至第二虚拟机中执行第二任务的上下文;所述第二虚拟机执行所述第二任务,完成后向所述虚拟机监控器发送关于所述第一任务的第二上下文切换请求;所述虚拟机监控器接收所述第二上下文切换请求,将所述第二任务的上下文切换至所述第一虚拟机中第一任务的上下文。本发明可实现位于不同虚拟机中的多服务调用,避免了额外的系统调度,提高了系统的响应速度。

Description

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

Claims (8)

1.一种跨虚拟机的多服务调用方法,其特征在于,所述方法在以共享内存的方式建立的数据共享区中实现,包括:
第一虚拟机接收第一网络请求,根据所述第一网络请求执行第一任务后向虚拟机监控器发送第一上下文切换请求;
所述虚拟机监控器接收所述第一上下文切换请求,将所述第一任务的上下文切换至第二虚拟机中执行第二任务的上下文;
所述第二虚拟机执行所述第二任务,完成后向所述虚拟机监控器发送关于所述第一任务的第二上下文切换请求;
所述虚拟机监控器接收所述第二上下文切换请求,将所述第二任务的上下文切换至所述第一虚拟机中第一任务的上下文。
2.根据权利要求1所述的跨虚拟机的多服务调用方法,其特征在于,所述第一、第二上下文切换是通过一个超调用向所述虚拟机监控器发送一即时切换请求实现的。
3.根据权利要求1所述的跨虚拟机的多服务调用方法,其特征在于,所述第一、第二上下文切换是通过切换进程的页表状态实现的。
4.根据权利要求1所述的跨虚拟机的多服务调用方法,其特征在于,所述虚拟机监控器收到第一或第二上下文切换请求后,对第一或第二虚拟机进行安全认证,认证通过时进行相应的上下文切换。
5.一种跨虚拟机的多服务调用系统,其特征在于,所述系统在以共享内存的方式建立的数据共享区中运行,包括:
第一虚拟机,用于接收第一网络请求,据以执行第一任务,发送第一上下文切换请求;
第二虚拟机,用于执行第二任务,发送关于所述第一任务的第二上下文切换请求;
虚拟机监控器,用于接收所述第一上下文切换请求,将所述第一任务的上下文切换至第二虚拟机中执行第二任务的上下文;接收所述第二上下文切换请求,将所述第二任务的上下文切换至所述第一虚拟机中第一任务的上下文。
6.根据权利要求5所述的跨虚拟机的多服务调用系统,其特征在于,所述第一、第二上下文切换是通过一个超调用向所述虚拟机监控器发送一即时切换请求实现的。
7.根据权利要求5所述的跨虚拟机的多服务调用系统,其特征在于,所述第一、第二上下文切换是通过切换进程的页表状态实现的。
8.根据权利要求5所述的跨虚拟机的多服务调用系统,其特征在于,所述虚拟机监控器还用于:收到第一或第二上下文切换请求后,对第一或第二虚拟机进行安全认证,认证通过时进行相应的上下文切换。
CN201510456088.2A 2015-07-29 2015-07-29 一种跨虚拟机的多服务调用方法及系统 Active CN105068859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510456088.2A CN105068859B (zh) 2015-07-29 2015-07-29 一种跨虚拟机的多服务调用方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510456088.2A CN105068859B (zh) 2015-07-29 2015-07-29 一种跨虚拟机的多服务调用方法及系统

Publications (2)

Publication Number Publication Date
CN105068859A CN105068859A (zh) 2015-11-18
CN105068859B true CN105068859B (zh) 2017-12-15

Family

ID=54498237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510456088.2A Active CN105068859B (zh) 2015-07-29 2015-07-29 一种跨虚拟机的多服务调用方法及系统

Country Status (1)

Country Link
CN (1) CN105068859B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559447A (zh) * 2015-09-25 2017-04-05 中兴通讯股份有限公司 Jslee容器的业务处理方法及系统
CN105912406B (zh) * 2016-05-05 2018-01-12 中国人民解放军国防科学技术大学 一种低能耗的独立任务调度与资源配置方法
CN108009007B (zh) * 2016-10-27 2021-01-15 华为技术有限公司 轻量级线程的调度方法及协同管理器、vCPU调度器
CN108241801B (zh) * 2016-12-26 2021-03-30 华为技术有限公司 处理系统调用的方法和装置
WO2018119811A1 (zh) 2016-12-29 2018-07-05 深圳前海达闼云端智能科技有限公司 多虚拟机同时运行的方法、装置及电子设备
JP6706354B2 (ja) * 2017-02-08 2020-06-03 日本電信電話株式会社 通信装置及び通信方法
CN112035272A (zh) * 2019-06-03 2020-12-04 华为技术有限公司 进程间通信的方法、装置以及计算机设备
CN111124664B (zh) * 2019-11-22 2023-12-08 华为技术有限公司 第一操作系统访问第二操作系统资源的方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598294A (zh) * 2015-01-07 2015-05-06 杨学仕 用于移动设备的高效安全的虚拟化方法及其设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372735B2 (en) * 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
US9170849B2 (en) * 2012-01-09 2015-10-27 Microsoft Technology Licensing, Llc Migration of task to different pool of resources based on task retry count during task lease
CN104572314B (zh) * 2013-10-22 2018-04-10 华为技术有限公司 一种进程间的通信方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598294A (zh) * 2015-01-07 2015-05-06 杨学仕 用于移动设备的高效安全的虚拟化方法及其设备

Also Published As

Publication number Publication date
CN105068859A (zh) 2015-11-18

Similar Documents

Publication Publication Date Title
CN105068859B (zh) 一种跨虚拟机的多服务调用方法及系统
Choi et al. Serving heterogeneous machine learning models on {Multi-GPU} servers with {Spatio-Temporal} sharing
Chen et al. Cloudscope: Diagnosing and managing performance interference in multi-tenant clouds
US8099487B1 (en) Systems and methods for determining placement of virtual machines
Liu et al. Task scheduling with precedence and placement constraints for resource utilization improvement in multi-user MEC environment
CN103744716A (zh) 一种基于当前vcpu调度状态的动态中断均衡映射方法
CN113641457A (zh) 容器创建方法、装置、设备、介质及程序产品
US9003094B2 (en) Optimistic interrupt affinity for devices
RU2690198C1 (ru) Способ обработки ресурсов виртуализации сетевых функций и диспетчер виртуализованной сетевой функции
Lu et al. vhaul: Towards optimal scheduling of live multi-vm migration for multi-tier applications
CN109240795A (zh) 一种适用于超融合it基础设施的云计算资源池模型的资源调度方法
Raei et al. Performability analysis of cloudlet in mobile cloud computing
Sohrabi et al. The effects of hotspot detection and virtual machine migration policies on energy consumption and service levels in the cloud
EP3281112A1 (en) Network service infrastructure management system and method of operation
US20190114079A1 (en) Apparatus for managing disaggregated memory and method thereof
Zhang et al. A communication-aware container re-distribution approach for high performance VNFs
CN104572314B (zh) 一种进程间的通信方法及装置
Wang et al. Optimizing big data processing performance in the public cloud: opportunities and approaches
Zhao et al. Efficient sharing and fine-grained scheduling of virtualized GPU resources
CN105653347B (zh) 一种服务器、资源管理方法及虚拟机管理器
Kim et al. A parallel migration scheme for fast virtual machine relocation on a cloud cluster
Cerrato et al. An efficient data exchange algorithm for chained network functions
Jena et al. Performance evaluation of load balancing algorithms on cloud data centers
CN112306670A (zh) 一种Docker虚拟化场景下的服务器集群优化方法
US11954534B2 (en) Scheduling in a container orchestration system utilizing hardware topology hints

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201124

Address after: Building 9, No. 439 Chunxiao Road, Zhangjiang science and Technology Park, Pudong New Area, Shanghai

Patentee after: Shanghai Mengyu Information Technology Co.,Ltd.

Address before: 200127 Shanghai Pudong New Area City asan Road No. 111 building 4 room 317

Patentee before: SHANGHAI XIETONG INFORMATION TECHNOLOGY Co.,Ltd.