CN110505164A - 虚拟设备的处理方法及电子设备 - Google Patents
虚拟设备的处理方法及电子设备 Download PDFInfo
- Publication number
- CN110505164A CN110505164A CN201910677447.5A CN201910677447A CN110505164A CN 110505164 A CN110505164 A CN 110505164A CN 201910677447 A CN201910677447 A CN 201910677447A CN 110505164 A CN110505164 A CN 110505164A
- Authority
- CN
- China
- Prior art keywords
- queue
- physical network
- network card
- data
- bandwidth
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/522—Dynamic queue service slot or variable bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6205—Arrangements for avoiding head of line blocking
Abstract
本发明实施例提供一种虚拟设备的处理方法及电子设备;所述方法包括:基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列;其中,所述虚拟设备包括多个物理网卡;基于所述第一队列中的物理网卡发送数据;和/或,基于所述第二队列中的物理网卡接收数据。
Description
技术领域
本发明涉及通信领域技术领域,尤其涉及一种虚拟设备的处理方法及电子设备。
背景技术
目前,在虚拟化网络中,通常下载或上传数据使用同一网卡,当传输数据时,输出传输容易出现拥堵,导致数据发送或者接收失败或延时大的问题。且,若传输数据所需的带宽比较大时,需要配置满足该带宽需求的高速单个网卡,该单个网卡的成本较高。
发明内容
本发明实施例提供了一种虚拟设备的处理方法及电子设备。
本发明的技术方案是这样实现的:
一种虚拟设备的处理方法,包括:
基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列;其中,所述虚拟设备包括多个物理网卡;
基于所述第一队列中的物理网卡发送数据;和/或,基于所述第二队列中的物理网卡接收数据。
上述方案中,所述确定虚拟设备的第一队列和第二队列之前,还包括:
根据预先设置的第一预留数量,为所述第一队列划分第一数量的物理网卡,所述第一预留数量小于或等于所述第一数量;
根据预先设置的第二预留数量,为所述第二队列划分第二数量的物理网卡,所述第二预留数量小于或等于所述第二数量;
所述第一数量和所述第二数量之和,小于或等于所述多个物理网卡的总数。
上述方案中,基于所需的发送带宽和所需的接收带宽,确定虚拟设备的第一队列和第二队列,包括:
基于所述发送带宽和所述接收带宽的比例,确定所述第一队列与所述第二队列中所包含的所述物理网卡数量的比例。
上述方案中,所述基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列,包括:
若确定所述发送带宽增加了第一带宽阈值,和/或,所述接收带宽减少了第二带宽阈值,将所述第二队列中的一个物理网卡划分到所述第一队列中;其中,所述第一带宽阈值与所述第二带宽阈值之差在第一阈值范围内。
上述方案中,所述基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列,包括:
若确定所述发送带宽减少了第三带宽阈值,和/或,所述接收带宽增加了第四带宽阈值,将所述第一队列中的一个物理网卡划分到所述第二队列中;其中,所述第三带宽阈值与所述第四带宽阈值之差在第一阈值范围内。
上述方案中,所述基于所述第一队列中物理网卡发送数据,包括:
将所述数据中数据包依次缓存到所述第一队列;基于所述第一队列中的物理网卡,发送所述数据中数据包;
和/或,
所述基于所述第二队列中物理网卡接收数据,包括:
基于所述第二队列中的物理网卡接收数据;将所述数据中数据包依次缓存到所述第二队列。
上述方案中,所述基于所述第一队列中物理网卡发送数据,包括:
将所述第一队列中物理网卡的源物理地址修改为第二队列中物理网卡的物理地址;基于修改物理地址后的所述第一队列中的所述物理网卡发送数据,以使得所述第二队列中物理网卡能够接收到应答所述数据的数据;
和/或,
所述基于所述第二队列中物理网卡接收数据,包括:
将所述虚拟设备的目的地址修改为所述第一队列中的物理网卡的物理地址;基于修改物理地址后的所述虚拟设备接收数据。
本发明实施例还提供了一种电子设备,包括:
第一确定模块,用于基于所需的发送带宽和/或所需的接收带宽,确定虚拟设备的第一队列和第二队列;其中,所述虚拟设备包括多个物理网卡;
处理模块,基于所述第一队列中的物理网卡发送数据;和/或,基于所述第二队列中的物理网卡接收数据。
上述方案中,所述电子设备,还包括:第二确定模块;其中,
所述第二确定模块,用于根据预先设置的第一预留数量,为所述第一队列划分第一数量的物理网卡,所述第一数量小于或等于所述第一预留数量;
根据预先设置的第二预留数量,为所述第二队列划分第二数量的物理网卡,所述第二数量小于或等于所述第二预留数量;
所述第一预留数量和所述第二预留数量之和,小于或等于所述多个物理网卡的总数
上述方案中,所述第一确定模块,还用于基于所述发送带宽和所述接收带宽的比例,确定所述第一队列与所述第二队列中所包含的所述物理网卡数量的比例。
本发明实施例还提供了一种电子设备,所述电子设备包括:处理器和用于存储能够在处理器上运行计算机服务的存储器,其中所述处理器用于运行所述计算机服务时,实现本发明任一实施例所述的虚拟设备的处理方法。
本发明实施例还提供了一种存储介质,所述存储介质中有计算机可执行指令,所述计算机可执行指令被处理器执行实现本发明任一实施例所述的虚拟设备的处理方法。
在本发明实施例中,通过基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列,并且基于所述第一队列中的物理网卡发送数据和/或基于所述第二队列中的物理网卡接收数据;如此,一方面能够使得虚拟设备中上传和下载数据进行分离,当上传或者下载数据发生单向拥塞时,不至于影响到另一个方向的数据传输;另一方面可以根据实际上传和/或下载的数据所需的带宽(即所需的发送带宽和/或所需的接收带宽),调整用于下载或上传数据的队列的物理网卡数量,从而能够使得上传的队列中的物理网卡满足数据的上传的带宽需求,或者,用于下载的队列中的物理网卡的满足数据的下载的带宽需求,从而大大降低上传数据或下载数据时拥塞情况的出现。
且,由于虚拟设备中包括多个物理网卡,如此,当所需的发送带宽和/或所需的接收带宽比较大时,不必要使用高成本的单个具备高带宽传输能力的物理网卡进行数据传输,可以通过使用一定数量的低成本的具备低带宽传输能力的物理网卡进行数据传输来满足高带宽的传输要求,且,由于具备高带宽传输能力的物理网卡的成本远远高于低带宽传输能力的物理网卡;因而可以在一定程度上降低电子设备中所需物理网卡的成本。
附图说明
图1为本发明实施例提供的一种虚拟设备的处理方法的流程示意图;
图2为本发明实施例提供的另一种虚拟设备的处理方法的流程示意图;
图3为本发明实施例提供的又一种虚拟设备的处理方法的流程示意图;
图4为本发明一实施例中提供的一种数据上传和下载的示意图;
图5为本发明另一实施例中提供的一种数据上传和下载的示意图;
图6为本发明实施例提供的一种电子设备的结构示意图;
图7为本发明实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
如图1所示,本发明实施例提供了一种虚拟设备的方法,包括:
步骤101,基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列;其中,所述虚拟设备包括多个物理网卡;
步骤103,基于所述第一队列中的物理网卡发送数据;和/或,基于所述第二队列中的物理网卡接收数据。
在本发明实施例中,虚拟设备将包括的多个物理网卡划分为第一队列和第二队列,其中,第一队列和第二队列均包括至少一个物理网卡。
其中,具有多个物理网卡的虚拟设备有一个互联网协议(IP)地址,且所述虚拟设备中多个物理网卡的介质访问控制(MAC)地址不同;在所述虚拟设备的MAC地址可以为多个物理网卡中任意一个物理网卡的MAC地址。所述物理地址能唯一标识所述物理网卡;所述物理地址为所述物理网卡中物理存储器中存储单元对应的实际地址。
在一实施例中,所述虚拟设备的MAC地址为正在进行数据上传或数据下载的所述物理网卡中其中一个物理网卡的MAC地址;或者,预先设置所述虚拟设备的第一物理地址,所述第一物理地址与所述多个物理网卡中的各物理网卡的地址均不同。
其中,所述发送带宽为所述虚拟设备发送数据所需的发送带宽,所述接收带宽为所述虚拟设备接收数据所需的接收带宽。
在一实施例中,所述虚拟设备与虚拟机连接,则所述发送带宽可以为所述虚拟机发送数据所需的发送带宽,所述接收带宽可以为所述虚拟机接收数据所需的接收带宽。
在本发明实施例中,通过基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列,并且基于所述第一队列中的物理网卡发送数据和/或基于所述第二队列中的物理网卡接收数据;如此,一方面能够使得虚拟设备中上传和下载数据进行分离,当上传或者下载数据发生单向拥塞时,不至于影响到另一个方向的数据传输,且,由于上传和下载的数据进行分离了,还能实现数据的隔离,一定程度上保证了数据的安全性;另一方面可以根据实际上传和/或下载的数据所需的带宽(即所需的发送带宽和/或所需的接收带宽),调整用于下载或上传数据的队列的物理网卡数量,从而能够使得上传的队列中的物理网卡满足数据的上传的带宽需求,或者,用于下载的队列中的物理网卡的满足数据的下载的带宽需求,从而大大降低上传数据或下载数据时拥塞情况的出现。
在本发明实施例中,由于虚拟设备中包括多个物理网卡,如此,当需要所需的发送带宽和/或所需的接收带宽时,不必要使用单个具备高带宽传输能力的物理网卡进行数据传输,可以通过使用一定数量的具备低带宽传输能力的物理网卡进行数据传输来满足要求(即可以提供足够数据量的普通物理网卡超过单个具备高带宽传输能力的物理网卡速度上限的吞吐能力即可),且,由于具备高带宽传输能力的物理网卡的成本远远高于低带宽传输能力的物理网卡,因而可以在一定程度上降低电子设备中所需物理网卡的成本。且,当所需的发送带宽和/或所需的接收带宽时,也不需要使用单个具备高带宽传输能力的物理网卡进行数据传输,大大避免了该单个具备高带宽传输能力的物理网卡的多余带宽资源的闲置浪费。
在一些实施例中,所述在步骤101之前,还包括:
为所述第一队列预先设置第一预留数量;和/或,
为所述第二队列预先设置第二预留数量;
其中,所述第一预留数量和第二预留数量之和,小于或等于所述物理网卡的总数。
在一应用场景中,所述第一预留数量可以为最小预留数量,即为1;所述第二预留数量也可以为最小预留数量,即为1。
在另一应用场景中,所述第一预留数量可以基于历史的为所述第一队列预先设置的第一预留数量确定。例如,所述历史3次为所述第一队列预先设置的第一预留数量分别为2、1、2,则当前为所述第一队列预先设置的第一预留数据量为2。所述第二预留数量可以基于历史的为所述第二队列预先设置的第二预留数量确定。例如,所述历史3次为所述第二队列预先设置的第二预留数量分别为2、3、3,则当前为所述第二队列预先设置的第二预留数量为3。
在本发明实施例中,可以在根据发送带宽和/或接收带宽确定所述第一队列和第二队列之前,还可以为所述第一队列和/或第二队列预留一定数量的物理网卡,使得在上传超负荷时,依然至少有一个物理网卡被预留用于下载,或者,在下载超负荷时,依然至少有一个物理网卡被预留用于上传;如此,可以使得上传和/或下载队列具有一定的带宽保证,能够大大保证发生单向拥塞时,不至于影响另一方向的数据的传输。
在一些实施例中,如图2所示,所述确定虚拟设备的第一队列和第二队列之前,还包括:
步骤100a,根据预先设置的第一预留数量,为所述第一队列划分第一数量的物理网卡,所述第一预留数量小于或等于所述第一数量;
步骤100b,根据预先设置的第二预留数量,为所述第二队列划分第二数量的物理网卡,所述第二预留数量小于或等于所述第二量;
所述第一数量和所述第二数量之和,小于或等于所述多个物理网卡的总数。
在本发明实施例中,可以在根据所需接收带宽和/或所需发送带宽确定第一队列和第二队列之前,对所述第一队列和所述第二队列中的物理网卡进行初始化设置,保证所述第一队列和所述第二队列一定的带宽传输能力。
在一实施例中,所述步骤100a的一种实现方式为:第一数量=第一预留数量+(多个物理网卡的总数-第一预留数量-第二预留数量)/2;所述步骤100b的一种实现方式为:第二数量=第二预留数量+(多个物理网卡总数-第一预留数量-第二预留数量)/2。
这里,若所述(多个物理网卡的总数-第一预留数量-第二预留数量)/2不能整数,则可以只取(多个物理网卡的总数-第一预留数量-第二预留数量)/2的整数部分进行计算;或者,若所述第一队列中的取(多个物理网卡的总数-第一预留数量-第二预留数量)/2的整数部分+1进行计算,则所述第二队列中取(多个物理网卡的总数-第一预留数量-第二预留数量)/2的整数部分进行计算;或者,若所述第一队列中的取(多个物理网卡的总数-第一预留数量-第二预留数量)/2的整数部分进行计算,则所述第二队列中取(多个物理网卡的总数-第一预留数量-第二预留数量)/2+1的整数部分进行计算。
如此,在本发明实施例中,可以基于第一队列和第二队列分别预先设置的一定数量的物理网卡的前提下,基于所述多个物理网卡对所述第一队列和第二队列进行均分,从而保证在虚拟设备初始化时,第一队列和第二队列能够具有一定相对平分多个物理网卡的带宽传输能力。
在一些实施例中,如图3所示,基于所需的发送带宽和所需的接收带宽,确定虚拟设备的第一队列和第二队列,包括:
步骤101a,基于所述发送带宽和所述接收带宽的比例,确定所述第一队列与所述第二队列中所包含的所述物理网卡数量的比例。
在一应用场景中,若确定所述虚拟设备的发送数据所需的发送带宽为100M/S,所述虚拟设备接收数据所需的接收带宽为50M/S;所述多个物理网卡的个数为20个,其中每个所述物理网卡的传输速率为10M/S;确定出所述发送带宽和所述接收带宽的比例为(100M/S)/(50M/S),即为2/1;则确定出所述第一队列与所述第二队列中所包含的所述物理网卡数量也可为2/1,则确定出所述第一队列中物理网卡的数量为12,确定出所述第二队列中物理网卡的数量为6或7或8。如此,可以基于当前发送数据实际所需的发送带宽和接收数据实际所需的接收带宽,动态调整所述第一队列和第二队列中物理网卡的比例,从而能够准确划分所述第一队列和第二队列的物理网卡的数量,能够提高所述第一队列数据上传和/或所述第二队列数据下载的速率。
在上述应用场景中,由于每个物理网卡的传输速率为10M/S,而所述发送带宽为100M/S,所述接收带宽为50M/S,则确定出所述第一队列中物理网卡的数量大于或等于10,所述第二队列中物理网卡的数量大于或等于5,且保证所述第一队列中物理网卡数量和第二队列中物理网卡数量之和,小于或等于20即可。
在另一些实施例中,如图3所示,所述基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列,包括:
步骤101b,若确定所述发送带宽增加了第一带宽阈值,和/或,所述接收带宽减少了第二带宽阈值,将所述第二队列中的一个物理网卡划分到所述第一队列中;其中,所述第一带宽阈值与所述第二带宽阈值之差在第一阈值范围内。
这里,所述第一带宽阈值小于或等于一个所述物理网卡的传输速率;所述第二带宽阈值小于或等于一个所述物理网卡的传输速率。
这里,所述第一阈值范围小于一个所述物理网卡的传输速率。
所述步骤103b中包括以下三种情况:
第一种情况:若确定当前时刻虚拟设备发送数据所需的发送带宽,比当前时刻之前的时刻发送数据所需的发送带宽增加了第一带宽阈值,将所述第二队列中的一个物理网卡划分到对所述第一队列中;
第二种情况:若确定当前时刻虚拟设备接收数据所需的接收带宽,比当前时刻之前的时刻接收数据所需的接收带宽减少了第二带宽阈值,将所述第二队列中的一个物理网卡划分到对所述第一队列中;
第三种情况:若确定当前时刻虚拟设备发送数据所需的发送带宽,比当前时刻之前的时刻发送数据所需的发送带宽增加了第一带宽阈值,且确定当前时刻虚拟设备接收数据所需的接收带宽,比当前时刻之前的时刻接收数据所需的接收带宽减少了第二带宽阈值,将所述第二队列中的一个物理网卡划分到对所述第一队列中。
在另一些实施例中,若确定所述发送带宽增加了N个第一带宽阈值、所述接收带宽减少了N个第二带宽阈值的至少之一,将所述第二队列中的N个物理网卡划分到所述第一队列中;其中,所述第一带宽阈值与所述第二带宽阈值之差在第一阈值范围内;其中,所述N小于所述多个物理网卡的总数。
这里,所述第一带宽阈值小于或等于一个所述物理网卡的传输速率;所述第二带宽阈值小于或等于一个所述物理网卡的传输速率;或者,所述N个第一带宽阈值小于N+1个所述物理网卡的传输速率之和、且大于N-1个所述物理网卡的传输速率之和,所述N个第二带宽阈值小于N+1个所述物理网卡的传输速率之和、且大于N-1个所述物理网卡的传输速率之和。
在本发明实施例中,可以基于发送带宽的增加和/或接收带宽的减少,将所述第二队列中的一个或者部分物理网卡划分到第一队列中;其中,当所述发送带宽增加了第一带宽阈值时和/或接收带宽减少了第二带宽阈值时,将第二队列中的一个物理网卡划分到第一队列中;当所述发送带宽增加了N个第一带宽阈值和/或所述接收带宽减少了N个第二带宽阈值时,将第二队列中N个物理网卡划分到第一队列中;如此,可以实现基于当前上传和/或下载数据所需的带宽,动态调整上传和/下载对应队列中的物理网卡数量,从而提高数据传输的效率,降低数据传输的拥塞出现。
在又一些实施例中,所述基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列,包括:
步骤101c,若确定所述发送带宽减少了第三带宽阈值,和/或,所述接收带宽增加了第四带宽阈值,将所述第一队列中的一个物理网卡划分到所述第二队列中;其中,所述第三带宽阈值与所述第四带宽阈值之差在第一阈值范围内。
这里,所述第三带宽阈值小于或等于一个所述物理网卡的传输速率;所述第四带宽阈值小于或等于一个所述物理网卡的传输速率。
这里,所述第一阈值范围小于一个所述物理网卡的传输速率。
所述步骤103c中包括以下三种情况:
第一种情况:若确定当前时刻虚拟设备发送数据所需的发送带宽,比当前时刻之前的时刻发送数据所需的发送带宽减少了第三带宽阈值,将所述第一队列中的一个物理网卡划分到对所述第二队列中;
第二种情况:若确定当前时刻虚拟设备接收数据所需的接收带宽,比当前时刻之前的时刻接收数据所需的接收带宽增加了第四带宽阈值,将所述第一队列中的一个物理网卡划分到对所述第二队列中;
第三种情况:若确定当前时刻虚拟设备发送数据所需的发送带宽,比当前时刻之前的时刻发送数据所需的发送带宽减少了第三带宽阈值,且确定当前时刻虚拟设备接收数据所需的接收带宽,比当前时刻之前的时刻接收数据所需的接收带宽增加了第四带宽阈值,将所述第一队列中的一个物理网卡划分到对所述第二队列中。
在另一些实施例中,若确定所述发送带宽减少了N个第三带宽阈值、所述接收带宽增加了N个第四带宽阈值的至少之一,将所述第二队列中的N个物理网卡划分到所述第一队列中;其中,所述第三带宽阈值与所述第四带宽阈值之差在第二阈值范围内;其中,所述N小于所述多个物理网卡的总数。
这里,所述第三带宽阈值小于或等于一个所述物理网卡的传输速率;所述第四带宽阈值小于或等于一个所述物理网卡的传输速率;或者,所述N个第三带宽阈值小于N+1个所述物理网卡的传输速率之和、且大于N-1个所述物理网卡的传输速率之和,所述N个第四带宽阈值小于N+1个所述物理网卡的传输速率之和、且大于N-1个所述物理网卡的传输速率之和。
在本发明实施例中,可以基于发送带宽的减少和/或接收带宽的增加,将所述第一队列中的一个或者部分物理网卡划分到第二队列中;其中,当所述发送带宽减少了第三带宽阈值时和/或接收带宽增加了第四带宽阈值时,将第一队列中的一个物理网卡划分到第二队列中;当所述发送带宽减少了N个第一带宽阈值和/或所述接收带宽增加了N个第二带宽阈值时,将第一队列中N个物理网卡划分到第二队列中;如此,可以实现基于当前上传和/或下载数据所需的带宽,动态调整上传和/下载对应队列中的物理网卡数量,从而提高数据传输的效率,降低数据传输的拥塞出现。
在一些实施例中,所述基于所述第一队列中物理网卡发送数据,包括:
将所述数据中数据包依次缓存到所述第一队列;基于所述第一队列中的物理网卡,发送所述数据中数据包;
和/或,
所述基于所述第二队列中物理网卡接收数据,包括:
基于所述第二队列中的物理网卡接收数据;将所述数据中数据包依次缓存到所述第二队列。
这里,所述第一队列为上传队列,所述第二队列为下载队列;所述虚拟设备为虚拟网卡。
在一实际应用中,如图4所示,所述虚拟设备与虚拟机(VM)连接,所述虚拟设备对应一个端口(eth0);在所述虚拟机的前端,将所述虚拟设备划分为第一队列和第二队列;在所述虚拟机的后端,包括多个物理网卡,所述物理网卡通过驱动连接(Source driver),每个所述物理网卡对应不同的端口(Ethernet);其中,所述第一队列对应一定数量的物理网卡,所第二队列对应一定数量的物理网卡。
对于数据上传时,前端在接收来自所述虚拟机发送给所述虚拟设备的数据包时,将所述数据包按顺序依次缓存在所述第一队列中;而后端实现中,通过所述第一队列对应的所述物理网卡从所述第一队列中依次分别取出数据包,并将所述数据包发送给外网。
对于数据下载时,在后端实现中,所述第二队列对应的所述物理网卡接收来自外网的数据包,并将数据包依次缓存在前端的第二队列中;在前端实现中,所述虚拟设备将所述数据包依次取出,并发送给所述虚拟机。
在本发明实施例中,可以将来自虚拟机的所述数据包缓存到前端的第一队列中,并基于与第一队列驱动连接的物理网卡将所述数据包发送到外网,实现基于多个物理网卡的数据的上传;且,可以将来自外网的数据包通过与第二队列驱动连接的物理网卡下载下来,并通过缓存到前端的第二队列中,基于第二队列发送给虚拟机,从而实现基于多个物理网卡的数据的下载。一方面可以通过设置多个普通物理网卡而代替一个高速的物理网卡,降低物理网卡的设计成本;另一方面能够实现上传或下载数据的分离,当上传或下载数据中单方向发生拥塞时,不至于影响到另一方向的数据传输。
且,在本发明实施例中,可以将数据包依次缓存到第一队列或第二队列中,可以使得上传或下载数据不会发生错乱,保证了数据的正确性。
在一些实施例中,所述基于所述第一队列中物理网卡发送数据,包括:
将所述第一队列中物理网卡的源物理地址修改为第二队列中物理网卡的物理地址;基于修改物理地址后的所述第一队列中的所述物理网卡发送数据,以使得所述第二队列中物理网卡能够接收到应答所述数据的数据;
和/或,
所述基于所述第二队列中物理网卡接收数据,包括:
将所述虚拟设备的目的地址修改为所述第一队列中的物理网卡的物理地址;基于修改物理地址后的所述虚拟设备接收数据。
在本发明实施例中,可以基于第一队列发送数据的源地址修改为第二队列中物理网卡的物理地址,使得所述第二队列中的物理地址能够顺利的接收到所述发送数据的应答包;且将所述虚拟设备的目的地址修改为所述第一队列中的物理网卡的物理地址,确保所述虚拟设备能够接收应答所述第一队列中物理网卡发送的发送数据的应答包。
这里,所述虚拟设备可以为下述应用场景中的虚拟网卡;所述第一队列为上传队列,所述第一队列的物理网卡为物理上传网卡;所述第二队列为下载队列,所述第二队列的物理网卡为物理下载网卡。
在一实际应用中,如图5所示,在上传数据时:虚拟机的虚拟网卡的MAC地址为aa:bb:cc:dd:ee:ff,IP地址为1.2.3.4,端口为1234;虚拟机在对所述数据进行封装,获得所述数据对应的数据包后,发送给所述虚拟网卡;所述虚拟网卡将接收到的数据包发送给虚拟机前端的上传队列;所述上传队列对所述数据包进行以下处理:将所述上传队列中的物理上传网卡发送所述数据包的源IP地址修改为5.6.7.8,所述5.6.7.8的IP地址为所述下载队列中的物理下载网卡的IP地址;将所述物理上传网卡发送所述数据包的源MAC地址修改为ff:ee:dd:cc:bb:aa,所述ff:ee:dd:cc:bb:aa的物理地址为所述下载队列的物理下载网卡的MAC地址;在上述修改完成后,基于所述物理上传网卡将所述数据包发送出去。
在下载数据时:所述下载队列的IP地址为5.6.7.8,所述下载队列中MAC地址为ff:ee:dd:cc:bb:aa的物理下载网卡会收到来自远端服务器的应答包;所述地址为ff:ee:dd:cc:bb:aa的物理下载网卡将所述应答包缓存到所述下载队列;下载队列对所述应答包进行以下处理:将所述应答包的IP地址修改为1.2.3.4,所述1.2.3.4的IP地址为所述虚拟网卡的IP地址;将所述应答包的MAC地址修改为aa:bb:cc:dd:ee:ff,所述aa:bb:cc:dd:ee:ff的物理地址为所述虚拟网卡的MAC地址;在上述修改完成之后,基于所述物理下载网卡,将所述应答包发送给虚拟机。
在本发明实施例中,在发送数据时,为了确保发送数据的应答包能够从负责接收数据的物理网卡送达,可以将发送报文的源MAC地址修改为负责接收数据的物理网卡的MAC地址;反之,为了确保能够基于接收到基于所述发送数据返回的应答包,将所述应答包的目的物理地址修改为虚拟网卡的物理地址。
这里需要指出的是:以下电子设备的描述,与上述虚拟设备的处理方法项描述是类似的,同方法的有益效果描述,不做赘述。对于本发明电子设备实施例中未披露的技术细节,请参照本发明虚拟设备的处理方法实施例的描述。
如图6所示,发明实施例还提供了一种电子设备,包括:
第一确定模块61,用于基于所需的发送带宽和/或所需的接收带宽,确定虚拟设备的第一队列和第二队列;其中,所述虚拟设备包括多个物理网卡;
处理模块62,基于所述第一队列中的物理网卡发送数据;和/或,基于所述第二队列中的物理网卡接收数据。
在一些实施例中,所述电子设备,还包括:第二确定模块63;其中,
所述第二确定模块63,用于根据预先设置的第一预留数量,为所述第一队列划分第一数量的物理网卡,所述第一预留数量小于或等于所述第一数量;
根据预先设置的第二预留数量,为所述第二队列划分第二数量的物理网卡,所述第二预留数量小于或等于所述第二数量;
所述第一数量和所述第二数量之和,小于或等于所述多个物理网卡的总数
在一些实施例中,所述第一确定模块61,还用于基于所述发送带宽和所述接收带宽的比例,确定所述第一队列与所述第二队列中所包含的所述物理网卡数量的比例。
在一些实施例中,所述第一确定模块61,用于若确定所述发送带宽增加了第一带宽阈值,和/或,所述接收带宽减少了第二带宽阈值,将所述第二队列中的一个物理网卡划分到所述第一队列中;其中,所述第一带宽阈值与所述第二带宽阈值之差在第一阈值范围内。
在一些实施例中,所述第一确定模块61,用于若确定所述发送带宽减少了第三带宽阈值,和/或,所述接收带宽增加了第四带宽阈值,将所述第一队列中的一个物理网卡划分到所述第二队列中;其中,所述第三带宽阈值与所述第四带宽阈值之差在第一阈值范围内。
在一些实施例中,所述处理模块62,用于将所述数据中数据包依次缓存到所述第一队列;基于所述第一队列中的物理网卡,发送所述数据中数据包;
和/或,
用于基于所述第二队列中的物理网卡接收数据;将所述数据中数据包依次缓存到所述第二队列。
在一些实施例中,所述处理模块62,用于将所述第一队列中物理网卡的源物理地址修改为第二队列中物理网卡的物理地址;基于修改物理地址后的所述第一队列中的所述物理网卡发送数据,以使得所述第二队列中物理网卡能够接收到应答所述数据的数据;
和/或,
用于将所述虚拟设备的目的地址修改为所述第一队列中的物理网卡的物理地址;基于修改物理地址后的所述虚拟设备接收数据。
这里需要指出的是:以下电子设备和存储介质的描述,与上述虚拟设备的处理方法项描述是类似的,同方法的有益效果描述,不做赘述。对于本发明电子设备实施例中未披露的技术细节,请参照本发明虚拟设备的处理方法实施例的描述而理解。
如图7所示,本发明实施例公开了一种电子设备,所述电子设备包括:处理器71和用于存储能够在处理器71上运行计算机服务的存储器72,其中所述处理器71用于运行所述计算机服务时,实现应用于所述交通工具的所述的虚拟设备的处理方法。
在一些实施例中,本发明实施例中的存储器72可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器71可能种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本发明又一实施例提供了一种计算机存储介质,该计算机可读存储介质存储有可执行程序,所述可执行程序被处理器执行时,可实现应用于所述电子设备的虚拟设备的处理方法的步骤。例如,如图1-3所示的方法中的一个或多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种虚拟设备的处理方法,所述方法包括:
基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列;其中,所述虚拟设备包括多个物理网卡;
基于所述第一队列中的物理网卡发送数据;和/或,基于所述第二队列中的物理网卡接收数据。
2.根据权利要求1所述的方法,所述确定虚拟设备的第一队列和第二队列之前,还包括:
根据预先设置的第一预留数量,为所述第一队列划分第一数量的物理网卡,所述第一预留数量小于或等于所述第一数量;
根据预先设置的第二预留数量,为所述第二队列划分第二数量的物理网卡,所述第二预留数量小于或等于所述第二数量;
所述第一数量和所述第二数量之和,小于或等于所述多个物理网卡的总数。
3.根据权利要1或2所述的方法,基于所需的发送带宽和所需的接收带宽,确定虚拟设备的第一队列和第二队列,包括:
基于所述发送带宽和所述接收带宽的比例,确定所述第一队列与所述第二队列中所包含的所述物理网卡数量的比例。
4.根据权利要求1或2所述的方法,所述基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列,包括:
若确定所述发送带宽增加了第一带宽阈值,和/或,所述接收带宽减少了第二带宽阈值,将所述第二队列中的一个物理网卡划分到所述第一队列中;其中,所述第一带宽阈值与所述第二带宽阈值之差在第一阈值范围内。
5.根据权利要求1或2所述的方法,所述基于所需的发送带宽、所需的接收带宽的至少之一,确定虚拟设备的第一队列和第二队列,包括:
若确定所述发送带宽减少了第三带宽阈值,和/或,所述接收带宽增加了第四带宽阈值,将所述第一队列中的一个物理网卡划分到所述第二队列中;其中,所述第三带宽阈值与所述第四带宽阈值之差在第一阈值范围内。
6.根据权利要求1所述的方法,所述基于所述第一队列中物理网卡发送数据,包括:
将所述数据中数据包依次缓存到所述第一队列;基于所述第一队列中的物理网卡,发送所述数据中数据包;
和/或,
所述基于所述第二队列中物理网卡接收数据,包括:
基于所述第二队列中的物理网卡接收数据;将所述数据中数据包依次缓存到所述第二队列。
7.根据权利要求1所述的方法,所述基于所述第一队列中物理网卡发送数据,包括:
将所述第一队列中物理网卡的源物理地址修改为第二队列中物理网卡的物理地址;基于修改物理地址后的所述第一队列中的所述物理网卡发送数据,以使得所述第二队列中物理网卡能够接收到应答所述数据的数据;
和/或,
所述基于所述第二队列中物理网卡接收数据,包括:
将所述虚拟设备的目的地址修改为所述第一队列中的物理网卡的物理地址;基于修改物理地址后的所述虚拟设备接收数据。
8.一种电子设备,所述电子设备包括:
第一确定模块,用于基于所需的发送带宽和/或所需的接收带宽,确定虚拟设备的第一队列和第二队列;其中,所述虚拟设备包括多个物理网卡;
处理模块,基于所述第一队列中的物理网卡发送数据;和/或,基于所述第二队列中的物理网卡接收数据。
9.根据权利要求8所述的电子设备,还包括:第二确定模块;其中,
所述第二确定模块,用于根据预先设置的第一预留数量,为所述第一队列划分第一数量的物理网卡,所述第一预留数量小于或等于所述第一数量;
根据预先设置的第二预留数量,为所述第二队列划分第二数量的物理网卡,所述第二预留数量小于或等于所述第二数量;
所述第一数量和所述第二数量之和,小于或等于所述多个物理网卡的总数。
10.根据权利要求8所述的电子设备,所述第一确定模块,还用于基于所述发送带宽和所述接收带宽的比例,确定所述第一队列与所述第二队列中所包含的所述物理网卡数量的比例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910677447.5A CN110505164B (zh) | 2019-07-25 | 2019-07-25 | 虚拟设备的处理方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910677447.5A CN110505164B (zh) | 2019-07-25 | 2019-07-25 | 虚拟设备的处理方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110505164A true CN110505164A (zh) | 2019-11-26 |
CN110505164B CN110505164B (zh) | 2022-05-31 |
Family
ID=68587249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910677447.5A Active CN110505164B (zh) | 2019-07-25 | 2019-07-25 | 虚拟设备的处理方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110505164B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363185A (zh) * | 2022-03-17 | 2022-04-15 | 阿里云计算有限公司 | 虚拟资源处理方法以及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102368725A (zh) * | 2011-09-09 | 2012-03-07 | 北京东方网信科技股份有限公司 | 一种多网卡的数据接收方法及系统 |
CN102932174A (zh) * | 2012-10-25 | 2013-02-13 | 华为技术有限公司 | 一种物理网卡管理方法、装置及物理主机 |
CN103634225A (zh) * | 2013-12-18 | 2014-03-12 | 武汉朋客云计算有限公司 | 云计算网络虚拟化中的业务带宽扩展方法 |
CN103841049A (zh) * | 2012-11-20 | 2014-06-04 | 联想(北京)有限公司 | 一种带宽分配方法、通信方法以及电子设备 |
CN104580391A (zh) * | 2014-12-18 | 2015-04-29 | 国云科技股份有限公司 | 一种适用于云计算的提高服务器带宽的方法 |
CN104750543A (zh) * | 2013-12-26 | 2015-07-01 | 杭州华为数字技术有限公司 | 线程创建方法、业务请求处理方法及相关设备 |
CN106027304A (zh) * | 2016-05-24 | 2016-10-12 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107809415A (zh) * | 2017-08-07 | 2018-03-16 | 国网河南省电力公司 | 基于双单向通道传输技术的网络隔离系统及其实现方法 |
-
2019
- 2019-07-25 CN CN201910677447.5A patent/CN110505164B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102368725A (zh) * | 2011-09-09 | 2012-03-07 | 北京东方网信科技股份有限公司 | 一种多网卡的数据接收方法及系统 |
CN102932174A (zh) * | 2012-10-25 | 2013-02-13 | 华为技术有限公司 | 一种物理网卡管理方法、装置及物理主机 |
CN103841049A (zh) * | 2012-11-20 | 2014-06-04 | 联想(北京)有限公司 | 一种带宽分配方法、通信方法以及电子设备 |
CN103634225A (zh) * | 2013-12-18 | 2014-03-12 | 武汉朋客云计算有限公司 | 云计算网络虚拟化中的业务带宽扩展方法 |
CN104750543A (zh) * | 2013-12-26 | 2015-07-01 | 杭州华为数字技术有限公司 | 线程创建方法、业务请求处理方法及相关设备 |
CN104580391A (zh) * | 2014-12-18 | 2015-04-29 | 国云科技股份有限公司 | 一种适用于云计算的提高服务器带宽的方法 |
CN106027304A (zh) * | 2016-05-24 | 2016-10-12 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107809415A (zh) * | 2017-08-07 | 2018-03-16 | 国网河南省电力公司 | 基于双单向通道传输技术的网络隔离系统及其实现方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363185A (zh) * | 2022-03-17 | 2022-04-15 | 阿里云计算有限公司 | 虚拟资源处理方法以及装置 |
WO2023174184A1 (zh) * | 2022-03-17 | 2023-09-21 | 阿里云计算有限公司 | 虚拟资源处理方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110505164B (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6877048B2 (en) | Dynamic memory allocation between inbound and outbound buffers in a protocol handler | |
CN106209679B (zh) | 用于使用多个链接的存储器列表的方法及装置 | |
US9350667B2 (en) | Dynamically assigning packet flows | |
KR100883405B1 (ko) | 공유된 속성들에 근거하여 압축된 큐 쌍으로부터 다중의가상 큐 쌍들을 생성하는 장치 | |
US6522188B1 (en) | High-speed data bus for network switching | |
US9450894B2 (en) | Integrated circuit device and method of performing cut-through forwarding of packet data | |
US7995472B2 (en) | Flexible network processor scheduler and data flow | |
US9361225B2 (en) | Centralized memory allocation with write pointer drift correction | |
KR20040002922A (ko) | 네트워크 프로세서의 멀티캐스트 전송 방법, 이 방법을수행하기 위한 컴퓨터 프로그램 및 멀티캐스트 전송 지원네트워크 프로세서 | |
US10601713B1 (en) | Methods and network device for performing cut-through | |
US11394664B2 (en) | Network interface device | |
JP2011024027A (ja) | パケット送信制御装置、ハードウェア回路およびプログラム | |
US20200076742A1 (en) | Sending data using a plurality of credit pools at the receivers | |
US20120263181A1 (en) | System and method for split ring first in first out buffer memory with priority | |
CN110505164A (zh) | 虚拟设备的处理方法及电子设备 | |
US20040017813A1 (en) | Transmitting data from a plurality of virtual channels via a multiple processor device | |
US7583678B1 (en) | Methods and apparatus for scheduling entities using a primary scheduling mechanism such as calendar scheduling filled in with entities from a secondary scheduling mechanism | |
US11683276B2 (en) | Quasi-output queue behavior of a packet switching device achieved using virtual output queue ordering independently determined for each output queue | |
US20070104187A1 (en) | Cache-based free address pool | |
US8447900B1 (en) | Adaptive multiple FIFO scheme | |
Chrysos et al. | Tandem queue weighted fair smooth scheduling | |
US9262369B1 (en) | Apparatus and method for accelerated page link list processing in a packet processor operating at wirespeed | |
CN117294642A (zh) | 适用于rdma网络的多租户在网聚合传输系统及方法 | |
CN115701063A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |