一种虚拟机的数据处理方法、计算设备及存储介质技术

技术编号:37604610 阅读:23 留言:0更新日期:2023-05-18 11:56
本发明专利技术实施例公开一种虚拟机的数据处理方法、计算设备及存储介质,涉及计算机技术领域,能够提高物理PCI设备的物理资源的使用效率。所述方法包括:虚拟机枚举能够对所述虚拟机的数据进行预定方式处理的PCI设备;虚拟机管理器将至少一个虚拟PCI设备分配给所述虚拟机;其中,所述至少一个虚拟PCI设备由一能够对所述虚拟机的数据进行预定方式处理的物理PCI设备扩展生成;所述虚拟机将数据处理指令地址写入所述虚拟PCI设备;从所述虚拟PCI设备中读取所述数据处理指令地址,并基于所述数据处理指令地址,从内存中读取相应的数据处理指令,并基于所述数据处理指令对所述虚拟机的数据进行处理。本发明专利技术适用于对虚拟机的数据进行处理。理。理。

【技术实现步骤摘要】
一种虚拟机的数据处理方法、计算设备及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种虚拟机的数据处理方法、计算设备及存储介质。

技术介绍

[0002]在现有技术中,物理外围组件互联(Peripheral Component Interconnect,PCI)设备可以连接到主处理器(也可称为处理器核心)的总线上,向主处理器提供数据处理功能,以减轻主处理器的计算负担。
[0003]当虚拟机(Virtual Machine,VM)需要使用物理PCI设备提供的数据处理功能时,为了提高性能,可以将物理PCI设备提供给虚拟机使用,这样虚拟机可以通过嵌套页表直接访问物理PCI设备的内存空间,并直接与物理PCI设备进行信息交互。
[0004]在实现本专利技术的过程中,专利技术人发现上述将物理PCI设备提供给虚拟机使用的技术方案存在以下技术问题:一个物理PCI设备只能被一个虚拟机独占使用,当其他虚拟机同时也需要使用物理PCI设备进行数据处理时,无法利用物理PCI设备的物理资源对其他虚拟机提供相应的数据处理操作,使得物理PCI设备的物理资源的使用效率较低。

技术实现思路

[0005]有鉴于此,本专利技术实施例提供一种虚拟机的数据处理方法,能够提高物理PCI设备的物理资源的使用效率。
[0006]第一方面,本专利技术实施例提供一种虚拟机的数据处理方法,包括:虚拟机枚举能够对所述虚拟机的数据进行预定方式处理的PCI设备;虚拟机管理器将至少一个虚拟PCI设备分配给所述虚拟机;其中,所述至少一个虚拟PCI设备由一能够对所述虚拟机的数据进行预定方式处理的物理PCI设备扩展生成;所述虚拟机将数据处理指令地址写入所述虚拟PCI设备;从所述虚拟PCI设备中读取所述数据处理指令地址,并基于所述数据处理指令地址,从内存中读取相应的数据处理指令,并基于所述数据处理指令对所述虚拟机的数据进行处理。
[0007]可选的,所述虚拟机管理器将至少一个虚拟PCI设备分配给所述虚拟机之前,所述方法包括:虚拟机管理器对所述物理PCI设备的第一寄存器进行配置,以写入待创建的虚拟PCI设备的内存空间地址范围;所述物理PCI设备扩展生成至少一个虚拟PCI设备,并建立生成的至少一个虚拟PCI设备与各自的内存空间地址范围的对应关系。
[0008]可选的,所述物理PCI设备扩展生成至少一个虚拟PCI设备,包括:所述物理PCI设备基于SR

