CN118152075A - 轻量级rdma虚拟化方法、系统、装置、电子设备及介质 - Google Patents
轻量级rdma虚拟化方法、系统、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN118152075A CN118152075A CN202410419200.4A CN202410419200A CN118152075A CN 118152075 A CN118152075 A CN 118152075A CN 202410419200 A CN202410419200 A CN 202410419200A CN 118152075 A CN118152075 A CN 118152075A
- Authority
- CN
- China
- Prior art keywords
- virtual
- rdma
- devices
- idle
- set number
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013507 mapping Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012937 correction Methods 0.000 claims description 7
- 238000013468 resource allocation Methods 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 19
- 238000007726 management method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 101100244969 Arabidopsis thaliana PRL1 gene Proteins 0.000 description 6
- 102100039558 Galectin-3 Human genes 0.000 description 6
- 101100454448 Homo sapiens LGALS3 gene Proteins 0.000 description 6
- 101150051246 MAC2 gene Proteins 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000002411 adverse Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 2
- 101150115300 MAC1 gene Proteins 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及一种轻量级RDMA虚拟化方法、系统、装置、电子设备及介质,尤其涉及虚拟化技术领域。包括:获取虚拟设备的配置参数,配置参数包括虚拟设备的设定数量;为设定数量的虚拟设备分配对应数量的网络设备;其中,虚拟设备与网络设备的网络地址相对应;基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备;其中,虚拟设备与空闲资源的资源标识相对应。本公开实施例通过管理虚拟设备的资源分配在硬件设备上基于软件实现轻量级虚拟化功能。
Description
技术领域
本公开涉及嵌入式技术领域,尤其涉及一种轻量级RDMA虚拟化方法、系统、装置、电子设备及介质。
背景技术
轻量级虚拟化技术(Scalable Function,SF)是一种硬件虚拟化技术,用于提供高性能的网络和存储设备虚拟化,SF允许将物理设备划分为多个虚拟设备,每个虚拟设备都具有独立的性能和功能,可以被不同的虚拟机或容器直接访问。
目前,通用的SF实现方案在资源分配时主要通过远程直接内存访问硬件(RemoteDirectMemoryAccess,RDMA)设备划分PCIE BAR空间,将每个BAR空间分配给不同的SF虚拟设备,使得各个SF虚拟设备可以驱动软件读写每个BAR空间对应的寄存器,实现独立运行,达到轻量级虚拟化的目的。具体流程如下:RDMA IP核响应于设备固件下发的SF配置命令,划分PCIE BAR空间,然后冷重启设备使得SF配置生效,再加载主机驱动识别SF配置,从而在硬件设备上实现SF功能;其中,设备固件是厂家配套运行在设备上的控制软件,为主机驱动程序提供访问接口。
然而,现有方案要求硬件自身需要支持SF功能,依赖于硬件,兼容性有限;RDMA IP核还需要额外设计来实现SF功能,硬件的复杂程度较高;另外,冷重启设备这一操作会对设备正在进行的其他任务产生影响,这导致方案的使用场景受到一定限制。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种轻量级RDMA虚拟化配方法、系统、装置、电子设备及介质,可以通过管理虚拟设备的资源分配在硬件设备上基于软件实现SF功能。
为了实现上述目的,本公开实施例提供的技术方案如下:
第一方面,本公开提供一种轻量级RDMA虚拟化方法,包括:
获取虚拟设备的配置参数,配置参数包括虚拟设备的设定数量;
为设定数量的虚拟设备分配对应数量的网络设备;其中,虚拟设备与网络设备的网络地址相对应;
基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备;其中,虚拟设备与空闲资源的资源标识相对应。
作为本公开实施例一种可选的实施方式,全局资源位图包括:队列对QP所对应的全局资源位图;
基于全局资源位图查询得到空闲资源,并将空闲资源分配给设定数量的虚拟设备,包括:
基于QP所对应的全局资源位图,对空闲QP进行查询;
在查询到空闲QP的情况下,将空闲QP分配给设定数量的虚拟设备;
建立空闲QP的QP标识与设定数量的虚拟设备之间的对应关系。
作为本公开实施例一种可选的实施方式,建立空闲QP的QP标识与设定数量的虚拟设备之间的对应关系之后,还包括:
接收第一虚拟设备传输的通用服务接口GSI数据包;其中,第一虚拟设备是设定数量的虚拟设备中的任意一个,GSI数据包中包括目的地址和原始QP标识;
基于映射表,检测原始QP标识与目的地址是否对应;映射表用于表示网络地址与GSI QP标识的对应关系;
在原始QP标识与目的地址不对应的情况下,根据映射表将原始QP标识修改为目标QP标识,得到GSI修正数据包;
按照目标QP标识,将GSI修正数据包传输至目的地址对应的第二虚拟设备。
作为本公开实施例一种可选的实施方式,按照目标QP标识,将GSI修正数据包传输至目的地址对应的第二虚拟设备之后,还包括:
获取第二虚拟设备的待回复GSI数据包;
基于映射表和第二虚拟设备对应的网络地址,确定待回复GSI数据包的待定QP标识;
在待定QP标识不是预设QP标识的情况下,将待定QP标识修改为预设QP标识,得到待处理GSI数据包;
向第一虚拟设备传输待处理GSI数据包。
作为本公开实施例一种可选的实施方式,获取虚拟设备的配置参数之后,为设定数量的虚拟设备分配对应数量的网络设备之前,还包括:
通过驱动软件资源管理层按照设定数量配置虚拟设备;
其中,设定数量的虚拟设备共享RDMA IP核的全局硬件资源。
作为本公开实施例一种可选的实施方式,为设定数量的虚拟设备分配对应数量的网络设备之后,基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备之前,还包括:
通过驱动软件资源管理层确定申请资源的目标虚拟设备;
基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备,包括:
通过驱动软件资源管理层基于全局资源位图查询得到空闲资源;
将空闲资源分配给目标虚拟设备。
第二方面,本公开提供一种轻量级RDMA虚拟化系统,该系统包括:虚拟设备,高速串行计算机扩展总线标准的基地址寄存器PCIE BAR空间和远程直接内存访问硬件RDMA IP核,以及驱动软件资源管理层,以及RDMA核外的网络设备MAC层;
其中,驱动软件资源管理层,用于:获取虚拟设备的配置参数,配置参数包括虚拟设备的设定数量;为设定数量的虚拟设备分配对应数量的网络设备;其中,虚拟设备与网络设备的网络地址相对应;基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备;其中,虚拟设备与空闲资源的资源标识相对应。
第三方面,本公开提供一种轻量级RDMA虚拟化装置,该装置包括:
获取模块,用于:获取虚拟设备的配置参数,配置参数包括虚拟设备的设定数量;
分配模块,用于:为设定数量的虚拟设备分配对应数量的网络设备;其中,虚拟设备与网络设备的网络地址相对应;基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备;其中,虚拟设备与空闲资源的资源标识相对应。
第四方面,本公开提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面或其任意一种可选的实施方式所述的轻量级RDMA虚拟化方法。
第五方面,本公开提供一种计算机可读存储介质,包括:所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面或其任意一种可选的实施方式所述的轻量级RDMA虚拟化方法。
第六方面,本公开提供一种计算机程序产品,包括:该计算机程序产品包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机实现如第一方面或其任意一种可选的实施方式所述的轻量级RDMA虚拟化方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供一种轻量级RDMA虚拟化方法、系统、装置、电子设备及介质,其中该方法首先获取虚拟设备的配置参数,该配置参数包括虚拟设备的设定数量,然后为设定数量的虚拟设备分配对应数量的网络设备,使得虚拟设备与网络设备的网络地址相对应;进而基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备,使得虚拟设备与空闲资源的资源标识相对应。如此,本公开通过管理虚拟设备的资源分配,在硬件设备上基于软件实现SF功能,即使该硬件设备不支持SF功能;有效降低了SF功能实现的硬件依赖性,并且无需在硬件层面上对RDMA IP核做出额外的复杂设计,从而降低了硬件开发难度,也无需冷重启,避免对其他任务产生不良影响,提升了SF功能实现的场景适应性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1A为RDMA的架构示意图;
图1B为现有SF实现方案的示意图;
图2A为本公开实施例提供的一种轻量级RDMA虚拟化系统的架构示意图;
图2B为本公开实施例的一种轻量级RDMA虚拟化方法的流程示意图;
图2C为本公开实施例提供的GSI服务的示意图;
图3为本公开实施例提供的一种轻量级RDMA虚拟化装置的结构示意图;
图4为本公开实施例提供一种电子设备的结构示意图。
具体实施方式
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的技术名词作简单地介绍:
远程直接内存访问(Remote Direct Memory Access,RDMA)是一种计算机网络技术,允许在网络上的两个节点之间直接访问彼此的内存来完成数据通信,过程中无需经过操作系统的参与。由于其低时延、高带宽等优点,使其在高性能计算、大数据处理、云计算和分布式存储等领域得到了越来越广泛的应用。如图1A所示,图1A为RDMA的架构示意图。RDMA架构包括用户层、驱动层和硬件。其中,用户层包括用户应用程序(用户APP)和软件接口(Verbs API);驱动层包括RDMA驱动;硬件包括RDMA IP核和网络设备(Media AccessControl,MAC设备)。
RDMA IP核是RDMA中的关键硬件,通常为现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)/快速指令集计算机(Reduced Instruction SetComputing,RISC)设备,实现RDMA协议,包括:处理用户提交的RDMA任务、拆封RDMA数据包等。RDMA IP核拥有如队列对(QueuePair,QP)、内存区域(Memory Region,MR)、完成队列(Completion Queue,CQ)、保护域(Protection Domain,PD)、双倍率同步动态随机存储器(DoubleDataRate,DDR)、寄存器等相关物理资源。RDMA数据包最终封装成以太网数据帧通过网络设备发出去。
队列对QP,由发送队列(Send Queue,SQ)和接收队列(Receive Queue,RQ)组成,存储RDMA通信请求,是RDMA通信的基本单元。有少量的QP是保留QP,不能用于用户数据通信。
媒体访问控制(MediaAccessControl,MAC)设备,是一种在网络通信理论框架(Open Systems Interconnection Model,OSI)模型中工作在数据链路层的设备,用于控制网络中数据的传输和访问,常见的MAC设备如网卡、网桥等等。
高速串行计算机扩展总线标准(Peripheral Component Interconnect Express,PCIE),主要用于连接主板上的中央处理器(Central Processing Unit,CPU)和各种外部设备,如显卡、声卡、硬盘等。PCIE总线取代了传统的周边元件扩展接口(PeripheralComponent Interconnect,PCI)总线,其传输速度更快、通道数量更多,能够更好地满足现代计算机硬件的需求。
PCIE总线中的设备通过分配的基地址寄存器(Base Address Register,BAR)空间来存储和访问配置空间、内存空间和输入/输出(Input/Output,I/O)空间等。PCIE BAR空间是PCIE设备与主板之间进行通信的一个接口,它包含了设备的地址、数据、控制等信息。不同的PCIE设备可以拥有不同的PCIE BAR空间,主板需要根据设备的PCIE BAR空间来正确地配置和访问设备。PCIE BAR空间在计算机硬件系统中起到了关键作用。通过PCIE BAR空间,主板能够识别和配置PCIE设备,PCIE设备能够与主板进行通信和数据传输。不同的PCIEBAR空间具有不同的功能,它们共同构成了PCIE设备与主板之间的接口。
目前,通用的SF实现方案主要通过RDMA设备划分PCIE BAR空间,将每个BAR空间分配给不同的SF虚拟设备,如图1B所示,图1B为现有SF实现方案的示意图,图示将PCIE BAR空间划分为:SF0、SF1、SF2、SF3,对应分配给SF虚拟设备:rdma_sf_dev0、rdma_sf_dev1、rdma_sf_dev2、rdma_sf_dev3,这样使得各个SF虚拟设备可以驱动软件读写每个BAR空间对应的寄存器,实现独立运行,达到轻量级虚拟化的目的。
具体流程如下:RDMA IP核响应于设备固件下发的SF配置命令,划分PCIE BAR空间,然后冷重启设备使得SF配置生效,再加载主机驱动识别SF配置,从而在硬件设备上实现SF功能;其中,设备固件是厂家配套运行在设备上的控制软件,为主机驱动程序提供访问接口。针对每个SF虚拟设备映射对应的BAR空间地址,从而在控制SF虚拟设备时,主机直接访问对应的BAR空间地址完成相关操作。
但是现有方案要求硬件自身需要支持SF功能,依赖于硬件,兼容性有限;而SF功能并不是RDMA的标准功能,RDMA IP核还需要额外的复杂设计来实现SF功能,硬件的复杂程度较高,也不利于RDMA IP核的封装;另外,冷重启设备这一操作会对设备正在进行的其他任务产生难以接受的影响,这导致方案的使用场景受到一定限制。
为了解决相关技术中存在的部分或全部技术问题,本公开实施例提供一种轻量级RDMA虚拟化方法、系统、装置、电子设备及存储介质,其中该方法首先获取虚拟设备的配置参数,该配置参数包括虚拟设备的设定数量,然后为设定数量的虚拟设备分配对应数量的网络设备,使得虚拟设备与网络设备的网络地址相对应;进而基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备,使得虚拟设备与空闲资源的资源标识相对应。如此,本公开通过管理虚拟设备的资源分配,在硬件设备上基于软件实现SF功能,即使该硬件设备不支持SF功能,有效降低了SF功能实现的硬件依赖性;无需在硬件层面上对RDMA IP核做出额外的复杂设计,从而降低了硬件开发难度,也无需冷重启,避免对其他任务产生不良影响,提升了SF功能实现的场景适应性。
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本公开实施例中提供的一种轻量级RDMA虚拟化方法,可以通过资源分配装置或电子设备实现,电子设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。电子设备的操作系统可以包括安卓(Android)、苹果公司开发的移动操作系统(iOS)、美国微软公司研发的操作系统(Windows)等等,本公开实施例对此不加以限制。电子设备可单独运行来实现本公开,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本公开。其中,电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用(Virtual Private Network,VPN)网络等。
需要说明的是,本公开实施例所述的一种轻量级RDMA虚拟化方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本公开的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本公开的保护范围内。
如图2A所示,图2A为本公开实施例提供的一种轻量级RDMA虚拟化系统的架构示意图,图示架构中包括虚拟设备,驱动软件资源管理层,PCIE BAR空间,RDMA IP核,以及RDMA核外的MAC层。其中,虚拟设备包括:rdma_sf_dev0、rdma_sf_dev1、rdma_sf_dev2和rdma_sf_dev3。需要说明的是,图示虚拟设备的数量仅为示例性示出。
其中,驱动软件资源管理层,用于获取虚拟设备的配置参数,配置参数包括虚拟设备的设定数量;为设定数量的虚拟设备分配对应数量的网络设备;其中,虚拟设备与网络设备的网络地址相对应;基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备;其中,虚拟设备与空闲资源的资源标识相对应。从而负责对RDMA IP核所拥有的硬件资源进行逻辑划分与管理,对用户层提供SF的控制功能。
RDMA核外的MAC层,用于修正各个虚拟设备的通用服务接口管理服务(GeneralServiceInterface,GSI服务)数据包。基于原则,将QP标识修改为1。需要说明的是,GSI服务,是RDMA的一组管理服务,RDMA规范中规定GSI使用内部保留编号为1的QP提供服务。可以理解的是,每个虚拟设备必须有一个处理GSI服务的QP,并且这个QP的编号必须为1。
如图2B所示,图2B为本公开实施例的一种轻量级RDMA虚拟化方法的流程示意图,该方法可以由轻量级RDMA虚拟化装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图2B所示,该方法主要包括如下步骤S201~S203:
S201、获取虚拟设备的配置参数。
其中,配置参数包括但不限于:虚拟设备的设定数量。配置参数支持修改。
可选的,接收用户输入的虚拟设备的配置参数。可以理解的是支持用户指定SF虚拟设备的个数。
参考图2A,具体的步骤S201是由驱动软件资源管理层接收用户输入的虚拟设备的配置参数。一些实施例中,参考图2A,通过驱动软件资源管理层按照设定数量配置虚拟设备;设定数量的虚拟设备共享RDMA IP核的全局硬件资源,并且控制不同的虚拟设备只能访问对应的硬件资源。
S202、为设定数量的虚拟设备分配对应数量的网络设备。
其中,虚拟设备与网络设备的网络地址(MAC地址)相对应。每个虚拟设备绑定一个网络设备,这个网络设备用于以太网数据包的收发。
一些实施例中,通过驱动软件资源管理层确定申请资源的目标虚拟设备,从而在后续空闲资源分配时为目标虚拟设备分配资源,实现按需分配。
S203、基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备。
其中,虚拟设备与空闲资源的资源标识相对应。
可选的,通过驱动资源管理层查找RDMA IP核全局硬件资源,以查询其中是否存在空闲资源。在查询到空闲资源情况下,将其分配给虚拟设备。
其中,空闲资源包括但不限于:队列对QP、内存区域MR、完成队列CQ、保护域PD、双倍率同步动态随机存储器DDR。每种资源对应存在全局资源位图,例如QP所对应的全局资源位图。其中,队列对QP用于处理GSI服务。
一些实施例中,在前述实施例,通过驱动软件资源管理层确定申请资源的目标虚拟设备之后,执行步骤S203包括:首先通过驱动软件资源管理层基于全局资源位图查询得到空闲资源,然后将空闲资源分配给目标虚拟设备。实现空闲资源的动态划分,将空闲资源按需分配给目标虚拟设备,避免资源浪费。
下述将以空闲资源包括队列对QP为例,对步骤S203的可能实施方式进行介绍:
一些实施例中,首先基于队列对QP所对应的全局资源位图,对空闲QP进行查询;在查询到空闲QP的情况下,将空闲QP分配给设定数量的虚拟设备,建立空闲QP的QP标识与设定数量的虚拟设备之间的对应关系。其中,空闲队列对QP的QP标记可以是GSIQP Number。
具体的,根据队列对QP所对应的全局资源位图查询空闲队列对QP,在查询到空闲队列对QP的情况下,将空闲队列对QP分配给设定数量的虚拟设备,并对队列对QP所对应的全局资源位图进行置位,将空闲队列QP标记为属于设定数量的虚拟设备,以建立空闲队列对QP的队列对QP标识与之间的对应关系。而在未查询到空闲队列对QP的情况下,结束资源分配,本公开在此不做赘述。
上述实施例,通过软件进行资源分配,以实现硬件设备上的SF功能,过程中RDMAIP核无感知,降低了SF功能实现对硬件的依赖性;资源分配后,各个虚拟设备可直接使用RDMA IP核的硬件资源,只做逻辑划分,减少了性能损耗。
一些实施例中,由于步骤S202(为设定数量的虚拟设备分配对应数量的网络设备)执行之后,各个虚拟设备已经绑定了对应的MAC设备,可以通过对应的MAC设备处理GSI服务,收发GSI数据包。可选的,在步骤S203(基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备)之后,首先通过空闲QP接收第一虚拟设备传输的GSI数据包,这个第一虚拟设备是设定数量的虚拟设备中的任意一个,GSI数据包中包括目的地址和原始QP标识。然后,基于映射表检测原始QP标识与目的地址是否对应;在原始QP标识与目标地址不对应的情况下,根据映射表将原始目标QP修改为目标QP标识,得到GSI修正数据包,进而按照目标QP标识,将GSI修正数据包传输至目的地址对应的第二虚拟设备。
其中,映射表用于存储网络地址和QP标识的对应关系,如下表1所示:
表1
网络地址 | GSIQP标识 |
MAC0 | GSIQP01 |
MAC1 | GSIQP21 |
MAC2 | GSIQP31 |
MAC3 | GSIQP51 |
如表1所示,GSIQP01指示队列对QP1,GSIQP21指示队列对QP21,GSIQP31指示队列对QP31,GSIQP51指示队列对QP51。虚拟设备rdma_sf_dev0的MAC地址为MAC0,对应的GSIQP标识为GSIQP01;虚拟设备rdma_sf_dev1的MAC地址为MAC1,对应的GSIQP标识为GSIQP21;虚拟设备rdma_sf_dev2的MAC地址为MAC2,对应的GSIQP标识为GSI QP31;虚拟设备rdma_sf_dev3的MAC地址为MAC3,对应的GSIQP标识为GSIQP51。
其中,使用队列对QP1符合RDMA规范,能够用于处理GSI服务。但如前述实施例,本公开每个虚拟设备对应存在自己的QP,QP标识并不一定是QP01,参考表1所示,除了虚拟设备rdma_sf_dev0可使用GSIQP01所标识的队列对QP1,其余虚拟设备并没有符合RDMA规范的编号为1的队列对来处理GSI服务。
由此,本公开实施例在处理GSI服务时,基于如表1所示的映射表来进行修正,以符合RDMA规范。具体的,首先在接收到GSI数据包时,先解析其中包括的目的地址和原始QP标识,由于RDMA规范的要求,原始QP标识为GSIQP01,此时判断目的地址是否为MAC0,若是,该GSI数据包应由虚拟设备rdma_sf_dev0接收处理,则传输给虚拟设备rdma_sf_dev0。若否,表示原始QP标识GSIQP01与目的地址不对应,原始QP标识是为了符合RDMA规范的要求而修正过的,这种情况下,根据映射表对原始QP标识GSIQP01进行修改,将原始原始QP标识GSIQP01修改为映射表中目的地址所对应的目标QP标识,从而得到GSI修正数据包,进一步的,按照目标QP标识将GSI修正数据包传输至目的地址对应的第二虚拟设备。如此,能够将GSI数据包准确传输给第二虚拟设备,提升了GSI服务执行的准确性。
示例性的,如图2C所示,图2C为本公开实施例提供的GSI服务的示意图。当通过RDMA核外MAC层接收到GSI数据包时,对GSI数据包进行解析,目的地址为MAC2,原始QP标识为GSIQP01,表示该GSI数据包需要发送至虚拟设备rdma_sf_dev2。参考上表1,检测到原始QP标识GSIQP01与目的地址rdma_sf_dev2并不对应,则再基于上表1,将原始QP标识GSIQP01修改为目标QP标识GSIQP31,得到目的地址为MAC2且目标QP标识为GSIQP31的GSI修正数据包,继而按照目标QP标识GSIQP31将GSI修正数据包传输至目的地址MAC2对应的第二虚拟设备rdma_sf_dev2。
上述实施例,基于映射表和GSI数据包中包括的目的地址,将原始QP标识修改为正确的目标QP标识,从而将修改后的GSI修正数据包准确传输至目的地址对应的虚拟设备进行处理,实现第一虚拟设备向第二虚拟设备之间准确传输GSI数据包,保证GSI服务的准确实现。
一些实施例中,第二虚拟设备可以回复第一虚拟设备,可选的,获取第二虚拟设备的待回复GSI数据包,基于映射表和第二虚拟设备对应的网络地址,确定待回复GSI数据包的;在待定QP标识不是预设QP标识的情况下,将待定QP标识修改为预设QP标识,得到待处理GSI数据包,进而向第一虚拟设备传输待处理GSI数据包。
其中,预设QP标识是符合RDMA规范的QP标识,GSIQP01。
示例性的,沿用上例,参考图2C所示,第二虚拟设备rdma_sf_dev2需要回复GSI修正数据包,首先获取包括回复内容的待回复GSI数据包,第二虚拟设备对应的网络地址为MAC2,参考上表1所示的映射表,得到待回复GSI数据包的待定QP标识为GSIQP31,并不是GSIQP01,还不符合RDMA规范无法进行传输,进而将待定QP标识修改为预设QP标识GSIQP01,至此符合RDMA规范,得到QP标识为GSIQP01的待处理GSI数据包,能够传输至第一虚拟设备,以完成对第一虚拟设备所传输的GSI修正数据包的回复,使得第二虚拟设备能够回复第一虚拟设备,实现虚拟设备间符合RDMA规范的通信交互。
上述实施例为通过RDMA IP核接收到第一虚拟设备传输给第二虚拟设备的GSI数据包,而后第二虚拟设备回复第一虚拟设备的场景。需要说明的是,在此之前,还包括:第一虚拟设备通过RDMA IP核向第二虚拟设备传输GSI数据包的过程,该过程首先获取GSI数据包,确定第二虚拟设备的网络地址和QP标识,在QP标识是预设QP标识(GSIQP01)的情况下,通过RDMA IP核传输给第一虚拟设备;在QP标识不是预设QP标识的情况下,将GSI数据包中的QP标识修改为预设QP标识,以符合RDMA规范,通过RDMA IP核传输给第一虚拟设备。
步骤S203执行之后表示虚拟设备配置完毕,这之后驱动软件还可以做其他功能的初始化和加载。当驱动软件加载完成后,无需再重启设备和主机就能够在硬件设备上实现SF功能。
一些实施例中,本公开支持配置参数修改,在获取到修改后的虚拟设备的配置参数的情况下,具体实施方式与前述实施例中所涉及的实施方式相同,本公开在此不做赘述,从而支持修改虚拟设备的配置参数,修改后重新加载驱动软件,实现硬件设备的SF功能,简单便捷,可扩展性强。
上述实施例,通过简单快捷的配置与驱动软件一起初始化来实现SF功能;重新修改配置参数时,只需要重新加载驱动,无需重启主机设备,避免了重启对设备正在运行的其他任务所产生的不良影响,提升了SF功能实现的场景适应性。
综上,本公开实施例提供的轻量级RDMA虚拟化方法首先获取虚拟设备的配置参数,该配置参数包括虚拟设备的设定数量,然后为设定数量的虚拟设备分配对应数量的网络设备,使得虚拟设备与网络设备的网络地址相对应;进而基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备,使得虚拟设备与空闲资源的资源标识相对应。如此,本公开通过管理虚拟设备的资源分配在硬件设备上基于软件实现SF功能,即使该硬件设备不支持SF功能,有效降低了SF功能实现的硬件依赖性;无需在硬件层面上对RDMA IP核做出额外的复杂设计,从而降低了硬件开发难度,也无需冷重启,避免对其他任务产生不良影响,提升了SF功能实现的场景适应性。
如图3所示,图3为本公开实施例提供的一种轻量级RDMA虚拟化装置的结构示意图,该装置包括:
获取模块301,用于:获取虚拟设备的配置参数,所述配置参数包括虚拟设备的设定数量;
分配模块302,用于:为所述设定数量的虚拟设备分配对应数量的网络设备;其中,所述虚拟设备与所述网络设备的网络地址相对应;基于全局资源位图查询得到空闲资源,将所述空闲资源分配给所述设定数量的虚拟设备;其中,所述虚拟设备与所述空闲资源的资源标识相对应。
一些实施例中,所述全局资源位图包括:队列对QP所对应的全局资源位图;分配模块302,在基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备的过程中,具体用于:基于所述QP所对应的全局资源位图,对空闲QP进行查询;在查询到所述空闲QP的情况下,将所述空闲QP分配给所述设定数量的虚拟设备;建立空闲QP的QP标识与所述设定数量的虚拟设备之间的对应关系。
一些实施例中,分配模块302,在建立空闲QP的QP标识与所述设定数量的虚拟设备之间的对应关系之后,还用于:接收第一虚拟设备传输的通用服务接口GSI数据包;其中,所述第一虚拟设备是所述设定数量的虚拟设备中的任意一个,所述GSI数据包中包括目的地址和原始QP标识;基于映射表,检测所述原始QP标识与所述目的地址是否对应;所述映射表用于表示网络地址与GSIQP标识的对应关系;在所述原始QP标识与所述目的地址不对应的情况下,根据所述映射表将所述原始QP标识修改为目标QP标识,得到GSI修正数据包;按照所述目标QP标识,将所述GSI修正数据包传输至所述目的地址对应的第二虚拟设备。
一些实施例中,分配模块302,在按照所述目标QP标识,将所述GSI修正数据包传输至所述目的地址对应的第二虚拟设备之后,还用于:获取所述第二虚拟设备的待回复GSI数据包;基于所述映射表和所述第二虚拟设备对应的网络地址,确定所述待回复GSI数据包的待定QP标识;在所述待定QP标识不是预设QP标识的情况下,将所述待定QP标识修改为所述预设QP标识,得到待处理GSI数据包;向所述第一虚拟设备传输所述待处理GSI数据包。
一些实施例中,获取模块301,在获取虚拟设备的配置参数之后,还用于通过驱动软件资源管理层按照所述设定数量配置虚拟设备;其中,所述设定数量的虚拟设备共享RDMA IP核的全局硬件资源。
一些实施例中,分配模块302,在为所述设定数量的虚拟设备分配对应数量的网络设备之后,所述基于全局资源位图查询得到空闲资源,将所述空闲资源分配给所述设定数量的虚拟设备之前,还用于:通过驱动软件资源管理层确定申请资源的目标虚拟设备;分配模块302在基于全局资源位图查询得到空闲资源,将所述空闲资源分配给所述设定数量的虚拟设备,具体用于:通过所述驱动软件资源管理层基于全局资源位图查询得到空闲资源;将所述空闲资源分配给所述目标虚拟设备。
如图4所示,图4为本公开实施例提供一种电子设备的结构示意图,该电子设备包括:处理器401、存储器402及存储在所述存储器402上并可在所述处理器401上运行的计算机程序,所述计算机程序被所述处理器401执行时实现上述方法实施例中的轻量级RDMA虚拟化方法的各个过程。且能达到相同的技术效果,为避免重复,这里不再赘述。
本公开实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现上述方法实施例中轻量级RDMA虚拟化方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,该计算机可读存储介质可以为只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本公开实施例提供一种计算程序产品,该计算机程序产品存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中轻量级RDMA虚拟化方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本公开中,处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本公开中,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
本公开中,计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种轻量级RDMA虚拟化方法,其特征在于,包括:
获取虚拟设备的配置参数,所述配置参数包括虚拟设备的设定数量;
为所述设定数量的虚拟设备分配对应数量的网络设备;其中,所述虚拟设备与所述网络设备的网络地址相对应;
基于全局资源位图查询得到空闲资源,将所述空闲资源分配给所述设定数量的虚拟设备;其中,所述虚拟设备与所述空闲资源的资源标识相对应。
2.根据权利要求1所述的方法,其特征在于,所述全局资源位图包括:队列对QP所对应的全局资源位图;
所述基于全局资源位图查询得到空闲资源,将空闲资源分配给设定数量的虚拟设备,包括:
基于所述QP所对应的全局资源位图,对空闲QP进行查询;
在查询到所述空闲QP的情况下,将所述空闲QP分配给所述设定数量的虚拟设备;
建立空闲QP的QP标识与所述设定数量的虚拟设备之间的对应关系。
3.根据权利要求2所述方法,其特征在于,所述建立空闲QP的QP标识与所述设定数量的虚拟设备之间的对应关系之后,还包括:
接收第一虚拟设备传输的通用服务接口GSI数据包;其中,所述第一虚拟设备是所述设定数量的虚拟设备中的任意一个,所述GSI数据包中包括目的地址和原始QP标识;
基于映射表,检测所述原始QP标识与所述目的地址是否对应;所述映射表用于表示网络地址与GSIQP标识的对应关系;
在所述原始QP标识与所述目的地址不对应的情况下,根据所述映射表将所述原始QP标识修改为目标QP标识,得到GSI修正数据包;
按照所述目标QP标识,将所述GSI修正数据包传输至所述目的地址对应的第二虚拟设备。
4.根据权利要求3所述的方法,其特征在于,所述按照所述目标QP标识,将所述GSI修正数据包传输至所述目的地址对应的第二虚拟设备之后,还包括:
获取所述第二虚拟设备的待回复GSI数据包;
基于所述映射表和所述第二虚拟设备对应的网络地址,确定所述待回复GSI数据包的待定QP标识;
在所述待定QP标识不是预设QP标识的情况下,将所述待定QP标识修改为所述预设QP标识,得到待处理GSI数据包;
向所述第一虚拟设备传输所述待处理GSI数据包。
5.根据权利要求1所述的方法,其特征在于,所述获取虚拟设备的配置参数之后,所述为所述设定数量的虚拟设备分配对应数量的网络设备之前,还包括:
通过驱动软件资源管理层按照所述设定数量配置虚拟设备;
其中,所述设定数量的虚拟设备共享远程直接内存访问硬件RDMA IP核的全局硬件资源。
6.根据权利要求1所述的方法,其特征在于,所述为所述设定数量的虚拟设备分配对应数量的网络设备之后,所述基于全局资源位图查询得到空闲资源,将所述空闲资源分配给所述设定数量的虚拟设备之前,还包括:
通过驱动软件资源管理层确定申请资源的目标虚拟设备;
所述基于全局资源位图查询得到空闲资源,将所述空闲资源分配给所述设定数量的虚拟设备,包括:
通过所述驱动软件资源管理层基于全局资源位图查询得到空闲资源;
将所述空闲资源分配给所述目标虚拟设备。
7.一种轻量级RDMA虚拟化系统,包括:虚拟设备,高速串行计算机扩展总线标准的基地址寄存器PCIE BAR空间和RDMA IP核,其特征在于,包括:
驱动软件资源管理层,以及RDMA核外的网络设备MAC层;
其中,驱动软件资源管理层,用于:获取虚拟设备的配置参数,所述配置参数包括虚拟设备的设定数量;为所述设定数量的虚拟设备分配对应数量的网络设备;其中,所述虚拟设备与所述网络设备的网络地址相对应;基于全局资源位图查询得到空闲资源,将所述空闲资源分配给所述设定数量的虚拟设备;其中,所述虚拟设备与所述空闲资源的资源标识相对应。
8.一种轻量级RDMA虚拟化装置,其特征在于,包括:
获取模块,用于:获取虚拟设备的配置参数,所述配置参数包括虚拟设备的设定数量;
分配模块,用于:为所述设定数量的虚拟设备分配对应数量的网络设备;其中,所述虚拟设备与所述网络设备的网络地址相对应;基于全局资源位图查询得到空闲资源,将所述空闲资源分配给所述设定数量的虚拟设备;其中,所述虚拟设备与所述空闲资源的资源标识相对应。
9.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的轻量级RDMA虚拟化方法。
10.一种计算机可读存储介质,其特征在于,包括:所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的轻量级RDMA虚拟化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410419200.4A CN118152075A (zh) | 2024-04-09 | 2024-04-09 | 轻量级rdma虚拟化方法、系统、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410419200.4A CN118152075A (zh) | 2024-04-09 | 2024-04-09 | 轻量级rdma虚拟化方法、系统、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118152075A true CN118152075A (zh) | 2024-06-07 |
Family
ID=91296739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410419200.4A Pending CN118152075A (zh) | 2024-04-09 | 2024-04-09 | 轻量级rdma虚拟化方法、系统、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118152075A (zh) |
-
2024
- 2024-04-09 CN CN202410419200.4A patent/CN118152075A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984465B (zh) | 一种消息传输方法及设备 | |
US11960430B2 (en) | Remote mapping method, apparatus and device for computing resources, and storage medium | |
US9229751B2 (en) | Apparatus and method for managing virtual memory | |
US10824466B2 (en) | Container migration | |
US20190243757A1 (en) | Systems and methods for input/output computing resource control | |
US10496427B2 (en) | Method for managing memory of virtual machine, physical host, PCIE device and configuration method thereof, and migration management device | |
US8447891B2 (en) | Dynamically assigning virtual functions to client applications | |
EP3125126A1 (en) | Data processing system and data processing method | |
JP7089333B2 (ja) | 仮想マシンの動的アドレス変換のためのコンピュータ実装方法、システム、およびコンピュータ・プログラム | |
US10057330B2 (en) | Apparatus and method for deferring asynchronous events notifications | |
CN110858821B (zh) | 容器通信方法及装置 | |
EP3382535A1 (en) | Method for loading drive program, and server | |
EP3662380A1 (en) | Memory control for electronic data processing system | |
US10310759B2 (en) | Use efficiency of platform memory resources through firmware managed I/O translation table paging | |
US10255099B2 (en) | Guest-influenced packet transmission | |
CN114201268B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
EP3304294A1 (en) | Method and system for allocating resources for virtual hosts | |
CN109857553B (zh) | 内存管理方法及装置 | |
CN106933646B (zh) | 一种创建虚拟机的方法及装置 | |
CN118152075A (zh) | 轻量级rdma虚拟化方法、系统、装置、电子设备及介质 | |
WO2014078327A1 (en) | Data packet routing | |
US20200021862A1 (en) | Multimedia streaming and routing apparatus and operation method of the same | |
CN116418848A (zh) | 网络节点的配置和访问请求的处理方法、装置 | |
EP4117251A1 (en) | Method, apparatus and system for realizing carrier grade network address translation | |
CN112131146B (zh) | 获取设备信息的方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |