CN105824682A - 一种虚拟机的监控方法、装置和系统 - Google Patents

一种虚拟机的监控方法、装置和系统 Download PDF

Info

Publication number
CN105824682A
CN105824682A CN201510006010.0A CN201510006010A CN105824682A CN 105824682 A CN105824682 A CN 105824682A CN 201510006010 A CN201510006010 A CN 201510006010A CN 105824682 A CN105824682 A CN 105824682A
Authority
CN
China
Prior art keywords
input
output apparatus
handset
address
access
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.)
Granted
Application number
CN201510006010.0A
Other languages
English (en)
Other versions
CN105824682B (zh
Inventor
贺永红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Shenzhen Tencent Computer Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Tencent Computer Systems Co Ltd filed Critical Shenzhen Tencent Computer Systems Co Ltd
Priority to CN201510006010.0A priority Critical patent/CN105824682B/zh
Publication of CN105824682A publication Critical patent/CN105824682A/zh
Application granted granted Critical
Publication of CN105824682B publication Critical patent/CN105824682B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种虚拟机的监控方法、装置和系统;本发明实施例采用截获子机中对I/O设备的访问进程,根据该访问进程对该I/O设备的访问过程进行模拟,然后,监控并统计该模拟过程中退出访问的次数和分布信息,从而实现对子机的I/O操作进行精细量化的监控统计,以便对子机的故障进行准确定位,使得后续可以根据该故障原因对虚拟机的性能进行改善。

Description

一种虚拟机的监控方法、装置和系统
技术领域
本发明涉及计算机技术领域,具体涉及一种虚拟机的监控方法、装置和系统。
背景技术
系统虚拟化具有很好的隔离性、封装性、兼容性及硬件独立性,因此获得了广泛的使用。所谓系统虚拟化,也称为虚拟机(VirtualMachine),指的是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。其中,虚拟机所在的实体设备称为母机,而模拟出来的一个或多个系统则称为该母机的子机。
为了更好地了解虚拟机的运行状况,现有技术提出了对虚拟机的运行进行监控。现有的虚拟机监控一般都是从子机中对各个进程,比如中央处理器(CPU,CentralProcessingUnit)、内存和输入输出(I/O,input/output)设备等设备的使用情况来进行监控的,并据此来对虚拟机的性能进行评判。
在对现有技术的研究和实践过程中,本发明的发明人发现,在虚拟机中执行IO操作时,会转化为执行I/O设备的portio或mmio(内存映射I/O,MemorymappingI/O)访问,这样会使得虚拟机退出,从而导致性能下降,但是目前的监控方法并无法对此进行监控,从而无法准确地对子机的故障进行定位。
发明内容
本发明实施例提供一种虚拟机的监控方法、装置和系统,可以对子机的I/O操作进行精细量化的监控统计,从而对子机的故障进行准确定位。
本发明实施例提供一种虚拟机的监控方法,包括:
截获子机中对I/O设备的访问进程;
根据所述访问进程对所述I/O设备的访问过程进行模拟;
监控并统计所述模拟过程中退出访问的次数和分布信息。
相应的,本发明实施例还提供一种虚拟机的监控装置,包括:
截获单元,用于截获子机中对I/O设备的访问进程;
模拟单元,用于根据所述访问进程对所述I/O设备的访问过程进行模拟;
监控单元,用于监控并统计所述模拟过程中退出访问的次数和分布信息。
此外,本发明实施例还提供一种虚拟机的监控系统,包括子机和本发明实施例提供的任一种虚拟机的监控装置,其中:
所述子机,用于调用访问进程以对I/O设备进行访问。
本发明实施例采用截获子机中对I/O设备的访问进程,根据该访问进程对该I/O设备的访问过程进行模拟,然后,监控并统计该模拟过程中退出访问的次数和分布信息,从而实现对子机的I/O操作进行精细量化的监控统计,以便对子机的故障进行准确定位,使得后续可以根据该故障原因对虚拟机的性能进行改善。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的虚拟机的监控方法的流程图;
图2是本发明实施例提供的虚拟机的监控方法的另一流程图;
图3a是本发明实施例提供的虚拟机的监控装置的结构示意图;
图3b是本发明实施例提供的虚拟机的监控装置的另一结构示意图;
图4是本发明实施例提供虚拟机的监控系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种虚拟机的监控方法、装置和系统。以下将分别进行详细说明。
实施例一、
本实施例将从虚拟机的监控装置的角度进行描述,该虚拟机的监控装置具体可以集成在母机中,可以包括快速模拟器(QEMU,QuickEMUlator)和基于内核的虚拟机(KVM,Kernel-basedVirtualMachine)。
一种虚拟机的监控方法,包括:截获子机中对I/O设备的访问进程,根据该访问进程对所述I/O设备的访问过程进行模拟,监控并统计该模拟过程中退出访问的次数和分布信息。
如图1所示,该虚拟机的监控方法的流程具体可以如下:
101、截获子机中对I/O设备的访问进程。例如,具体可以由KVM截获子机中对I/O设备的访问进程。
在X86-CPU中,对I/O设备的访问可以通过两种方式:I/O端口(portio)方式和内存映射I/O(mmio,memorymappingI/O)方式,其中,portio方式主要是将I/O设备的寄存器映射到IO地址空间,portio方式可以通过IN/OUT指令访问I/O端口;而mmio方式主要是将I/O设备的寄存器映射到内存地址空间,mmio方式可以通过CPU访问内存指令,如move等访问内存方式来访问I/O端口。本发明实施例所说的访问进程可以是mmio方式的访问(简称mmio访问),也可以是portio方式的访问(简称portio访问)。
102、根据截获的访问进程对该I/O设备的访问过程进行模拟。
例如,具体可以由KVM或QEMU来对该I/O设备的访问过程进行模拟,比如,具体可以如下:
(1)根据该访问进程确定该I/O设备的地址。
例如,具体可以根据该mmio访问或portio访问确定该I/O设备的地址。
(2)为该I/O设备在子机中分配相应的I/O端口。
其中,根据不同的I/O设备,可以采用不同的方式为其在子机中分配I/O端口,例如,具体可以如下:
确定该I/O设备为外设部件互连标准(PCI,PeripheralComponentInterconnect)设备时,采用动态分配方式为该I/O设备在子机中分配相应的I/O端口。
确定该I/O设备为指令集架构(ISA,InstructionSetArchitecture)设备时,采用静态分配方式为该I/O设备在子机中分配相应的I/O端口。
此外,若是由QEMU来分配该I/O端口,则在分配了相应的I/O端口后,还可以绑定相应的回调函数,以便后续其他模块可以通过调用该回调函数将相关操作返回QEMU中进行处理,其中,回调函数就是一个通过函数指针调用的函数。
(3)建立该I/O设备的地址与分配的I/O端口之间的映射关系。
在建立了映射关系之后,还可以保存该映射关系,以作为本地保存数据,以供后续使用。比如,保存静态分配的I/O设备的地址与子机中I/O端口的映射关系,作为本地保存数据;或者,保存动态分配的I/O设备的地址与子机中I/O端口的映射关系,作为本地保存数据,并利用预置的设备控制接口函数(ioctl)对其(即该本地保存数据中的“动态分配的I/O设备的地址与子机中I/O端口的映射关系”)进行动态更新。
其中,ioctl指的是设备驱动程序中对设备的I/O通道进行管理的函数。
(4)基于该映射关系对该I/O设备的访问过程进行模拟。
需说明的是,KVM截获该访问进程后,如果该I/O设备在KVM中进行了模拟,就调用相关回调函数进行处理并返回QEMU,如果KVM未模拟此I/O设备,则将其返回QEMU中进行处理。
103、监控并统计该模拟过程中退出访问的次数和分布信息。
例如,可以由KVM来监控并统计该模拟过程中退出访问的次数和分布信息,具体可以如下:
对该模拟过程进行监控,以统计退出的访问的次数,获取退出的访问所对应的I/O设备的地址,将该地址与本地保存数据进行比较,以确定退出访问的分布信息。
其中,该本地保存数据包括I/O设备的地址与子机中I/O端口的映射关系,具体可参见步骤102。
由上可知,本实施例采用截获子机中对I/O设备的访问进程,根据该访问进程对该I/O设备的访问过程进行模拟,然后,监控并统计该模拟过程中退出访问的次数和分布信息,从而实现对子机的I/O操作进行精细量化的监控统计,以便对子机的故障进行准确定位,使得后续可以根据该故障原因对虚拟机的性能进行改善。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以虚拟机的监控装置具体包括QEMU和KVM(即KVM内核模块)为例进行说明。
一种虚拟机的监控方法,如图2所示,具体流程可以如下:
201、KVM截获子机中对I/O设备的访问进程,比如mmio访问或portio访问。
202、KVM对访问进程进行模拟,调用相关回调函数进行处理并将处理结果返回给QEMU;或者,若KVM未模拟此I/O设备,则将该访问进程传送给QEMU,由QEMU对访问进程进行模拟。
具体模拟时,可以先根据该访问进程确定该I/O设备的地址,并为该I/O设备在子机中分配相应的I/O端口,然后再建立该I/O设备的地址与分配的I/O端口之间的映射关系,并基于该映射关系对该I/O设备的访问过程进行模拟。
在QEMU中进行IO设备模拟时,可以使用两种方式进行I/O设备的portio/mmio映射:
(1)PCI设备的映射;
采用动态分配方式为该I/O设备在子机中分配相应的I/O端口,即其portio/mmio访问的映射关系为动态分配,其中,映射时,若为portio访问,则映射到I/O端口,并绑定回调函数,若为mmio访问,则映射到I/O内存(I/Oregion),并绑定回调函数。
(2)ISA设备的映射;
采用静态分配方式为该I/O设备在子机中分配相应的I/O端口,即其portio/mmio访问的映射关系为静态分配。
其中,Linux子机中针对portio和mmio的I/O端口分配可以如下:
(1)portio的I/O端口分配;
端口范围:设备
0000-001f:dma1
0020-0021:pic1
0040-0043:timer0
0050-0053:timer1
0060-0060:keyboard
0064-0064:keyboard
0070-0077:rtc/*针对rtc设备,端口范围为8*/
0080-008f:dmapagereg
00a0-00a1:pic2
00c0-00df:dma2
00f0-00ff:fpu
03c0-03df:vga+
03f8-03ff:serial/*针对串口设备,端口范围为8*/
0cf8-0cff:PCIconf1
afe0-afe3:ACPIGPE0_BLK
b000-b003:ACPIPM1a_EVT_BLK
b004-b005:ACPIPM1a_CNT_BLK
b008-b00b:ACPIPM_TMR
b010-b015:ACPICPUthrottle
c000-c03f:virtio-pci/*针对virtio-blk-pci设备,端口范围为64*/
c060-c07f:virtio-pci/*针对virtio-net-pci设备,端口范围为32*/
c080-c09f:virtio-pci/*针对virtio-balloon-pci设备,端口范围为32*/
(2)mmio的I/O端口分配分配;
地址范围:设备
00000000-0009fbff:SystemRAM/*端口范围为0~638k*/
00100000-dfffdfff:SystemRAM/*端口范围为1m~3583m*/
01000000-014f1408:Kernelcode/*端口范围为16m~20m*/
014f1409-01738d5f:Kerneldata/*端口范围为20m~23m*/
017b2000-01850d03:Kernelbss/*端口范围为23m~24m*/
02000000-09ffffff:Crashkernel/*端口范围为32m~159m*/
febf1000-febf1fff:virtio-pci/*针对virtio-net-pci设备之MSI-X(中断),端口范围为4k*/
febf2000-febf2fff:virtio-pci/*针对virtio-blk-pci设备之MSI-X(中断),端口范围为4k*/
fec00000-fec00fff:IOAPIC0/*针对kvm-ioapic设备,端口范围为4k*/
fed00000-fed003ff:HPET0/*针对hpet设备,端口范围为1k*/
fee00000-fee00fff:LocalAPIC/*针对kvm-lapic设备,端口范围为4k*/
100000000-21fffffff:SystemRAM
203、KVM对该模拟过程进行监控,以统计退出的访问的次数。
204、KVM获取退出的访问所对应的I/O设备的地址,将该地址与本地保存数据进行比较,以确定退出访问的分布信息。
其中,该本地保存数据包括I/O设备的地址与子机中I/O端口的映射关系,例如:
(1)对于QEMU中静态分配的portio/mmio的I/O端口范围,在KVM中可以直接保存一份,作为本地保存数据,格式可以为<portio/mmio范围,对应子机IO设备>。
(2)对于QEMU中动态分配的portio/mmio的I/O端口范围,在KVM中可以新增一个ioctl,在QEMU动态更新IO设备bar时(pci_update_mappings),可以通过该ioctl将动态更新的映射关系传给KVM进行保存,格式可以为<portio/mmio范围,对应子机IO设备>。
当然,也可以采用其他的格式来保存,在此不再赘述。
由上可知,本实施例采用由KVM截获子机中对I/O设备的访问进程,然后由KVM或QEMU根据该访问进程对该I/O设备的访问过程进行模拟,然后,再由KVM监控并统计该模拟过程中退出访问的次数和分布信息,从而实现母机对子机的I/O操作进行精细量化的监控统计,以便对子机的故障进行准确定位,使得后续可以根据该故障原因对虚拟机的性能进行改善。
实施例三、
相应的,本发明实施例还提供一种虚拟机的监控装置,如图3a所示,该虚拟机的监控装置包括截获单元301、模拟单元302和监控单元303,如下:
截获单元301,用于截获子机中对输入/输出设备的访问进程。
其中,该访问进程可以是mmio访问,也可以是portio访问。
模拟单元302,用于根据该访问进程对该I/O设备的访问过程进行模拟。
监控单元303,用于监控并统计该模拟过程中退出访问的次数和分布信息。
例如,其中,模拟单元302可以包括确定子单元、分配子单元、建立子单元和模拟子单元,如下:
确定子单元,用于根据该访问进程确定所述I/O设备的地址。
例如,具体可以根据该mmio访问或portio访问确定该I/O设备的地址。
分配子单元,用于为该I/O设备在子机中分配相应的输入/输出端口。
其中,根据不同的I/O设备,可以采用不同的方式为其在子机中分配I/O端口,即,分配子单元,具体可以用于执行如下操作:
(1)PCI设备的映射;
确定该I/O设备为PCI设备时,采用动态分配方式为所述I/O设备在子机中分配相应的输入/输出端口;即其portio/mmio访问的映射关系为动态分配,其中,映射时,若为portio访问,则映射到I/O端口,并可以绑定回调函数,若为mmio访问,则映射到I/O内存(I/Oregion),并可以绑定回调函数。
(2)ISA设备的映射;
确定该I/O设备为ISA设备时,采用静态分配方式为所述I/O设备在子机中分配相应的输入/输出端口;即其portio/mmio访问的映射关系为静态分配。
其中,Linux子机中针对portio和mmio的I/O端口分配具体可参见前面的实施例,在此不再赘述。
建立子单元,用于建立该I/O设备的地址与分配的输入/输出端口之间的映射关系;
模拟子单元,用于基于该映射关系对该I/O设备的访问过程进行模拟。
在建立了映射关系之后,还可以保存该映射关系,以作为本地保存数据,以供后续使用。比如,保存静态分配的I/O设备的地址与子机中I/O端口的映射关系,作为本地保存数据;或者,保存动态分配的I/O设备的地址与子机中I/O端口的映射关系,作为本地保存数据,并利用预置的设备控制接口函数(ioctl)对其(即该本地保存数据中的“动态分配的I/O设备的地址与子机中I/O端口的映射关系”)进行动态更新,即如图3b所示,该虚拟机的监控装置还可以包括保存单元304;
保存单元304,可以用于保存静态分配的I/O设备的地址与子机中输入/输出端口的映射关系,作为本地保存数据。
保存单元,还可以用于保存动态分配的I/O设备的地址与子机中输入/输出端口的映射关系,作为本地保存数据;利用ioctl对该本地保存数据中的“动态分配的I/O设备的地址与子机中输入/输出端口的映射关系”进行动态更新。
其中,监控单元303可以包括统计子单元、获取子单元和比较子单元,如下:
统计子单元,用于对该模拟过程进行监控,以统计退出的访问的次数。
获取子单元,用于获取退出的访问所对应的I/O设备的地址。
比较子单元,用于将该地址与本地保存数据进行比较,以确定退出访问的分布信息。
其中,该本地保存数据包括I/O设备的地址与子机中输入/输出端口的映射关系,例如:
(1)对于静态分配的portio/mmio的I/O端口范围,可以直接保存一份,作为本地保存数据,格式可以为<portio/mmio范围,对应子机IO设备>。
(2)对于动态分配的portio/mmio的I/O端口范围,可以新增一个ioctl,在动态更新IO设备bar时(pci_update_mappings),可以通过该ioctl来传送该动态更新的映射关系并进行保存,格式可以为<portio/mmio范围,对应子机IO设备>。
当然,也可以采用其他的格式来保存,在此不再赘述。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,比如由QEMU和KVM来实现,等等。以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
该虚拟机的监控装置具体可以集成在母机中。
由上可知,本实施例的虚拟机的监控装置采用截获单元301截获子机中对I/O设备的访问进程,然后由模拟单元302根据该访问进程对该I/O设备的访问过程进行模拟,然后,再由监控单元303监控并统计该模拟过程中退出访问的次数和分布信息,从而实现对子机的I/O操作进行精细量化的监控统计,以便对子机的故障进行准确定位,使得后续可以根据该故障原因对虚拟机的性能进行改善。
实施例四、
相应的,本发明实施例还提供一种虚拟机的监控系统,包括本发明实施例提供的任一种虚拟机的监控装置,该虚拟机的监控装置具体可参见实施例三,该虚拟机的监控装置具体可以集成在母机中。
例如,参见图4,该虚拟机的监控系统还可以包括子机,具体可以如下:
母机401,用于截获子机402中对I/O设备的访问进程,根据该访问进程对该I/O设备的访问过程进行模拟,监控并统计该模拟过程中退出访问的次数和分布信息。
其中,访问进程可以是mmio访问,也可以是portio访问。
子机402,用于调用访问进程以对I/O设备进行访问。
例如,母机401,具体可以用于根据该访问进程确定该I/O设备的地址,根据该访问进程确定该I/O设备的地址,并建立该I/O设备的地址与分配的I/O端口之间的映射关系,然后基于该映射关系对该I/O设备的访问过程进行模拟;再然后,对该模拟过程进行监控,以统计退出的访问的次数,并获取退出的访问所对应的I/O设备的地址,将该地址与本地保存数据进行比较,以确定退出访问的分布信息。
其中,该本地保存数据包括I/O设备的地址与子机中I/O端口的映射关系,例如:
(1)对于静态分配的portio/mmio的I/O端口范围,可以直接保存一份,作为本地保存数据,格式可以为<portio/mmio范围,对应子机IO设备>。
(2)对于动态分配的portio/mmio的I/O端口范围,可以新增一个ioctl,在动态更新IO设备bar时(pci_update_mappings),可以通过该ioctl来传送该动态更新的映射关系并进行保存,格式可以为<portio/mmio范围,对应子机IO设备>。
当然,也可以采用其他的格式来保存,在此不再赘述。
其中,母机401可以包括QEMU和KVM,例如,具体可以由KVM来截获子机402中对I/O设备的访问进程,然后由QEMU或KVM根据该访问进程对该I/O设备的访问过程进行模拟,并由KVM来监控并统计该模拟过程中退出访问的次数和分布信息,具体可参见实施例二,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例的虚拟机的监控系统采用由母机401截获子机402中对I/O设备的访问进程,然后根据该访问进程对该I/O设备的访问过程进行模拟,然后,监控并统计该模拟过程中退出访问的次数和分布信息,从而实现母机401对子机402的I/O操作进行精细量化的监控统计,以便对子机402的故障进行准确定位,使得后续可以根据该故障原因对虚拟机的性能进行改善。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取记忆体(RAM,RandomAccessMemory)、磁盘或光盘等。
以上对本发明实施例所提供的一种虚拟机的监控方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (13)

1.一种虚拟机的监控方法,其特征在于,包括:
截获子机中对输入/输出设备的访问进程;
根据所述访问进程对所述输入/输出设备的访问过程进行模拟;
监控并统计所述模拟过程中退出访问的次数和分布信息。
2.根据权利要求1所述的方法,其特征在于,所述监控并统计所述模拟过程中退出访问的次数和分布信息,包括:
对所述模拟过程进行监控,以统计退出的访问的次数;
获取退出的访问所对应的输入/输出设备的地址;
将所述地址与本地保存数据进行比较,以确定退出访问的分布信息,所述本地保存数据包括输入/输出设备的地址与子机中输入/输出端口的映射关系。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述访问进程对所述输入/输出设备的访问过程进行模拟,包括:
根据所述访问进程确定所述输入/输出设备的地址;
为所述输入/输出设备在子机中分配相应的输入/输出端口;
建立所述输入/输出设备的地址与分配的输入/输出端口之间的映射关系;
基于所述映射关系对所述输入/输出设备的访问过程进行模拟。
4.根据权利要求3所述的方法,其特征在于,所述为所述输入/输出设备在子机中分配相应的输入/输出端口,包括:
确定所述输入/输出设备为外设部件互连标准PCI设备时,采用动态分配方式为所述输入/输出设备在子机中分配相应的输入/输出端口;
确定所述输入/输出设备为指令集架构ISA设备时,采用静态分配方式为所述输入/输出设备在子机中分配相应的输入/输出端口。
5.根据权利要求4所述的方法,其特征在于,所述建立所述输入/输出设备的地址与分配的输入/输出端口之间的映射关系之后,还包括:
保存静态分配的输入/输出设备的地址与子机中输入/输出端口的映射关系,作为本地保存数据。
6.根据权利要求4所述的方法,其特征在于,所述建立所述输入/输出设备的地址与分配的输入/输出端口之间的映射关系之后,还包括:
保存动态分配的输入/输出设备的地址与子机中输入/输出端口的映射关系,作为本地保存数据;
利用预置的设备控制接口函数对所述本地保存数据中动态分配的输入/输出设备的地址与子机中输入/输出端口的映射关系进行动态更新。
7.一种虚拟机的监控装置,其特征在于,包括:
截获单元,用于截获子机中对输入/输出设备的访问进程;
模拟单元,用于根据所述访问进程对所述输入/输出设备的访问过程进行模拟;
监控单元,用于监控并统计所述模拟过程中退出访问的次数和分布信息。
8.根据权利要求7所述的监控装置,其特征在于,所述监控单元包括统计子单元、获取子单元和比较子单元;
所述统计子单元,用于对所述模拟过程进行监控,以统计退出的访问的次数;
所述获取子单元,用于获取退出的访问所对应的输入/输出设备的地址;
所述比较子单元,用于将所述地址与本地保存数据进行比较,以确定退出访问的分布信息,所述本地保存数据包括输入/输出设备的地址与子机中输入/输出端口的映射关系。
9.根据权利要求7或8所述的监控装置,其特征在于,所述模拟单元包括确定子单元、分配子单元、建立子单元和模拟子单元;
所述确定子单元,用于根据所述访问进程确定所述输入/输出设备的地址;
所述分配子单元,用于为所述输入/输出设备在子机中分配相应的输入/输出端口;
所述建立子单元,用于建立所述输入/输出设备的地址与分配的输入/输出端口之间的映射关系;
所述模拟子单元,用于基于所述映射关系对所述输入/输出设备的访问过程进行模拟。
10.根据权利要求9所述的监控装置,其特征在于,所述分配子单元,具体用于:
确定所述输入/输出设备为外设部件互连标准PCI设备时,采用动态分配方式为所述输入/输出设备在子机中分配相应的输入/输出端口;
确定所述输入/输出设备为指令集架构ISA设备时,采用静态分配方式为所述输入/输出设备在子机中分配相应的输入/输出端口。
11.根据权利要求10所述的监控装置,其特征在于,还包括保存单元;
所述第一保存单元,用于保存静态分配的输入/输出设备的地址与子机中输入/输出端口的映射关系,作为本地保存数据。
12.根据权利要求11所述的监控装置,其特征在于,
所述保存单元,还用于保存动态分配的输入/输出设备的地址与子机中输入/输出端口的映射关系,作为本地保存数据;利用预置的设备控制接口函数对所述本地保存数据中动态分配的输入/输出设备的地址与子机中输入/输出端口的映射关系进行动态更新。
13.一种虚拟机的监控系统,其特征在于,包括子机和权利要求7至12任一项所述的虚拟机的监控装置,其中:
所述子机,用于调用访问进程以对输入/输出设备进行访问。
CN201510006010.0A 2015-01-05 2015-01-05 一种虚拟机的监控方法、装置和系统 Active CN105824682B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510006010.0A CN105824682B (zh) 2015-01-05 2015-01-05 一种虚拟机的监控方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510006010.0A CN105824682B (zh) 2015-01-05 2015-01-05 一种虚拟机的监控方法、装置和系统

Publications (2)

Publication Number Publication Date
CN105824682A true CN105824682A (zh) 2016-08-03
CN105824682B CN105824682B (zh) 2019-01-11

Family

ID=56514351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510006010.0A Active CN105824682B (zh) 2015-01-05 2015-01-05 一种虚拟机的监控方法、装置和系统

Country Status (1)

Country Link
CN (1) CN105824682B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569874A (zh) * 2016-10-28 2017-04-19 华为技术有限公司 存储设备的操作方法及物理服务器
CN110308934A (zh) * 2018-03-22 2019-10-08 龙芯中科技术有限公司 Hpet驱动方法和装置、可读存储介质及电子设备
CN113296876A (zh) * 2020-06-30 2021-08-24 阿里巴巴集团控股有限公司 虚拟机的设备直通方法、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402453A (zh) * 2012-01-04 2012-04-04 北京航空航天大学 一种面向mips平台的系统虚拟机
CN103164649A (zh) * 2013-02-18 2013-06-19 北京神州绿盟信息安全科技股份有限公司 进程行为分析方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402453A (zh) * 2012-01-04 2012-04-04 北京航空航天大学 一种面向mips平台的系统虚拟机
CN103164649A (zh) * 2013-02-18 2013-06-19 北京神州绿盟信息安全科技股份有限公司 进程行为分析方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569874A (zh) * 2016-10-28 2017-04-19 华为技术有限公司 存储设备的操作方法及物理服务器
CN106569874B (zh) * 2016-10-28 2019-11-29 华为技术有限公司 存储设备的操作方法及物理服务器
US10970105B2 (en) 2016-10-28 2021-04-06 Huawei Technologies Co., Ltd. Storage device operation method and physical server
US11474853B2 (en) 2016-10-28 2022-10-18 Huawei Cloud Computing Technologies Co., Ltd. Storage device operation method and physical server
CN110308934A (zh) * 2018-03-22 2019-10-08 龙芯中科技术有限公司 Hpet驱动方法和装置、可读存储介质及电子设备
CN110308934B (zh) * 2018-03-22 2022-03-29 龙芯中科(成都)技术有限公司 Hpet驱动方法和装置、可读存储介质及电子设备
CN113296876A (zh) * 2020-06-30 2021-08-24 阿里巴巴集团控股有限公司 虚拟机的设备直通方法、设备及存储介质
CN113296876B (zh) * 2020-06-30 2022-05-06 阿里巴巴集团控股有限公司 虚拟机的设备直通方法、设备及存储介质

Also Published As

Publication number Publication date
CN105824682B (zh) 2019-01-11

Similar Documents

Publication Publication Date Title
US10409632B2 (en) Emulation of hardware components based on interrupt design
US20090172667A1 (en) Method and computer system for sharing graphics card among multiple operation systems
CN103942087A (zh) 虚拟机热迁移方法及相关装置和集群系统
US20130024646A1 (en) Method and Simulator for Simulating Multiprocessor Architecture Remote Memory Access
CN104142849A (zh) 多主机单根输入/输出虚拟化虚拟功能共享的方法及系统
CN101876954B (zh) 一种虚拟机控制系统及其工作方法
CN105830026A (zh) 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
CN102968377A (zh) 一种基于虚拟机技术的机载软件系统测试通用平台
WO2019075994A1 (zh) 一种iOS端Mock数据的方法、存储介质、设备及系统
CN102799465B (zh) 分布式虚拟化系统的虚拟中断管理方法及装置
CN103064796A (zh) 虚拟机内存的共享方法与计算机系统
CN104636186A (zh) 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备
CN101887378A (zh) 一种半实物实时仿真机和半实物实时仿真系统
CN101464843B (zh) 在多操作系统中共享显示卡的方法和计算机系统
CN111796912A (zh) 申威平台存储输入输出设备虚拟化性能优化方法及系统
CA3053003A1 (en) Generalized virtualization platform for systems using hardware abstraction software layers
CN104573422A (zh) 一种基于虚拟机的应用进程运行方法及装置
CN105824682A (zh) 一种虚拟机的监控方法、装置和系统
CN106598696A (zh) 一种虚拟机之间数据交互的方法及装置
CN104750623A (zh) 一种内存虚拟化的方法及装置
WO2017184168A1 (en) Configuration of a memory controller for copy-on-write with a resource controller
CN112506818B (zh) 一种基于软件模拟的usb硬件虚拟化方法
US9361114B1 (en) Instruction based interrupt masking for managing interrupts in a computer environment
US20080262821A1 (en) Method, apparatus, and computer program product for dynamically managing simulated addresses
CN109271231B (zh) 测试物理硬件装置的方法和仿真物理硬件装置的系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant