CN116319303A - 基于dpu跨卡链路聚合的网卡虚拟化方法 - Google Patents
基于dpu跨卡链路聚合的网卡虚拟化方法 Download PDFInfo
- Publication number
- CN116319303A CN116319303A CN202310166659.3A CN202310166659A CN116319303A CN 116319303 A CN116319303 A CN 116319303A CN 202310166659 A CN202310166659 A CN 202310166659A CN 116319303 A CN116319303 A CN 116319303A
- Authority
- CN
- China
- Prior art keywords
- dpu
- queue
- virtual
- virtual interface
- interface
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及一种基于DPU跨卡链路聚合的网卡虚拟化方法,该方法包括:通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口,所述第一虚拟接口由第一DPU提供,所述第二虚拟接口由第二DPU提供;基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输。本公开通过配置多队列虚拟接口,即使单个DPU出现故障,仍然可以通过多队列虚拟接口经过其他的DPU进行报文传输,消除单点故障,满足生产环境的高可用需求。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种基于DPU跨卡链路聚合的网卡虚拟化方法。
背景技术
数据处理单元或专用数据处理器(Data Processing Unit,DPU)是继中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics processing unit,GPU)之后,数据中心场景中的第三颗重要的算力芯片,为高带宽、低延迟、数据密集的计算场景提供计算引擎。
DPU卡会将物理端口分成若干个虚拟端口供主机上运行的虚拟机使用,这多个虚拟端口隶属于一张DPU卡,当DPU卡出现硬件故障时,就会造成网络中断,影响主机与交换机之间正常的通信,无法保证通信链路的高可用性。
发明内容
为了解决上述技术问题,本公开提供了一种基于DPU跨卡链路聚合的网卡虚拟化方法,以生产环境的高可用需求。
第一方面,本公开实施例提供一种基于DPU跨卡链路聚合的网卡虚拟化方法,包括:
通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口,所述第一虚拟接口由第一DPU提供,所述第二虚拟接口由第二DPU提供;
基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输。
在一些实施例中,所述基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输,包括:
通过DPU管理器获取所述第一DPU与所述第二DPU的运行状态信息,所述运行状态信息用于表征所述第一DPU和/或所述第二DPU是否存在故障;
基于所述运行状态信息,通过虚拟接口驱动选择所述多队列虚拟接口中的第一队列或第二队列完成报文传输,所述第一队列对应所述第一虚拟接口,所述第二队列对应所述第二虚拟接口。
在一些实施例中,所述基于所述运行状态信息,选择所述多队列虚拟接口中的第一队列或第二队列完成报文传输,包括:
若基于所述运行状态信息,确定所述第一DPU与所述第二DPU均不存在故障,则由虚拟机基于bond负载均衡配置,选择所述第一队列或所述第二队列进行报文传输,以实现流量负载均衡。
在一些实施例中,所述方法还包括:
若基于所述运行状态信息,确定所述第一DPU存在故障,则选择所述第二队列完成报文传输;或者,
若基于所述运行状态信息,确定所述第二DPU存在故障,则选择所述第一队列完成报文传输。
在一些实施例中,在所述基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输之前,所述方法还包括:
分别获取所述第一DPU和/或所述第二DPU的链路信息;
基于所述链路信息,实现虚拟交换机能将所述第一DPU和/或所述第二DPU的虚拟功能代理所接收的流量从同一DPU的级联端口发出,相应的级联端口所收到的流量从同一DPU的虚拟功能代理发出。
在一些实施例中,所述获取所述第一DPU和/或所述第二DPU的链路信息,包括:
确定所述第一DPU的虚拟功能代理以及级联端口的组合信息,得到第一数据单元的第一链路信息;
确定所述第二DPU的虚拟功能代理以及级联端口的组合信息,得到第二数据单元的第二链路信息。
在一些实施例中,所述方法还包括:
将所述第一DPU的第一网络接口和所述第二DPU的第二网络接口聚合成一个逻辑网口;
基于所述逻辑网口,实现交换机与所述第一DPU和/或所述第二DPU之间的报文传输。
第二方面,本公开实施例提供一种基于DPU跨卡链路聚合的网卡虚拟化装置,包括:
第一获取模块,用于通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口,所述第一虚拟接口由第一DPU提供,所述第二虚拟接口由第二DPU提供;
第一传输模块,用于基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输。
第三方面,本公开实施例提供一种电子设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的基于DPU跨卡链路聚合的网卡虚拟化方法。
本公开实施例提供的基于DPU跨卡链路聚合的网卡虚拟化方法,通过配置多队列虚拟接口,即使单个DPU出现故障,仍然可以通过多队列虚拟接口经过其他的DPU进行报文传输,消除单点故障,满足生产环境的高可用需求。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一种通信系统结构示意图;
图2为本公开实施例提供的基于DPU跨卡链路聚合的网卡虚拟化方法流程图;
图3为本公开实施例提供的一种应用场景的示意图;
图4为本公开另一实施例提供的基于DPU跨卡链路聚合的网卡虚拟化方法流程图;
图5为本公开另一实施例提供的基于DPU跨卡链路聚合的网卡虚拟化方法流程图;
图6为本公开实施例提供的基于DPU跨卡链路聚合的网卡虚拟化装置的结构示意图;
图7为本公开实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
图1为一种通信系统结构示意图。如图1所示,在主机(host)中运行有虚拟机(VM)、虚拟交换机(Open vSwitch,OVS),主机中还包括一个数据处理单元(DPU)。DPU会将物理端口(MAC)分成若干个虚拟端口(VF)给运行在主机上的虚拟机使用。每个虚拟端口都有分别对应的虚拟端口代理(VF rep),形成(VF,VF rep)组合。虚拟端口代理用于将报文传输至虚拟交换机。物理端口也相应的级联端口(uplink),形成(MAC,uplink)组合,级联端口用于将报文传输至虚拟交换机。虚拟交换机用于对接收到的报文进行处理与转发。
图1中虚线示出了一种报文传输的路径。DPU的物理端口接收交换机通过端口port0发送的报文,经由级联端口(uplink)上送至虚拟交换机,虚拟交换机按一定的规则对宝报文进行处理和分发,将报文通过虚拟端口代理分发至连接不同虚拟机的虚拟端口(图中仅示出一个虚拟机以及相应的虚拟端口)。在这种情况下,报文的传输需要经过DPU,这样整个系统中会出现单点故障,一旦DPU出现硬件故障,将无法保证报文的正常传输。
针对该问题,本公开实施例提供了一种基于DPU跨卡链路聚合的网卡虚拟化方法,下面结合具体的实施例对该方法进行介绍。
图2为本公开实施例提供的基于DPU跨卡链路聚合的网卡虚拟化方法流程图。该方法可以应用于图3所示的应用场景,该应用场景中包括主机(host)、虚拟机(VM)、虚拟交换机(OVS)、第一DPU(DPU1)、第二DPU(DPU2)以及交换机。可以理解的是,本公开实施例提供的基于DPU跨卡链路聚合的网卡虚拟化方法还可以应用在其他场景中。
下面结合图3所示的应用场景,对图2所示的基于DPU跨卡链路聚合的网卡虚拟化方法进行介绍,该方法包括的具体步骤如下:
S201、通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口。
其中,所述第一虚拟接口由第一DPU提供,所述第二虚拟接口由第二DPU提供。
结合图2,在主机中配置多张DPU卡,即多个DPU。本公开实施例中以两张DPU卡,即第一DPU(DPU1)与第二DPU(DPU2)为例。可以理解的是,在实际应用过程中,DPU的数量可以是任意的整数,本公开实施例对此不做限定。
虚拟网卡后端(VF backend)用于将第一DPU的第一虚拟接口(vf1)与第二DPU的第二虚拟接口(vf2)合并,得到多队列虚拟接口(VF)直通至虚拟机(VM)。该多队列虚拟接口包括多个队列,如图2中的第一队列与第二队列(queue1与queue2),每个队列分别对应第一DPU的第一虚拟接口和第二DPU的第二虚拟接口。例如,第一队列对应第一DPU的第一虚拟接口,第二队列对应第二DPU的第二虚拟接口。
S202、基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输。
基于该多队列虚拟接口,虚拟机与多个DPU之间建立了报文通路。如图2所示,虚拟机可以从多个DPU(第一DPU和第二DPU)接收报文,同时可以经由不同的DPU(第一DPU或第二DPU)发出报文,即使单个DPU出现故障,仍然可以通过多队列虚拟接口经过其他的DPU进行报文传输。
本公开实施例通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口,所述第一虚拟接口由第一DPU提供,所述第二虚拟接口由第二DPU提供;基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输,即使单个DPU出现故障,仍然可以通过多队列虚拟接口经过其他的DPU进行报文传输,消除单点故障,满足生产环境的高可用需求。
图4为本公开另一实施例提供的基于DPU跨卡链路聚合的网卡虚拟化方法流程图。如图4所示,该方法包括如下步骤。
S401、通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口。
其中,述第一虚拟接口由第一DPU提供,所述第二虚拟接口由第二DPU提供。
S402、通过DPU管理器获取所述第一DPU与所述第二DPU的运行状态信息。
参见图2,在主机(host)中还运行有DPU管理器(DPU driver),用于感知每个DPU的运行状态,并将所收集到的每个DPU(第一DPU与第二DPU)的运行状态信息上报至虚拟机(VM)中的多队列虚拟接口控制器(VF driver)。
S403、基于所述运行状态信息,通过虚拟接口驱动选择所述多队列虚拟接口中的第一队列或第二队列完成报文传输。
其中,所述第一队列对应所述第一虚拟接口,所述第二队列对应所述第二虚拟接口。
基于DPU管理器所获取的每个DPU的运行状态信息,能够确定DPU是否能够正常运行,或是否存在故障。
当需要通过多队列虚拟接口进行报文的收发时,基于每个DPU的运行状态信息确定能够正常工作的DPU,进一步确定该DPU所对应的队列,完成报文的传输。
具体的,参见上述实施例,多队列虚拟接口包括多个队列,如图2中的第一队列与第二队列(queue1与queue2),每个队列分别对应第一DPU的第一虚拟接口和第二DPU的第二虚拟接口。基于该对应关系,确定该DPU所对应的虚拟接口,完成报文的传输。
在一些实施例中,若基于所述运行状态信息,确定所述第一DPU存在故障,则选择所述第二虚拟接口完成报文传输;或者,若基于所述运行状态信息,确定所述第二DPU存在故障,则选择所述第一虚拟接口完成报文传输。
在一些实施例中,若基于所述运行状态信息,确定所述第一DPU与所述第二DPU均不存在故障,则由虚拟机基于bond负载均衡配置,选择所述第一队列或所述第二队列进行报文传输,以实现流量负载均衡。
若第一DPU与第二DPU均不存在故障,即多队列虚拟接口中的第一虚拟接口或第二虚拟接口均能够正常进行报文的传输,此时由虚拟机基于bond负载均衡配置在所有可用队列中选择一条队列进行报文传输。bond负载均衡配置为虚拟机(VM)内部决定,获取了每个队列的状态信息,在所有可用队列里进行基于流的平均发送。具体的,采取负载分担的方式选择可用队列,进而经由不同的DPU发出报文。负载均衡建立在现有网络结构之上,将任务分摊到多个操作单元上进行执行,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
本公开实施例通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口;通过DPU管理器获取所述第一DPU与所述第二DPU的运行状态信息;基于所述运行状态信息,通过虚拟接口驱动选择所述多队列虚拟接口中的第一队列或第二队列完成报文传输,在除单点故障,满足生产环境的高可用需求的基础上,实现了不同DPU之间的负载均衡,进一步提高了基于DPU跨卡链路聚合的网卡虚拟化方法的效果。
图5为本公开另一实施例提供的基于DPU跨卡链路聚合的网卡虚拟化方法流程图。如图5所示,该方法包括如下步骤。
S501、将所述第一DPU的第一网络接口和所述第二DPU的第二网络接口聚合成一个逻辑网口。
S502、基于所述逻辑网口,实现交换机与所述第一DPU和/或所述第二DPU之间的报文传输。
参见图2,第一DPU与第二任DPU分别有各自对应的网络接口(MAC),分别对应交换机中的接口(port0与port1),在主机与交换机之间进行bond链路聚合,将第一DPU的第一网络接口和第二DPU的第二网络接口聚合成一个逻辑网口。
同理,对于交换机中的接口(port0与port1)进行bond链路聚合,得到一个逻辑接口,主机的逻辑网口与交换机逻辑接口之间通过bond链路进行通信。
S503、分别获取所述第一DPU和/或所述第二DPU的链路信息。
具体的,确定所述第一DPU的虚拟功能代理以及级联端口的组合信息,得到第一数据单元的第一链路信息;确定所述第二DPU的虚拟功能代理以及级联端口的组合信息,得到第二数据单元的第二链路信息。
S504、基于所述链路信息,实现虚拟交换机能将所述第一DPU和/或所述第二DPU的虚拟功能代理所接收的流量从同一DPU的级联端口发出,相应的级联端口所收到的流量从同一DPU的虚拟功能代理发出。
虚拟交换机需要记录每个DPU上的链路信息。其中,链路信息包括虚拟功能代理(vf rep)与级联端口(uplink)所形成的组合信息(vf rep,uplink),该链路信息用于管理报文传输的路径。例如,对于第一DPU的虚拟功能代理(vf1 rep)上收到的报文,需要发往第一DPU的级联端口;对于第二DPU的虚拟功能代理(vf2 rep)上收到的报文,需要发往第一DPU的级联端口;同理,对于第一DPU的级联端口收到的报文,需要发送至第一DPU的虚拟功能代理(vf1 rep);对于第二DPU的级联端口收到的报文,需要发送至第二DPU的虚拟功能代理(vf2 rep)。
S505、通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口。
其中,所述第一虚拟接口由第一DPU提供,所述第二虚拟接口由第二DPU提供。
虚拟网卡后端(VF backend)用于将第一DPU的第一虚拟接口(vf1)与第二DPU的第二虚拟接口(vf2)合并,得到多队列虚拟接口(VF)直通至虚拟机(VM)。该多队列虚拟接口包括多个队列,如图2中的第一队列与第二队列(queue1与queue2),每个队列分别对应第一DPU的第一虚拟接口和第二DPU的第二虚拟接口。例如,第一队列对应第一DPU的第一虚拟接口,第二队列对应第二DPU的第二虚拟接口。
S506、基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输。
基于该多队列虚拟接口,虚拟机与多个DPU之间建立了报文通路。如图2所示,虚拟机可以从多个DPU(第一DPU和第二DPU)接收报文,同时可以经由不同的DPU(第一DPU或第二DPU)发出报文,即使单个DPU出现故障,仍然可以通过多队列虚拟接口经过其他的DPU进行报文传输。
本公开实施例通过将所述第一DPU的第一网络接口和所述第二DPU的第二网络接口聚合成一个逻辑网口;基于所述逻辑网口,实现交换机与所述第一DPU和/或所述第二DPU之间的报文传输;分别获取所述第一DPU和/或所述第二DPU的链路信息;基于所述链路信息,实现虚拟交换机能将所述第一DPU和/或所述第二DPU的虚拟功能代理所接收的流量从同一DPU的级联端口发出,相应的级联端口所收到的流量从同一DPU的虚拟功能代理发出;通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口;基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输,多个DPU共同提供一个多队列虚拟接口供虚拟机使用,在单个DPU硬件故障的情况下,其余DPU还可以正常工作,并且将故障DPU的报文迁移至其余DPU上处理,满足生产环境的高可用需求。
图6为本公开实施例提供的基于DPU跨卡链路聚合的网卡虚拟化装置的结构示意图。该基于DPU跨卡链路聚合的网卡虚拟化装置可以是如上实施例所述的通信系统,或者该基于DPU跨卡链路聚合的网卡虚拟化装置可以该通信设备中的部件或组件。本公开实施例提供的基于DPU跨卡链路聚合的网卡虚拟化装置可以执行基于DPU跨卡链路聚合的网卡虚拟化方法实施例提供的处理流程,如图6所示,基于DPU跨卡链路聚合的网卡虚拟化装置60包括:第一获取模块61、第一传输模块62;第一获取模块61用于通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口,所述第一虚拟接口由第一DPU提供,所述第二虚拟接口由第二DPU提供;第一传输模块62用于基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输。
可选的,第一传输模块62包括获取单元621、选择单元622;获取单元621用于通过DPU管理器获取所述第一DPU与所述第二DPU的运行状态信息,所述运行状态信息用于表征所述第一DPU和/或所述第二DPU是否存在故障;选择单元622用于基于所述运行状态信息,通过虚拟接口驱动选择所述多队列虚拟接口中的第一队列或第二队列完成报文传输。
可选的,选择单元622用于在基于所述运行状态信息,确定所述第一DPU与所述第二DPU均不存在故障的情况下,由虚拟机基于bond负载均衡配置,选择所述第一队列或所述第二队列进行报文传输,以实现流量负载均衡。
可选的,选择单元622还用于在基于所述运行状态信息,确定所述第一DPU存在故障的情况下,选择所述第二队列完成报文传输;或者,基于所述运行状态信息,确定所述第二DPU存在故障的情况下,选择所述第一队列完成报文传输。可选的,基于DPU跨卡链路聚合的网卡虚拟化装置60还包括第二获取模块63、第二传输模块64;第二获取模块63用于分别获取所述第一DPU和/或所述第二DPU的链路信息;第二传输模块64用于基于所述链路信息,实现虚拟交换机能将所述第一DPU和/或所述第二DPU的虚拟功能代理所接收的流量从同一DPU的级联端口发出,相应的级联端口所收到的流量从同一DPU的虚拟功能代理发出。
可选的,第二获取模块63用于确定所述第一DPU的虚拟功能代理以及级联端口的组合信息,得到第一数据单元的第一链路信息;确定所述第二DPU的虚拟功能代理以及级联端口的组合信息,得到第二数据单元的第二链路信息。
可选的,基于DPU跨卡链路聚合的网卡虚拟化装置60还包括聚合模块65;第三传输模块66;聚合模块65用于将所述第一DPU的第一网络接口和所述第二DPU的第二网络接口聚合成一个逻辑网口;第三传输模块66用于基于所述逻辑网口,实现交换机与所述第一DPU和/或所述第二DPU之间的报文传输。
图6所示实施例的基于DPU跨卡链路聚合的网卡虚拟化装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本公开实施例提供的电子设备的结构示意图。该电子设备可以是如上实施例所述的通信系统所在的设备。本公开实施例提供的电子设备可以执行基于DPU跨卡链路聚合的网卡虚拟化方法实施例提供的处理流程,如图7所示,电子设备70包括:存储器71、处理器72、计算机程序和通讯接口73;其中,计算机程序存储在存储器71中,并被配置为由处理器72执行如上所述的基于DPU跨卡链路聚合的网卡虚拟化方法。
另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的基于DPU跨卡链路聚合的网卡虚拟化方法。
此外,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的基于DPU跨卡链路聚合的网卡虚拟化方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于DPU跨卡链路聚合的网卡虚拟化方法,其特征在于,所述方法包括:
通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口,所述第一虚拟接口由第一DPU提供,所述第二虚拟接口由第二DPU提供;
基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输。
2.根据权利要求1所述的方法,其特征在于,所述基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输,包括:
通过DPU管理器获取所述第一DPU与所述第二DPU的运行状态信息,所述运行状态信息用于表征所述第一DPU和/或所述第二DPU是否存在故障;
基于所述运行状态信息,通过虚拟接口驱动选择所述多队列虚拟接口中的第一队列或第二队列完成报文传输,所述第一队列对应所述第一虚拟接口,所述第二队列对应所述第二虚拟接口。
3.根据权利要求2所述的方法,其特征在于,所述基于所述运行状态信息,选择所述多队列虚拟接口中的第一队列或第二队列完成报文传输,包括:
若基于所述运行状态信息,确定所述第一DPU与所述第二DPU均不存在故障,则由虚拟机基于bond负载均衡配置,选择所述第一队列或所述第二队列进行报文传输,以实现流量负载均衡。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若基于所述运行状态信息,确定所述第一DPU存在故障,则选择所述第二队列完成报文传输;或者,
若基于所述运行状态信息,确定所述第二DPU存在故障,则选择所述第一队列完成报文传输。
5.根据权利要求1所述的方法,其特征在于,在所述基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输之前,所述方法还包括:
分别获取所述第一DPU和/或所述第二DPU的链路信息;
基于所述链路信息,实现虚拟交换机能将所述第一DPU和/或所述第二DPU的虚拟功能代理所接收的流量从同一DPU的级联端口发出,相应的级联端口所收到的流量从同一DPU的虚拟功能代理发出。
6.根据权利要求5所述的方法,其特征在于,所述获取所述第一DPU和/或所述第二DPU的链路信息,包括:
确定所述第一DPU的虚拟功能代理以及级联端口的组合信息,得到第一数据单元的第一链路信息;
确定所述第二DPU的虚拟功能代理以及级联端口的组合信息,得到第二数据单元的第二链路信息。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一DPU的第一网络接口和所述第二DPU的第二网络接口聚合成一个逻辑网口;
基于所述逻辑网口,实现交换机与所述第一DPU和/或所述第二DPU之间的报文传输。
8.一种基于DPU跨卡链路聚合的网卡虚拟化装置,其特征在于,包括:
第一获取模块,用于通过虚拟网卡后端将第一虚拟接口与第二虚拟接口合并,得到多队列虚拟接口,所述第一虚拟接口由第一DPU提供,所述第二虚拟接口由第二DPU提供;
第一传输模块,用于基于所述多队列虚拟接口,实现虚拟机与所述第一DPU和/或所述第二DPU之间的报文传输。
9.一种电子设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310166659.3A CN116319303A (zh) | 2023-02-22 | 2023-02-22 | 基于dpu跨卡链路聚合的网卡虚拟化方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310166659.3A CN116319303A (zh) | 2023-02-22 | 2023-02-22 | 基于dpu跨卡链路聚合的网卡虚拟化方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116319303A true CN116319303A (zh) | 2023-06-23 |
Family
ID=86835365
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310166659.3A Pending CN116319303A (zh) | 2023-02-22 | 2023-02-22 | 基于dpu跨卡链路聚合的网卡虚拟化方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116319303A (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116932332A (zh) * | 2023-08-08 | 2023-10-24 | 中科驭数(北京)科技有限公司 | Dpu运行状态监控方法及装置 |
| WO2025177103A1 (zh) * | 2024-02-19 | 2025-08-28 | 云智能资产控股(新加坡)私人股份有限公司 | 设备异常处理方法、电子设备、计算机存储介质和计算机程序产品 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109032754A (zh) * | 2018-06-29 | 2018-12-18 | 华为技术有限公司 | 提高通信路径可靠性的方法和设备 |
| US20190230025A1 (en) * | 2018-01-19 | 2019-07-25 | Vmware, Inc. | Methods and apparatus to configure and manage network resources for use in network-based computing |
| US20210250285A1 (en) * | 2020-02-11 | 2021-08-12 | Fungible, Inc. | Scaled-out transport as connection proxy for device-to-device communications |
| CN113366434A (zh) * | 2019-01-31 | 2021-09-07 | 国际商业机器公司 | 处理输入/输出存储指令 |
-
2023
- 2023-02-22 CN CN202310166659.3A patent/CN116319303A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190230025A1 (en) * | 2018-01-19 | 2019-07-25 | Vmware, Inc. | Methods and apparatus to configure and manage network resources for use in network-based computing |
| CN109032754A (zh) * | 2018-06-29 | 2018-12-18 | 华为技术有限公司 | 提高通信路径可靠性的方法和设备 |
| CN113366434A (zh) * | 2019-01-31 | 2021-09-07 | 国际商业机器公司 | 处理输入/输出存储指令 |
| US20210250285A1 (en) * | 2020-02-11 | 2021-08-12 | Fungible, Inc. | Scaled-out transport as connection proxy for device-to-device communications |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116932332A (zh) * | 2023-08-08 | 2023-10-24 | 中科驭数(北京)科技有限公司 | Dpu运行状态监控方法及装置 |
| CN116932332B (zh) * | 2023-08-08 | 2024-04-19 | 中科驭数(北京)科技有限公司 | Dpu运行状态监控方法及装置 |
| WO2025177103A1 (zh) * | 2024-02-19 | 2025-08-28 | 云智能资产控股(新加坡)私人股份有限公司 | 设备异常处理方法、电子设备、计算机存储介质和计算机程序产品 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8856340B2 (en) | Multi-adapter link aggregation for adapters with hardware based virtual bridges | |
| US8180949B1 (en) | Resource virtualization switch | |
| US10025740B2 (en) | Systems and methods for offloading link aggregation to a host bus adapter (HBA) in single root I/O virtualization (SRIOV) mode | |
| USRE44818E1 (en) | Quality of service in virtual computing environments | |
| US9686203B2 (en) | Flow control credits for priority in lossless ethernet | |
| CN102790777B (zh) | 网络接口适配器注册方法及驱动设备、服务器 | |
| CN103609077B (zh) | 用于数据传输的方法、装置和系统以及物理网卡 | |
| CN106557444B (zh) | 实现sr-iov网卡的方法和装置、实现动态迁移的方法和装置 | |
| US11048535B2 (en) | Method and apparatus for transmitting data packet based on virtual machine | |
| JP2015528231A (ja) | 仮想マシンのフローの物理的なキューへのオフロード | |
| US10097459B2 (en) | Apparatus and method for high-speed data transmission between virtual desktops | |
| CN116319303A (zh) | 基于dpu跨卡链路聚合的网卡虚拟化方法 | |
| CN108768667B (zh) | 一种用于多核处理器片内核间网络通信的方法 | |
| WO2021208101A1 (zh) | 一种有状态业务的处理方法及装置 | |
| CN106412039A (zh) | 一种分布式存储的网络集成的方法及系统 | |
| CN116346727A (zh) | 一种虚拟机的网络限速方法、装置、设备及介质 | |
| WO2024061179A1 (zh) | 逻辑绑定口的管理方法、装置、系统及存储介质 | |
| CN117041147A (zh) | 智能网卡设备、主机设备和方法及系统 | |
| CN120639831A (zh) | 报文传输方法、装置及系统 | |
| CN103353848B (zh) | 多队列或设备的选择方法和计算节点 | |
| CN120751007B (zh) | 通信代理中转模块、带宽增强处理方法、装置、芯片、设备、介质及程序 | |
| US20250240185A1 (en) | Cross network bridging | |
| US20250117238A1 (en) | Optimizing a nic that emulates a local nvme storage device for processes of a host computer | |
| CN120583038A (zh) | 网卡的负载均衡方法、装置、电子设备及存储介质 | |
| CN118869775A (zh) | 报文传输的方法和装置 |
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 |