分离式虚拟机及其虚拟机架构、构建方法和优化方法技术

技术编号:31820361 阅读:30 留言:0更新日期:2022-01-12 12:11
本发明专利技术提供了一种分离式虚拟机架构,包括一个或多个虚拟机处理器,其中每一个虚拟机处理器均包括运行于不同物理处理器上的虚拟机运行模块和虚拟机监控模块,虚拟机运行模块和虚拟机监控模块之间通信连接。同时提供了一种基于该架构实现的软件模拟的分离式虚拟机及其构建方法和优化方法,分离式虚拟机的每一个虚拟机处理器均对应两个线程,分别为虚拟机运行线程和虚拟机监控线程;虚拟机运行线程和虚拟机监控线程分别运行在不同的物理处理器上,并通过共享内存或核间中断的方式通信连接,通过半虚拟化拓展方式和硬件拓展方式消除虚拟机退出,提升了软件模拟的分离式虚拟机的虚拟化性能。化性能。化性能。

【技术实现步骤摘要】
分离式虚拟机及其虚拟机架构、构建方法和优化方法


[0001]本专利技术涉及系统虚拟化和云计算
,具体地,涉及一种分离式虚拟机(Split VM)及其虚拟机架构、构建方法和优化方法。

技术介绍

[0002]随着云计算技术的飞速发展,云环境中虚拟化的性能也引起了人们的广泛关注。在传统的虚拟化架构中,由于虚拟机运行模块(Guest)和虚拟机监控模块(Hypervisor)运行在同一个物理核上,共享同一个物理核的寄存器和高速缓存区等物理资源而引入了昂贵的虚拟机退出(VM-Exit)操作。
[0003]目前虽然有一些研究尝试消除虚拟机退出(VM-Exit)操作,但是大部分都是通过设置虚拟机控制结构(VMCS)中VM-Execution控制域减少敏感指令触发的VM-Exit的数目,并不能从根本意义上消除VM-Exit。此外,这些研究大多专注于虚拟机的I/O操作,而不适用于所有的敏感指令。
[0004]目前没有发现同本专利技术类似技术的说明或报道,也尚未收集到国内外类似的资料。

技术实现思路

