虚拟机监视器,虚拟机系统及客户操作系统状态获取方法

文档序号:6471841阅读:185来源:国知局
专利名称:虚拟机监视器,虚拟机系统及客户操作系统状态获取方法
技术领域
本发明涉及虚拟技术领域,特别是一种虚拟机监视器,虚拟机系统及客户操作系
统状态获取方法。
背景技术
在计算机中,操作系统的稳定性非常重要。但是,再稳定的操作系统也可能会发生 崩溃、蓝屏、黑屏等现象,这会导致操作系统下的所有应用程序无法继续执行,只能重启计 算机。 为了找出操作系统出现问题的原因,现有技术中,在操作系统发生崩溃、蓝屏、黑 屏等现象时,系统会自动生成一个DUMP文件,该DUMP文件中记录了操作系统出现问题时的 计算机系统的内存中的内容,用户或者Debugger (调试器)可以根据该DUMP文件分析操作 系统为什么出现问题。 在现有的虚拟机系统中,由V匪(Virtual Machine Monitor,虚拟机监视器)统一 管理所有的硬件资源,并虚拟出供GOS运行的环境。 发明人在实现本发明实施例的过程中,发现现有技术至少存在以下缺点 在现有的虚拟机系统中,由于硬件资源分配的特殊性,所以GOS处于正常时,如果
需要获取当前系统状态,则执行状态获取操作,但此时只能获取数据在VMM为其分配的虚
拟内存中的情况,而无法获取GOS真正使用的实际物理内存的数据情况; 而一旦GOS出现崩溃、蓝屏、黑屏、应用程序出错等故障时,有可能虚拟内存的数
据信息也无法获取。 所以,不管GOS的状态正常与否,现有的虚拟机系统最多也只能获取V匪虚拟的虚 拟内存中的数据情况,这不利于进行完全彻底的系统运行状况分析。

发明内容
本发明实施例的目的是提供一种虚拟机监视器,虚拟机系统及客户操作系统状态
获取方法,使虚拟环境下,GOS能够获取实际物理内存的相关信息。 为了实现上述目的,本发明实施例提供了一种虚拟机监视器,包括 保存模块,用于保存一对应关系,利用所述对应关系能够获取客户操作系统使用
的实际物理内存信息; 获取模块,用于在接收到状态获取指令后,根据所述对应关系,确定与所述状态获 取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所 述客户操作系统中的一个; 第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息。
上述的虚拟机监视器,其中,还包括 第一数据信息写模块,用于将第一数据信息以文件方式写入真实I/O设备。
上述的虚拟机监视器,其中,还包括
4
第二数据信息读模块,用于读取中央处理器的寄存器中的第二数据信息;
第二数据信息写模块,用于将所述第二数据信息写入所述真实I/O设备。
上述的虚拟机监视器,其中,所述真实1/0设备为物理存储设备。
上述的虚拟机监视器,其中, 所述第一客户操作系统与发送所述状态获取指令的第二客户操作系统是不同的 客户操作系统。 上述的虚拟机监视器,其中,发送状态获取指令的操作系统为主操作系统。 为了实现上述目的,本发明实施例还提供了 一种虚拟机系统,包括客户操作系统
和虚拟机监视器,所述虚拟机监视器包括 保存模块,用于保存一对应关系,利用所述对应关系能够获取客户操作系统使用 的实际物理内存信息; 获取模块,用于在接收到状态获取指令后,根据所述对应关系,确定与所述状态获 取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所 述客户操作系统中的一个; 第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息。
上述的虚拟机系统,其中,还包括 第一数据信息写模块,用于将第一数据信息以文件方式写入真实I/O设备。
上述的虚拟机系统,其中,所述虚拟机监视器还包括 第二数据信息读模块,用于读取中央处理器的寄存器中的第二数据信息;
第二数据信息写模块,用于将所述第二数据信息写入所述真实I/O设备。
上述的虚拟机系统,其中,所述真实I/O设备为物理存储设备。 上述的虚拟机系统,其中,所述第一客户操作系统与发送所述状态获取指令的第 二客户操作系统是不同的客户操作系统。 上述的虚拟机系统,其中,发送状态获取指令的操作系统为主操作系统。 为了实现上述目的,本发明实施例还提供了一种客户操作系统状态获取方法,包
括 预先保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理 内存信息; 在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示 的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系 统中的一个;读取所述第一实际物理内存中的第一数据信息。
上述的方法,其中,还包括 将所述第一数据信息以文件方式写入真实I/O设备。
上述的方法,其中,还包括 读取物理中央处理器的寄存器中的第二数据信息;
将所述第二数据信息写入所述真实I/O设备。 上述的方法,其中,所述第一客户操作系统与发送所述状态获取指令的第二客户 操作系统是不同的客户操作系统。 上述的方法,其中,发送所述状态获取指令的操作系统为主操作系统。
5
本发明实施例具有以下的有益效果 本发明实施例的虚拟机监视器,虚拟机系统及客户操作系统状态获取方法中,在 创建G0S的过程中,V匪记录为GOS分配的虚拟内存,以及虚拟内存与实际物理内存之间的 对应关系,在需要获取GOS的状态时,根据虚拟内存与实际物理内存之间的对应关系,获取 物理内存中记录的相关数据,因此在虚拟环境下,GOS也能够获取实际物理内存的相关信 息,便于故障分析。 同时,在一个GOS出现故障时,本发明实施例也能够由其他正常的GOS来获取该故 障GOS所使用的实际物理内存中的数据。


