[发明专利]一种KVM虚拟机进程信息的获取方法及系统有效
申请号: | 201210593535.5 | 申请日: | 2012-12-31 |
公开(公告)号: | CN103077071A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 李陟;叶润国;胡振宇 | 申请(专利权)人: | 北京启明星辰信息技术股份有限公司;北京启明星辰信息安全技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/445 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;曲鹏 |
地址: | 100193 北京市海淀区东北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 kvm 虚拟机 进程 信息 获取 方法 系统 | ||
1.一种KVM虚拟机进程信息的获取系统,其特征在于,该系统至少包括系统调用截获模块和内省API驱动模块,其中:
所述系统调用截获模块,截获Qemu-kvm发起的IOCTL系统调用,并将该IOCTL系统调用的参数发送给所述内省应用程序接口(API)驱动模块;
所述内省API驱动模块,使用系统调用截获模块发送的参数替代Qemu-kvm向KVM发起IOCTL系统调用,记录KVM响应IOCTL系统调用的虚拟CPU的文件描述符并返回给Qemu-kvm,获取正在运行中的虚拟机中的进程和寄存器的相关信息,并对所获取的相关信息进行结构化处理后通过进程扫描接口暴露给外部程序,以及接收由外部程序发起的扫描命令,通过所述虚拟CPU的文件描述符向KVM发起该请求。
2.如权利要求1所述的系统,其特征在于,该系统还包括:
策略管控模块,对所述内省API驱动模块获取的虚拟机内进程信息和寄存器信息进行扫描,并根据扫描结果进行分析,生成分析报告,并通过所述内省API驱动模块提供的IOCTL接口向外部程序下发对虚拟机进程信息的扫描命令。
3.如权利要求1或2所述的系统,其特征在于,
所述系统调用截获模块,监听主机的系统调用,若是由Qemu-kvm发起的创建虚拟CPU的IOCTL系统调用,则进行截获,并根据所截获的IOCTL系统调用的参数,构造一个新的创建虚拟CPU的IOCTL系统调用并向KVM进行调用,将KVM执行的IOCTL系统调用的返回值返回给Qemu-kvm,并将所述虚拟CPU的文件描述符传送给内省API驱动模块。
4.如权利要求3所述的系统,其特征在于,
所述内省API驱动模块,通过收到的vcpu_fd所提供的IOCTL接口封装KVM_GET_REGS、KVM_GET_SREGS、KVM_GET_MSRS命令对应的返回结果,以IOCTL的方式对外部程序提供读取该结果的接口。
5.如权利要求4所述的系统,其特征在于,
所述内省API驱动模块还通过封装IOCTL的KVM_TRANSLATE命令,实现在物理机系统中对虚拟机vcpu物理内存地址的读取。
6.一种KVM虚拟机进程信息的获取方法,其特征在于,该方法包括:
系统调用截获模块截获Qemu-kvm发起的IOCTL系统调用,将所截获的IOCTL系统调用的参数发送给内省应用程序接口(API)驱动模块;
内省API驱动模块使用系统调用截获模块发送的参数替代Qemu-kvm向KVM发起IOCTL系统调用,记录KVM响应IOCTL系统调用的虚拟CPU的文件描述符并返回给Qemu-kvm,获取正在运行中的虚拟机中的进程和寄存器的相关信息,再对所获取的相关信息进行结构化处理后通过进程扫描接口暴露给外部程序;
当内省API驱动模块接收到外部程序发起的扫描命令,则通过所述vcpu_fd向KVM发起该扫描请求。
7.如权利要求6所述的方法,其特征在于,该方法还包括:
对所述内省API驱动模块获取的虚拟机内进程信息和寄存器信息进行扫描,根据扫描结果进行分析,生成分析报告,并通过所述内省API驱动模块提供的IOCTL接口向外部程序下发对虚拟机进程信息的扫描命令。
8.如权利要求6或7所述的方法,其特征在于,所述系统调用截获模块截获Qemu-kvm发起的IOCTL系统调用的过程如下:
所述系统调用截获模块监听主机的系统调用,若是由Qemu-kvm发起的创建虚拟CPU的IOCTL系统调用,则进行截获,并根据所截获的IOCTL系统调用的参数,构造一个新的创建虚拟CPU的IOCTL系统调用并向KVM进行调用,将KVM执行的IOCTL系统调用的返回值返回给Qemu-kvm,并将虚拟CPU的文件描述符传送给内省API驱动模块。
9.如权利要求8所述的方法,其特征在于,该方法还包括:
所述内省API驱动模块通过收到的vcpu_fd所提供的IOCTL接口封装KVM_GET_REGS、KVM_GET_SREGS、KVM_GE_MSRS命令对应的返回结果,以IOCTL的方式对外部程序提供读取该结果的接口,以此实现对寄存器信息的内省。
10.如权利要求9所述的方法,其特征在于,
所述内省API驱动模块还通过封装IOCTL的KVM_TRANSLATE命令,实现在物理机系统中对虚拟机虚拟CPU物理内存地址的读取。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京启明星辰信息技术股份有限公司;北京启明星辰信息安全技术有限公司,未经北京启明星辰信息技术股份有限公司;北京启明星辰信息安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210593535.5/1.html,转载请声明来源钻瓜专利网。
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置