IOV协议,虚拟出至少一个虚拟PCI设备接口,并为所述至少一个虚拟PCI设备接口分配对应的物理资源。
[0009]可选的,所述虚拟机将数据处理指令地址写入所述虚拟PCI设备,包括:所述虚拟机将数据处理指令地址写入所述虚拟PCI设备的第二寄存器。
[0010]可选的,在所述虚拟机将数据处理指令地址写入所述虚拟PCI设备的第二寄存器
之后,所述方法还包括:所述虚拟机在所述虚拟PCI设备的第三寄存器中设置第一状态标志,以通知所述物理PCI设备中的数据处理管理器从内存中读取相应的数据处理指令,并基于所述数据处理指令对所述虚拟机的数据进行处理。
[0011]可选的,所述虚拟机将数据处理指令地址写入所述虚拟PCI设备的第二寄存器,包括:所述虚拟机向第一内存管理器发送数据处理指令地址写入请求;所述写入请求中含有第二寄存器的虚拟地址;所述第一内存管理器,基于嵌套页表及所述写入请求中的第二寄存器的虚拟地址,确定所述第二寄存器的物理地址,并根据所述物理地址将所述数据处理指令地址写入所述第二寄存器;所述嵌套页表中保存有所述第二寄存器的虚拟地址与物理地址的映射关系。
[0012]可选的,所述从虚拟PCI设备中读取所述数据处理指令地址,并基于所述数据处理指令地址,从内存中读取相应的数据处理指令,包括:数据处理管理器从所述虚拟PCI设备中读取所述数据处理指令地址,并基于所述数据处理指令地址,向第二内存管理器发送地址转换请求;所述第二内存管理器基于所述地址转换请求中的所述虚拟PCI设备的路由标识,查找到与所述虚拟PCI设备的路由标识相对应的IO页表,并基于所述IO页表,对所述数据处理指令地址进行由虚拟地址到物理地址的地址转换;
[0013]所述数据处理管理器,基于通过所述地址转换得到的数据处理指令的物理地址,从内存中读取相应的数据处理指令。
[0014]可选的,所述基于所述数据处理指令对所述虚拟机的数据进行处理,包括:基于所述数据处理指令,从源内存块读取待处理数据,对所述待处理数据进行加密或解密处理,并将加密或解密后的数据写入目的内存块;或者,基于所述数据处理指令,将数据从源内存块读出后,直接写入目的内存块。
[0015]可选的,所述基于所述数据处理指令,从源内存块读取待处理数据,对所述待处理数据进行加密或解密处理,并将加密或解密后的数据写入目的内存块,包括:基于所述数据处理指令,从源内存块读取待处理数据;获取所述数据处理指令所对应的虚拟PCI设备标识,基于所述虚拟PCI设备标识,获取与所述PCI设备标识相对应的第一密钥;基于与所述PCI设备标识相对应的第一密钥,对所述待处理数据进行加密或解密处理,并将加密或解密后的数据写入目的内存块。
[0016]可选的,在基于所述数据处理指令对所述虚拟机的数据进行处理之前,所述方法还包括:获取所述数据处理指令所对应的虚拟PCI设备标识,基于所述虚拟PCI设备标识,获取与所述PCI设备标识相对应的第二密钥;基于所述第二密钥对所述数据处理指令进行解密,得到解密后的数据处理指令。
[0017]第二方面,本专利技术实施例提供一种计算设备,包括:处理器核心、内存和物理PCI设备;所述内存与所述处理器核心相连,所述物理PCI设备与所述处理器核心和所述内存分别相连;其中,所述物理PCI设备,用于扩展生成至少一个虚拟PCI设备;
[0018]所述处理器核心,用于运行虚拟机管理器和虚拟机,并执行如下步骤:虚拟机枚举能够对所述虚拟机的数据进行预定方式处理的PCI设备;虚拟机管理器将至少一个虚拟PCI设备分配给所述虚拟机;所述虚拟机将数据处理指令地址写入所述虚拟PCI设备;
[0019]所述物理PCI设备中的数据处理管理器,从所述虚拟PCI设备中读取所述数据处理指令地址,基于所述数据处理指令地址,从所述内存中读取相应的数据处理指令,基于所述
数据处理指令对所述虚拟机的数据进行处理,并将处理结果返回给所述虚拟机。
[0020]可选的,所述虚拟机管理器将至少一个虚拟PCI设备分配给所述虚拟机之前,所述虚拟机管理器对所述物理PCI设备的第一寄存器进行配置,以写入待创建的虚拟PCI设备的内存空间地址范围;所述物理PCI设备扩展生成至少一个虚拟PCI设备,并建立生成的至少一个虚拟PCI设备与各自的内存空间地址范围的对应关系。
[0021]可选的,所述物理PCI设备扩展生成至少一个虚拟PCI设备,包括:所述物理PCI设备基于SR

IOV协议,虚拟出至少一个虚拟PCI设备接口,并为所述至少一个虚拟PCI设本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟机的数据处理方法,其特征在于,包括:虚拟机枚举能够对所述虚拟机的数据进行预定方式处理的PCI设备;虚拟机管理器将至少一个虚拟PCI设备分配给所述虚拟机;其中,所述至少一个虚拟PCI设备由一能够对所述虚拟机的数据进行预定方式处理的物理PCI设备扩展生成;所述虚拟机将数据处理指令地址写入所述虚拟PCI设备;从所述虚拟PCI设备中读取所述数据处理指令地址,并基于所述数据处理指令地址,从内存中读取相应的数据处理指令,并基于所述数据处理指令对所述虚拟机的数据进行处理。2.根据权利要求1所述的数据处理方法,其特征在于,所述虚拟机管理器将至少一个虚拟PCI设备分配给所述虚拟机之前,所述方法包括:虚拟机管理器对所述物理PCI设备的第一寄存器进行配置,以写入待创建的虚拟PCI设备的内存空间地址范围;所述物理PCI设备扩展生成至少一个虚拟PCI设备,并建立生成的至少一个虚拟PCI设备与各自的内存空间地址范围的对应关系。3.根据权利要求2所述的数据处理方法,其特征在于,所述物理PCI设备扩展生成至少一个虚拟PCI设备,包括:所述物理PCI设备基于SR

