CN103036759B - 一种x86虚拟化条件下降低网络i/o操作cpu开销的系统 - Google Patents

一种x86虚拟化条件下降低网络i/o操作cpu开销的系统 Download PDF

Info

Publication number
CN103036759B
CN103036759B CN201210526670.8A CN201210526670A CN103036759B CN 103036759 B CN103036759 B CN 103036759B CN 201210526670 A CN201210526670 A CN 201210526670A CN 103036759 B CN103036759 B CN 103036759B
Authority
CN
China
Prior art keywords
data
insertion point
network
child node
port
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.)
Expired - Fee Related
Application number
CN201210526670.8A
Other languages
English (en)
Other versions
CN103036759A (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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201210526670.8A priority Critical patent/CN103036759B/zh
Publication of CN103036759A publication Critical patent/CN103036759A/zh
Application granted granted Critical
Publication of CN103036759B publication Critical patent/CN103036759B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种X86虚拟化条件下降低网络I/O操作CPU开销的系统,包括:数据缓存模块、网络数据请求截留模块和缓存数据交换通信模块;应用调用数据交换通信模块接口,将待缓存数据及其编号和特征值传输到数据缓存模块;当网络数据请求截留模块接收到来自网络的数据包时,首先提取数据包的特征值,并以特征值为索引在数据缓存模块中查找是否有相应匹配,若存在响应匹配,则将数据返回,并丢弃该数据包;若不存在相应匹配则将数据包交给上层协议处理。本发明可以有效的降低I/O虚拟化所占用的CPU开销,提高I/O性能。

Description

一种X86虚拟化条件下降低网络I/O操作CPU开销的系统
技术领域
本发明涉及数据缓存技术和X86平台虚拟化中的I/O虚拟化技术,特别是一种X86虚拟化条件下降低网络I/O操作CPU开销的系统,属于计算机技术领域。
背景技术
虚拟化技术已有50多年的历史,它几乎与操作系统同时产生,并伴随着计算机硬件、操作系统和软件的发展而逐步发展。虚拟化技术最早被用于IBM大型机上,以人们熟知的分时操作系统的形式出现,并且在之后的很长一段时间内一直存在于大型机领域。1974年,波佩克和戈登堡合写论文《Formal Requirements for Virtualizable Third Geneation Architectures》,提出了著名的波佩克与戈德堡虚拟化需求,用于验证某一计算机体系结构可否被有效虚拟化。后来,随着80x86芯片的不断成熟和在商业上取得的巨大成功,x86架构的计算机占据越来越重要的地位。由于虚拟化具有无可比拟的优势,研究者试图将虚拟化技术引入到X86架构中,但是x86架构在设计初期并没有考虑虚拟化的问题,因此在x86虚拟化过程中遇到了巨大的困难。
为了解决这些困难,实现在x86平台上的虚拟化,产业界、学术界的研究人员分别提出了全虚拟化、半虚拟化、硬件辅助虚拟化的解决方案,推出了VMWare、Xen、KVM、Hyper-V等虚拟化软件,AMD和Intel公司也分别推出了支持硬件辅助虚拟化的CPU产品。
到目前为止,x86架构下的虚拟化模型主要分为4种,如图1所示,独立监控器模式、宿主模式、混合Ⅰ型和混合Ⅱ性。
独立监控器模式:虚拟机管理器程序(VMM)直接在硬件上运行,它的指令具有最高优先级;操作系统运行在较低特权的模式,保证VMM对硬件具有完全的控制。VMM拥有硬件驱动程序,所有硬件受虚拟机管理器控制。
宿主模式:宿主操作系统运行在硬件上,并且对硬件具有完全的控制权限。VMM作为用户态进程运行,这样虚拟机管理器可以直接调用操作系统的驱动和服务来支持对I/O等设备的访问。
混合Ⅰ型:这种模式是独立监控器模式和宿主模式的一种混合形式,VMM直接运行在硬件上,具有最高管理权限;一个特权操作系统管理所有的本地设备驱动,负责处理整个系统的硬件访问请求。
混合Ⅱ型:这种模式是独立监控器模式和宿主模式的另外一种混合形式,VMM作为操作系统的一个模块运行在操作系统的内核态,在操作系统的支持下它可以虚拟机分配CPU、内存等硬件资源。跟宿主模式不同的是,这种模式下,虚拟机运行在介于内核态和用户态之间的一个新的特权模态,称为来宾态。
所有这些模式都有一个共同的特点:虚拟机不能直接访问I/O资源,都需要经过虚拟机VMM的调度来进行硬件访问,这种方式被称为I/O虚拟化。长期以来,对于I/O虚拟化的研究主要集中在效率和公平性两个方面。随着半虚拟化技术的应用,I/O虚拟化的效率有了非常大的提升,Xen、VMware等相继使用半虚拟化技术提升I/O效率;针对公平性问题的研究成果也层数不穷。而I/O虚拟化的效率和公平性都伴随着巨大的CPU的额外开销,但是很少有研究致力于减少这种开销,以提高系统的整体性能。
图2表示的是Xen的半虚拟化网络I/O解决方案,在xen中通常用“域”来表示一个虚拟机。图中Dom0是一个特权域,安装有原生硬件驱动和后端设备驱动。在VMM的调度下,Dom0通过后端驱动与DomU进行交互,并将DomU的网络数据包通过原生设备驱动发送到物理网卡进行传输。DomU中的前端设备驱动在Xen的事件通道和I/O环机制的保障下,与Dom0进行数据交换。图3所示为domU网络数据发送示意图,其中步骤1-8是Xen环境中I/O虚拟化中的额外开销,对系统整体性能产生非常大的影响。实验数据指出,虚拟机中部署Web服务器等I/O密集型应用时,其I/O的额外开销可以高达45%~60%。
发明内容
本发明技术解决问题:针对I/O虚拟化中的CPU开销过大的问题,提供一种X86虚拟化条件下降低网络I/O操作占用CPU开销的方法,可以有效的降低I/O虚拟化所占用的CPU开销,提高I/O性能。
本发明技术解决方案:X86虚拟化条件下降低网络I/O操作CPU开销的系统,包括:位于VMM或Dom0的数据缓存模块,网络数据请求截留模块和缓存数据交换通信模块。如图6、7、8所示。
数据缓存模块:
在VMM或Dom0内存中建立基于树的三级索引结构网络数据包缓存,其目的是将虚拟机中的应用数据缓存到VMM或Dom0中,并可以通过索引进行快速查找和定位。所缓存的数据全部为虚拟机中需要通过网络进行传输的数据,尤其以静态数据为佳,为保证效率,缓存数据全部存放在内存中。VMM对物理机的具有分配和管理的权限,因此,必要的时候可以让渡部分虚拟机内存供给缓存使用。网络数据包缓存位于VMM或Dom0中,以内核模块或系统服务的形式存在,可以手动进行加载或停止使用。
为缓存数据建立三级的索引结构。一个数据包发送到目的应用需要有3个重要的标识:MAC地址、IP地址、端口号。数据包在发送到虚拟机之前,其MAC地址和IP地址是一一对应的,用于标识一台虚拟机,本发明将二者同时列为第一级索引目录;端口号是虚拟机内部逻辑资源,与虚拟机中应用相对应,因此本发明根据端口号建立第二级索引目录;第三级索引由具体的缓存数据特征(如URI)进行标识,直接指向缓存是数据。这种三级的索引结构可以方便快速的查找数据,又能在逻辑上实现清晰的数据隔离。缓存索引结构如图7所示。
缓存的数据需满足以下条件:(1)数据量较小且经常被请求;(2)数据内容相对固定。
缓存索引树的根节点为缓存索引的入口,一级子节点为缓存数据的第一级索引由MAC地址+IP地址标识,二级子节点为缓存数据的第二级索引,由端口号标识,三级子节点为缓存数据的第三级索引由缓存数据特征标识,树的叶子节点为缓存数据及其元数据信息。缓存模块提供数据插入、修改、删除、查询和元数据查询等操作。
网络数据请求截留模块:
在介绍该模块之前,先定义两个概念。
(1)特征值.指来自网络的数据包请求的目的地址、端口号PORT和请求数据的URI,用四元组F<MAC,IP,PORT,URI>表示,其中MAC地址在数据包的以太网数据包报头中标识,IP地址在网络层协议(IP协议)报头中标识,端口号在传输层协议(TCP协议)报头中标识,URI在应用层协议(HTTP协议)报头中表示。
(2)索引链.由指向缓存数据的索引组成的链,记做L,用<MAC+IP,PORT,URI>标记,可以由F经过简单计算得到。(*L)表示索引链L指向的数据块。
(3)以Linux内核为基础的虚拟机监控器中存在一种称为Netfilter的机制,可以对网络数据包进行拦截和处理,Netfilter的架构就是在整个网络流程的若干位置放置了一些监测点(HOOK),而在每个检测点上登记了一些处理函数进行处理(如包过滤,NAT等,甚至可以是用户自定义的功能)。考虑到Netfilter具有高效、便捷的使用特点,本发明在现有Netfilter机制的基础上进行扩展,在物理网卡和VNET之间添加一个新的监测点函数调用,使其满足需求。
如图8所示,当一个数据包到达时,从该监测点中读取该数据包,并提取该数据包的特征值F,计算索引链L,如果*L存在,说明该数据包已经被缓存,则取出该缓存数据进行返回并丢弃该数据包;如果*L不存在,则不作任何处理,将数据包交给上层协议继续处理,数据包最终会被传递到目的虚拟机。
缓存数据交换通信模块:
在虚拟机和VMM或Dom0之间建立一种通信通道,用于虚拟机应用和缓存之间进行通信。虚拟机应用可以通过通道将数据放置到缓存中,并且通过通道对缓存数据进行插入、删除、修改、查询缓存数据、查询数据元数据等操作。通道对虚拟机中应用提供应用程序编程接口(API)以方便程序进行调用。其中主要的编程接口包括:
Put(id,data,feature)
用于将应用数据插入到缓存中,其中id为数据编号,data为数据内容,feature为数据的特征值。
Delete(id)
删除放入缓存中的数据,包括其特征值。
Modify(id,data,feature)
用于修改放入缓存中的数据,其中id为数据编号,data为数据内容,feature为数据的特征值。
Query(id)
查询缓存中的数据。
QueryMetadata(id)
查询缓存中的数据的元数据信息。
本发明的优点和积极效果如下:
(1)本发明提供了一种虚拟机条件下加速网络资源访问的途径,通过将数据缓存至VMM或Dom0层,数据可以快速通过网络进行发送。
(2)本发明有效降低了网络密集型应用CPU额外开销。由于大量频繁访问的数据都缓存在VMM或Dom0层,这里可以避免虚拟机到虚拟机监控器之间大量的数据交换,因此可以有效的降低数据内部传输的开销,提升相关应用和该VMM上运行的其他虚拟机应用性能。
附图说明
图1为x86架构虚拟化模型;
图2为Xen的网络I/O示意图;
图3为数据发送示意图;
图4传统虚拟机网络架构;
图5为本发明的网络架构图;
图6为本发明系统的体系结构图;
图7为本发明中缓存索引结构;
图8为发明中的网络数据请求截留;
图9为本发明中网络结构及Netfilter挂载点示意图。
具体实施方式
图4所示为传统虚拟机网络架构,来自网络的请求数据包首先到达VMM或Dom0,然后通过vNet发送到响应虚拟机中,交由虚拟机及其应用对数据包进行处理;处理结束后,响应数据包通过vNet发送到VMM或Dom0,进而发送到网络。
如图5、6所示,本发明包括数据缓存模块,网络数据请求截留模块和缓存数据交换通信模块,应用调用数据交换通信模块接口,将待缓存数据及其编号和特征值传输到数据缓存模块。当网络数据请求截留模块接收到来自网络的数据包时,首先提取数据包的特征值,并以特征值为索引在数据缓存模块中查找是否有相应匹配,若存在响应匹配,则将数据返回,并丢弃该数据包;若不存在相应匹配则将数据包交给上层协议处理。
下面将介绍各模块的具体实现过程:
1.数据缓存模块
(1)建立数据结构
在VMM或Dom0中建立一种支持索引的树形结构,根据索引链(MAC地址+IP地址、端口号和URI)建立3层索引结构,树的叶子节点为存储数据。存储数据包括元数据和有效数据两部分组成。元数据是一个大小固定的数据块,其中内容包括存储数据的id、存储数据的大小、数据访问次数、最新访问时间等;有效数据为应用缓存数据,即需要通过网络进行传递的数据。如图7所示。
(2)实现插入缓存数据操作
(2.1)根据缓存数据的特征值F<MAC,IP,PORT,URI>,计算索引链L<MAC+IP,PORT,URI>;
(2.2)从根节点出发,根据索引链L的MAC+IP查找第一级子节点,若未发现匹配,则根据MAC+IP建立新的子节点,并以此为插入点A;若发现匹配,则以匹配到的子节点为插入点A;
(2.3)从插入点A出发,根据索引链L的PORT查找二级子节点,若未发现匹配,则根据PORT建立新的子节点,并以此为插入点B;若发现匹配,则以匹配到的子节点为插入点B;
(2.4)从插入点B出发,根据索引链L的URI查找三级子节点,若未发现匹配,则根据URI建立新的子节点,并以此为插入点C;若发现匹配,则以匹配到的子节点为插入点C;
(2.5)在插入点C下建立子节点,并将数据及元数据拷贝至该子节点。
(3)实现删除缓存数据操作
(3.1)根据缓存数据的特征值F<MAC,IP,PORT,URI>,计算索引链L<MAC+IP,PORT,URI>;
(3.2)从根节点出发,根据索引链L的MAC+IP查找第一级子节点,若未发现匹配,则返回;若发现匹配,则以匹配到的子节点为插入点A;
(3.3)从插入点A出发,根据L的PORT查找二级子节点,若未发现匹配,则返回;若发现匹配,则以匹配到的子节点为插入点B;
(3.4)从插入点B出发,根据L的URI查找三级子节点,若未发现匹配,则返回;若发现匹配,则以匹配到的子节点为插入点C;
(3.5)删除插入点C,插入点C下的数据。若插入点B为空,则删除插入点B;若插入点A为空,则删除插入点A。
(4)实现修改缓存数据操作
(4.1)根据缓存数据的特征值F<MAC,IP,PORT,URI>,计算索引链L<MAC+IP,PORT,URI>;
(4.2)从根节点出发,根据索引链L的MAC+IP查找第一级子节点,并以此为插入点A;
(4.3)从插入点A出发,根据索引链L的PORT查找二级子节点,并以此为插入点B;
(4.4)从插入点B出发,根据索引链L的URI查找三级子节点,并以此为插入点C;
(4.5)删除插入点C下的子节点,并建立新的子节点D,将数据及元数据拷贝至子节点D。
(5)实现查询缓存数据操作
(5.1)根据缓存数据的特征值F<MAC,IP,PORT,URI>,计算索引链L<MAC+IP,PORT,URI>;
(5.2)从根节点出发,根据索引链L的MAC+IP查找第一级子节点,并以此为插入点A;
(5.3)从插入点A出发,根据索引链L的PORT查找二级子节点,并以此为插入点B;
(5.4)从插入点B出发,根据索引链L的URI查找三级子节点,并以此为插入点C;
(5.5)返回查询点C下的数据信息。
(6)实现查询缓存元数据操作
(6.1)根据缓存数据的特征值F<MAC,IP,PORT,URI>,计算索引链L<MAC+IP,PORT,URI>;
(6.2)从根节点出发,根据索引链L的MAC+IP查找第一级子节点,并以此为插入点A;
(6.3)从插入点A出发,根据索引链L的PORT查找二级子节点,并以此为插入点B;
(6.4)从插入点B出发,根据索引链L的URI查找三级子节点,并以此为插入点C;
(6.5)返回插入点C下的元数据信息。
2.数据包请求拦截模块
(1)数据包请求拦截
在物理网卡和VNET之间添加了一个新的Netfilter挂钩函数调用,并将其标记为NF_INET_PRE_VSWICH,如图9中所示。通过对这个挂钩函数的调用就可以拦截到所以经过VMM(Dom0)的网络数据包。
(2)数据包特征值提取与匹配
分别从以太网数据包、网络层数据包(以IP为例)、传输层数据包(以TCP为例)和应用层数据包(以HTTP为例)四种数据包报头中提取数据包的特征值F<MAC,IP,PORT,URI>,根据F计算索引链L<MAC+IP,PORT,URI>。下面分别是这四种不同数据包的报头格式。
以太网数据包报头
IP数据报头
TCP数据报头
HTTP数据包请求行格式
例如:GET/index.html HTTP/1.1
则特征值F=(ethdr->destination_mac,iphdr->destination_ip,tcphdr->destination_port,httphdr->uri);索引链L=(ethdr->destination_mac+iphdr->destination_ip,tcphdr->destination_port,httphdr->uri);
根据索引链L在缓存中查找响应数据,若返回结果不为空,则表明发现特征值匹配;反之,则未匹配。
(3)丢弃数据请求包
在Netfiltet机制中,可以通过在hook的调用函数中返回NF_DROP的方式丢弃数据包,但非常遗憾的是新添加的这个挂钩函数并不能直接使用hook函数返回值中的NF_DROP,原因是linux内核的SMP机制导致其他进程可能正在对这个skb数据包进行操作,使用NF_DROP会导致系统崩溃。为了防止对Linux内核处理机制产生影响,并没有采取传统的同步锁机制来解决这个问题,而是充分利用了okfn函数和Linux内核对数据包的管理机制。
具体实现如下:
以太网数据包的报头格式定义如下:
目标地址和源地址分别是指此数据包的目标MAC地址和源MAC地址;协议类型表示网络层使用的协议,如IP协议类型为0x0800,ARP协议类型为0x0806。
(3.1)在hook函数中将需要过滤的数据包协议类型标记为0xFF00,该标记值没有被任何网络层协议所使用。
(3.2)在okfn函数中对标以太网数据包报头的类型进行判断:如果数据包协议类型标记为0xFF00,则丢弃;反之,则不做处理。
3.缓存数据交换通信模块
在缓存数据交换需要建立一种通信通道,通信通道的建立方式既可以通过虚拟机监控器内部的通信方式,如事件通道等,也可以通过传统的网络通信的方式,在本发明中我们采用了网络通信的方式。具体实现为:
(1)建立通信通道
在VMM或Dom0建立一个Socket的监听器,该监听器只能监听来自虚拟机内部的网络连接请求,并通过身份认证进行识别,以确保安全使用。在虚拟机的应用程序接口中通过安全的身份认证方式通过Socket连接该监听器,已建立虚拟机应用和缓存之间的通讯。
(2)通信API中实现
(2.1)Put函数实现,通过Socket连接将应用数据及特征值发送到缓存组件,并调用缓存组件中的方法(2);
(2.2)Modify函数实现,通过Socket连接将应用数据及特征值发送到缓存组件,并调用缓存组件中的方法(4);
(2.3)Delete函数实现,通过Socket连接将特征值发送到缓存组件,并调用缓存组件中的方法(3),通过Socket将返回值返回;
(2.4)Query函数实现,通过Socket连接将特征值发送到缓存组件,并调用缓存组件中的方法(5),通过Socket将返回值返回;
(2.5)QueryMetadata函数实现,通过Socket连接将应用数据及特征值发送到缓存组件,并调用缓存组件中的方法(6),通过Socket将返回值返回。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (3)

1.一种X86虚拟化条件下降低网络I/O操作CPU开销的系统,其特征在于包括:数据缓存模块、网络数据请求截留模块和缓存数据交换通信模块;其中:
数据缓存模块:在VMM或Dom0层建立数据缓存模块用于缓存通过网络传输的应用数据,以下简称为网络数据;具体为:在VMM或Dom0内存中建立基于树的三级索引结构网络数据缓存,将虚拟机中通过网络传输的应用数据缓存到VMM或Dom0中,并通过索引进行快速查找和定位;所述网络数据缓存位于VMM或Dom0中;所述基于树的三级索引结构为:第一级索引为MAC地址和IP地址标识,第二级索引为端口号PORT标识,第三级索引为缓存的数据特征URI标识;树的叶子节点用于缓存网络数据;数据缓存模块提供对所缓存网络数据的插入、删除、修改、查询和对所缓存网络数据元数据的查询操作;
网络数据请求截留模块:在VMM或Dom0层建立网络数据请求截留模块用于拦截来自网络的请求数据,并直接对请求进行相应操作;具体为:在物理网卡和VNET之间添加一个新的监测点函数,即Netfilter挂钩函数,通过对这个挂钩函数的调用拦截到所经过VMM或Dom0的网络数据包;当一个网络请求到达时,从该监测点中读取该请求数据,并提取该请求数据的特征值F,计算索引链L,如果索引链L指向的数据块存在,说明该请求所对应的网络数据已经被缓存,则取出缓存数据进行返回并丢弃相应请求数据;如果索引链L指向的数据块不存在,则不作任何处理,将请求数据交给上层协议继续处理,请求数据最终会被传递到目的虚拟机;所述特征值F是指来自网络的请求数据所请求的目的地址、端口号和所请求网络数据的数据特征URI;所述索引链L是由指向缓存数据的索引组成的链,由特征值F经过简单计算得到;
缓存数据交换通信模块:在数据缓存模块与应用之间建立通信通道,通过调用API对数据进行插入、删除、修改、查询缓存数据和对缓存元数据查询;具体为:在虚拟机和VMM/Dom0之间建立一种通信通道,用于虚拟机应用和数据缓存模块之间进行通信,将待缓存数据和特征值传输到数据缓存模块,虚拟机应用通过通道将数据放置到缓存中,并且通过通道对缓存数据进行插入、删除、修改、查询和对缓存元数据查询操作。
2.根据权利要求1所述的X86虚拟化条件下降低网络I/O操作CPU开销的系统,其特征在于:所述数据缓存模块对所缓存网络数据的插入、删除、修改、查询和对所缓存网络数据元数据查询操作的过程为:
(1)实现插入缓存数据操作
(1.1)根据缓存数据所对应请求数据的特征值F<MAC,IP,PORT,URI>,计算索引链L<MAC+IP,PORT,URI>;
(1.2)从根节点出发,根据索引链L的MAC+IP查找第一级子节点,若未发现匹配,则根据MAC+IP建立新的子节点,并以此为插入点A;若发现匹配,则以匹配到的子节点为插入点A;
(1.3)从插入点A出发,根据索引链L的PORT查找二级子节点,若未发现匹配,则根据PORT建立新的子节点,并以此为插入点B;若发现匹配,则以匹配到的子节点为插入点B;
(1.4)从插入点B出发,根据索引链L的URI查找三级子节点,若未发现匹配,则根据URI建立新的子节点,并以此为插入点C;若发现匹配,则以匹配到的子节点为插入点C;
(1.5)在插入点C下建立子节点,并将缓存数据及缓存数据元数据拷贝至该子节点;
(2)实现删除缓存数据操作
(2.1)根据缓存数据所对应请求数据的特征值F<MAC,IP,PORT,URI>,计算索引链L<MAC+IP,PORT,URI>;
(2.2)从根节点出发,根据索引链L的MAC+IP查找第一级子节点,若未发现匹配,则返回;若发现匹配,则以匹配到的子节点为插入点A;
(2.3)从插入点A出发,根据L的PORT查找二级子节点,若未发现匹配,则返回;若发现匹配,则以匹配到的子节点为插入点B;
(2.4)从插入点B出发,根据L的URI查找三级子节点,若未发现匹配,则返回;若发现匹配,则以匹配到的子节点为插入点C;
(2.5)删除插入点C,插入点C下的数据,若插入点B为空,则删除插入点B;若插入点A为空,则删除插入点A;
(3)实现修改缓存数据操作
(3.1)根据缓存数据所对应请求数据的特征值F<MAC,IP,PORT,URI>,计算索引链L<MAC+IP,PORT,URI>;
(3.2)从根节点出发,根据索引链L的MAC+IP查找第一级子节点,并以此为插入点A;
(3.3)从插入点A出发,根据索引链L的PORT查找二级子节点,并以此为插入点B;
(3.4)从插入点B出发,根据索引链L的URI查找三级子节点,并以此为插入点C;
(3.5)删除插入点C下的子节点,并建立新的子节点D,将数据及元数据拷贝至子节点D;
(4)实现查询缓存数据操作
(4.1)根据缓存数据所对应请求数据的特征值F<MAC,IP,PORT,URI>,计算索引链L<MAC+IP,PORT,URI>;
(4.2)从根节点出发,根据索引链L的MAC+IP查找第一级子节点,并以此为插入点A;
(4.3)从插入点A出发,根据索引链L的PORT查找二级子节点,并以此为插入点B;
(4.4)从插入点B出发,根据索引链L的URI查找三级子节点,并以此为插入点C;
(4.5)返回查询点C下的数据信息;
(5)实现查询缓存元数据操作
(5.1)根据缓存数据所对应请求数据的特征值F<MAC,IP,PORT,URI>,计算索引链L<MAC+IP,PORT,URI>;
(5.2)从根节点出发,根据索引链L的MAC+IP查找第一级子节点,并以此为插入点A;
(5.3)从插入点A出发,根据索引链L的PORT查找二级子节点,并以此为插入点B;
(5.4)从插入点B出发,根据索引链L的URI查找三级子节点,并以此为插入点C;
(5.5)返回插入点C下的元数据信息。
3.根据权利要求1所述的X86虚拟化条件下降低网络I/O操作CPU开销的系统,其特征在于:所述网络数据包包括以太网数据包、网络层数据包、传输层数据包和应用层数据包。
CN201210526670.8A 2012-12-08 2012-12-08 一种x86虚拟化条件下降低网络i/o操作cpu开销的系统 Expired - Fee Related CN103036759B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210526670.8A CN103036759B (zh) 2012-12-08 2012-12-08 一种x86虚拟化条件下降低网络i/o操作cpu开销的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210526670.8A CN103036759B (zh) 2012-12-08 2012-12-08 一种x86虚拟化条件下降低网络i/o操作cpu开销的系统

Publications (2)

Publication Number Publication Date
CN103036759A CN103036759A (zh) 2013-04-10
CN103036759B true CN103036759B (zh) 2015-07-01

Family

ID=48023268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210526670.8A Expired - Fee Related CN103036759B (zh) 2012-12-08 2012-12-08 一种x86虚拟化条件下降低网络i/o操作cpu开销的系统

Country Status (1)

Country Link
CN (1) CN103036759B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063267B (zh) * 2014-07-11 2017-11-14 孙强强 一种虚拟机流量监控方法及系统
CN105446895B (zh) * 2014-08-25 2018-05-18 北京云巢动脉科技有限公司 一种存储系统非同源数据运行时io去重的方法及系统
US11412059B2 (en) 2016-09-30 2022-08-09 Intel Corporation Technologies for paravirtual network device queue and memory management
CN109428819B (zh) * 2017-08-28 2022-01-11 阿里巴巴集团控股有限公司 传输数据的方法、网络组件、设备和计算机存储介质
CN108920252A (zh) * 2018-06-15 2018-11-30 西安微电子技术研究所 一种基于多队列千兆以太网控制器的io虚拟化装置
CN112383445A (zh) * 2020-10-27 2021-02-19 上海市共进通信技术有限公司 基于netfilter和netlink实现家庭网关数据访问监控的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101754466A (zh) * 2008-12-10 2010-06-23 运软网络科技(上海)有限公司 移动虚拟化的基础设施以及基础平台
CN102096786A (zh) * 2011-03-04 2011-06-15 上海交通大学 基于硬件虚拟化的跨平台安全保护系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793287B2 (en) * 2003-10-01 2010-09-07 Hewlett-Packard Development Company, L.P. Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor
US8799891B2 (en) * 2005-03-02 2014-08-05 Hewlett-Packard Development Company, L.P. System and method for attributing CPU usage of a virtual machine monitor to a corresponding virtual machine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101754466A (zh) * 2008-12-10 2010-06-23 运软网络科技(上海)有限公司 移动虚拟化的基础设施以及基础平台
CN102096786A (zh) * 2011-03-04 2011-06-15 上海交通大学 基于硬件虚拟化的跨平台安全保护系统

Also Published As

Publication number Publication date
CN103036759A (zh) 2013-04-10

Similar Documents

Publication Publication Date Title
CN103036759B (zh) 一种x86虚拟化条件下降低网络i/o操作cpu开销的系统
CN110875848B (zh) 控制器和用于配置虚拟执行元件的虚拟网络接口的方法
Le et al. UNO: Uniflying host and smart NIC offload for flexible packet processing
US7769031B2 (en) Virtual machine system and method of network communication between virtual machines
US7996569B2 (en) Method and system for zero copy in a virtualized network environment
EP4054150A1 (en) Container networking interface for multiple types of interfaces
US10872056B2 (en) Remote memory access using memory mapped addressing among multiple compute nodes
CN101430674B (zh) 一种分布式虚拟机监控器内连通信方法
CN101465863B (zh) 一种内核虚拟机环境下高效网络i/o的实现方法
CN102882810B (zh) 一种报文快速转发方法及装置
CN102790777B (zh) 网络接口适配器注册方法及驱动设备、服务器
US20080189432A1 (en) Method and system for vm migration in an infiniband network
CN108964959A (zh) 一种用于虚拟化平台的网卡直通系统及数据包监管方法
CN101150488B (zh) 一种零拷贝网络报文接收方法
CN103346981A (zh) 虚拟交换方法、相关装置和计算机系统
US8640128B2 (en) Dynamic network adapter queue pair allocation
CN101488174A (zh) 动态透明的虚拟可信平台模块的实现方法
CN103973578B (zh) 一种虚拟机流量重定向的方法及装置
Wang et al. vSocket: virtual socket interface for RDMA in public clouds
Niu et al. NetKernel: Making network stack part of the virtualized infrastructure
CN106161115A (zh) 一种应用于vxlan的设备管理方法及装置
CN103747439B (zh) 无线控制器设备、无线认证处理方法、系统、组网
Li et al. Towards full virtualization of SDN infrastructure
CN106528267B (zh) 基于Xen特权域的网络通信监控系统及方法
Zang et al. PROP: Using PCIe-based RDMA to accelerate rack-scale communications in data centers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Zhang Wenbo

Inventor after: Xu Jiwei

Inventor after: Wei Jun

Inventor after: Zhong Hua

Inventor after: Huang Tao

Inventor before: Zhang Wenbo

Inventor before: Xu Jiwei

Inventor before: Wei Jun

Inventor before: Zhong Hua

Inventor before: Huang Tao

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150701

Termination date: 20181208