虚拟机运行跟踪制造技术

技术编号:39576524 阅读:7 留言:0更新日期:2023-12-03 19:27
实施方式涉及虚拟化层捕获由虚拟化层所管理的

【技术实现步骤摘要】
虚拟机运行跟踪
[0001]本申请是于
2018
年3月
26
日向国际局提出

优先权日为
2017
年4月1日和
2017
年4月
14



2019
年9月
25
日进入中国国家阶段

国家申请号为
201880021127.8、
专利技术名称为“虚拟机运行跟踪”的中国专利技术专利申请的分案申请


技术介绍

[0002]机器虚拟化是用于将计算机的硬件呈现为多个虚拟机
(VM)
的技术,其中每个虚拟机能够同时在相同计算机上运行

每个此类虚拟机
(VM)
能够托管客户操作系统,并且计算机的硬件到客户操作系统的虚拟化呈现对客户操作系统是基本上透明的

机器虚拟化已经变得有效

可靠并且便于管理

因此,机器虚拟化被更加频繁地使用,并且用于扩展应用和工作负载的类型

[0003]机器虚拟化越来越多的使用导致对于如下的需求增加:理解
VM
的运行

分析性能

维护
VM
的计算活动的记录以及调试
VM
的运行和
/
或其客户软件
。VM
运行跟踪是为了这些目的而提出的一种技术

运行跟踪包括跟踪
VM
的运行活动,并且存储运行跟踪以用于后续分析

运行跟踪可以用于详细的运行后分析以及调试
VM
运行

理想地,运行跟踪是确定性的并且“可重放”,也即,其具有足够的信息以支持软件调试工具中常见的回放特征,诸如语句的逐步运行

反向回放

详细堆栈以及每个语句之前和之后的符号分析等

[0004]虽然已经认识到
VM
运行跟踪是可期望的,但是先前的尝试在实现和性能上存在缺点

一种方法是强制
VM
在单个运行线程中运行,这促进确定性,但是难以实现并且限制了性能

对于并行性非常关键的许多类型的客户软件而言,该限制禁止了产品使用

另一种方法捕获所有
VM
存储器,但是这带来了启动和存储成本

又一种方法使用存储器状态的复杂运行时监测来维护跟踪确定性,但是这难以准确实现,具有高开销,并且可能显著影响一些工作负载的性能

具有跟踪启动指令的仪器客户软件是另一种可能性,但是其具有需要重新编译以及部署新的可运行代码的实际缺点

其他的方法尝试了在
VM
和管理程序之间插入跟踪逻辑,但是成败参半并且具有许多平台特异性

[0005]所需要的是便于在虚拟化层实现的用于可重放
VM
运行跟踪的技术,对
VM
性能具有较低的影响,维持并发多处理
VM
的因果关系,并且可以在有或没有
VM
可见性或动作的情况下使用


技术实现思路

[0006]包括以下
技术实现思路
仅为了介绍在下文具体实施方式中讨论的一些概念


技术实现思路
不是全面的,并且不旨在描述所要求保护的主题的范围,所要求保护的主题的范围由结尾处提供的权利要求来阐述

[0007]实施方式涉及捕获由虚拟化层所管理的
VM
的可重放运行跟踪的虚拟化层

可以对由虚拟化层管理的运行的任何单元执行运行跟踪,例如,线程

进程

虚拟处理器

个体
VM、
多个
VM


被跟踪的运行单元可以并行运行

运行跟踪涉及将以下捕获到缓冲区
(
可选地环形
)
:运行的指令

输入到指令的存储器

由指令输出的存储器

由指令接触的寄存器以及排
序标记

运行跟踪数据可以以块来捕获,其中保留了因果关系并且保留了在块之间但不必在块内的排序

可以通过在上下文切换之间插入单调增加的标记来描述块,由此对块进行相对地排序

可以通过标识非确定性事件而部分地提供确定性
。VM
跟踪可以对客户软件是透明的,其不需要感知化

备选地,客户可以与跟踪实现虚拟化层对接以控制跟踪功能性

[0008]下面将参考结合附图考虑的以下详细描述来解释许多伴随特征

附图说明
[0009]根据结合附图阅读,以下具体实施方式将更好地理解本说明书,其中相似的附图标记用于指定所附描述中相似的部分

[0010]图1示出了包括已知类型的管理程序的示例虚拟化环境

[0011]图2示出了配置用于
VM
运行跟踪的虚拟化层

[0012]图3示出了用于在虚拟化层处对线程跟踪进行排序的过程

[0013]图4示出了插入到相应线程的跟踪中的排序标记

[0014]图5示出了在其上可以实现上文描述的实施方式的计算设备的细节

具体实施方式
[0015]以下讨论的实施方式涉及以有效的

准确反映因果关系的方式跟踪虚拟机
(VM)
的运行

运行跟踪由虚拟化层内的跟踪组件来提供

跟踪组件能够以产生可重放运行跟踪的方式来跟踪并行
VM
运行

可以在涉及或不涉及
VM
内的运行内的客户软件的情况下跟踪
VM。
根据跟踪何时发生以及哪些
VM
或客户软件被有效跟踪,可以灵活地界定跟踪的范围

[0016]图1示出了包括已知类型的管理程序
100
的示例虚拟化环境

