虚拟机进程监控方法和装置制造方法及图纸

技术编号:9618224 阅读:167 留言:0更新日期:2014-01-30 06:00
本发明专利技术提供一种虚拟机进程监控方法和装置,其中,方法包括:获取虚拟机的操作系统类型;根据操作系统类型确定与操作系统类型对应的内核数据结构偏移数组,内核数据结构偏移数组中包括:操作系统类型对应的虚拟机的进程链表数据结构以及操作系统类型对应的虚拟机中各进程的进程信息在各进程对应的结构体中的偏移量;根据进程链表数据结构确定操作系统类型对应的虚拟机中各进程对应的结构体的虚拟地址;根据各进程对应的结构体的虚拟地址以及各进程的进程信息在各进程对应的结构体中的偏移量确定操作系统类型对应的虚拟机中各进程的进程信息,解决了现有技术中难以对宿主机上安装有不同操作系统的多个虚拟机同时进行监控,降低监控效率的问题。

Method and device for monitoring virtual machine process

The invention provides a process virtual machine monitoring method and device, the method: the type of operating system for virtual machine operating system; according to the determined type and type of operating system kernel data structures corresponding to the offset array, including the kernel data structure array offset: offset of the process virtual machine process corresponding to the linked list data structure of virtual machine operating system types and operating system types in the process of information structure in the process corresponding to the body; according to the process virtual address list data structure determine the structure of the process virtual machine operating system type corresponding to the corresponding; to determine the process of the corresponding virtual machine operating system type in the process according to the letter offset structure virtual address structure of each process corresponding to the body as well as the process of information in the process corresponding to the body. The utility model solves the problems that the prior art is difficult to monitor and control a plurality of virtual machines installed on a host machine with different operating systems at the same time, thereby reducing the monitoring efficiency.

