基于VMDq技术的IO虚拟化的实现系统及方法技术方案

技术编号:34369882 阅读:48 留言:0更新日期:2022-07-31 10:37
本发明专利技术提供了一种基于VMDq技术的IO虚拟化的实现系统及方法,包括如下模块:模块M1:采用VMDq技术对硬件进行改进;模块M2:通过改进的硬件进行IO虚拟化。本发明专利技术基于硬件辅助I/O虚拟化模型,并采用VMDq技术对传统以太网控制器结构进行改进与创新,使其支持虚拟化功能,且实现了以太网控制器内部PCIe每个通道(lane)支持八个虚拟机拥有独享的网络数据收发通路,可以实现一台服务器上运行几十个虚拟机的应用。机的应用。机的应用。

Implementation system and method of IO virtualization based on VMDq Technology

【技术实现步骤摘要】
Machine,中文译文为开源虚拟机。
[0007]基于硬件辅助I/O虚拟化是指通过拥有多个功能接口的特殊硬件辅助实现I/O虚拟化,以此减少纯软件虚拟化所带来的高额花销。通过将每个功能接口分配给一个虚拟机,使得每个虚拟机独享一份虚拟硬件资源,实现虚拟机与硬件设备直通,极大程度地提升了虚拟I/O性能。
[0008]21世纪以来,尤其是最近几年,互联网公司的业务量呈爆发式增长,为了满足业务需求尤其是高清视频和大量用户数据处理的需求,提高公司自身服务质量,企业的数据中心需要在升级硬件时在满足需求之外,还需要尽量的降低成本。I/O虚拟化技术就为上述问题提供了一种折中的方案。
[0009]随着云计算技术的发展,越来越多公司抛弃直接在服务器上面跑应用程序,改为采用服务器里运行多个虚拟机,虚拟机里面跑应用程序的方式。通常情况下,一个服务器上面跑几十个虚拟机,对计算能力和网络性能的需求是很惊人的,前者促生了多核技术的发展,后者如果简单的通过几十个以太网控制器来解决,首先不考虑主板上是否有这么多的接口,光成本上就是难以让人接受的。或者如果给虚拟机分配的接口都是通过VMM中软件交换机的虚拟端口,那么服务器维护虚拟端口和转发就要占用大量的计算资源。
[0010]公开号为CN108920252A的中国专利技术专利文献公开了一种基于多队列千兆以太网控制器的IO虚拟化装置,包括接收引擎模块,完成数据帧从以太网控制器到主机内存的传输;接收BD环模块,存放从主机内存获取的接收BD信息,包括若干个接收BD环,其中一个接收BD环与主机对应,其他的接收BD环与主机上的虚拟机唯一对应;发送引擎模块,根据目的MAC地址,将主机内存中待发送的数据帧发送到以太网控制器;发送BD环模块,存放从主机内存获取的发送BD信息,包括若干个发送BD环,其中一个发送BD环与主机对应,其他的发送BD环与主机上的虚拟机唯一对应。
[0011]针对上述中的相关技术,专利技术人认为I/O设备完全模拟虚拟化,具有共享性好和直接使用原有物理驱动等优点,但是由于全部通过软件模拟来完成虚拟I/O传输等工作,导致其存在I/O效率低下等问题;半虚拟化模型,相比设备完全虚拟化的虚拟I/O性能有显著提高,但是要对每个设备都要编写相应的前后端驱动,而且要修改操作系统,对于Windows之类非开源系统,开发和日常维护的花销较为大;基于硬件辅助I/O虚拟化,通过特殊硬件提供的多个功能接口与虚拟机互连,实现虚拟机与硬件设备直通,因此其虚拟I/O效率无限接近物理设备原始性能,无疑是最具有发展潜力的I/O虚拟化技术。

技术实现思路

