一种虚拟化网络的数据传输方法,节点控制器及系统技术方案

技术编号:13365050 阅读:100 留言:0更新日期:2016-07-18 18:51
本发明专利技术实施例公开了一种虚拟化网络的数据传输方法,节点控制器及系统,其中方法的实现包括:第一节点控制器从源虚拟机的存储区域读取数据报文;所述第一节点控制器为所述源虚拟机本地的节点控制器;解析所述数据报文获得目的地址,并根据所述目的地址确定第二节点控制器;所述第二节点控制器为所述目的地址指向的目的虚拟机本地的节点控制器;通过所述第二节点控制器,将所述数据报文写入所述目的虚拟机的存储区域地址。实现了将数据报文的传输操作变为存储空间的搬移操作,因此不仅速度快,而且不需额外占用NC的协议层处理能力,并且可以避免因网卡设备成为访问热点造成的性能瓶颈。

【技术实现步骤摘要】

本专利技术涉及通信
,特别涉及一种虚拟化网络的数据传输方法,节点控制器及系统
技术介绍
非统一内存访问(Non-uniformmemoryaccess,NUMA)是一种用于多处理器的存储器结构设计,内存访问时间取决于处理器访问的内存位置。在NUMA下,处理器访问它自己的本地存储器的速度比非本地存储器(存储器到另一个处理器共享的处理器或存储器)快一些。高速缓存相关的非一致性内存访问(CacheCoherentNon-UniformMemoryAccess,CC-NUMA)是NUMA的一种类型。在CC-NUMA系统中,分布式内存相连接形成单一内存,不同NUMA域之间的内存访问通过节点控制器(NodeController,NC)来代理实现,不需要软件来保持多个数据拷贝的一致性,也不需要软件来实现操作系统与应用系统的数据传输。虚拟化技术将计算机物理资源如中央处理器、内存、存储及网络等予以抽象、转换后以新的方式呈现出来,使用户可以在一台机器上虚拟出多个硬件,模拟真实硬件的行为,从而能够同时运行多个独立的操作系统。当在一台设备上安装多个虚拟机时需要解决网络设备虚拟化的问题、实现不同虚拟机间的网络通信。目前的解决方案可以如下:使用支持虚拟化技术的网卡设备实现输入/输出(Input/Output,I/O)设备共享,网卡设备实现多个功能接口,每个接口分配给不同的虚拟机。该方案,可以降低中央处理的资源消耗,提供较好的性能。但是,在插网卡的设备上,数据从节点控制器(NodeController,NC)到网卡、从网卡到NC都需要NC进行额外的协议处理,增加了NC的工作负担。并且浪费了与插网卡的设备直接连接的NC的协议层处理能力。另外,由于一个网卡被虚拟成了多个虚拟网卡,每个虚拟机都认为虚拟网卡是自己的设备,那么每个虚拟机在发送数据时均会发送给自己的虚拟网卡,实际上会发送给插网卡的设备,因此会出现所有的虚拟机间的数据传输都要经过网卡中转,插网卡的设备就容易成为访问的热点,成为性能瓶颈。因此,以上方案不仅浪费了NC的协议层处理能力,而且插网卡的设备容易成为访问热点,造成性能瓶颈。
技术实现思路
本专利技术实施例提供了一种虚拟化网络的数据传输方法,节点控制器及系统,用于节省NC的协议层处理能力,避免因网卡设备成为访问热点造成的性能瓶颈。本专利技术实施例一方面提供了一种虚拟化网络的数据传输方法,包括:第一节点控制器从源虚拟机的存储区域读取数据报文;所述第一节点控制器为所述源虚拟机本地的节点控制器;所述第一节点控制器解析所述数据报文获得目的地址,并根据所述目的地址确定第二节点控制器;所述第二节点控制器为所述目的地址指向的目的虚拟机本地的节点控制器;所述第一节点控制器通过所述第二节点控制器,将所述数据报文写入所述目的虚拟机的存储区域地址。结合一方面的实现方式,在第一种可能的实现方式中,所述第一节点控制器通过所述第二节点控制器,将所述数据报文写入所述目的虚拟机的存储区域地址包括:所述第一节点控制器向所述第二节点控制器发送地址请求信息,然后接收所述第二节点控制器返回的所述目的虚拟机的存储区域地址;所述第一节点控制器将所述数据报文写入所述存储区域地址。结合一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述存储区域地址为直接内存存取DMA地址;所述第一节点控制器将所述数据报文写入所述存储区域地址包括:所述第一节点控制器通过缓存一致性处理功能,将所述数据报文写入所述存储区域地址。结合一方面的实现方式,在第三种可能的实现方式中,所述方法还包括:所述第一节点控制器在写入完毕后,向所述第二节点控制器发送写完成消息,使所述第二节点控制器向所述目的虚拟机发送中断并告知所述目的虚拟机收到了所述数据报文。结合一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一节点控制器从源虚拟机的存储区域读取数据报文,包括:所述第一节点控制器的虚拟网卡引擎从源虚拟机的DMA发送队列中读取数据报文;所述第一节点控制器通过所述第二节点控制器,将所述数据报文写入所述目的虚拟机的存储区域地址包括:所述第一节点控制器的虚拟网卡引擎向第二节点控制区的虚拟网卡引擎发送通知消息告知有新的数据报文需要写入,并接收所述第二节点控制器的虚拟网卡引擎返回的DMA队列的内存空间;所述第一节点控制器的虚拟网卡引擎向所述第二节点控制器的远程协议引擎发送写请求,使所述远程协议引擎将所述写请求转发给所述第二节点控制器的本地协议引擎,并使所述第二节点控制器的本地协议引擎将所述数据报文写入所述内存空间;所述第一节点控制器在写入完毕后,向所述第二节点控制器发送写完成消息,使所述第二节点控制器向所述目的虚拟机发送中断并告知所述目的虚拟机收到了所述数据报文包括:所述第一节点控制器的虚拟网卡引擎在接收到写完成消息后,向所述第二节点控制器的虚拟网卡引擎发送所述写完成消息,使所述第二节点控制器的虚拟网卡引擎通知所述虚拟机的中央处理器收到所述数据报文。本专利技术实施例二方面提供了一种节点控制器,作为第一节点控制器使用,包括:报文读取单元,用于从源虚拟机的存储区域读取数据报文;所述第一节点控制器为所述源虚拟机本地的节点控制器;报文解析单元,用于解析所述数据报文获得目的地址;控制器确定单元,用于根据所述目的地址确定第二节点控制器;所述第二节点控制器为所述目的地址指向的目的虚拟机本地的节点控制器;数据传输单元,用于通过所述第二节点控制器,将所述数据报文写入所述目的虚拟机的存储区域地址。结合二方面的实现方式,在第一种可能的实现方式中,所述数据传输单元包括:请求发送单元,用于向所述第二节点控制器发送地址请求信息;地址接收单元,用于接收所述第二节点控制器返回的所述目的虚拟机的存储区域地址;报文写入单元,用于将所述数据报文写入所述存储区域地址。结合二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述存储区域地址为直接内存存取DMA地址;所述报文写入单元,用于通过缓存一致性处理功能,将所述数据报文写入所述存储区域地址。结合二方面的实现方式,在第三种可能的实现方式中,所述节点控制器,还包括:消息发送单元,用于在所述数据报文写入完毕后,向所述第二节点控制器发送写完成消息,使所述第二节点控制器向所述目的虚拟机发送中断本文档来自技高网
...

【技术保护点】
一种虚拟化网络的数据传输方法,其特征在于,包括:第一节点控制器从源虚拟机的存储区域读取数据报文;所述第一节点控制器为所述源虚拟机本地的节点控制器;所述第一节点控制器解析所述数据报文获得目的地址,并根据所述目的地址确定第二节点控制器;所述第二节点控制器为所述目的地址指向的目的虚拟机本地的节点控制器;所述第一节点控制器通过所述第二节点控制器,将所述数据报文写入所述目的虚拟机的存储区域地址。

【技术特征摘要】
1.一种虚拟化网络的数据传输方法,其特征在于,包括:
第一节点控制器从源虚拟机的存储区域读取数据报文;所述第一节点控
制器为所述源虚拟机本地的节点控制器;
所述第一节点控制器解析所述数据报文获得目的地址,并根据所述目的
地址确定第二节点控制器;所述第二节点控制器为所述目的地址指向的目的
虚拟机本地的节点控制器;
所述第一节点控制器通过所述第二节点控制器,将所述数据报文写入所
述目的虚拟机的存储区域地址。
2.根据权利要求1所述方法,其特征在于,所述第一节点控制器通过所
述第二节点控制器,将所述数据报文写入所述目的虚拟机的存储区域地址包
括:
所述第一节点控制器向所述第二节点控制器发送地址请求信息,然后接
收所述第二节点控制器返回的所述目的虚拟机的存储区域地址;
所述第一节点控制器将所述数据报文写入所述存储区域地址。
3.根据权利要求2所述方法,其特征在于,所述存储区域地址为直接内
存存取DMA地址;
所述第一节点控制器将所述数据报文写入所述存储区域地址包括:
所述第一节点控制器通过缓存一致性处理功能,将所述数据报文写入所
述存储区域地址。
4.根据权利要求1所述方法,其特征在于,还包括:
所述第一节点控制器在写入完毕后,向所述第二节点控制器发送写完成
消息,使所述第二节点控制器向所述目的虚拟机发送中断并告知所述目的虚
拟机收到了所述数据报文。
5.根据权利要求4所述方法,其特征在于,所述第一节点控制器从源虚
拟机的存储区域读取数据报文,包括:
所述第一节点控制器的虚拟网卡引擎从源虚拟机的DMA发送队列中读
取数据报文;
所述第一节点控制器通过所述第二节点控制器,将所述数据报文写入所
述目的虚拟机的存储区域地址包括:
所述第一节点控制器的虚拟网卡引擎向第二节点控制区的虚拟网卡引擎
发送通知消息告知有新的数据报文需要写入,并接收所述第二节点控制器的
虚拟网卡引擎返回的DMA队列的内存空间;
所述第一节点控制器的虚拟网卡引擎向所述第二节点控制器的远程协议
引擎发送写请求,使所述远程协议引擎将所述写请求转发给所述第二节点控
制器的本地协议引擎,并使所述第二节点控制器的本地协议引擎将所述数据
报文写入所述内存空间;
所述第一节点控制器在写入完毕后,向所述第二节点控制器发送写完成
消息,使所述第二节点控制器向所述目的虚拟机发送中断并告知所述目的虚
拟机收到了所述数据报文包括:
所述第一节点控制器的虚拟网卡引擎在接收到写完成消息后,向所述第
二节点控制器的虚拟网卡引擎发送所述写完成消息,使所述第二节点控制器
的虚拟网卡引擎通知所述虚拟机的中央处理器收到所述数据报文。
6.一种节点控制器,作为第一节点控制器使用,其特征在于,包括:
报文读取单元,用于从源虚拟机的存储区域读取数据报文;所述第一节
点控制器为所述源虚...

【专利技术属性】
技术研发人员:赵献明陈昊陆斌
申请(专利权)人:杭州华为数字技术有限公司
类型:发明
国别省市:浙江;33

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

1