图1为本发明实施例的VMM的结构示意图;
图2为本发明实施例的方法的流程示意图。
具体实施例方式
本发明实施例的虚拟机监视器,虚拟机系统及客户操作系统状态获取方法中,在
创建GOS的过程中,V匪记录为GOS分配的虚拟内存,以及虚拟内存与实际物理内存之间的
对应关系,在需要获取GOS的状态时,根据虚拟内存与实际物理内存之间的对应关系,获取
物理内存中记录的相关数据,保存到DUMP文件中。 本发明的实施例虚拟机系统包括物理硬件、V匪和GOS,其中 如图1所示,所述VMM包括 分配模块,用于为客户操作系统分配虚拟内存; 映射模块,用于建立所述虚拟内存与实际物理内存之间的映射关系; 保存模块,用于对应保存所述客户操作系统的标识和所述映射关系; 第一获取模块,用于在接收到状态获取指令后,根据所述指令中的客户操作系统
标识,确定所述保存模块中与所述客户操作系统标识对应的第一映射关系; 第二获取模块,用于获取所述第一映射关系中记录的第一实际物理内存; 第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息; 第一数据信息写模块,用于将所述第一实际物理内存中的第一数据信息写入真实
1/0设备。 当然,该数据信息写模块在某些情况下是不必要的,只有在需要利用第一数据信 息进行后续分析使用才需要。 当然,更加简单的是,保存模块直接对应保存所述客户操作系统的标识和该客户 操作系统实际使用的实际物理内存(也就是保存客户操作系统和其实际使用的实际物理 内存之间的对应关系),第一获取模块和第二获取模块合二为一,直接获取客户操作系统的 第一实际物理内存即可。 综合上述的两种实现方式可以发现,保存模块中保存了一对应关系,利用所述对 应关系能够获取客户操作系统使用的实际物理内存信息;而获取模块根据该对应关系能够 确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存。
该对应关系的两种表现形式如下
客户操作系统ID对应该客户操作系统使用的实际物理内存;或 客户操作系统ID对应该客户操作系统使用的虚拟内存,该虚拟内存对应实际物
理内存。 通过任意一种对应关系都能确定客户操作系统使用的实际物理内存。
下面对上述的VMM进行详细说明。 VMM负责所有GOS的管理工作,假定在GOS A启动时,分配模块为GOS A分配的虚 拟物理内存为256M,而虚拟物理内存是不能使G0S A真正运行起来的,GOS A的运行需要 建立在实际的物理内存的基础上,因此,V匪需要将分配的虚拟物理内存映射到实际物理内 存,此时通过将该虚拟物理内存映射到实际物理内存上来建立二者之间的映射关系,通过 这样的处理,虽然GOS A看到的可能是连续的256M内存,但是GOS A在运行过程中使用的 是与该256M虚拟内存对应的实际物理内存。 在通过上述的处理后,需要为该GOS A保存虚拟物理内存与实际物理内存之间的 映射关系,以便于后续的分析。 在某一个时段,GOS(可以是GOS A,也可以是其它的GOS)需要获取GOS A的系统
状态,此时向VMM发送一个状态获取指令,状态获取指令中包括GOS A的标识。 VMM根据指令中的GOS A的标识,获取与GOS A的标识对应保存的虚拟物理内存
与实际物理内存之间的映射关系,获取映射关系中记录的实际物理内存,此时得到的实际
物理内存就是GOS A实际使用物理内存,其可以是一段内存,如计算机主机的物理内存中的
0-256M,也可能是多段物理内存组成,如0-128M和256-384M这两段。 得到GOS A实际使用的物理内存后,读模块就可以读取该GOS A实际使用的物理 内存中的数据信息,并利用写模块写入到实际的1/0设备(如硬盘、可刻录磁盘、U盘、移动 硬盘等)。 —旦GOS出现故障,带来故障的原因有可能是物理内存中的数据自身,也有可能
是数据在物理内存中的分布情况,现有技术中仅能得到数据自身,而无法得到数据在实际
物理内存中的分布,所以在故障分析时局有其局限性,而利用本发明实施例,不但可以得到
数据,还可以得到数据在实际物理内存中的分布,因此更加有利于故障分析。 同时,对于现有技术而言,DUMP文件的生成需要DUMP设备驱动自旋锁开启,且需
要加载DUMP设备驱动,否则无法生产DUMP文件,而一旦GOS出现故障,上述的条件不成立
时,就无法获取DUMP文件,而对于本发明实施例而言,可以利用其他的正常的GOS向VMM发
送指令,该指令中包括故障GOS的标识即可,所以不会出现无法生成DUMP文件的情况。 同时,由于本发明实施例中取消了对GOS是否加载设备驱动在时间上的限制,获
取内存的时间会更快。 本发明实施例的虚拟机系统包括客户操作系统,虚拟机监视器,其中 所述客户操作系统中设置有状态获取指令发送模块,用于向V匪发送包括客户操
作系统标识的状态获取指令;
所述V匪中包括 分配模块,用于为所述客户操作系统分配虚拟内存; 映射模块,用于建立所述虚拟内存与实际物理内存之间的映射关系; 保存模块,用于对应保存所述客户操作系统的标识和所述映射关系;
7
第一获取模块,用于根据所述状态获取指令中的所述客户操作系统标识,获取所
述保存模块中与所述客户操作系统标识对应的第一映射关系后; 第二获取模块,用于获取所述第一映射关系中记录的第一实际物理内存; 第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息; 第一数据信息写模块,用于将所述第一实际物理内存中的第一数据信息写入真实
1/0设备。 当然,更加简单的是,保存模块直接对应保存所述客户操作系统的标识和该客户 操作系统实际使用的实际物理内存,第一获取模块和第二获取模块合二为一,直接获取客 户操作系统的第一实际物理内存即可。 当然,为了进一步获取更多的信息来进行分析,本发明实施例的VMM中还包括 第二数据信息读模块,用于读取物理CPU的寄存器中的第二数据信息; 第二数据信息写模块,用于将所述第二数据信息写入真实I/O设备。 在本发明的具体实施例中,由于G0S在启动时需要与CR3寄存器交互,所以V匪通
过截获CR3寄存器来监视GOS的启动过程。 本发明实施例的方法如图2所示,包括 步骤21,第一客户操作系统启动时,为所述第一客户操作系统分配虚拟内存; 步骤22,建立所述虚拟内存与实际物理内存之间的映射关系; 步骤23,对应保存所述第一客户操作系统的标识与所述映射关系; 步骤24,接收来自第二客户操作系统的状态获取指令,并获取所述状态获取指令
中的客户操作系统标识; 步骤25,获取所述状态获取指令中的客户操作系统标识所对应的第一映射关系;
步骤26,读取所述第一映射关系中记录的第一实际物理内存中的数据信息;
步骤27,将所述第一实际物理内存中的数据信息写入真实I/O设备。
当然,为了便于更准确的进行故障分析,该方法还包括
读取物理CPU的寄存器中的第二数据信息;禾口
将所述第二数据信息写入所述真实I/O设备。 在上述的实施例中,状态获取指令由客户操作系统发送,当然,状态获取指令也可 以由主操作系统(如服务操作系统SOS或宿主操作系统HOS)发送,其处理过程完全相同, 在此不再详细描述。 本发明实施例的虚拟机监视器,虚拟机系统及客户操作系统状态获取方法中,在 创建G0S的过程中,V匪记录为G0S分配的虚拟内存,以及虚拟内存与实际物理内存之间的 对应关系,在需要获取G0S的状态时,根据虚拟内存与实际物理内存之间的对应关系,获取 物理内存中记录的相关数据,因此在虚拟环境下,G0S也能够获取实际物理内存的相关信 息,便于故障分析。 同时,在一个GOS出现故障时,本发明实施例也能够由其他正常的GOS来获取该故 障G0S所使用的实际物理内存中的数据。 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种虚拟机监视器,其特征在于,包括保存模块,用于保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存信息;获取模块,用于在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系统中的一个;第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息。
2. 根据权利要求1所述的虚拟机监视器,其特征在于,还包括 第一数据信息写模块,用于将所述第一数据信息以文件方式写入真实I/O设备。
3. 根据权利要求1所述的虚拟机监视器,其特征在于,还包括 第二数据信息读模块,用于读取物理中央处理器的寄存器中的第二数据信息; 第二数据信息写模块,用于将所述第二数据信息写入所述真实I/O设备。
4. 根据权利要求3所述的虚拟机监视器,其特征在于,所述真实1/0设备为物理存储设备。
5. 根据权利要求1、2、3或4所述的虚拟机监视器,其特征在于,所述第一客户操作系统与发送所述状态获取指令的第二客户操作系统是不同的客户 操作系统。
6. 根据权利要求1、2、3或4所述的虚拟机监视器,其特征在于,发送所述状态获取指令 的操作系统为主操作系统。
7. —种虚拟机系统,包括客户操作系统和虚拟机监视器,其特征在于,所述虚拟机监视 器包括保存模块,用于保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实 际物理内存信息;获取模块,用于在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指 令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客 户操作系统中的一个;第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息。
8. 根据权利要求7所述的虚拟机系统,其特征在于,还包括 第一数据信息写模块,用于将所述第一数据信息以文件方式写入真实I/O设备。
9. 根据权利要求7所述的虚拟机系统,其特征在于,所述虚拟机监视器还包括 第二数据信息读模块,用于读取物理中央处理器的寄存器中的第二数据信息; 第二数据信息写模块,用于将所述第二数据信息写入所述真实I/O设备。
10. 根据权利要求9所述的虚拟机系统,其特征在于,所述真实1/0设备为物理存储设备。
11. 根据权利要求7、8、9或10所述的虚拟机系统,其特征在于,所述第一客户操作系统 与发送所述状态获取指令的第二客户操作系统是不同的客户操作系统。
12. 根据权利要求7、8、9或10所述的虚拟机系统,其特征在于,发送所述状态获取指令 的操作系统为主操作系统。
13. —种客户操作系统状态获取方法,其特征在于,包括预先保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存 信息;在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示的第 一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系统中 的一个;读取所述第一实际物理内存中的第一数据信息。
14. 根据权利要求13所述的方法,其特征在于,还包括 将所述第一数据信息以文件方式写入真实I/O设备。
15. 根据权利要求13所述的方法,其特征在于,还包括 读取物理中央处理器的寄存器中的第二数据信息; 将所述第二数据信息写入所述真实I/O设备。
16. 根据权利要求13、 14或15所述的方法,其特征在于,所述第一客户操作系统与发送 所述状态获取指令的第二客户操作系统是不同的客户操作系统。
17. 根据权利要求13、 14或15所述的方法,其特征在于,发送所述状态获取指令的操作 系统为主操作系统。
全文摘要
本发明提供虚拟机监视器,虚拟机系统及客户操作系统状态获取方法,该虚拟机监视器,包括保存模块,用于保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存信息;获取模块,用于在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系统中的一个;第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息。利用本发明,使虚拟状态下获取GOS使用的实际物理内存的信息成为可能。
文档编号G06F9/455GK101751283SQ20081024017
公开日2010年6月23日 申请日期2008年12月18日 优先权日2008年12月18日
发明者陈实 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1