[0005]本专利技术针对现有技术中存在的上述问题,提供了一种分离式虚拟机及其虚拟机架构、构建方法和优化方法,将虚拟机运行模块(Guest)和虚拟机监控模块(Hypervisor)分离到不同的物理核上,并通过半虚拟化的方式或在硬件层次加入一种轻量级的核间通信方式消除VM-Exit,提升虚拟化的性能。
[0006]本专利技术是通过以下技术方案实现的。
[0007]根据本专利技术的一个方面,提供了一种分离式虚拟机架构,包括一个或多个虚拟机处理器,其中每一个所述虚拟机处理器均包括运行于不同物理处理器上的虚拟机运行模块和虚拟机监控模块,所述虚拟机运行模块和虚拟机监控模块之间通信连接。
[0008]优选地,所述虚拟机运行模块和虚拟机监控模块分别运行于固定的物理处理器上,且分别拥有属于自己的物理资源;其中:
[0009]所述虚拟机运行模块用于执行虚拟机非敏感指令,并将敏感指令发送至虚拟机监控模块;
[0010]所述虚拟机监控模块用于执行虚拟机运行模块发送的敏感指令,并将所执行的敏感指令及其详细信息反馈至虚拟机运行模块;
[0011]所述虚拟机监控模块在处理敏感指令时,所述虚拟机运行模块控制虚拟机暂停执行,等待虚拟机监控模块对敏感指令处理完成后,根据虚拟机监控模块反馈的完成信号,恢复虚拟机执行。
[0012]优选地,所述虚拟机运行模块和虚拟机监控模块之间通过核间中断或共享内存的通信方式连接。
[0013]优选地,所述虚拟机监控模块在如下任意一种或任意多种情况下修改虚拟机运行模块的状态:
[0014]-所述虚拟机运行模块执行需要修改其当前所在物理处理器关键寄存器状态的敏感指令时,所述虚拟机监控模块在处理过程中修改虚拟机运行模块的状态;
[0015]-所述虚拟机监控模块处理完外部中断时,修改所述虚拟机运行模块的物理APIC(高级可编程中断控制器)状态。
[0016]根据本专利技术的另一个方面,提供了一种软件模拟的分离式虚拟机,所述分离式虚拟机的每一个虚拟机处理器均对应两个线程,分别为虚拟机运行线程和虚拟机监控线程;所述虚拟机运行线程和虚拟机监控线程分别运行在不同的物理处理器上,并通过共享内存或核间中断的方式通信连接;其中:
[0017]对于运行虚拟机运行线程的物理处理器称为虚拟机运行核;
[0018]对于运行虚拟机监控线程的物理处理器成为虚拟机监控核。
[0019]优选地,所述分离式虚拟机对敏感指令的处理方法为:
[0020]所述虚拟机运行线程用于运行虚拟机代码,并在执行敏感指令时发生虚拟机退出,保存虚拟机状态;所述虚拟机监控线程用于处理虚拟机运行线程发生的虚拟机退出,并通知虚拟机运行线程恢复虚拟机执行,完成对敏感指令的处理。
[0021]优选地,所述分离式虚拟机对敏感指令的处理方法,包括如下步骤:
[0022]所述虚拟机运行线程执行敏感指令,并发生虚拟机退出;
[0023]所述虚拟机运行线程保存虚拟机状态并加载宿主机状态;
[0024]所述虚拟机运行线程通知所述虚拟机监控线程有虚拟机退出发生并进入等待状态;
[0025]所述虚拟机监控线程加载虚拟机处理器VCPU对应的虚拟机控制结构VMCS;
[0026]所述虚拟机监控线程读取虚拟机退出的原因和详细信息,处理虚拟机退出;
[0027]所述虚拟机监控线程通知所述虚拟机运行线程虚拟机退出处理完成并进入等待状态;
[0028]所述虚拟机运行线程退出等待状态,并加载虚拟机处理器VCPU对应的虚拟机控制结构VMCS;
[0029]所述虚拟机运行线程保存当前状态并加载虚拟机状态开始执行虚拟机代码。
[0030]根据本专利技术的第三个方面,提供了一种上述任一项所述的软件模拟的分离式虚拟机的构建方法,包括:
[0031]用户向虚拟机管理软件发送创建虚拟机请求,至少包括如下参数:所要创建的虚拟机类型、虚拟机处理器的数量以及虚拟机内存大小;
[0032]所述虚拟机管理软件解析参数,为每一个虚拟机处理器创建一个虚拟机监控线程,并将所述虚拟机监控线程绑定到固定的物理处理器上;
[0033]所述虚拟机监控线程为每一个虚拟机处理器创建一个与所述虚拟机监控线程对应的虚拟机运行线程,并将所述虚拟机运行线程绑定到另一个固定的物理处理器上然后返回,所述虚拟机运行线程进入等待状态;
[0034]所述虚拟机监控线程完成虚拟机初始化工作,通知所述虚拟机运行线程开始运行虚拟机代码;
[0035]所述虚拟机运行线程收到所述虚拟机监控线程的请求开始执行虚拟机代码,完成对软件模拟的分离式虚拟机的构建。
[0036]根据本专利技术的第四个方面,提供了一种所述的软件模拟的分离式虚拟机的优化方法,包括如下任意一种或任意多种方式:
[0037]-半虚拟化拓展方式,所述半虚拟化拓展方式包括:
[0038]将所述虚拟机运行线程所要执行的敏感指令直接发送至所述虚拟机监控线程,所述虚拟机监控线程模拟敏感指令的执行并将执行结果返回至所述虚拟机运行线程,期间不发生虚拟机退出;
[0039]-硬件拓展方式,所述硬件拓展方式包括:
[0040]采用轻量级的核间通信方式,当虚拟机运行核执行敏感指令时,暂停执行虚拟机代码,将敏感指令的具体信息通过所述轻量级的核间通信方式传递给虚拟机监控核,所述虚拟机监控核处理完成后以所述轻量级的核间通信方式通知所述虚拟机运行核,所述虚拟机运行核立即恢复虚拟机执行。
[0041]其中,所述轻量级的核间通信方式具体为:该通信方式类似于核间中断的硬件信号,但又有所不同。虚拟机监控核接收到该通信信号后,可从中读取到需要处理的敏感指令以及处理所需的参数。虚拟机运行核接收到该通信信号后,立即恢复虚拟机的执行。
[0042]优选地,在所述半虚拟化拓展方式下,所述分离式虚拟机处理敏感指令的方法,包括:<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分离式虚拟机架构,包括一个或多个虚拟机处理器,其特征在于,每一个所述虚拟机处理器均包括运行于不同物理处理器上的虚拟机运行模块和虚拟机监控模块,所述虚拟机运行模块和虚拟机监控模块之间通信连接。2.根据权利要求1所述的分离式虚拟机架构,其特征在于,所述虚拟机运行模块和虚拟机监控模块分别运行于固定的物理处理器上,且分别拥有属于自己的物理资源;其中:所述虚拟机运行模块用于执行虚拟机非敏感指令,并将敏感指令发送至虚拟机监控模块;所述虚拟机监控模块用于执行虚拟机运行模块发送的敏感指令,并将所执行的敏感指令及其详细信息反馈至虚拟机运行模块;所述虚拟机监控模块在处理敏感指令时,所述虚拟机运行模块控制虚拟机暂停执行,等待虚拟机监控模块对敏感指令处理完成后,根据虚拟机监控模块反馈的完成信号,恢复虚拟机执行。3.根据权利要求1所述的分离式虚拟机架构,其特征在于,还包括如下任意一项或任意多项:-所述虚拟机监控模块在如下任意一种或任意多种情况下修改虚拟机运行模块的状态:所述虚拟机运行模块执行需要修改其当前所在物理处理器关键寄存器状态的敏感指令时,所述虚拟机监控模块在处理过程中修改虚拟机运行模块的状态;所述虚拟机监控模块处理完外部中断时,修改所述虚拟机运行模块的物理APIC状态;-所述虚拟机运行模块和虚拟机监控模块之间通过核间中断或共享内存的通信方式连接。4.一种软件模拟的分离式虚拟机,其特征在于,所述分离式虚拟机的每一个虚拟机处理器均对应两个线程,分别为虚拟机运行线程和虚拟机监控线程;所述虚拟机运行线程和虚拟机监控线程分别运行在不同的物理处理器上,并通过共享内存或核间中断的方式通信连接;其中:对于运行虚拟机运行线程的物理处理器称为虚拟机运行核;对于运行虚拟机监控线程的物理处理器成为虚拟机监控核。5.根据权利要求4所述的软件模拟的分离式虚拟机,其特征在于,所述分离式虚拟机对敏感指令的处理方法为:所述虚拟机运行线程用于运行虚拟机代码,并在执行敏感指令时发生虚拟机退出,保存虚拟机状态;所述虚拟机监控线程用于处理虚拟机运行线程发生的虚拟机退出,并通知虚拟机运行线程恢复虚拟机执行,完成对敏感指令的处理。6.根据权利要求5所述的软件模拟的分离式虚拟机,其特征在于,所述分离式虚拟机对敏感指令的处理方法,包括如下步骤:所述虚拟机运行线程执行敏感指令,并发生虚拟机退出;所述虚拟机运行线程保存虚拟机状态并加载宿主机状态;所述虚拟机运行线程通知所述虚拟机监控线程有虚拟机退出发生并进入等待状态;所述虚拟机监控线程加载虚拟机处理器VCPU对应的虚拟机控制结构VMCS;所述虚拟机监控线程读取虚拟机退出的原因和详细信息,处理虚拟机退出;
所述虚拟机监控线程通知所述虚拟机运行线程虚拟机退出处理完成并进入等待状态;所述虚拟机运行线...

【专利技术属性】
技术研发人员:戚正伟余博识贾兴国吴承刚管海兵
申请(专利权)人:上海交通大学
类型:发明
国别省市:

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

1