【技术实现步骤摘要】
虚拟机进程监控方法和装置
本专利技术涉及计算机
,尤其涉及一种虚拟机进程监控方法和装置。
技术介绍
现有技术中,通过在宿主机上的虚拟机监控器中安装监控程序,实现对宿主机上的虚拟机的进程进行监控。然而现有技术中,由于不同种类的操作系统的语义不同,因此虚拟机监控器中的监控程序只能分析一种操作系统的语义,获取安装有同一种操作系统的多个虚拟机的进程,难以对宿主机上安装有不同操作系统的多个虚拟机同时进行监控,降低了监控效率。
技术实现思路
本专利技术提供一种虚拟机进程监控方法和装置,用于解决现有技术中难以对宿主机上安装有不同操作系统的多个虚拟机同时进行监控,降低监控效率的问题。本专利技术的第一个方面是提供一种虚拟机进程监控方法,包括:获取虚拟机的操作系统类型;根据所述操作系统类型,查询预设的内核数据结构偏移集合,确定与所述操作系统类型对应的内核数据结构偏移数组,所述内核数据结构偏移数组中包括:所述操作系统类型对应的虚拟机的进程链表数据结构以及所述操作系统类型对应的虚拟机中各进程的进程信息在各进程对应的结构体中的偏移量;根据所述进程链表数据结构确定所述操作系统类型对应的虚拟机中各进程对应的结构体的虚拟地址;根据所述各进程对应的结构体的虚拟地址以及所述各进程的进程信息在各进程对应的结构体中的偏移量获取所述操作系统类型对应的虚拟机中各进程的进程信息。本专利技术的另一个方面提供一种虚拟机进程监控装置,包括:获取模块,用于获取虚拟机的操作系统类型;确定模块,用于根据所述操作系统类型,查询预设的内核数据结构偏移集合,确定与所述操作系统类型对应的内核数据结构偏移数组,所述内核数据结构偏移数组中包括:所述操作系统类型对应的虚拟机的进程链表数据结构以及所述操作系统类型对应的虚拟机中各进程的进程信息在各进程对应的结构体中的偏移量;所述确定模块还用于,根据所述进程链表数据结构确定所述操作系统类型对应的虚拟机中各进程对应的结构体的虚拟地址;所述获取模块还用于,根据所述各进程对应的结构体的虚拟地址以及所述各进程的进程信息在各进程对应的结构体中的偏移量获取所述操作系统类型对应的虚拟机中各进程的进程信息。本专利技术通过获取虚拟机的操作系统类型,根据虚拟机的操作系统类型确定与操作系统类型对应的内核数据结构偏移数组,根据内核数据结构偏移数组获取虚拟机中各进程的进程信息,从而能够对宿主机上安装有不同操作系统的多个虚拟机同时进行监控,提高了监控效率。【附图说明】图1为本专利技术提供的虚拟机进程监控方法一个实施例的流程图;图2为本专利技术提供的虚拟机进程监控方法又一个实施例的流程图;图3为在待终止进程对应的结构体中保存终止待终止进程指令的工作流程示意图;图4为本专利技术提供的虚拟机进程监控方法另一个实施例的流程图;图5为本专利技术提供的虚拟机进程监控装置一个实施例的结构示意图。【具体实施方式】为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术提供的虚拟机进程监控方法一个实施例的流程图,如图1所示,包括:101、获取虚拟机的操作系统类型。本专利技术的执行主体为虚拟机进程监控装置,虚拟机进程监控装置具体可以位于宿主机上的虚拟监控器(Virtual Machine Monitor)中,例如位于虚拟监控器KVM(Kernel-based Virtual Machine,)或者虚拟监控器XEN中。虚拟监控器可以位于虚拟机操作系统和宿主机之间。对于本宿主机上正在运行的虚拟机或者刚从其他宿主机迁移到本宿主机的虚拟机,虚拟机进程监控装置可以获取中断描述符表(Interrupt Descriptor Table, IDT)寄存器的base数值;对于在本宿主机启动的虚拟机,由于启动过程需要一定的时间,每次CR3控制寄存器切换时虚拟机进程监控装置可以读取IDT寄存器的limit数值,当limit数值为“Oxff”时表示IDT寄存器已初始化完成,此时虚拟机进程监控装置可以获取IDT寄存器的base数值。获取到虚拟机的IDT寄存器的base数值之后,虚拟机进程监控装置可以根据base数值判断虚拟机的操作系统类型。虚拟机进程监控装置可以通过创建装有操作系统的虚拟机镜像,使用qemu-system-x86_64命令的-monitor stdio选项启动虚拟机,在标准输入输出控制台执行info register命令来获取IDT寄存器的base数值。102、根据操作系统类型,查询预设的内核数据结构偏移集合,确定与操作系统类型对应的内核数据结构偏移数组,内核数据结构偏移数组中包括:操作系统类型对应的虚拟机的进程链表数据结构以及操作系统类型对应的虚拟机中各进程的进程信息在各进程对应的结构体中的偏移量。其中,虚拟机进程监控装置根据操作系统类型,查询预设的内核数据结构偏移集合,确定与操作系统类型对应的内核数据结构偏移数组之前,虚拟机进程监控装置还需要创建内核数据结构偏移集合,内核数据结构偏移集合中包括宿主机支持的各虚拟机的操作系统类型以及与各虚拟机的操作系统类型对应的内核数据结构偏移数组。当虚拟机的操作系统类型为Windows XP或Windows7等操作系统时,虚拟机进程监控装置创建内核数据结构偏移集合中的内核数据结构偏移数组的过程具体可以为:虚拟机进程监控装置可以将IDT寄存器的base数值作为虚拟机的操作系统类型对应的内核数据结构偏移数组的首个元素;虚拟机进程监控装置还可以使用Windbg中的命令dt获取进程标识号(UniqueProcessID)、进程名称(ImageFi IeName )、进程链表数据结构(ActiveProcessLinks)和 DirectoryTableBase 在 EPR0CESS 结构体中的偏移量、ApcState在KTHREAD结构体中的偏移量以及Process在ApcState结构体中的偏移量,将 UniqueProcessID、ImageFiIeName、ActiveProcessLinks 和 DirectoryTableBase 在EPR0CESS结构体中的偏移量、ApcState在KTHREAD结构体中的偏移量以及Process在Ap c S t a t e结构体中的偏移量按照一定的顺序依次作为虚拟机的操作系统类型对应的内核数据结构偏移数组的元素。其中,KTHREAD结构体位于Windows内核数据结构处理器控制区(KPCR)结构体内的 PrcbData 变量中的 Current Process 中。UniqueProcessID、ImageFi I eName、ActiveProcessLinks、DirectoryTableBase > ApcState 和 Process 均为支持Windows XP或Windows7等操作系统的虚拟机的进程信息可以包括的参数。对应的,当虚拟机进程监控装置根据IDT寄存器的base数值判断得知虚拟机的操作系统类型为Windows XP或Wind0本文档来自技高网...