[0012]针对现有技术中的缺陷,本专利技术的目的是提供一种基于VMDq技术的IO虚拟化的实现系统及方法
[0013]根据本专利技术提供的一种基于VMDq技术的IO虚拟化的实现系统,包括如下模块:
[0014]模块M1:采用VMDq技术对硬件进行改进;
[0015]模块M2:通过改进的硬件进行IO虚拟化。
[0016]优选的,所述模块M1包括如下模块:
[0017]GMAC模块:接收帧数据并将帧数据送入虚拟化模块;
[0018]虚拟化模块:接收帧数据,帧数据经过处理产生队列号,根据队列号将处理后的帧
数据送入接收缓存模块;
[0019]接收缓存模块:接收处理后的帧数据;
[0020]DMA模块:将接收缓存模块中的帧数据搬至主机内存。
[0021]优选的,所述模块M1还包括接收控制模块和PCIe接口模块;
[0022]接收缓存模块:接收处理后的帧数据,并产生队列非空信号,将队列非空信号送给接收控制模块;
[0023]接收控制模块:接收队列非空信号;将虚拟化模块中的片内描述符读至接收控制模块中的接收使用描述符队列,并根据读来的片内描述符信息,将DMA配置信息送至PCIe接口模块;
[0024]PCIe接口模块:根据送至的DMA配置信息正确配置DMA模块。
[0025]优选的,所述虚拟化模块包括如下模块:
[0026]预处理模块:对帧数据信息进行预处理获得初始分类依据;
[0027]虚拟信息处理模块:根据初始分类依据根据优先级决策出最终分类号;
[0028]分页式内存管理单元:根据最终分类号对帧数据进行分类存储。
[0029]优选的,所述预处理模块包括如下模块:
[0030]解析模块:解析帧数据的信息并将与寄存器匹配的信息作为初始分类依据;
[0031]过滤模块:对解析后的帧数据进行过滤处理。
[0032]根据本专利技术提供的一种基于VMDq技术的IO虚拟化的实现方法,包括如下步骤:
[0033]步骤S1:采用VMDq技术对硬件进行改进;
[0034]步骤S2:通过改进的硬件进行IO虚拟化。
[0035]优选的,所述步骤S1包括如下步骤:
[0036]GMAC步骤:接收并发送帧数据;
[0037]虚拟化步骤:接收帧数据,帧数据经过处理产生队列号,根据队列号发送处理后的帧数据;
[0038]接收缓存步骤:接收处理后的帧数据;
[0039]DMA步骤:将接收缓存步骤中所述帧数据搬至主机内存。
[0040]优选的,所述步骤S1还包括接收控制步骤和PCIe接口步骤;
[0041]接收缓存步骤:接收处理后的帧数据,并产生队列非空信号,将发送队列非空信号;
[0042]接收控制步骤:接收队列非空信号;将片内描述符读至接收使用描述符队列,并根据读来的片内描述符信息,发送DMA配置信息;
[0043]PCIe接口步骤:根据DMA配置信息进行配置。
[0044]优选的,所述虚拟化步骤包括如下步骤:
[0045]预处理步骤:对帧数据信息进行预处理获得初始分类依据;
[0046]虚拟信息处理步骤:根据初始分类依据根据优先级决策出最终分类号;
[0047]分页式内存管理单元:根据最终分类号对帧数据进行分类存储。
[0048]优选的,所述预处理步骤包括如下步骤:
[0049]解析步骤:解析帧数据的信息并将与寄存器匹配的信息作为初始分类依据;
[0050]过滤步骤:对解析后的帧数据进行过滤处理。
[0051]与现有技术相比,本专利技术具有如下的有益效果:
[0052]1、本专利技术基于硬件辅助I/O虚拟化模型,并采用VMDq技术对传统以太网控制器结构进行改进与创新,使其支持虚拟化功能;
[0053]2、本专利技术通过对数据帧进行预处理,根据优先级不同获得数据帧分类依据(VMDq_Pool);采用两级链表和分页式存储的方式改进内存管理,实现数据帧在片内分类存储的目的,最终将数据帧通过DMA写入到DMA重映射后的虚拟机内存地址当中,实现了以太网控制器内部PCIe每个通道(lane)支持八个虚拟机拥有独享的网络数据收发通路,可以实现一台服务器上运行几十个虚拟机的应用;
[0054]3、本专利技术减少了在使用虚拟机时,VMM在I/O传输中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于VMDq技术的IO虚拟化的实现系统,其特征在于,包括如下模块:模块M1:采用VMDq技术对硬件进行改进;模块M2:通过改进的硬件进行IO虚拟化。2.根据权利要求1所述的基于VMDq技术的IO虚拟化的实现系统,其特征在于,所述模块M1包括如下模块:GMAC模块:接收帧数据并将帧数据送入虚拟化模块;虚拟化模块:接收帧数据,帧数据经过处理产生队列号,根据队列号将处理后的帧数据送入接收缓存模块;接收缓存模块:接收处理后的帧数据;DMA模块:将接收缓存模块中的帧数据搬至主机内存。3.根据权利要求1所述的基于VMDq技术的IO虚拟化的实现系统,其特征在于,所述模块M1还包括接收控制模块和PCIe接口模块;接收缓存模块:接收处理后的帧数据,并产生队列非空信号,将队列非空信号送给接收控制模块;接收控制模块:接收队列非空信号;将虚拟化模块中的片内描述符读至接收控制模块中的接收使用描述符队列,并根据读来的片内描述符信息,将DMA配置信息送至PCIe接口模块;PCIe接口模块:根据送至的DMA配置信息正确配置DMA模块。4.根据权利要求1所述的基于VMDq技术的IO虚拟化的实现系统,其特征在于,所述虚拟化模块包括如下模块:预处理模块:对帧数据信息进行预处理获得初始分类依据;虚拟信息处理模块:根据初始分类依据根据优先级决策出最终分类号;分页式内存管理单元:根据最终分类号对帧数据进行分类存储。5.根据权利要求4所述的基于VMDq技术的IO虚拟化的实现方法,其特征在于,所述预处理模块包括如下模块:解析模块:解析帧数据的信息并将与寄存器匹配的信息作为初始分类依据;过滤模块:对解析后的帧数据进行过滤处理。6.一种基...

【专利技术属性】
技术研发人员:戴天喆王亚宁周明炜赵永建刘宇邹勤丽
申请(专利权)人:华东计算技术研究所中国电子科技集团公司第三十二研究所
类型:发明
国别省市:

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

1