CN109062671A - 一种轻量级的高性能互连网络软件虚拟化方法 - Google Patents
一种轻量级的高性能互连网络软件虚拟化方法 Download PDFInfo
- Publication number
- CN109062671A CN109062671A CN201810929669.7A CN201810929669A CN109062671A CN 109062671 A CN109062671 A CN 109062671A CN 201810929669 A CN201810929669 A CN 201810929669A CN 109062671 A CN109062671 A CN 109062671A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- resource
- host
- virtual
- interconnection network
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种轻量级的高性能互连网络软件虚拟化方法,包括:S101、虚拟机上的进程创建资源:虚拟机向宿主机申请资源号;虚拟机对资源进行配置;虚拟机上销毁资源;S102、虚拟机上收发消息:虚拟机上的进程创建资源完成后,建立专用的数据通路;进行通信时,用户进程直接通过IO写操作按消息队列门铃,然后由网卡通过DMA操作将消息直接从发送方的用户缓冲区拷贝到目的方的用户缓冲区。本发明通过纯软件的形式实现高性能互连网络的虚拟化功能,不需要硬件额外增加设计来实现其它虚拟化标准,支持硬件资源的动态、按需分配,支持容器式虚拟机快速部署和故障物理隔离等功能,且虚拟机上收发消息时内存零拷贝,虚拟机网络性能损失小。
Description
技术领域
本发明涉及互连网络虚拟化领域,尤其涉及一种轻量级的高性能互连网络软件虚拟化方法。
背景技术
互连网络虚拟化要实现下列功能:每个虚拟机都能看到独立的NI设备;虚拟NI具有跟物理NI一样的通信性能,即所有虚拟机上的进程都能旁路虚拟机管理器和本地虚拟机操作***直接访问硬件并进行通信。目前,基于PCIE总线的IO设备虚拟化通用标准是SRIOV(Single Root I/O Virtualization)。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:Send Queue,是网卡中用于管理发送请求的部件;RQ:ReceiveQueue,是网卡中用于管理接收请求的部件;CQ:Complete Queue,是网卡中用于管理完成信息的部件;DMA:Direct Memory Access,一种不经过CPU直接进行内存存取的数据交换模式;核间中断:多核处理器中的一种中断类型,由一个计算核心发给另一个计算核心。本发明由宿主机驱动软件及虚拟机驱动软件两部分组成。在本实施例中,所有资源号均由宿主机管理和分配,以避免不同的虚拟机使用相同的资源而引起冲突;宿主机为每类资源都维护一张位图,记录资源的分配情况。当虚拟机上的进程创建资源时,需要向宿主机申请资源号;宿主机将可分配的资源号返回给虚拟机,并记录当前资源分配情况;然后由虚拟机独立完成相关的配置操作。当虚拟机上的进程结束时,向宿主机归还资源号。
在本实施例中所述步骤S1011具体包括:一、虚拟机通过hcall向宿主机发起申请;二、宿主机收到申请后,查询位图,找出未分配的资源,并将资源号返回给虚拟机。所述步骤S1012具体包括:虚拟机申请到资源号后,直接访问该资源的配置寄存器进行初始化。所述步骤S1013具体包括:一、虚拟机直接访问该资源的配置寄存器进行销毁操作;二、虚拟机向宿主机归还资源号:虚拟机通过hcall向宿主机发起申请;宿主机收到申请后,修改位图,将资源号释放。
由于资源的动态、按需分配,每个虚拟机都有独立的硬件资源和数据通路。当某个虚拟机出现故障后,宿主机仅需回收该宿主机占用的资源号即可,因此可以实现虚拟机的快速部署和故障隔离。
本发明由宿主机驱动软件及虚拟机驱动软件两部分组成,极大地降低了网卡虚拟化对硬件的依赖。每个虚拟机上都运行一套虚拟化软件栈,以及各自的PCI总线驱动,这样每个虚拟机都能看到NI设备,从而灵活支持可变数量的多个VM。所有资源号均由宿主机管理和分配。所有虚拟机上的应用程序可以动态向宿主机申请资源,并且能够通过直接按门铃来投递工作请求,以接收和发送数据,即所有虚拟机上的进程都能旁路虚拟机管理器和本地虚拟机操作***直接访问硬件通信。
本发明的技术方案通过纯软件的形式实现高性能互连网络的虚拟化功能,不需要硬件额外增加设计来实现其它虚拟化标准(如SRIOV),支持硬件资源的动态、按需分配,支持容器式虚拟机快速部署和故障物理隔离等功能,且虚拟机上收发消息时内存零拷贝,虚拟机网络性能损失小。
本领域普通技术人员可以理解实现上述实施例中的全部部分是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (5)
1.一种轻量级的高性能互连网络软件虚拟化方法,其特征在于,包括:
S101、虚拟机上的进程创建资源:S1011、虚拟机向宿主机申请资源号;S1012、虚拟机对资源进行配置;S1013、虚拟机上销毁资源;
S102、虚拟机上收发消息:虚拟机上的进程创建资源完成后,建立专用的数据通路;进行通信时,用户进程直接通过IO写操作按消息队列门铃,然后由网卡通过DMA操作将消息直接从发送方的用户缓冲区拷贝到目的方的用户缓冲区。
2.根据权利要求1所述的轻量级的高性能互连网络软件虚拟化方法,其特征在于,所述步骤S1011具体包括:一、虚拟机通过hcall向宿主机发起申请;二、宿主机收到申请后,查询位图,找出未分配的资源,并将资源号返回给虚拟机;其中,所有资源号均由宿主机管理和分配,宿主机为每类资源都维护一张位图,记录资源的分配情况。
3.根据权利要求2所述的轻量级的高性能互连网络软件虚拟化方法,其特征在于,所述步骤S1012具体包括:虚拟机申请到资源号后,直接访问该资源的配置寄存器进行初始化。
4.根据权利要求3所述的轻量级的高性能互连网络软件虚拟化方法,其特征在于,所述步骤S1013具体包括:一、虚拟机直接访问该资源的配置寄存器进行销毁操作;二、虚拟机向宿主机归还资源号:虚拟机通过hcall向宿主机发起申请;宿主机收到申请后,修改位图,将资源号释放。
5.根据权利要求1至4之一所述的轻量级的高性能互连网络软件虚拟化方法,其特征在于,当某个虚拟机出现故障后,宿主机将回收该虚拟机占用的资源号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810929669.7A CN109062671A (zh) | 2018-08-15 | 2018-08-15 | 一种轻量级的高性能互连网络软件虚拟化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810929669.7A CN109062671A (zh) | 2018-08-15 | 2018-08-15 | 一种轻量级的高性能互连网络软件虚拟化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109062671A true CN109062671A (zh) | 2018-12-21 |
Family
ID=64687007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810929669.7A Pending CN109062671A (zh) | 2018-08-15 | 2018-08-15 | 一种轻量级的高性能互连网络软件虚拟化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109062671A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020135504A1 (zh) * | 2018-12-27 | 2020-07-02 | 中兴通讯股份有限公司 | 一种虚拟化方法和装置 |
CN113672411A (zh) * | 2021-08-25 | 2021-11-19 | 烽火通信科技股份有限公司 | 一种网络设备虚拟化驱动适配层的实现方法和装置 |
US11301277B2 (en) | 2019-11-04 | 2022-04-12 | International Business Machines Corporation | Channel identifier coupling with virtualized communications hardware |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324893A (zh) * | 2008-07-02 | 2008-12-17 | 中国科学院计算技术研究所 | 一种资源管理***和方法 |
CN101751284A (zh) * | 2009-12-25 | 2010-06-23 | 北京航空航天大学 | 一种分布式虚拟机监控器的i/o资源调度方法 |
CN102650976A (zh) * | 2012-04-01 | 2012-08-29 | 中国科学院计算技术研究所 | 一种支持单根io虚拟化用户级接口控制装置及其方法 |
CN103729254A (zh) * | 2013-12-31 | 2014-04-16 | 国网山东省电力公司 | 一种虚拟服务器Virtual CPU资源监测及动态分配方法 |
US9183025B2 (en) * | 2009-11-25 | 2015-11-10 | Citrix Systems, Inc. | Systems and algorithm for interfacing with a virtualized computing service over a network using a lightweight client |
-
2018
- 2018-08-15 CN CN201810929669.7A patent/CN109062671A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324893A (zh) * | 2008-07-02 | 2008-12-17 | 中国科学院计算技术研究所 | 一种资源管理***和方法 |
US9183025B2 (en) * | 2009-11-25 | 2015-11-10 | Citrix Systems, Inc. | Systems and algorithm for interfacing with a virtualized computing service over a network using a lightweight client |
CN101751284A (zh) * | 2009-12-25 | 2010-06-23 | 北京航空航天大学 | 一种分布式虚拟机监控器的i/o资源调度方法 |
CN102650976A (zh) * | 2012-04-01 | 2012-08-29 | 中国科学院计算技术研究所 | 一种支持单根io虚拟化用户级接口控制装置及其方法 |
CN103729254A (zh) * | 2013-12-31 | 2014-04-16 | 国网山东省电力公司 | 一种虚拟服务器Virtual CPU资源监测及动态分配方法 |
Non-Patent Citations (1)
Title |
---|
彭龙根等: "一种基于Xen平台的InfiniBand网络虚拟化技术", 《计算机工程与科学》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020135504A1 (zh) * | 2018-12-27 | 2020-07-02 | 中兴通讯股份有限公司 | 一种虚拟化方法和装置 |
US11301277B2 (en) | 2019-11-04 | 2022-04-12 | International Business Machines Corporation | Channel identifier coupling with virtualized communications hardware |
CN113672411A (zh) * | 2021-08-25 | 2021-11-19 | 烽火通信科技股份有限公司 | 一种网络设备虚拟化驱动适配层的实现方法和装置 |
CN113672411B (zh) * | 2021-08-25 | 2023-08-11 | 烽火通信科技股份有限公司 | 一种网络设备虚拟化驱动适配层的实现方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200278880A1 (en) | Method, apparatus, and system for accessing storage device | |
JP5510556B2 (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
CN100555257C (zh) | 处理页面复制期间的dma操作的存储控制器和方法 | |
WO2017114283A1 (zh) | 一种在物理主机中处理读/写请求的方法和装置 | |
EP4160424A2 (en) | Zero-copy processing | |
EP3992790B1 (en) | Information processing method, physical machine and pcie device | |
CN109062671A (zh) | 一种轻量级的高性能互连网络软件虚拟化方法 | |
WO2018000197A1 (zh) | 虚拟网络功能资源管理的方法和设备 | |
CN101150488A (zh) | 一种零拷贝网络报文接收方法 | |
US20230168953A1 (en) | Inter-process communication method and apparatus | |
CN115185880B (zh) | 一种数据存储方法及装置 | |
CN105739930A (zh) | 一种存储架构及其初始化方法和数据存储方法及管理装置 | |
US11360824B2 (en) | Customized partitioning of compute instances | |
CN102413183A (zh) | 云智能交换机及其处理方法、*** | |
CN111651269A (zh) | 实现设备虚拟化的方法、装置及计算机可读存储介质 | |
CN114397999A (zh) | 基于非易失内存接口-远程处理消息传递的通信方法、装置及设备 | |
CN104123173A (zh) | 一种实现虚拟机间通信的方法及装置 | |
CN117834561A (zh) | 基于spdk的网络i/o处理方法以及装置 | |
CN103678163A (zh) | 数据流的切换方法、装置及*** | |
CN110445580B (zh) | 数据发送方法及装置、存储介质、电子装置 | |
US11042495B2 (en) | Providing interrupts from an input-output memory management unit to guest operating systems | |
CN107643938A (zh) | 数据传输方法、装置及存储介质 | |
US8041902B2 (en) | Direct memory move of multiple buffers between logical partitions | |
CN112269649A (zh) | 实现主机任务异步执行的方法及装置、*** | |
KR101435499B1 (ko) | 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181221 |