【技术保护点】
一种虚拟机进程监控方法,其特征在于,包括:获取虚拟机的操作系统类型;根据所述操作系统类型,查询预设的内核数据结构偏移集合,确定与所述操作系统类型对应的内核数据结构偏移数组,所述内核数据结构偏移数组中包括:所述操作系统类型对应的虚拟机的进程链表数据结构以及所述操作系统类型对应的虚拟机中各进程的进程信息在各进程对应的结构体中的偏移量;根据所述进程链表数据结构确定所述操作系统类型对应的虚拟机中各进程对应的结构体的虚拟地址;根据所述各进程对应的结构体的虚拟地址以及所述各进程的进程信息在各进程对应的结构体中的偏移量获取所述操作系统类型对应的虚拟机中各进程的进程信息。

【技术特征摘要】
1.一种虚拟机进程监控方法,其特征在于,包括: 获取虚拟机的操作系统类型; 根据所述操作系统类型,查询预设的内核数据结构偏移集合,确定与所述操作系统类型对应的内核数据结构偏移数组,所述内核数据结构偏移数组中包括:所述操作系统类型对应的虚拟机的进程链表数据结构以及所述操作系统类型对应的虚拟机中各进程的进程信息在各进程对应的结构体中的偏移量; 根据所述进程链表数据结构确定所述操作系统类型对应的虚拟机中各进程对应的结构体的虚拟地址; 根据所述各进程对应的结构体的虚拟地址以及所述各进程的进程信息在各进程对应的结构体中的偏移量获取所述操作系统类型对应的虚拟机中各进程的进程信息。2.根据权利要求1所述的方法,其特征在于,所述获取虚拟机的操作系统类型之前,还包括: 创建内核数据结构偏移集合,所述内核数据结构偏移集合中包括宿主机支持的各虚拟机的操作系统类型以及与各虚拟机的操作系统类型对应的内核数据结构偏移数组。3.根据权利要求2所述的方法,其特征在于,所述根据所述进程链表数据结构确定所述操作系统类型对应的虚拟机中各进程对应的结构体的虚拟地址之前,还包括: 获取所述操作系统类型对应的虚拟机中正在运行的进程对应的结构体的虚拟地址; 所述根据所述进 程链表数据结构确定所述操作系统类型对应的虚拟机中各进程对应的结构体的虚拟地址,包括: 根据所述正在运行的进程对应的结构体的虚拟地址查询所述进程链表数据结构,确定所述操作系统类型对应的虚拟机中除所述正在运行的进程之外的其他进程对应的结构体的虚拟地址。4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述各进程对应的结构体的虚拟地址以及所述各进程的进程信息在各进程对应的结构体中的偏移量获取所述操作系统类型对应的虚拟机中各进程的进程信息之后,还包括: 创建与所述操作系统类型对应的虚拟机对应的数据结构,所述数据结构包括:所述操作系统类型,所述操作系统类型对应的内核数据结构偏移数组,所述操作系统类型对应的虚拟机的进程链表数据结构。5.根据权利要求1-3任一项所述的方法,其特征在于,所述操作系统类型对应的虚拟机中各进程的进程信息包括:各进程的进程标识号; 所述根据所述各进程对应的结构体的虚拟地址以及所述各进程的进程信息在各进程对应的结构体中的偏移量获取所述操作系统类型对应的虚拟机中各进程的进程信息之后,还包括: 获取待终止进程的进程标识号; 根据所述待终止进程的进程标识号终止所述待终止进程。6.根据权利要求5所述的方法,其特征在于,所述根据所述待终止进程的进程标识号终止所述待终止进程,包括: 根据所述待终止进程的进程标识号,获取所述待终止进程对应的结构体的虚拟地址; 根...

【专利技术属性】
技术研发人员:李博李楠崔磊李建欣邰振赢
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1