CN101751283B - 虚拟机监视器,虚拟机系统及客户操作系统状态获取方法 - Google Patents
虚拟机监视器,虚拟机系统及客户操作系统状态获取方法 Download PDFInfo
- Publication number
- CN101751283B CN101751283B CN200810240173.5A CN200810240173A CN101751283B CN 101751283 B CN101751283 B CN 101751283B CN 200810240173 A CN200810240173 A CN 200810240173A CN 101751283 B CN101751283 B CN 101751283B
- Authority
- CN
- China
- Prior art keywords
- operating system
- data message
- client operating
- instruction
- state
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供虚拟机监视器,虚拟机系统及客户操作系统状态获取方法,该虚拟机监视器,包括:保存模块,用于保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存信息;获取模块,用于在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系统中的一个;第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息。利用本发明,使虚拟状态下获取GOS使用的实际物理内存的信息成为可能。
Description
技术领域
本发明涉及虚拟技术领域,特别是一种虚拟机监视器,虚拟机系统及客户操作系统状态获取方法。
背景技术
在计算机中,操作系统的稳定性非常重要。但是,再稳定的操作系统也可能会发生崩溃、蓝屏、黑屏等现象,这会导致操作系统下的所有应用程序无法继续执行,只能重启计算机。
为了找出操作系统出现问题的原因,现有技术中,在操作系统发生崩溃、蓝屏、黑屏等现象时,系统会自动生成一个DUMP文件,该DUMP文件中记录了操作系统出现问题时的计算机系统的内存中的内容,用户或者Debugger(调试器)可以根据该DUMP文件分析操作系统为什么出现问题。
在现有的虚拟机系统中,由VMM(VirtualMachineMonitor,虚拟机监视器)统一管理所有的硬件资源,并虚拟出供GOS运行的环境。
发明人在实现本发明实施例的过程中,发现现有技术至少存在以下缺点:
在现有的虚拟机系统中,由于硬件资源分配的特殊性,所以GOS处于正常时,如果需要获取当前系统状态,则执行状态获取操作,但此时只能获取数据在VMM为其分配的虚拟内存中的情况,而无法获取GOS真正使用的实际物理内存的数据情况;
而一旦GOS出现崩溃、蓝屏、黑屏、应用程序出错等故障时,有可能虚拟内存的数据信息也无法获取。
所以,不管GOS的状态正常与否,现有的虚拟机系统最多也只能获取VMM虚拟的虚拟内存中的数据情况,这不利于进行完全彻底的系统运行状况分析。
发明内容
本发明实施例的目的是提供一种虚拟机监视器,虚拟机系统及客户操作系统状态获取方法,使虚拟环境下,GOS能够获取实际物理内存的相关信息。
为了实现上述目的,本发明实施例提供了一种虚拟机监视器,包括:
保存模块,用于保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存信息;
获取模块,用于在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系统中的一个;
第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息。
上述的虚拟机监视器,其中,还包括:
第一数据信息写模块,用于将第一数据信息以文件方式写入真实I/O设备。
上述的虚拟机监视器,其中,还包括:
第二数据信息读模块,用于读取中央处理器的寄存器中的第二数据信息;
第二数据信息写模块,用于将所述第二数据信息写入所述真实I/O设备。
上述的虚拟机监视器,其中,所述真实I/O设备为物理存储设备。
上述的虚拟机监视器,其中,
所述第一客户操作系统与发送所述状态获取指令的第二客户操作系统是不同的客户操作系统。
上述的虚拟机监视器,其中,发送状态获取指令的操作系统为主操作系统。
为了实现上述目的,本发明实施例还提供了一种虚拟机系统,包括客户操作系统和虚拟机监视器,所述虚拟机监视器包括:
保存模块,用于保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存信息;
获取模块,用于在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系统中的一个;
第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息。
上述的虚拟机系统,其中,还包括:
第一数据信息写模块,用于将第一数据信息以文件方式写入真实I/O设备。
上述的虚拟机系统,其中,所述虚拟机监视器还包括:
第二数据信息读模块,用于读取中央处理器的寄存器中的第二数据信息;
第二数据信息写模块,用于将所述第二数据信息写入所述真实I/O设备。
上述的虚拟机系统,其中,所述真实I/O设备为物理存储设备。
上述的虚拟机系统,其中,所述第一客户操作系统与发送所述状态获取指令的第二客户操作系统是不同的客户操作系统。
上述的虚拟机系统,其中,发送状态获取指令的操作系统为主操作系统。
为了实现上述目的,本发明实施例还提供了一种客户操作系统状态获取方法,包括:
预先保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存信息;
在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系统中的一个;读取所述第一实际物理内存中的第一数据信息。
上述的方法,其中,还包括:
将所述第一数据信息以文件方式写入真实I/O设备。
上述的方法,其中,还包括:
读取物理中央处理器的寄存器中的第二数据信息;
将所述第二数据信息写入所述真实I/O设备。
上述的方法,其中,所述第一客户操作系统与发送所述状态获取指令的第二客户操作系统是不同的客户操作系统。
上述的方法,其中,发送所述状态获取指令的操作系统为主操作系统。
本发明实施例具有以下的有益效果:
本发明实施例的虚拟机监视器,虚拟机系统及客户操作系统状态获取方法中,在创建GOS的过程中,VMM记录为GOS分配的虚拟内存,以及虚拟内存与实际物理内存之间的对应关系,在需要获取GOS的状态时,根据虚拟内存与实际物理内存之间的对应关系,获取物理内存中记录的相关数据,因此在虚拟环境下,GOS也能够获取实际物理内存的相关信息,便于故障分析。
同时,在一个GOS出现故障时,本发明实施例也能够由其他正常的GOS来获取该故障GOS所使用的实际物理内存中的数据。
附图说明
图1为本发明实施例的VMM的结构示意图;
图2为本发明实施例的方法的流程示意图。
具体实施方式
本发明实施例的虚拟机监视器,虚拟机系统及客户操作系统状态获取方法中,在创建GOS的过程中,VMM记录为GOS分配的虚拟内存,以及虚拟内存与实际物理内存之间的对应关系,在需要获取GOS的状态时,根据虚拟内存与实际物理内存之间的对应关系,获取物理内存中记录的相关数据,保存到DUMP文件中。
本发明的实施例虚拟机系统包括物理硬件、VMM和GOS,其中:
如图1所示,所述VMM包括:
分配模块,用于为客户操作系统分配虚拟内存;
映射模块,用于建立所述虚拟内存与实际物理内存之间的映射关系;
保存模块,用于对应保存所述客户操作系统的标识和所述映射关系;
第一获取模块,用于在接收到状态获取指令后,根据所述指令中的客户操作系统标识,确定所述保存模块中与所述客户操作系统标识对应的第一映射关系;
第二获取模块,用于获取所述第一映射关系中记录的第一实际物理内存;
第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息;
第一数据信息写模块,用于将所述第一实际物理内存中的第一数据信息写入真实I/O设备。
当然,该数据信息写模块在某些情况下是不必要的,只有在需要利用第一数据信息进行后续分析使用才需要。
当然,更加简单的是,保存模块直接对应保存所述客户操作系统的标识和该客户操作系统实际使用的实际物理内存(也就是保存客户操作系统和其实际使用的实际物理内存之间的对应关系),第一获取模块和第二获取模块合二为一,直接获取客户操作系统的第一实际物理内存即可。
综合上述的两种实现方式可以发现,保存模块中保存了一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存信息;而获取模块根据该对应关系能够确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存。
该对应关系的两种表现形式如下:
客户操作系统ID对应该客户操作系统使用的实际物理内存;或
客户操作系统ID对应该客户操作系统使用的虚拟内存,该虚拟内存对应实际物理内存。
通过任意一种对应关系都能确定客户操作系统使用的实际物理内存。
下面对上述的VMM进行详细说明。
VMM负责所有GOS的管理工作,假定在GOSA启动时,分配模块为GOSA分配的虚拟物理内存为256M,而虚拟物理内存是不能使GOSA真正运行起来的,GOSA的运行需要建立在实际的物理内存的基础上,因此,VMM需要将分配的虚拟物理内存映射到实际物理内存,此时通过将该虚拟物理内存映射到实际物理内存上来建立二者之间的映射关系,通过这样的处理,虽然GOSA看到的可能是连续的256M内存,但是GOSA在运行过程中使用的是与该256M虚拟内存对应的实际物理内存。
在通过上述的处理后,需要为该GOSA保存虚拟物理内存与实际物理内存之间的映射关系,以便于后续的分析。
在某一个时段,GOS(可以是GOSA,也可以是其它的GOS)需要获取GOSA的系统状态,此时向VMM发送一个状态获取指令,状态获取指令中包括GOSA的标识。
VMM根据指令中的GOSA的标识,获取与GOSA的标识对应保存的虚拟物理内存与实际物理内存之间的映射关系,获取映射关系中记录的实际物理内存,此时得到的实际物理内存就是GOSA实际使用物理内存,其可以是一段内存,如计算机主机的物理内存中的0-256M,也可能是多段物理内存组成,如0-128M和256-384M这两段。
得到GOSA实际使用的物理内存后,读模块就可以读取该GOSA实际使用的物理内存中的数据信息,并利用写模块写入到实际的I/O设备(如硬盘、可刻录磁盘、U盘、移动硬盘等)。
一旦GOS出现故障,带来故障的原因有可能是物理内存中的数据自身,也有可能是数据在物理内存中的分布情况,现有技术中仅能得到数据自身,而无法得到数据在实际物理内存中的分布,所以在故障分析时局有其局限性,而利用本发明实施例,不但可以得到数据,还可以得到数据在实际物理内存中的分布,因此更加有利于故障分析。
同时,对于现有技术而言,DUMP文件的生成需要DUMP设备驱动自旋锁开启,且需要加载DUMP设备驱动,否则无法生产DUMP文件,而一旦GOS出现故障,上述的条件不成立时,就无法获取DUMP文件,而对于本发明实施例而言,可以利用其他的正常的GOS向VMM发送指令,该指令中包括故障GOS的标识即可,所以不会出现无法生成DUMP文件的情况。
同时,由于本发明实施例中取消了对GOS是否加载设备驱动在时间上的限制,获取内存的时间会更快。
本发明实施例的虚拟机系统包括客户操作系统,虚拟机监视器,其中:
所述客户操作系统中设置有状态获取指令发送模块,用于向VMM发送包括客户操作系统标识的状态获取指令;
所述VMM中包括:
分配模块,用于为所述客户操作系统分配虚拟内存;
映射模块,用于建立所述虚拟内存与实际物理内存之间的映射关系;
保存模块,用于对应保存所述客户操作系统的标识和所述映射关系;
第一获取模块,用于根据所述状态获取指令中的所述客户操作系统标识,获取所述保存模块中与所述客户操作系统标识对应的第一映射关系后;
第二获取模块,用于获取所述第一映射关系中记录的第一实际物理内存;
第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息;
第一数据信息写模块,用于将所述第一实际物理内存中的第一数据信息写入真实I/O设备。
当然,更加简单的是,保存模块直接对应保存所述客户操作系统的标识和该客户操作系统实际使用的实际物理内存,第一获取模块和第二获取模块合二为一,直接获取客户操作系统的第一实际物理内存即可。
当然,为了进一步获取更多的信息来进行分析,本发明实施例的VMM中还包括:
第二数据信息读模块,用于读取物理CPU的寄存器中的第二数据信息;
第二数据信息写模块,用于将所述第二数据信息写入真实I/O设备。
在本发明的具体实施例中,由于GOS在启动时需要与CR3寄存器交互,所以VMM通过截获CR3寄存器来监视GOS的启动过程。
本发明实施例的方法如图2所示,包括:
步骤21,第一客户操作系统启动时,为所述第一客户操作系统分配虚拟内存;
步骤22,建立所述虚拟内存与实际物理内存之间的映射关系;
步骤23,对应保存所述第一客户操作系统的标识与所述映射关系;
步骤24,接收来自第二客户操作系统的状态获取指令,并获取所述状态获取指令中的客户操作系统标识;
步骤25,获取所述状态获取指令中的客户操作系统标识所对应的第一映射关系;
步骤26,读取所述第一映射关系中记录的第一实际物理内存中的数据信息;
步骤27,将所述第一实际物理内存中的数据信息写入真实I/O设备。
当然,为了便于更准确的进行故障分析,该方法还包括:
读取物理CPU的寄存器中的第二数据信息;和
将所述第二数据信息写入所述真实I/O设备。
在上述的实施例中,状态获取指令由客户操作系统发送,当然,状态获取指令也可以由主操作系统(如服务操作系统SOS或宿主操作系统HOS)发送,其处理过程完全相同,在此不再详细描述。
本发明实施例的虚拟机监视器,虚拟机系统及客户操作系统状态获取方法中,在创建GOS的过程中,VMM记录为GOS分配的虚拟内存,以及虚拟内存与实际物理内存之间的对应关系,在需要获取GOS的状态时,根据虚拟内存与实际物理内存之间的对应关系,获取物理内存中记录的相关数据,因此在虚拟环境下,GOS也能够获取实际物理内存的相关信息,便于故障分析。
同时,在一个GOS出现故障时,本发明实施例也能够由其他正常的GOS来获取该故障GOS所使用的实际物理内存中的数据。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种虚拟机监视器,其特征在于,包括:
保存模块,用于保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存信息;
获取模块,用于在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系统中的一个;
第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息;
第一数据信息写模块,用于将所述第一数据信息以文件方式写入真实I/O设备。
2.根据权利要求1所述的虚拟机监视器,其特征在于,还包括:
第二数据信息读模块,用于读取物理中央处理器的寄存器中的第二数据信息;
第二数据信息写模块,用于将所述第二数据信息写入所述真实I/O设备。
3.根据权利要求2所述的虚拟机监视器,其特征在于,所述真实I/O设备为物理存储设备。
4.根据权利要求1、2或3所述的虚拟机监视器,其特征在于,
所述第一客户操作系统与发送所述状态获取指令的第二客户操作系统是不同的客户操作系统。
5.根据权利要求1、2或3所述的虚拟机监视器,其特征在于,发送所述状态获取指令的操作系统为主操作系统。
6.一种虚拟机系统,包括客户操作系统和虚拟机监视器,其特征在于,所述虚拟机监视器包括:
保存模块,用于保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存信息;
获取模块,用于在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系统中的一个;
第一数据信息读模块,用于读取所述第一实际物理内存中的第一数据信息;
第一数据信息写模块,用于将所述第一数据信息以文件方式写入真实I/O设备。
7.根据权利要求6所述的虚拟机系统,其特征在于,所述虚拟机监视器还包括:
第二数据信息读模块,用于读取物理中央处理器的寄存器中的第二数据信息;
第二数据信息写模块,用于将所述第二数据信息写入所述真实I/O设备。
8.根据权利要求7所述的虚拟机系统,其特征在于,所述真实I/O设备为物理存储设备。
9.根据权利要求6、7或8所述的虚拟机系统,其特征在于,所述第一客户操作系统与发送所述状态获取指令的第二客户操作系统是不同的客户操作系统。
10.根据权利要求6、7或8所述的虚拟机系统,其特征在于,发送所述状态获取指令的操作系统为主操作系统。
11.一种客户操作系统状态获取方法,其特征在于,包括:
预先保存一对应关系,利用所述对应关系能够获取客户操作系统使用的实际物理内存信息;
在接收到状态获取指令后,根据所述对应关系,确定与所述状态获取指令中指示的第一客户操作系统对应的第一实际物理内存;所述第一客户操作系统为所述客户操作系统中的一个;
读取所述第一实际物理内存中的第一数据信息;
将所述第一数据信息以文件方式写入真实I/O设备。
12.根据权利要求11所述的方法,其特征在于,还包括:
读取物理中央处理器的寄存器中的第二数据信息;
将所述第二数据信息写入所述真实I/O设备。
13.根据权利要求11或12所述的方法,其特征在于,所述第一客户操作系统与发送所述状态获取指令的第二客户操作系统是不同的客户操作系统。
14.根据权利要求11或12所述的方法,其特征在于,发送所述状态获取指令的操作系统为主操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810240173.5A CN101751283B (zh) | 2008-12-18 | 2008-12-18 | 虚拟机监视器,虚拟机系统及客户操作系统状态获取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810240173.5A CN101751283B (zh) | 2008-12-18 | 2008-12-18 | 虚拟机监视器,虚拟机系统及客户操作系统状态获取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101751283A CN101751283A (zh) | 2010-06-23 |
CN101751283B true CN101751283B (zh) | 2016-06-01 |
Family
ID=42478297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810240173.5A Active CN101751283B (zh) | 2008-12-18 | 2008-12-18 | 虚拟机监视器,虚拟机系统及客户操作系统状态获取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101751283B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012025793A1 (en) * | 2010-08-26 | 2012-03-01 | Freescale Semiconductor, Inc. | Memory management unit for a microprocessor system, microprocessor system and method for managing memory |
CN101986284B (zh) * | 2010-11-04 | 2012-05-23 | 华中科技大学 | 一种虚拟机镜像文件的废弃空间动态回收系统 |
CN103885571B (zh) * | 2012-12-19 | 2017-09-29 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN104166624B (zh) * | 2013-05-15 | 2017-07-07 | 上海贝尔股份有限公司 | 在虚拟环境下基于物理内存的内存优化方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008903A (zh) * | 2006-01-23 | 2007-08-01 | 联想(北京)有限公司 | 一种虚拟机系统及其设备访问方法 |
CN101059761A (zh) * | 2006-04-20 | 2007-10-24 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件设备访问方法 |
CN101241445A (zh) * | 2007-02-08 | 2008-08-13 | 联想(北京)有限公司 | 虚拟机系统及其访问显卡的方法 |
-
2008
- 2008-12-18 CN CN200810240173.5A patent/CN101751283B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008903A (zh) * | 2006-01-23 | 2007-08-01 | 联想(北京)有限公司 | 一种虚拟机系统及其设备访问方法 |
CN101059761A (zh) * | 2006-04-20 | 2007-10-24 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件设备访问方法 |
CN101241445A (zh) * | 2007-02-08 | 2008-08-13 | 联想(北京)有限公司 | 虚拟机系统及其访问显卡的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101751283A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9158661B2 (en) | Enhanced debugging for embedded devices | |
CN100472460C (zh) | 检测和显示计算机自检信息的方法及装置 | |
US11520681B2 (en) | System log collection method | |
US20140173357A1 (en) | Salvaging event trace information in power loss interruption scenarios | |
CN104317709A (zh) | 软件性能测试方法和系统 | |
EP2189906A1 (en) | Method and apparatus for abnormality recovering of data card, and data card | |
CN106569904A (zh) | 一种信息存储方法和装置、及服务器 | |
WO2019085466A1 (zh) | 关联测试方法、系统、应用服务器及计算机可读存储介质 | |
CN101751283B (zh) | 虚拟机监视器,虚拟机系统及客户操作系统状态获取方法 | |
WO2023092942A1 (zh) | 数据存储方法、装置、电子设备及可读存储介质 | |
CN102279787A (zh) | 一种平均无故障时间的测试方法和装置 | |
WO2022151707A1 (zh) | 内存测试方法及装置、可读存储介质、电子设备 | |
CN106095528A (zh) | 一种检测虚拟机盘符的方法 | |
CN108205482B (zh) | 文件挂载恢复方法 | |
US11226755B1 (en) | Core dump in a storage device | |
US20070294430A1 (en) | Generating a device address persistent across different instantiations of an electronic device | |
CN101551772A (zh) | 嵌入式通信设备异常信息记录方法及装置 | |
CN107908490A (zh) | 一种服务器dc测试中gpu寄存器可靠性验证方法与系统 | |
CN107247505A (zh) | 一种易于查看的云服务器电源blackbox设计方法 | |
CN102855166A (zh) | 主板测试系统及方法 | |
CN102063365B (zh) | 一种记录单板运行信息的方法及装置 | |
CN110308861B (zh) | 存储数据保存方法、装置、电子设备和可读存储介质 | |
CN107957923A (zh) | 一种内存诊断方法和装置 | |
CN111464377A (zh) | 一种网卡检验方法、装置、设备及存储介质 | |
CN109683810A (zh) | 一种读写方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |