一种轻量级的高性能互连网络软件虚拟化方法与流程

文档序号:16390204发布日期:2018-12-22 11:19阅读:427来源:国知局
一种轻量级的高性能互连网络软件虚拟化方法与流程

本发明涉及互连网络虚拟化领域,尤其涉及一种轻量级的高性能互连网络软件虚拟化方法。

背景技术

互连网络虚拟化要实现下列功能:每个虚拟机都能看到独立的ni设备;虚拟ni具有跟物理ni一样的通信性能,即所有虚拟机上的进程都能旁路虚拟机管理器和本地虚拟机操作系统直接访问硬件并进行通信。目前,基于pcie总线的io设备虚拟化通用标准是sriov(singlerooti/ovirtualization)。sriov技术是一种基于硬件的虚拟化解决方法,允许在虚拟机之间高效共享pcie设备。支持sriov的pcie设备可以配置成多个virtualfunction(vf),每个vf都具有自己的pcie配置空间。大多数网卡设备采用sriov技术实现虚拟化,但是sriov需要ep提供支持,这种支持要么是用硬件逻辑实现,要么是通过嵌入式处理器加固件的形式实现。另外,sriov硬件资源是预先划分的,不能灵活支持可变数量的多个vm。



技术实现要素:

本发明的目的在于通过一种轻量级的高性能互连网络软件虚拟化方法,来解决以上背景技术部分提到的问题。

为达此目的,本发明采用以下技术方案:

一种轻量级的高性能互连网络软件虚拟化方法,该方法包括:

s101、虚拟机上的进程创建资源:s1011、虚拟机向宿主机申请资源号;s1012、虚拟机对资源进行配置;s1013、虚拟机上销毁资源;

s102、虚拟机上收发消息:虚拟机上的进程创建资源完成后,建立专用的数据通路;进行通信时,用户进程直接通过io写操作按消息队列门铃,然后由网卡通过dma操作将消息直接从发送方的用户缓冲区拷贝到目的方的用户缓冲区。

特别地,所述步骤s1011具体包括:一、虚拟机通过hcall向宿主机发起申请;二、宿主机收到申请后,查询位图,找出未分配的资源,并将资源号返回给虚拟机;其中,所有资源号均由宿主机管理和分配,宿主机为每类资源都维护一张位图,记录资源的分配情况。

特别地,所述步骤s1012具体包括:虚拟机申请到资源号后,直接访问该资源的配置寄存器进行初始化。

特别地,所述步骤s1013具体包括:一、虚拟机直接访问该资源的配置寄存器进行销毁操作;二、虚拟机向宿主机归还资源号:虚拟机通过hcall向宿主机发起申请;宿主机收到申请后,修改位图,将资源号释放。

特别地,当某个虚拟机出现故障后,宿主机将回收该虚拟机占用的资源号。

本发明提出的轻量级的高性能互连网络软件虚拟化方法通过纯软件的形式实现高性能互连网络的虚拟化功能,不需要硬件额外增加设计来实现其它虚拟化标准(如sriov),支持硬件资源的动态、按需分配,支持容器式虚拟机快速部署和故障物理隔离等功能,且虚拟机上收发消息时内存零拷贝,虚拟机网络性能损失小。

附图说明

图1为本发明实施例提供的轻量级的高性能互连网络软件虚拟化方法的工作原理图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容,除非另有定义,本文所使用的所有技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述具体的实施例,不是旨在于限制本发明。

本实施例中轻量级的高性能互连网络软件虚拟化方法具体包括:

s101、虚拟机上的进程创建资源:s1011、虚拟机向宿主机申请资源号;s1012、虚拟机对资源进行配置;s1013、虚拟机上销毁资源。

s102、虚拟机上收发消息:虚拟机上的进程创建资源完成后,建立专用的数据通路;消息的收发不需要经过宿主机和虚拟机os就可以正常进行;进行通信时,用户进程直接通过io写操作按消息队列门铃,然后由网卡通过dma操作将消息直接从发送方的用户缓冲区拷贝到目的方的用户缓冲区,从而实现旁路核心和消息零拷贝。

如图1所示,图中sq:sendqueue,是网卡中用于管理发送请求的部件;rq:receivequeue,是网卡中用于管理接收请求的部件;cq:completequeue,是网卡中用于管理完成信息的部件;dma:directmemoryaccess,一种不经过cpu直接进行内存存取的数据交换模式;核间中断:多核处理器中的一种中断类型,由一个计算核心发给另一个计算核心。本发明由宿主机驱动软件及虚拟机驱动软件两部分组成。在本实施例中,所有资源号均由宿主机管理和分配,以避免不同的虚拟机使用相同的资源而引起冲突;宿主机为每类资源都维护一张位图,记录资源的分配情况。当虚拟机上的进程创建资源时,需要向宿主机申请资源号;宿主机将可分配的资源号返回给虚拟机,并记录当前资源分配情况;然后由虚拟机独立完成相关的配置操作。当虚拟机上的进程结束时,向宿主机归还资源号。

在本实施例中所述步骤s1011具体包括:一、虚拟机通过hcall向宿主机发起申请;二、宿主机收到申请后,查询位图,找出未分配的资源,并将资源号返回给虚拟机。所述步骤s1012具体包括:虚拟机申请到资源号后,直接访问该资源的配置寄存器进行初始化。所述步骤s1013具体包括:一、虚拟机直接访问该资源的配置寄存器进行销毁操作;二、虚拟机向宿主机归还资源号:虚拟机通过hcall向宿主机发起申请;宿主机收到申请后,修改位图,将资源号释放。

由于资源的动态、按需分配,每个虚拟机都有独立的硬件资源和数据通路。当某个虚拟机出现故障后,宿主机仅需回收该宿主机占用的资源号即可,因此可以实现虚拟机的快速部署和故障隔离。

本发明由宿主机驱动软件及虚拟机驱动软件两部分组成,极大地降低了网卡虚拟化对硬件的依赖。每个虚拟机上都运行一套虚拟化软件栈,以及各自的pci总线驱动,这样每个虚拟机都能看到ni设备,从而灵活支持可变数量的多个vm。所有资源号均由宿主机管理和分配。所有虚拟机上的应用程序可以动态向宿主机申请资源,并且能够通过直接按门铃来投递工作请求,以接收和发送数据,即所有虚拟机上的进程都能旁路虚拟机管理器和本地虚拟机操作系统直接访问硬件通信。

本发明的技术方案通过纯软件的形式实现高性能互连网络的虚拟化功能,不需要硬件额外增加设计来实现其它虚拟化标准(如sriov),支持硬件资源的动态、按需分配,支持容器式虚拟机快速部署和故障物理隔离等功能,且虚拟机上收发消息时内存零拷贝,虚拟机网络性能损失小。

本领域普通技术人员可以理解实现上述实施例中的全部部分是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1