IOV协议,虚拟出至少一个虚拟PCI设备接口,并为所述至少一个虚拟PCI设备接口分配对应的物理资源。4.根据权利要求1所述的数据处理方法,其特征在于,所述虚拟机将数据处理指令地址写入所述虚拟PCI设备,包括:所述虚拟机将数据处理指令地址写入所述虚拟PCI设备的第二寄存器。5.根据权利要求4所述的数据处理方法,其特征在于,在所述虚拟机将数据处理指令地址写入所述虚拟PCI设备的第二寄存器之后,所述方法还包括:所述虚拟机在所述虚拟PCI设备的第三寄存器中设置第一状态标志,以通知所述物理PCI设备中的数据处理管理器从内存中读取相应的数据处理指令,并基于所述数据处理指令对所述虚拟机的数据进行处理。6.根据权利要求4所述的数据处理方法,其特征在于,所述虚拟机将数据处理指令地址写入所述虚拟PCI设备的第二寄存器,包括:所述虚拟机向第一内存管理器发送数据处理指令地址写入请求;所述写入请求中含有第二寄存器的虚拟地址;所述第一内存管理器,基于嵌套页表及所述写入请求中的第二寄存器的虚拟地址,确定所述第二寄存器的物理地址,并根据所述物理地址将所述数据处理指令地址写入所述第二寄存器;所述嵌套页表中保存有所述第二寄存器的虚拟地址与物理地址的映射关系。7.根据权利要求1所述的数据处理方法,其特征在于,所述从虚拟PCI设备中读取所述数据处理指令地址,并基于所述数据处理指令地址,从内存中读取相应的数据处理指令,包括:数据处理管理器从所述虚拟PCI设备中读取所述数据处理指令地址,并基于所述数据处理指令地址,向第二内存管理器发送地址转换请求;所述第二内存管理器基于所述地址转换请求中的所述虚拟PCI设备的路由标识,查找
到与所述虚拟PCI设备的路由标识相对应的IO页表,并基于所述IO页表,对所述数据处理指令地址进行由虚拟地址到物理地址的地址转换;所述数据处理管理器,基于通过所述地址转换得到的数据处理指令的物理地址,从内存中读取相应的数据处理指令。8.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述数据处理指令对所述虚拟机的数据进行处理,包括:基于所述数据处理指令,从源内存块读取待处理数据,对所述待处理数据进行加密或解密处理,并将加密或解密后的数据写入目的内存块;或者,基于所述数据处理指令,将数据从源内存块读出后,直接写入目的内存块。9.根据权利要求8所述的数据处理方法,其特征在于,所述基于所述数据处理指令,从源内存块读取待处理数据,对所述待处理数据进行加密或解密处理,并将加密或解密后的数据写入目的内存块,包括:基于所述数据处理指令,从源内存块读取待处理数据;获取所述数据处理指令所对应的虚拟PCI设备标识,基于所述虚拟PCI设备标识,获取与所述PCI设备标识相对应的第一密钥;基于与所述PCI设备标识相对应的第一密钥,对所述待处理数据进行加密或解密处理,并将加密或解密后的数据写入目的内存块。10.根据权利要求8所述的数据处理方法,其特征在于,在基于所述数据处理指令对所述虚拟机的数据进行处理之前,所述方法还包括:获取所述数据处理指令所对应的虚拟PCI设备标识,基于所述虚拟PCI设备标识,获取与所述PCI设备标识相对应的第二密钥;基于所述第二密钥对所述数据处理指令进行解密,得到解密后的数据处理指令。11.一种计算设备,其特征在于,包括:处理器核心、内存和物理PCI设备;所述内存与所述处理器核心相连,所述物理PCI设备与所述处理器核心和所述内存分别相连;其中,所述物理PCI设备,用于扩展生成至少一个虚拟PCI设备;所述处理器核心,用于运行虚拟机管理器和虚拟机,并执行如下步骤:虚拟机枚举能够对所述虚拟机的数据进行预定方式处理的PCI设备;虚拟机管理器将至少一个虚拟PCI设备分配给所述虚拟机;所述虚拟机将数据处理指令地址写入所述虚拟PCI设备;所述物理PCI设备中...

【专利技术属性】
技术研发人员:刘亚飞应志伟刘子行
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1