PCI设备映射方法、装置、设备及存储介质转让专利
申请号 : CN202110649232.X
文献号 : CN113111025B
文献日 : 2021-09-24
发明人 : 张勇 , 游仁均 , 冯杰
申请人 : 深圳市科力锐科技有限公司
摘要 :
权利要求 :
1.一种PCI设备映射方法,其特征在于,所述PCI设备映射方法包括:当前主机与目标主机进行通信,以扫描目标主机上连接的若干PCI设备;
获取所述PCI设备对应的目标主机硬件标识以及目标主机分配资源,并将获取到的目标主机硬件标识以及目标主机分配资源存储至预设存储区域;
在获取到虚拟机启动指令时,基于虚拟化引擎扫描所述预设存储区域,确定待映射设备对应的目标主机硬件标识以及目标主机分配资源,将所述待映射设备映射至虚拟机中,以使虚拟机对所述待映射设备分配虚拟机硬件标识以及虚拟机分配资源,其中,所述虚拟机的宿主机为所述当前主机;
基于所述虚拟化引擎根据所述待映射设备对应的目标主机硬件标识以及虚拟机硬件标识构建标识映射表,根据所述标识映射表、所述目标主机分配资源以及所述虚拟机分配资源构建资源映射表,以实现在虚拟机上对目标主机上连接的PCI设备进行映射。
2.如权利要求1所述的PCI设备映射方法,其特征在于,所述基于所述虚拟化引擎根据所述待映射设备对应的目标主机硬件标识以及虚拟机硬件标识构建标识映射表,根据所述标识映射表、所述目标主机分配资源以及所述虚拟机分配资源构建资源映射表之后,所述方法还包括:
通过所述虚拟机加载操作系统,以使所述操作系统自动加载所述待映射设备对应的驱动程序,通过所述驱动程序对所述目标主机上连接的PCI设备进行配置;
通过所述驱动程序与配置好的PCI设备进行交互。
3.如权利要求2所述的PCI设备映射方法,其特征在于,所述通过所述驱动程序与配置好的PCI设备进行交互之后,所述方法还包括:基于所述虚拟化引擎获取所述虚拟机上运行的驱动程序发送的目标指令,确定所述目标指令触发的第一资源信息;
根据所述虚拟机分配资源确定所述第一资源信息对应的第一虚拟机硬件标识;
根据所述标识映射表确定所述第一虚拟机硬件标识对应的第一目标主机硬件标识;
根据所述资源映射表确定所述第一资源信息对应的第一目标主机分配资源;
通知所述目标主机根据所述第一目标主机硬件标识以及所述第一目标主机分配资源向对应的第一PCI设备发送所述目标指令。
4.如权利要求3所述的PCI设备映射方法,其特征在于,所述通知所述目标主机根据所述第一目标主机硬件标识以及所述第一目标主机分配资源向对应的第一PCI设备发送所述目标指令之后,所述方法还包括:
基于所述虚拟化引擎接收所述目标主机的事件信息,所述事件信息包含所述第一PCI设备在所述目标主机上触发的第二资源信息;
根据所述目标主机分配资源确定所述第二资源信息对应的第二目标主机硬件标识;
根据所述标识映射表确定所述第二目标主机硬件标识对应的第二虚拟机硬件标识;
根据所述资源映射表确定所述第二资源信息对应的第二虚拟机分配资源;
根据所述第二虚拟机硬件标识触发所述第二虚拟机分配资源,以使所述虚拟机上运行的驱动程序获取所述第一PCI设备反馈的所述事件信息。
5.如权利要求4所述的PCI设备映射方法,其特征在于,所述根据所述第二虚拟机硬件标识触发所述第二虚拟机分配资源,以使所述虚拟机上运行的驱动程序获取所述第一PCI设备反馈的所述事件信息之后,所述方法还包括:基于所述虚拟化引擎获取所述虚拟机上运行的驱动程序发送的查看事件内容指令,确定所述查看事件内容指令触发的第三资源信息;
根据所述虚拟机分配资源确定所述第三资源信息对应的第三虚拟机硬件标识;
根据所述标识映射表确定所述第三虚拟机硬件标识对应的第三目标主机硬件标识;
根据所述资源映射表确定所述第三资源信息对应的第三目标主机分配资源;
通知所述目标主机根据所述第三目标主机硬件标识以及所述第三目标主机分配资源读取所述查看事件内容指令对应的结果数据;
接收所述目标主机反馈的所述结果数据,并将所述结果数据反馈至所述虚拟机上运行的驱动程序。
6.如权利要求5所述的PCI设备映射方法,其特征在于,所述接收所述目标主机反馈的所述结果数据,并将所述结果数据反馈至所述虚拟机上运行的驱动程序之后,所述方法还包括:
基于所述虚拟化引擎获取所述虚拟机上运行的驱动程序发送的获取数据指令,确定所述获取数据指令触发的第四资源信息,其中,所述虚拟机上运行的驱动程序对所述结果数据进行分析,得到分析结果,在所述分析结果为存在待读取数据时,发送获取数据指令;
根据所述虚拟机分配资源确定所述第四资源信息对应的第四虚拟机硬件标识;
根据所述标识映射表确定所述第四虚拟机硬件标识对应的第四目标主机硬件标识;
根据所述资源映射表确定所述第四资源信息对应的第四目标主机分配资源;
通知所述目标主机根据所述第四目标主机硬件标识以及所述第四目标主机分配资源读取相应的数据;
接收所述目标主机反馈的所述数据,并将所述数据反馈至所述虚拟机上运行的驱动程序。
7.如权利要求1‑6中任一项所述的PCI设备映射方法,其特征在于,所述获取所述PCI设备对应的目标主机硬件标识以及目标主机分配资源,并将获取到的目标主机硬件标识以及目标主机分配资源存储至预设存储区域,包括:获取所述PCI设备对应的目标主机硬件标识以及目标主机分配资源;
获取删除指令,根据所述删除指令删除当前PCI设备对应的当前硬件标识以及当前主机分配资源信息,将剩余的目标主机硬件标识以及目标主机分配资源存储至预设存储区域。
8.一种PCI设备映射装置,其特征在于,所述PCI设备映射装置包括:扫描模块,用于与目标主机进行通信,以扫描目标主机上连接的若干PCI设备;
获取模块,用于获取所述PCI设备对应的目标主机硬件标识以及目标主机分配资源,并将获取到的目标主机硬件标识以及目标主机分配资源存储至预设存储区域;
映射模块,用于在获取到虚拟机启动指令时,基于虚拟化引擎扫描所述预设存储区域,确定待映射设备对应的目标主机硬件标识以及目标主机分配资源,将所述待映射设备映射至虚拟机中,以使虚拟机对所述待映射设备分配虚拟机硬件标识以及虚拟机分配资源,其中,所述虚拟机的宿主机为当前主机;
所述映射模块,还用于基于所述虚拟化引擎根据所述待映射设备对应的目标主机硬件标识以及虚拟机硬件标识构建标识映射表,根据所述标识映射表、所述目标主机分配资源以及所述虚拟机分配资源构建资源映射表,以实现在虚拟机上对目标主机上连接的PCI设备进行映射。
9.一种PCI设备映射设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的PCI设备映射程序,所述PCI设备映射程序配置为实现如权利要求1至7中任一项所述的PCI设备映射方法。
10.一种存储介质,其特征在于,所述存储介质上存储有PCI设备映射程序,所述PCI设备映射程序被处理器执行时实现如权利要求1至7中任一项所述的PCI设备映射方法。
说明书 :
PCI设备映射方法、装置、设备及存储介质
技术领域
背景技术
拟机)排他使用,以获得更好的性能,而对于其他host机上的pci设备,则无法进行透传。如
果要使用其他host机上的pci设备、以及挂接在pci桥上的usb设备、PS/2接口设备以及ISA
设备等设备,只能通过层层虚拟化的方式实现,实现复杂,工作量大。
发明内容
拟机中,以使虚拟机对所述待映射设备分配虚拟机硬件标识以及虚拟机分配资源;
分配资源构建资源映射表,以实现在虚拟机上对目标主机上连接的PCI设备进行映射。
所述虚拟机分配资源构建资源映射表之后,所述方法还包括:
还包括:
果数据进行分析,得到分析结果,在所述分析结果为存在待读取数据时,发送获取数据指
令;
区域。
备映射至所述虚拟机中,以使虚拟机对所述待映射设备分配虚拟机硬件标识以及虚拟机分
配资源;
资源以及所述虚拟机分配资源构建资源映射表,以实现在虚拟机上对目标主机上连接的
PCI设备进行映射。
序,所述PCI设备映射程序配置为实现如上文所述的PCI设备映射方法的步骤。
的步骤。
识以及目标主机分配资源存储至预设存储区域;在获取到虚拟机启动指令时,基于虚拟化
引擎扫描预设存储区域,确定待映射设备对应的目标主机硬件标识以及目标主机分配资
源,将待映射设备映射至虚拟机中,以使虚拟机对待映射设备分配虚拟机硬件标识以及虚
拟机分配资源;基于虚拟化引擎根据待映射设备对应的目标主机硬件标识以及虚拟机硬件
标识构建标识映射表,根据标识映射表、目标主机分配资源以及虚拟机分配资源构建资源
映射表,以实现在虚拟机上对目标主机上连接的PCI设备进行映射。通过上述方式,通过网
络在当前主机的虚拟机上对目标主机上连接的PCI设备进行映射,构建目标主机硬件标识
以及虚拟机硬件标识对应的标识映射表,构建目标主机分配资源以及虚拟机分配资源对应
的资源映射表,基于虚拟化引擎根据标识映射表和资源映射表将虚拟机对映射PCI设备的
操作转换成目标主机对物理PCI设备的操作。实现了在当前主机的虚拟机上对目标主机上
连接的PCI设备的虚拟挂接,解决了当前主机上的虚拟机无法访问其他主机PCI设备的问
题。
附图说明
具体实施方式
通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏
(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接
口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真
(Wireless‑Fidelity,Wi‑Fi)接口)。存储器1005可以是高速的随机存取存储器(Random
Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non‑Volatile Memory,
NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
1001、存储器1005可以设置在PCI设备映射设备中,所述PCI设备映射设备通过处理器1001
调用存储器1005中存储的PCI设备映射程序,并执行本发明实施例提供的PCI设备映射方
法。
机,本实施例对此不加以限制。本实施例以当前主机为例进行说明。
主机,计算机B就是当前主机。
实施例的PCI设备包括PCI设备、PCI‑X设备以及PCI‑E设备。
断和总线上的设备进行交互,程序与设备交互可以做到枚举设备、配置设备、往设备写数据
以及从设备读数据。在具体实现中计算机程序会通过“配置地址寄存器”(CONFIG_ADDRESS,
即IO端口0xCF8)和“配置数据寄存器”(CONFIG_DATA,即IO端口0xCFC)来枚举PCI设备,查询
PCI设备的资源配置,以及修改PCI设备的资源配置。资源配置信息即本实施例的主机分配
资源信息中包含了该设备需要用到的IO端口号、MMIO的内存地址以及硬件中断信息。另外,
计算机程序还可以通过ECAM机制(本质上就是读写MMIO)去枚举PCI设备,查询PCI设备的资
源配置,以及修改PCI设备的资源配置。
编程接口,计算机程序可以通过这些编程接口跟外围设备进行通信。BIOS中断服务本质上
就是对IO端口读写操作的封装,计算机程序可以通过对端口的读写实现BIOS中断服务调用
的功能。MMIO全称是Memory‑mapped I/O,即内存映射I/O(或者内存映射IO),可以把PCI设
备的一部分存储区域、寄存器映射到CPU的内存地址空间,CPU可以像访问普通内存一样去
访问PCI设备的存储区域、寄存器。ECAM:全称是Enhanced Configuration Access
Mechanism,是访问PCI‑E设备配置空间一种机制,通过MMIO把PCI‑E设备的配置空间映射到
CPU的内存地址空间,计算机程序可以像访问普通内存一样去访问PCI‑E的配置空间。
上连接的若干PCI设备。
主机访问PCI设备时需要用到的IO端口号、MMIO的内存地址以及硬件中断信息,目标主机通
过计算机程序查询PCI设备的主机分配资源信息,将主机分配资源信息反馈给当前主机。
SMBIOS表、ECAM配置空间表……。在本实施例中,通过与目标主机通信,扫描目标主机上的
PCI设备,获取所有PCI设备的IO端口、MMIO以及硬件中断等资源信息,存储至预设存储区
域。
及当前主机分配资源信息,将剩余的目标主机硬件标识以及目标主机分配资源存储至预设
存储区域。
虚拟机使用。因此,本实施例在接收到删除指令时,对PCI设备对应的信息进行删除,避免将
不能映射的设备映射给虚拟机使用。
至所述虚拟机中,以使虚拟机对所述待映射设备分配虚拟机硬件标识以及虚拟机分配资
源。
描出来的PCI设备包括两部分:在虚拟机上虚拟的PCI设备、目标主机映射过来的设备(也就
是步骤S10中目标主机的扫描结果)。另外,虚拟固件程序生成的ACPI表、SMBIOS表、ECAM配
置空间表……也携带有映射PCI设备信息。
述虚拟机分配资源构建资源映射表,以实现在虚拟机上对目标主机上连接的PCI设备进行
映射。
示意表,映射标识表中包含了所有映射PCI设备在目标主机端的硬件标识和在虚拟机端的
硬件标识,其中,每一行代表一个映射设备,硬件标识的表示方法为:“总线号:设备号.功能
号”(16进制)。以2号映射设备为例进行说明,将目标主机端0号总线2号插槽上的PCI设备映
射到了虚拟机的0号总线a号插槽上,功能号维持不变。
1 00:01.0 00:02.0
2 00:02.0 00:a0.0
3 0f:01.0 0e:01.0
…… …… ……
标主机分配资源示意表(包含2个MMIO资源)。
IO端口 0x5060‑0x507F
MMIO1 0xB25000‑0xB25FFF
MMIO2 0xC25000‑0xC25FFF
中断信号 0xFFFFFFDD
示意表(包含2个MMIO资源)。
MMIO1 0xA25000‑0xA25FFF
MMIO2 0xE25000‑0xE25FFF
中断信号 0xFFFFFFAA
源映射表。
MMIO1 0xB25000‑0xB25FFF 0xA25000‑0xA25FFF
MMIO2 0xC25000‑0xC25FFF 0xE25000‑0xE25FFF
中断信号 0xFFFFFFDD 0xFFFFFFAA
动程序,基于驱动程序通过读写IO端口、MMIO与设备交互,例如初始化和配置PCI设备,让
PCI设备执行某些操作等。当虚拟机上运行的设备驱动程序读写IO端口、MMIO这些资源时,
读写行为会被虚拟化引擎捕获,基于虚拟化引擎根据虚拟机分配资源确定该资源对应的虚
拟机硬件标识,根据标识映射表确定对应的目标主机硬件标识,根据资源映射表确定对应
的目标主机分配资源,根据目标主机分配资源以及目标主机硬件标识对相应的资源执行读
写操作,实现操作重定向。例如,虚拟机的驱动程序对0x4060到0x407F这个范围的IO端口执
行写入操作,通知设备发送数据,这个写入操作以及写入的内容(假设是“abcdefg”)被虚拟
化引擎捕获,基于虚拟化引擎根据虚拟机资源分配得知该资源是属于2号映射设备的,该映
射设备的虚拟机硬件标识是“00:a0.0”,通过资源映射表可知目标主机端对应的IO端口范
围是0x5060到0x507F。接下来,基于虚拟化引擎通过网络通知目标主机对0x5060到0x507F
这个范围的端口执行相应的写入操作(写入的数据也是“abcdefg”),实现写操作的重定向,
通过这种方式,虚拟机可以通过目标主机的PCI设备发送数据。
的PCI设备交互时,对IO端口的读写、MMIO的读写、BIOS中断服务的调用、硬件中断的触发等
操作依据映射表进行重定向,将虚拟机访问PCI设备对应的BIOS中断服务号转换成主机访
问PCI设备对应的端口号以进行读写。通过把其他主机的PCI设备映射给当前主机上的虚拟
机,以达到虚拟机使用其他主机PCI设备(包括挂接在PCI桥上的其他总线的设备)的目的。
识以及目标主机分配资源存储至预设存储区域;在获取到虚拟机启动指令时,基于虚拟化
引擎扫描预设存储区域,确定待映射设备对应的目标主机硬件标识以及目标主机分配资
源,将待映射设备映射至虚拟机中,以使虚拟机对待映射设备分配虚拟机硬件标识以及虚
拟机分配资源;基于虚拟化引擎根据待映射设备对应的目标主机硬件标识以及虚拟机硬件
标识构建标识映射表,根据标识映射表、目标主机分配资源以及虚拟机分配资源构建资源
映射表,以实现在虚拟机上对目标主机上连接的PCI设备进行映射。通过上述方式,通过网
络在当前主机的虚拟机上对目标主机上连接的PCI设备进行映射,构建目标主机硬件标识
以及虚拟机硬件标识对应的标识映射表,构建目标主机分配资源以及虚拟机分配资源对应
的资源映射表,基于虚拟化引擎根据标识映射表和资源映射表将虚拟机对映射PCI设备的
操作转换成目标主机对物理PCI设备的操作。实现了在当前主机的虚拟机上对目标主机上
连接的PCI设备的虚拟挂接,解决了当前主机上的虚拟机无法访问其他主机PCI设备的问
题。
拟机上运行的驱动程序通过读写IO端口以及读写MMIO通知PCI设备去执行特定操作,如通
知网卡去发送数据包;发送完毕之后网卡会通过硬件中断告知驱动程序发送完毕,驱动程
序在硬件中断的回调函数中去读取IO端口以及MMIO的状态,获得数据包的发送结果,如发
送成功或者失败。
写MMIO时,虚拟化引擎根据映射表转化为目标主机上的读写IO端口以及读写MMIO操作,从
而实现对目标主机对应PCI设备进行配置。
信息用于互相区分,同理地,第一虚拟机硬件标识、第二虚拟机硬件标识、第三虚拟机硬件
标识以及第四虚拟机硬件标识用于互相区分,第一虚拟机分配资源、第二虚拟机分配资源、
第三虚拟机分配资源以及第四虚拟机分配资源用于互相区分。
写操作。在具体实现中,当虚拟机上运行的设备驱动程序读写IO端口、MMIO等资源时,读写
行为被虚拟化引擎捕获,基于虚拟化引擎根据资源分配表确定该资源对应的虚拟机硬件标
识,根据标识映射表确定对应的目标主机硬件标识以及根据资源映射表确定对应的目标主
机分配资源信息,根据目标主机分配资源以及目标主机硬件标识对相应的资源执行读写操
作,实现操作重定向。
MMIO等端口信息)时,根据资源映射表将第一资源信息转换成目标主机访问PCI设备对应的
第一目标主机分配资源,根据标识映射表将第一资源信息对应的第一虚拟机硬件标识转换
成目标主机与PCI设备连接的第一目标主机硬件标识,通知目标主机根据第一目标主机硬
件标识寻址,以确定第一PCI设备,根据第一目标主机分配资源发送目标指令给第一PCI设
备。
“abcdefg”)被虚拟化引擎捕获,基于虚拟化引擎根据虚拟机资源分配得知该资源是属于2
号映射设备的,该映射设备的虚拟机硬件标识是“00:a0.0”,通过资源映射表可知目标主机
端对应的IO端口范围是0x5060到0x507F。接下来,基于虚拟化引擎通过网络通知目标主机
对0x5060到0x507F这个范围的端口执行相应的写入操作(写入的数据也是“abcdefg”),实
现写操作的重定向,通过这种方式,虚拟机可以通过目标主机的PCI设备发送数据。
二资源信息;根据所述目标主机分配资源确定所述第二资源信息对应的第二目标主机硬件
标识;根据所述标识映射表确定所述第二目标主机硬件标识对应的第二虚拟机硬件标识;
根据所述资源映射表确定所述第二资源信息对应的第二虚拟机分配资源;根据所述第二虚
拟机硬件标识触发所述第二虚拟机分配资源,以使所述虚拟机上运行的驱动程序获取所述
第一PCI设备反馈的所述事件信息。
通过中断信号通知虚拟机的网卡驱动程序来读取,具体过程为,目标主机的网卡收到数据
包之后,通过中断通知目标主机,目标主机通过网络将中断信息告知虚拟化引擎,由虚拟化
引擎在虚拟PCI总线上触发相应的中断,以通知虚拟机驱动程序虚拟网卡设备收到了数据,
当虚拟机驱动程序从虚拟网卡读取数据的时候,虚拟化引擎会捕获读操作,通知目标主机
把物理网卡收到的数据传输过来,然后虚拟化引擎再把数据返回给虚拟机驱动程序。
还包括:基于所述虚拟化引擎获取所述虚拟机上运行的驱动程序发送的查看事件内容指
令,确定所述查看事件内容指令触发的第三资源信息;根据所述虚拟机分配资源确定所述
第三资源信息对应的第三虚拟机硬件标识;根据所述标识映射表确定所述第三虚拟机硬件
标识对应的第三目标主机硬件标识;根据所述资源映射表确定所述第三资源信息对应的第
三目标主机分配资源;通知所述目标主机根据所述第三目标主机硬件标识以及所述第三目
标主机分配资源读取所述查看事件内容指令对应的结果数据;接收所述目标主机反馈的所
述结果数据,并将所述结果数据反馈至所述虚拟机上运行的驱动程序。
0xFFFFFFDD的硬件中断,目标主机的操作系统收到这个信号时,通过网络通知虚拟化引擎:
目标主机PCI总线上有设备触发了0xFFFFFFDD中断信号。基于虚拟化引擎根据目标主机分
配资源确定该信号属于2号映射设备的,根据资源映射表确定该硬件中断对应的虚拟机端
中断信号为0xFFFFFFAA,在虚拟的PCI总线上触发一个信号为0xFFFFFFAA的硬件中断,以通
知运行于虚拟机上的驱动程序该设备发生了某个事件。驱动程序通过读IO端口(0x4060‑
0x407F)、MMIO(0xA25000‑0xA25FFF、0xE25000‑0xE25FFF)等资源获知事件的具体内容,这
些读取操作被虚拟化引擎捕获,基于虚拟化引擎通知目标主机读取相应的IO端口(0x5060‑
0x507F)、MMIO(0xB25000‑0xB25FFF、0xC25000‑0xC25FFF)等资源,把读取到的结果返回给
虚拟化引擎,虚拟化引擎将读取到的结果返回给虚拟机上运行的驱动程序。
拟机上运行的驱动程序发送的获取数据指令,确定所述获取数据指令触发的第四资源信
息,其中,所述虚拟机上运行的驱动程序对所述结果数据进行分析,得到分析结果,在所述
分析结果为存在待读取数据时,发送获取数据指令;根据所述虚拟机分配资源确定所述第
四资源信息对应的第四虚拟机硬件标识;根据所述标识映射表确定所述第四虚拟机硬件标
识对应的第四目标主机硬件标识;根据所述资源映射表确定所述第四资源信息对应的第四
目标主机分配资源;通知所述目标主机根据所述第四目标主机硬件标识以及所述第四目标
主机分配资源读取相应的数据;接收所述目标主机反馈的所述数据,并将所述数据反馈至
所述虚拟机上运行的驱动程序。
MMIO(0xA25000‑0xA25FFF、0xE25000‑0xE25FFF)操作)获取数据,该读取操作被虚拟机引擎
捕获,基于虚拟机引擎将该读取操作重定向为目标主机相应的读取操作(例如,目标主机读
取MMIO(0xB25000‑0xB25FFF、0xC25000‑0xC25FFF)),以获取设备收到的数据,虚拟机引擎
获取目标主机反馈的数据,将读数据返回给虚拟机上运行的驱动程序。
PCI设备进行交互;基于虚拟化引擎获取虚拟机上运行的驱动程序发送的目标指令,确定目
标指令触发的第一资源信息;根据虚拟机分配资源确定第一资源信息对应的第一虚拟机硬
件标识;根据标识映射表确定第一虚拟机硬件标识对应的第一目标主机硬件标识;根据资
源映射表确定第一资源信息对应的第一目标主机分配资源;通知目标主机根据第一目标主
机硬件标识以及第一目标主机分配资源向对应的第一PCI设备发送目标指令。通过上述方
式,虚拟机上运行的驱动程序与PCI设备交互时触发对应的资源信息,基于虚拟化引擎将资
源信息重定向为目标主机与目标主机连接的PCI设备交互时触发的主机分配资源,从而实
现将目标主机的PCI设备映射给当前主机上运行的虚拟机,方便虚拟机对目标主机的PCI设
备以及子设备进行使用,解决了当前主机上的虚拟机无法访问其他主机PCI设备的问题。
设备映射至所述虚拟机中,以使虚拟机对所述待映射设备分配虚拟机硬件标识以及虚拟机
分配资源。
配资源以及所述虚拟机分配资源构建资源映射表,以实现在虚拟机上对目标主机上连接的
PCI设备进行映射。
识以及目标主机分配资源存储至预设存储区域;在获取到虚拟机启动指令时,基于虚拟化
引擎扫描预设存储区域,确定待映射设备对应的目标主机硬件标识以及目标主机分配资
源,将待映射设备映射至虚拟机中,以使虚拟机对待映射设备分配虚拟机硬件标识以及虚
拟机分配资源;基于虚拟化引擎根据待映射设备对应的目标主机硬件标识以及虚拟机硬件
标识构建标识映射表,根据标识映射表、目标主机分配资源以及虚拟机分配资源构建资源
映射表,以实现在虚拟机上对目标主机上连接的PCI设备进行映射。通过上述方式,通过网
络在当前主机的虚拟机上对目标主机上连接的PCI设备进行映射,构建目标主机硬件标识
以及虚拟机硬件标识对应的标识映射表,构建目标主机分配资源以及虚拟机分配资源对应
的资源映射表,基于虚拟化引擎根据标识映射表和资源映射表将虚拟机对映射PCI设备的
操作转换成目标主机对物理PCI设备的操作。实现了在当前主机的虚拟机上对目标主机上
连接的PCI设备的虚拟挂接,解决了当前主机上的虚拟机无法访问其他主机PCI设备的问
题。
全部来实现本实施例方案的目的,此处不做限制。
行配置,通过所述驱动程序与配置好的PCI设备进行交互。
分配资源确定所述第一资源信息对应的第一虚拟机硬件标识,根据所述标识映射表确定所
述第一虚拟机硬件标识对应的第一目标主机硬件标识,根据所述资源映射表确定所述第一
资源信息对应的第一目标主机分配资源,通知所述目标主机根据所述第一目标主机硬件标
识以及所述第一目标主机分配资源向对应的第一PCI设备发送所述目标指令。
据所述目标主机分配资源确定所述第二资源信息对应的第二目标主机硬件标识,根据所述
标识映射表确定所述第二目标主机硬件标识对应的第二虚拟机硬件标识,根据所述资源映
射表确定所述第二资源信息对应的第二虚拟机分配资源,根据所述第二虚拟机硬件标识触
发所述第二虚拟机分配资源,以使所述虚拟机上运行的驱动程序获取所述第一PCI设备反
馈的所述事件信息。
息,根据所述虚拟机分配资源确定所述第三资源信息对应的第三虚拟机硬件标识,根据所
述标识映射表确定所述第三虚拟机硬件标识对应的第三目标主机硬件标识,根据所述资源
映射表确定所述第三资源信息对应的第三目标主机分配资源,通知所述目标主机根据所述
第三目标主机硬件标识以及所述第三目标主机分配资源读取所述查看事件内容指令对应
的结果数据,接收所述目标主机反馈的所述结果数据,并将所述结果数据反馈至所述虚拟
机上运行的驱动程序。
述虚拟机上运行的驱动程序对所述结果数据进行分析,得到分析结果,在所述分析结果为
存在待读取数据时,发送获取数据指令,根据所述虚拟机分配资源确定所述第四资源信息
对应的第四虚拟机硬件标识,根据所述标识映射表确定所述第四虚拟机硬件标识对应的第
四目标主机硬件标识,根据所述资源映射表确定所述第四资源信息对应的第四目标主机分
配资源,通知所述目标主机根据所述第四目标主机硬件标识以及所述第四目标主机分配资
源读取相应的数据,接收所述目标主机反馈的所述数据,并将所述数据反馈至所述虚拟机
上运行的驱动程序。
硬件标识以及当前主机分配资源信息,将剩余的目标主机硬件标识以及目标主机分配资源
存储至预设存储区域。
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做
出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质
(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台
终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方
法。
术领域,均同理包括在本发明的专利保护范围内。