计算机
102
具有硬件
104
,其包括中央处理单元
(CPU)106、
存储器
108、
网络接口
110、
非易失性存储
112
以及未示出的其他组件,诸如总线

显示器和
/
或显示适配器等

管理程序
100
管理和促进虚拟机
(VM)114、116
的运行

每个虚拟本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种计算设备,包括:处理硬件;存储硬件,用于存储:虚拟化层,包括管理程序;第一虚拟机,包括第一客户操作系统,所述第一客户操作系统包括第一客户内核,所述第一虚拟机还包括由所述虚拟化层管理的第一组虚拟处理器,所述第一客户内核被配置为向所述第一组虚拟处理器发出客户处理器指令;以及第二虚拟机,包括第二客户操作系统,所述第二客户操作系统包括第二客户内核,所述第二虚拟机还包括由所述虚拟化层管理的第二组虚拟处理器,所述第二客户内核被配置为向所述第二组虚拟处理器发出客户处理器指令,所述虚拟化层配置用于在所述计算设备正在操作时,同时运行所述虚拟化层上的所述第一组虚拟处理器和所述第二组虚拟处理器,所述虚拟化层还配置用于在所述计算设备操作时:将由所述第一客户内核向所述第一组虚拟处理器发出的任何第一客户处理器指令的第一标志捕获到第一跟踪文件中,所述第一跟踪文件包括第一组指令标志和第一组排序标记,所述第一组指令标志包括块,其中所述第一组指令标志内的所述块保留相对于彼此的因果关系,并且在捕获所述第一跟踪文件的同时,将由所述第二客户内核向所述第二组虚拟处理器发出的任何第二客户处理器指令的第二标志捕获到第二跟踪文件中,所述第二跟踪文件包括第二组指令标志和第二组排序标记,所述第二组指令标志包括块,其中所述第二组指令标志内的所述块保留相对于彼此的因果关系,其中所述第一组排序标记和所述第二组排序标记使得能够确定所述第一组指令标志中的第一处理器指令和所述第二组指令标志中的第二处理器指令之间的因果关系
。2.
根据权利要求1所述的计算设备,其中所述虚拟化层还被配置为:检测所述第一组虚拟处理器的第一上下文切换,并将所述第一组排序标记中的第一排序标记插入到所述第一跟踪文件中;以及检测所述第二组虚拟处理器的第二上下文切换,并将所述第二组排序标记中的第二排序标记插入到第二跟踪文件中
。3.
根据权利要求2所述的计算设备,其中,排序标记以对应于相应的上下文切换的时间顺序来插入,并且每个新插入的排序标记包括比先前插入的排序标记更大的值
。4.
根据权利要求1所述的计算设备,其中所述虚拟化层还被配置为:标识与所述第一组虚拟处理器相关联的第一可运行文件以及与所述第一跟踪文件相关联地存储所述第一可运行文件的第一指示;以及标识与所述第二组虚拟处理器相关联的第二可运行文件以及与所述第二跟踪文件相关联地存储所述第二可运行文件的第二指示
。5.
根据权利要求1所述的计算设备,其中所述存储硬件还存储指令,所述指令配置为在由所述处理硬件运行时,使得所述计算设备显示用户接口,所述用户接口包括使运行跟踪能够被开启
/
关闭的用户接口元件

6.
根据权利要求5所述的计算设备,其中所述用户接口使用户能够指定由所述虚拟化层管理的任何任意虚拟机被开启
/
关闭运行跟踪
。7.
一种由计算设备执行的方法,包括:处理硬件;以及存储硬件存储:
(i)
包括管理程序的虚拟化层,
(ii)
第一虚拟机,包括第一客户操作系统,所述第一客户操作系统包括第一客户内核,所述第一虚拟机还包括由所述虚拟化层管理的第一组虚拟处理器,所述第一客户内核被配置为向所述第一组虚拟处理器发出客户处理器指令;以及
(iii)
第二虚拟机,包括第二客户操作系统,所述第二客户操作系统包括第二客户内核,所述第二虚拟机还包括由所述虚拟化层管理的第二组虚拟处理器,所述第二客户内核被配置为向所述第二组虚拟处理器发出客户处理器指令,该方法包括当所述计算设备正在操作时:同时运行所述虚拟化层上的所述第一组虚拟处理器和所述第二组虚拟处理器;将由所述第一客户内核向所述第一组虚拟处理器发出的任何第一客户指令的第一标志捕获到第一跟踪文件中,所述第一跟踪文件包括第一组指令标志和第一组排序标记,所述第一组指令标志包括块,其中所述第一组指令标志内的所述块保留相对于彼此的因果关系,并且在捕获所述第一跟踪文件的同时,将由所述第二客户内核向所述第二组虚拟处理器发出的任何第二客户指令的第二标志捕获到第二跟踪文件中,所述第二跟踪文件包括第二组指令标志和第二组排序标记,所述第二组指令标志包括块,其中所述第二组指令标志内的所述块保留相对于彼此的因果关系,其中所述第一组排序标记和所述第二组排序标记使得能够确定所述第一组指令标志中的第一处理器指令和所述第二组指令标志中的第二处理器指令之间的因果关系
。8....

【专利技术属性】
技术研发人员:J
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

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

1