CN116614459B - 一种基于以太网rdma协议的链路聚合组管理方法及装置 - Google Patents
一种基于以太网rdma协议的链路聚合组管理方法及装置 Download PDFInfo
- Publication number
- CN116614459B CN116614459B CN202310879053.4A CN202310879053A CN116614459B CN 116614459 B CN116614459 B CN 116614459B CN 202310879053 A CN202310879053 A CN 202310879053A CN 116614459 B CN116614459 B CN 116614459B
- Authority
- CN
- China
- Prior art keywords
- pci
- preset number
- vfs
- link
- physical
- 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.)
- Active
Links
- 230000002776 aggregation Effects 0.000 title claims abstract description 40
- 238000004220 aggregation Methods 0.000 title claims abstract description 40
- 238000007726 management method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000005540 biological transmission Effects 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims abstract description 10
- 238000011084 recovery Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 10
- 230000008447 perception Effects 0.000 abstract description 7
- 230000007246 mechanism Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008531 maintenance mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013146 percutaneous coronary intervention Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/111—Switch interfaces, e.g. port details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/113—Arrangements for redundant switching, e.g. using parallel planes
- H04L49/118—Address processing within a device, e.g. using internal ID or tags for routing within a switch
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/557—Error correction, e.g. fault recovery or fault tolerance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本发明提供一种基于以太网RDMA协议的链路聚合组管理方法及装置,方法包括:将第一预设数量的以太网虚拟功能模块E‑VF进行内核态绑定,得到虚拟设备;其中,E‑VF为加载了以太网驱动程序的虚拟功能模块VF;基于虚拟设备,通过与E‑VF相关联的物理功能模块PF,获取PF所对应的物理网卡的信息;基于信息,构造链路聚合控制协议数据单元LACPDU;将LACPDU通过物理网卡发送至交换机。由此,从软件的角度实现了和交换机的LAG状态的协商、建连和感知,实现了数据的高性能无损传输,且减少了对硬件的侵入性开发、缩短了产品的开发周期,并降低了试错成本。
Description
技术领域
本发明实施例涉及云计算技术领域,尤其涉及一种基于以太网RDMA协议的链路聚合组管理方法及装置。
背景技术
当前,对于基于以太网的RDMA(Remote Direct Memory Access,远程直接数据存取)而言,为了实现高性能无损传输,需要将操作系统中的以太网协议栈卸载到硬件网卡中。因此,如果想要实现协议栈和内核中具备的LACP(Link Aggregation ControlProtocol,链路聚合控制协议)功能,则需在硬件协议栈中实现LACP LAG机制。如果想要实现动态LAG(Link Aggregation Group,链路聚合组)的机制,则需要在硬件协议栈中增加LACPDU(Link Aggregation Control Protocol,链路聚合控制协议数据单元)机制、bonding(绑定)状态维护机制以及FIFO通道切换机制,较为复杂,且对于IT(InformationTechnology,信息技术)系统而言,硬件的改造不仅不经济,且从技术趋势角度而言,也不可持续发展。
因此,如何通过软件实现LACP LAG机制成为亟待解决的技术问题。
发明内容
本发明实施例提供一种基于以太网RDMA协议的链路聚合组管理方法及装置,以解决相关技术中在硬件协议栈中实现LACP LAG机制成本较高,且不可持续发展的问题。
第一方面,本发明实施例提供一种基于以太网RDMA协议的链路聚合组管理方法,包括:
将第一预设数量的以太网虚拟功能模块E-VF进行内核态绑定,得到虚拟设备;其中,所述E-VF为加载了以太网驱动程序的虚拟功能模块VF;
基于所述虚拟设备,通过与所述E-VF相关联的物理功能模块PF,获取所述PF所对应的物理网卡的信息;
基于所述信息,构造链路聚合控制协议数据单元LACPDU;
将所述LACPDU通过所述物理网卡发送至交换机。
可选的,将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,所述方法还包括:
从所述物理网卡的每个PF中,各选取第二预设数量的VF;
为所述第一预设数量的VF加载以太网驱动程序,得到加载了以太网驱动程序的E-VF;
其中,所述第一预设数量=所述第二预设数量*PF的数量;每个PF均对应第三预设数量的VF;所述第三预设数量大于所述第二预设数量,所述PF的数量与所述物理网卡的网口数量相同。
可选的,将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,所述方法还包括:
为所述物理网卡所对应的,且除所述第一预设数量的E-VF之外的VF,加载远程直接数据存取RDMA驱动程序,得到加载了RDMA驱动程序的VF。
可选的,为所述物理网卡所对应的,且除所述第一预设数量的VF之外的VF,加载RDMA驱动程序,得到加载了RDMA驱动程序的VF之后,所述方法还包括:
启用内核态的周边组件互联PCI重注册模块;
通过所述PCI重注册模块为第一PCI分配第一DMA地址,为第二PCI分配第二DMA地址,并将所述第一DMA地址和所述第二DMA地址进行组合;
其中,在将所述第一DMA地址和所述第二DMA地址进行组合之后,能够通过加载了RDMA驱动程序的VF,将内存数据通过第一PCI分别发送至第一PCI所对应的PF的物理链路,以及第二PCI及第二PCI所对应的PF的物理链路;或者,将内存数据通过第二PCI分别发送至第一PCI及第一PCI所对应的PF的物理链路,以及第二PCI所对应的PF的物理链路;
其中,第一PCI为与所述物理网卡的第一网口相对应的,加载了RDMA驱动程序的VF所指代的虚拟设备,第二PCI为与所述物理网卡的除第一网口之外的其余网口相对应的,加载了RDMA驱动程序的VF所指代的虚拟设备。
可选的,所述方法还包括:
在PF的物理链路发生故障时,基于所述PCI重注册模块进行链路切换。
可选的,在PF的物理链路发生故障时,基于所述PCI重注册模块进行链路切换包括:
在通过LACPDU感知到所述第二PCI所对应的PF的物理链路发生故障时,通过所述第一PCI所对应的PF的物理链路进行所述内存数据的传输;
在通过LACPDU感知到所述第一PCI所对应的PF的物理链路发生故障时,触发所述PCI重注册模块重新注册主PCI,以进行链路切换;其中,所述PCI重注册模块用于将所述第二PCI转换为主PCI;
在通过LACPDU感知到所述第一PCI所对应的PF的物理链路的故障恢复时,触发所述PCI重注册模块重新将所述第一PCI确定为主PCI;
其中,所述主PCI为当前进行内存数据传输的第一PCI或第二PCI。
第二方面,本发明实施例提供一种基于以太网RDMA协议的链路聚合组管理装置,包括:
绑定模块,用于将第一预设数量的E-VF进行内核态绑定,得到虚拟设备;其中,所述E-VF为加载了以太网驱动程序的VF;
获取模块,用于基于所述虚拟设备,通过与所述E-VF相关联的PF,获取所述PF所对应的物理网卡的信息;
构造模块,用于基于所述信息,构造LACPDU;
发送模块,用于将所述LACPDU通过所述物理网卡发送至交换机。
可选的,所述装置还包括:
选取模块,用于在将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,从所述物理网卡的每个PF中,各选取第二预设数量的VF;
加载模块,用于为所述第一预设数量的VF加载以太网驱动程序,得到加载了以太网驱动程序的E-VF;
其中,所述第一预设数量=所述第二预设数量*PF的数量;每个PF均对应第三预设数量的VF;所述第三预设数量大于所述第二预设数量,所述PF的数量与所述物理网卡的网口数量相同。
可选的,所述加载模块,还用于在将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,为所述物理网卡所对应的,且除所述第一预设数量的E-VF之外的VF,加载远程直接数据存取RDMA驱动程序,得到加载了RDMA驱动程序的VF。
可选的,所述装置还包括:
重注册启用模块,用于在为所述物理网卡所对应的,且除所述第一预设数量的VF之外的VF,加载RDMA驱动程序,得到加载了RDMA驱动程序的VF之后,启用内核态的周边组件互联PCI重注册模块;
地址分配与组合模块,用于通过所述PCI重注册模块为第一PCI分配第一DMA地址,为第二PCI分配第二DMA地址,并将所述第一DMA地址和所述第二DMA地址进行组合;
其中,在将所述第一DMA地址和所述第二DMA地址进行组合之后,能够通过加载了RDMA驱动程序的VF,将内存数据通过第一PCI分别发送至第一PCI所对应的PF的物理链路,以及第二PCI及第二PCI所对应的PF的物理链路;或者,将内存数据通过第二PCI分别发送至第一PCI及第一PCI所对应的PF的物理链路,以及第二PCI所对应的PF的物理链路;
其中,第一PCI为与所述物理网卡的第一网口相对应的,加载了RDMA驱动程序的VF所指代的虚拟设备,第二PCI为与所述物理网卡的除第一网口之外的其余网口相对应的,加载了RDMA驱动程序的VF所指代的虚拟设备。
可选的,所述装置还包括:
链路切换模块,用于在PF的物理链路发生故障时,基于所述PCI重注册模块进行链路切换。
可选的,所述链路切换模块,还用于在通过LACPDU感知到所述第二PCI所对应的PF的物理链路发生故障时,通过所述第一PCI所对应的PF的物理链路进行所述内存数据的传输;
在通过LACPDU感知到所述第一PCI所对应的PF的物理链路发生故障时,触发所述PCI重注册模块重新注册主PCI,以进行链路切换;其中,所述PCI重注册模块用于将所述第二PCI转换为主PCI;
在通过LACPDU感知到所述第一PCI所对应的PF的物理链路的故障恢复时,触发所述PCI重注册模块重新将所述第一PCI确定为主PCI;
其中,所述主PCI为当前进行内存数据传输的第一PCI或第二PCI。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的一种基于以太网RDMA协议的链路聚合组管理方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的一种基于以太网RDMA协议的链路聚合组管理方法的步骤。
本发明实施例中,先将选取的两个E-VF进行内核态绑定(bonding),而后通过VF(Virtual Function,虚拟功能模块)的关联PF(Physical Function,物理功能模块),获取物理网卡的信息,并构造LACPDU,利用内核态的绑定模块,将载有物理网卡绑定信息的LACPDU,发送到交换机,以实现和交换机的LAG状态的协商、建连和感知,由此,从软件的角度实现了和交换机的LAG状态的协商、建连和感知,实现了数据的高性能无损传输,且减少了对硬件的侵入性开发、缩短了产品的开发周期,并降低了试错成本。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种基于以太网RDMA协议的链路聚合组管理方法的流程图;
图2为本发明实施例提供的一种LACP/LAG内核处理的流程图;
图3为本发明实施例提供的一种基于以太网RDMA协议的链路聚合组管理方法的流程图;
图4为本发明实施例提供的一种基于以太网RDMA协议的链路聚合组管理方法所应用于的以太网RDMA LACP/LAG的架构框图;
图5为本发明实施例提供的一种基于以太网RDMA协议的链路聚合组管理方法的流程图;
图6为本发明实施例提供的一种基于以太网RDMA协议的链路聚合组管理装置的结构框图;
图7为本发明实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种基于以太网RDMA协议的链路聚合组管理方法,如图1所示,方法包括:
步骤S101、将第一预设数量的以太网虚拟功能模块E-VF进行内核态绑定,得到虚拟设备;
其中,E-VF为加载了以太网驱动程序的虚拟功能模块VF;
步骤S102、基于虚拟设备,通过与E-VF相关联的物理功能模块PF,获取PF所对应的物理网卡的信息;
步骤S103、基于信息,构造链路聚合控制协议数据单元LACPDU;
步骤S104、将LACPDU通过物理网卡发送至交换机。
现对相关的技术知识进行简要介绍,本发明实施例涉及以下技术或名词。远程直接数据存取技术可以将一端用户态应用的内存数据直接传递到对端用户态应用的内存中,以实现快速存取。且ROCEv2和iWARP是两种常用的基于以太网的RDMA协议,相较于基于InfiniBand(软件定义网络架构)的RDMA技术而言,具有成本低而兼容性好的优点。链路聚合组是指将若干条以太链路捆绑在一起形成一条逻辑链路,也称Eth-Trunk链路。链路聚合控制协议是一种自动建立链路聚合组的控制协议,用于启用链路聚合组自动配置网络交换机端口,分离链路故障和激活故障切换,是一种常见的Active-Active(双活)的绑定方法,可实现高可用以及网口的充分利用。链路聚合控制协议依赖于LACPDU(Link AggregationControl Protocol Data Unit,链路聚合控制协议数据单元)与对端交换机交互信息,LACPDU中包含设备的系统优先级、MAC地址、接口优先级、接口号和操作Key(用于选择链路聚合成员端口的配置信息)等信息。交换机接收到以上这些信息后,将这些信息与其它端口所保存的信息相比较,以选择能够聚合的端口,双方对端口加入或退出某个动态聚合组达成一致,从而确定承担业务流量的链路(图2示出了LACP/LAG的内核处理流程)。
而如果考虑在硬件中实现动态LAG的机制,则需要在硬件协议栈中增加LACPDU机制、bonding状态维护机制以及FIFO通道切换机制,较为复杂且成本较高,为了减少对硬件的侵入性开发。本发明图1所示的实施例中,在软件中解决RDMA bonding的问题,并实现了软硬件协同、软件动态管理软件协议栈,实现了bonding建连及感知、RDMA用户态应用和内核态天然隔离以及软件控制链路切换。
在一种可能的实现方式中,如图3所示,在步骤S101、将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,方法还包括:
步骤S301、从物理网卡的每个PF中,各选取第二预设数量的VF;
步骤S302、为第一预设数量的VF加载以太网驱动程序,得到加载了以太网驱动程序的E-VF;
其中,第一预设数量=第二预设数量*PF的数量;每个PF均对应第三预设数量的VF;第三预设数量大于第二预设数量,PF的数量与物理网卡的网口数量相同。
需要说明的是,本发明实施例中,并不对PF、VF的数量进行限制。
在一种可能的实现方式中,在步骤S101、将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,方法还包括:为物理网卡所对应的,且除第一预设数量的E-VF之外的VF,加载远程直接数据存取RDMA驱动程序,得到加载了RDMA驱动程序的VF。
具体来说,本发明实施例中,对于基于以太网的RDMA网卡,既可以使用内核态以太网驱动也可以使用基于verbs API的用户态RDMA驱动。
在一种可能的实现方式中,本发明实施例从一个物理网卡的两个PF中分别选择1个VF,共计2个VF加载以太网驱动(称为E-VF),作为数据传输和PCIe BAR配置通道,帮助物理网卡实现LACP机制,除E-VF之外,其余的VF加载RDMA驱动,用于RDMA应用的数据传输。图1所示的步骤S101~S104所示的方法由驱动代理模块执行,首先可设计并启用驱动代理模块,将两个E-VF进行内核态bonding,而后通过VF的关联PF,获取物理网卡的全部信息并构造LACPDU,并利用内核态的bonding模块,将载有物理网卡bonding信息的LACPDU发送到交换机,实现LAG以及bonding状态的协商、建连和感知。其中,LACPDU中包含设备的系统优先级、MAC地址、接口优先级、接口号和操作Key等信息(图4示出了本发明实施例的方法所应用于的以太网RDMA LACP/LAG的架构框图)。
在一种可能的实现方式中,如图5所示,在为物理网卡所对应的,且除第一预设数量的E-VF之外的VF,加载RDMA驱动程序,得到加载了RDMA驱动程序的VF之后,方法还包括:
步骤S501、启用内核态的PCI(Peripheral Component Interconnect,周边组件互联)重注册模块;
步骤S502、通过PCI重注册模块为第一PCI分配第一DMA(Direct Memory Access,直接存储器访问)地址,为第二PCI分配第二DMA地址,并将第一DMA地址和第二DMA地址进行组合;
需要说明的是,通过PCI重注册模块为第一PCI、第二PCI分别分配第一DMA地址和第二DMA地址,使得第一PCI或者第二PCI在进行内存数据传输时,可以直接访问计算机内存所对应的DMA地址,而无需CPU(Central Processing Unit,中央处理器)参与传输过程,从而大大提高了数据传输的效率和速度。
其中,在将第一DMA地址和第二DMA地址进行组合之后,能够通过加载了RDMA驱动程序的VF,将内存数据通过第一PCI分别发送至第一PCI所对应的PF的物理链路,以及第二PCI及第二PCI所对应的PF的物理链路;或者,将内存数据通过第二PCI分别发送至第一PCI及第一PCI所对应的PF的物理链路,以及第二PCI所对应的PF的物理链路;
其中,第一PCI为与物理网卡的第一网口相对应的,加载了RDMA驱动程序的VF所指代的虚拟设备,第二PCI为与物理网卡的除第一网口之外的其余网口相对应的,加载了RDMA驱动程序的VF所指代的虚拟设备。
需要说明的是,本发明实施例中,重点在于设计PCI重注册模块。对于加载了RDMA驱动程序的VF而言,当启用PCI重注册模块时,该PCI注册的DMA内存包括主副两个PCI(上述可能的实现方式中的第一PCI和第二PCI),并进行DMA地址的拼接(即将第一DMA地址和第二DMA地址进行组合),则可以通过加载了RDMA驱动程序的VF,将内存数据通过第一PCI分别发送至第一PCI所对应的PF的物理链路,以及第二PCI及第二PCI所对应的PF的物理链路;或者,将内存数据通过第二PCI分别发送至第一PCI及第一PCI所对应的PF的物理链路,以及第二PCI所对应的PF的物理链路,以实现VF的带宽能力的翻倍,提高带宽利用率。
在一种可能的实现方式中,方法还包括:在PF的物理链路发生故障时,基于PCI重注册模块进行链路切换,在具体的应用场景中,在PF的物理链路发生故障时,基于PCI重注册模块进行链路切换可包括以下几种情况:1、在通过LACPDU感知到第二PCI所对应的PF的物理链路发生故障时,通过第一PCI所对应的PF的物理链路进行内存数据的传输;2、在通过LACPDU感知到第一PCI所对应的PF的物理链路发生故障时,触发PCI重注册模块重新注册主PCI,以进行链路切换;其中,PCI重注册模块用于将第二PCI转换为主PCI;3、在通过LACPDU感知到第一PCI所对应的PF的物理链路的故障恢复时,触发PCI重注册模块重新将第一PCI确定为主PCI;其中,主PCI为当前进行内存数据传输的第一PCI或第二PCI。也就是说,当驱动代理模块通过LACPDU感知到副PCI(对应于第二PCI)所在的PF链路发生故障,则流量会自然全部转移到主PCI所在的PF;当感知到主PCI所在的PF链路发生故障,则触发PCI重注册模块重新注册主PCI,使先前的副PCI转换为主PCI,完成数据链路切换和应用通道切换,当故障链路恢复,则再进行一次主PCI重注册,实现应用通道的恢复。
本发明实施例中,先将选取的两个E-VF进行内核态绑定,而后通过VF的关联PF,获取物理网卡的信息,并构造LACPDU,利用内核态的绑定(bonding)模块,将载有物理网卡绑定信息的LACPDU,发送到交换机,以实现和交换机的LAG状态的协商、建连和感知,由此,从软件的角度实现了和交换机的LAG状态的协商、建连和感知,减少了对硬件的侵入性开发、缩短了产品的开发周期,且降低了试错成本,且实通过本发明实施例,可实现数据的高性能无损传输,而无损网络以及RDMA是当前高性能计算不可或缺的条件,具备高利用率且高可用的以太网RDMA能力,会增强产品的竞争力。
本发明实施例提供一种基于以太网RDMA协议的链路聚合组管理装置,如图6所示,装置60包括:
绑定模块601,用于将第一预设数量的E-VF进行内核态绑定,得到虚拟设备;
其中,E-VF为加载了以太网驱动程序的VF;
获取模块602,用于基于虚拟设备,通过与E-VF相关联的PF,获取PF所对应的物理网卡的信息;
构造模块603,用于基于信息,构造LACPDU;
发送模块604,用于将LACPDU通过物理网卡发送至交换机。
在一种可能的实现方式中,装置60还包括:
选取模块,用于在将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,从物理网卡的每个PF中,各选取第二预设数量的VF;
加载模块,用于为第一预设数量的VF加载以太网驱动程序,得到加载了以太网驱动程序的E-VF;
其中,第一预设数量=第二预设数量*PF的数量;每个PF均对应第三预设数量的VF;第三预设数量大于第二预设数量,PF的数量与物理网卡的网口数量相同。
在一种可能的实现方式中,加载模块,还用于在将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,为物理网卡所对应的,且除第一预设数量的E-VF之外的VF,加载远程直接数据存取RDMA驱动程序,得到加载了RDMA驱动程序的VF。
在一种可能的实现方式中,装置60还包括:
重注册启用模块,用于在为物理网卡所对应的,且除第一预设数量的E-VF之外的VF,加载RDMA驱动程序,得到加载了RDMA驱动程序的VF之后,启用内核态的周边组件互联PCI重注册模块;
地址分配与组合模块,用于通过PCI重注册模块为第一PCI分配第一DMA地址,为第二PCI分配第二DMA地址,并将第一DMA地址和第二DMA地址进行组合;
其中,在将第一DMA地址和第二DMA地址进行组合之后,能够通过加载了RDMA驱动程序的VF,将内存数据通过第一PCI分别发送至第一PCI所对应的PF的物理链路,以及第二PCI及第二PCI所对应的PF的物理链路;或者,将内存数据通过第二PCI分别发送至第一PCI及第一PCI所对应的PF的物理链路,以及第二PCI所对应的PF的物理链路;
其中,第一PCI为与物理网卡的第一网口相对应的,加载了RDMA驱动程序的VF所指代的虚拟设备,第二PCI为与物理网卡的除第一网口之外的其余网口相对应的,加载了RDMA驱动程序的VF所指代的虚拟设备。
在一种可能的实现方式中,装置60还包括:
链路切换模块,用于在PF的物理链路发生故障时,基于PCI重注册模块进行链路切换。
在一种可能的实现方式中,链路切换模块,还用于在通过LACPDU感知到第二PCI所对应的PF的物理链路发生故障时,通过第一PCI所对应的PF的物理链路进行内存数据的传输;
在通过LACPDU感知到第一PCI所对应的PF的物理链路发生故障时,触发PCI重注册模块重新注册主PCI,以进行链路切换;其中,PCI重注册模块用于将第二PCI转换为主PCI;
在通过LACPDU感知到第一PCI所对应的PF的物理链路的故障恢复时,触发PCI重注册模块重新将第一PCI确定为主PCI;
其中,主PCI为当前进行内存数据传输的第一PCI或第二PCI。
综上所述,本发明实施例通过设计驱动代理模块实现VF/PF信息转换、LACP状态感知和状态切换以及对其他模块的调用;设计PCI重注册模块实现PCI的重注册、DMA内存地址的组合和重映射;设计E-VF机制,利用以太驱动的VF和内核的bonding机制,实现对bonding模块的调用,最终从软件的角度实现了和交换机的LAG状态的协商、建连和感知,最终,以较低的成本和较短的周期实现了以太网RDMA的LACP LAG,实现了数据的高性能无损传输,且减少了对硬件的侵入性开发、缩短了产品的开发周期,并降低了试错成本。
本发明实施例还提供一种电子设备70,如图7所示,包括:处理器701、存储器702及存储在存储器702上并可在处理器701上运行的程序,程序被处理器执行时实现如上述实施例所示的一种基于以太网RDMA协议的链路聚合组管理方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述实施例所示的一种基于以太网RDMA协议的链路聚合组管理方法的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (8)
1.一种基于以太网RDMA协议的链路聚合组管理方法,其特征在于,包括:
将第一预设数量的以太网虚拟功能模块E-VF进行内核态绑定,得到虚拟设备;其中,所述E-VF为加载了以太网驱动程序的虚拟功能模块VF;
基于所述虚拟设备,通过与所述E-VF相关联的物理功能模块PF,获取所述PF所对应的物理网卡的信息;
基于所述信息,构造链路聚合控制协议数据单元LACPDU;
将所述LACPDU通过所述物理网卡发送至交换机;
将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,所述方法还包括:
从所述物理网卡的每个PF中,各选取第二预设数量的VF;
为所述第一预设数量的VF加载以太网驱动程序,得到加载了以太网驱动程序的E-VF;
其中,所述第一预设数量=所述第二预设数量*PF的数量;每个PF均对应第三预设数量的VF;所述第三预设数量大于所述第二预设数量,所述PF的数量与所述物理网卡的网口数量相同。
2.根据权利要求1所述的方法,其特征在于,将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,所述方法还包括:
为所述物理网卡所对应的,且除所述第一预设数量的E-VF之外的VF,加载远程直接数据存取RDMA驱动程序,得到加载了RDMA驱动程序的VF。
3.根据权利要求2所述的方法,其特征在于,为所述物理网卡所对应的,且除所述第一预设数量的VF之外的VF,加载RDMA驱动程序,得到加载了RDMA驱动程序的VF之后,所述方法还包括:
启用内核态的周边组件互联PCI重注册模块;
通过所述PCI重注册模块为第一PCI分配第一DMA地址,为第二PCI分配第二DMA地址,并将所述第一DMA地址和所述第二DMA地址进行组合;
其中,在将所述第一DMA地址和所述第二DMA地址进行组合之后,能够通过加载了RDMA驱动程序的VF,将内存数据通过第一PCI分别发送至第一PCI所对应的PF的物理链路,以及第二PCI及第二PCI所对应的PF的物理链路;或者,将内存数据通过第二PCI分别发送至第一PCI及第一PCI所对应的PF的物理链路,以及第二PCI所对应的PF的物理链路;
其中,第一PCI为与所述物理网卡的第一网口相对应的,加载了RDMA驱动程序的VF所指代的虚拟设备,第二PCI为与所述物理网卡的除第一网口之外的其余网口相对应的,加载了RDMA驱动程序的VF所指代的虚拟设备。
4.根据权利要求3所述方法,其特征在于,所述方法还包括:
在PF的物理链路发生故障时,基于所述PCI重注册模块进行链路切换。
5.根据权利要求4所述的方法,其特征在于,在PF的物理链路发生故障时,基于所述PCI重注册模块进行链路切换包括:
在通过LACPDU感知到所述第二PCI所对应的PF的物理链路发生故障时,通过所述第一PCI所对应的PF的物理链路进行所述内存数据的传输;
在通过LACPDU感知到所述第一PCI所对应的PF的物理链路发生故障时,触发所述PCI重注册模块重新注册主PCI,以进行链路切换;其中,所述PCI重注册模块用于将所述第二PCI转换为主PCI;
在通过LACPDU感知到所述第一PCI所对应的PF的物理链路的故障恢复时,触发所述PCI重注册模块重新将所述第一PCI确定为主PCI;
其中,所述主PCI为当前进行内存数据传输的第一PCI或第二PCI。
6.一种基于以太网RDMA协议的链路聚合组管理装置,其特征在于,包括:
绑定模块,用于将第一预设数量的E-VF进行内核态绑定,得到虚拟设备;其中,所述E-VF为加载了以太网驱动程序的VF;
获取模块,用于基于所述虚拟设备,通过与所述E-VF相关联的PF,获取所述PF所对应的物理网卡的信息;
构造模块,用于基于所述信息,构造LACPDU;
发送模块,用于将所述LACPDU通过所述物理网卡发送至交换机;
所述装置还包括:
选取模块,用于在将第一预设数量的E-VF进行内核态绑定,得到虚拟设备之前,从所述物理网卡的每个PF中,各选取第二预设数量的VF;
加载模块,用于为所述第一预设数量的VF加载以太网驱动程序,得到加载了以太网驱动程序的E-VF;
其中,所述第一预设数量=所述第二预设数量*PF的数量;每个PF均对应第三预设数量的VF;所述第三预设数量大于所述第二预设数量,所述PF的数量与所述物理网卡的网口数量相同。
7.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至5中任一项所述的基于以太网RDMA协议的链路聚合组管理方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的基于以太网RDMA协议的链路聚合组管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310879053.4A CN116614459B (zh) | 2023-07-18 | 2023-07-18 | 一种基于以太网rdma协议的链路聚合组管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310879053.4A CN116614459B (zh) | 2023-07-18 | 2023-07-18 | 一种基于以太网rdma协议的链路聚合组管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116614459A CN116614459A (zh) | 2023-08-18 |
CN116614459B true CN116614459B (zh) | 2023-10-13 |
Family
ID=87676746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310879053.4A Active CN116614459B (zh) | 2023-07-18 | 2023-07-18 | 一种基于以太网rdma协议的链路聚合组管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116614459B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326948A (zh) * | 2012-03-19 | 2013-09-25 | 国际商业机器公司 | 至多播路由器端口的未登记多播包转发 |
CN103336708A (zh) * | 2013-05-31 | 2013-10-02 | 华为技术有限公司 | 聚合网卡资源的方法和相关设备及计算机系统 |
CN106713178A (zh) * | 2016-12-16 | 2017-05-24 | 无锡华云数据技术服务有限公司 | 一种云平台交换机端口聚合的配置方法 |
CN109327386A (zh) * | 2018-10-24 | 2019-02-12 | 深圳市共进电子股份有限公司 | 一种链路聚合方法、装置、设备及可读存储介质 |
CN115801750A (zh) * | 2022-10-20 | 2023-03-14 | 浪潮通信技术有限公司 | 虚拟机通信方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9559940B2 (en) * | 2014-03-14 | 2017-01-31 | International Business Machines Corporation | Take-over of network frame handling in a computing environment |
US10419239B2 (en) * | 2016-12-20 | 2019-09-17 | Dell Products, Lp | Switch dependent teaming for high availability of virtual network functions |
US20210006511A1 (en) * | 2020-09-21 | 2021-01-07 | Piotr Uminski | Software-controlled active-backup mode of link aggregation for rdma and virtual functions |
-
2023
- 2023-07-18 CN CN202310879053.4A patent/CN116614459B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326948A (zh) * | 2012-03-19 | 2013-09-25 | 国际商业机器公司 | 至多播路由器端口的未登记多播包转发 |
CN103336708A (zh) * | 2013-05-31 | 2013-10-02 | 华为技术有限公司 | 聚合网卡资源的方法和相关设备及计算机系统 |
CN106713178A (zh) * | 2016-12-16 | 2017-05-24 | 无锡华云数据技术服务有限公司 | 一种云平台交换机端口聚合的配置方法 |
CN109327386A (zh) * | 2018-10-24 | 2019-02-12 | 深圳市共进电子股份有限公司 | 一种链路聚合方法、装置、设备及可读存储介质 |
CN115801750A (zh) * | 2022-10-20 | 2023-03-14 | 浪潮通信技术有限公司 | 虚拟机通信方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116614459A (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
US10642777B2 (en) | System and method for maximizing bandwidth of PCI express peer-to-peer (P2P) connection | |
CN108536121B (zh) | 逻辑通道的建立方法、装置和交通工具通信接口vci | |
CN113485823A (zh) | 数据传输方法、装置、网络设备、存储介质 | |
US11845451B2 (en) | Automobile diagnostic method, apparatus, device and system, and diagnostic connection device | |
CN106209449A (zh) | 一种绑定网卡的方法及装置 | |
WO2014082562A1 (en) | Method, device, and system for information processing based on distributed buses | |
WO2011157026A1 (zh) | 音频传输的实现方法及移动终端 | |
CN107547623B (zh) | 应用数据传输方法、装置、应用服务器和应用代理服务器 | |
US10708378B2 (en) | Data processing method and apparatus, server, and controller | |
CN112039722B (zh) | 一种mqtt协议仿真方法及仿真设备 | |
CN112769794B (zh) | 一种数据转换方法及装置 | |
CN113014528A (zh) | 报文处理方法、处理单元及虚拟专用网络服务器 | |
JP7046983B2 (ja) | パケット伝送方法及び装置 | |
CN113645258A (zh) | 数据传输方法、装置、存储介质、处理器及电子设备 | |
CN113971138A (zh) | 一种数据访问方法及相关设备 | |
CN115357535A (zh) | 一种虚拟串口设计方法及装置 | |
CN116614459B (zh) | 一种基于以太网rdma协议的链路聚合组管理方法及装置 | |
CN107193767B (zh) | 一种双控制器存储系统缓存镜像的数据传输系统 | |
CN108121496B (zh) | 数据的存储方法、装置和系统 | |
CN116243853A (zh) | 数据传输方法、装置、电子设备及非易失性存储介质 | |
CN101227378B (zh) | 基于网络存储的通信业务建立方法及存储设备 | |
JP2006260543A (ja) | データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置 | |
CN116032498A (zh) | 一种内存区域注册方法、装置及设备 | |
EP3631640B1 (en) | Communication between field programmable gate arrays |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40095857 Country of ref document: HK |