用于转发数据包的方法、网卡、主机设备和计算机系统技术方案

技术编号:25126132 阅读:22 留言:0更新日期:2020-08-05 02:55
本申请提供一种用于转发数据包的方法、网卡、主机设备和计算机系统,该方法应用于网卡,网卡与主机设备相连,主机设备包括第一VM,第一VM包括N个vNIC,网卡包括分配给第一VM的第一VF,N为大于1的整数,该方法包括:接收主机设备发送的映射关系信息,映射关系信息用于指示第一VF配置的队列中的N对队列与N个vNIC之间的一一映射关系,N对队列中的每对队列用于转发每对队列对应的vNIC的数据包;将映射关系信息记录在网卡的转发表中;根据转发表中记录的映射关系信息,转发N个vNIC的数据包。本申请通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,实现了多个vNIC之间的带宽资源共享。

【技术实现步骤摘要】
用于转发数据包的方法、网卡、主机设备和计算机系统
本申请涉及虚拟化
,并且更具体地,涉及一种用于转发数据包的方法、网卡、主机设备和计算机系统。
技术介绍
通过虚拟化技术,可以在一台主机设备(主机设备也可称为计算机设备、物理主机或物理计算机)上模拟出一台或多台虚拟机(virtualmachine,VM)。VM可以像主机设备一样工作。例如,用户可以在VM上安装操作系统和应用程序;又如,用户可以通过VM访问网络资源。对于用户而言,VM可以看成是运行在主机设备上的应用程序,但对于运行在VM中的应用程序而言,VM就像真正的主机设备一样为该应用程序提供工作环境。单根输入输出虚拟化(singlerootiinput/outputvirtualization,SRIOV)技术允许在多个VM之间高效共享外设部件互连表示(peripheralcomponentinterconnectexpress,PCIe)设备。SRIOV引入了物理功能(physicalfunction,PF)和虚拟功能(virtualfunction,VF)的概念,以支持网卡(或称网络接口卡、物理网卡或物理网络接口卡)的虚拟化。PF是网卡所支持的一项PCI功能,PF可以扩展出若干个VF。VF是支持SRIOV的网卡所虚拟出的一个实例,网卡中的每个VF配置有进行数据传输的带宽资源,每个VF会经由虚拟机监控器(virtualmachinemonitor,VMM)分配给主机设备上运行的VM使用。网卡内部提供了虚拟交换机功能,并能通过PF/VF提供了带宽限制功能。用户(或管理员)可以根据该带宽限制功能为每个VF分配带宽。现有技术中,由于一个VF对应一个虚拟网络接口卡(virtualnetworkinterfacecard,vNIC,简称虚拟网卡),因此,每个VF分配的带宽资源仅能供一个vNIC使用,无法在多个vNIC之间共享带宽资源。
技术实现思路
本申请提供一种用于转发数据包的方法、网卡、主机设备和计算机系统,使得同一VM中的各vNIC之间可以共享带宽资源。一方面,本申请提供一种用于转发数据包的方法,所述方法应用于网卡,所述网卡与主机设备相连,所述主机设备包括第一VM(或主机设备上运行着第一VM),所述第一VM包括N个vNIC,所述网卡包括分配给所述第一VM的第一VF,N为大于1的整数,所述方法包括:接收所述主机设备发送的映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;将所述映射关系信息记录在所述网卡的转发表中;根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包。通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,使得N个vNIC的数据包均会使用第一VF中的队列进行转发,由于网卡会以VF为单位分配带宽资源,因此,该N个vNIC可以共享第一VF的带宽资源。在一种可能的设计中,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。在一种可能的设计中,所述根据所述转发表中记录的所述映射关系信息,转发所述N个vNIC的数据包,包括:接收第一数据包,所述第一数据包是发往所述N个vNIC中的第一vNIC的数据包,所述第一数据包包括所述第一vNIC的标识;根据所述第一vNIC的标识,通过查询所述转发表中的所述映射关系信息,确定所述第一vNIC对应所述第一VF中的目标接收队列;从所述第一VF的PCI内存空间中获取所述目标接收队列的控制信息;根据所述目标接收队列的控制信息,通过所述目标接收队列向所述第一vNIC发送所述第一数据包。在一种可能的设计中,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的MAC地址和VLAN标识。在一种可能的设计中,所述方法还包括:在所述第一VM启动之前,从所述网卡的PF的驱动接收第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;在所述第一VM启动的过程中,向所述第一VF的驱动发送第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。现有技术中,一个VF驱动仅会创建一个vNIC,本方案,第一VF的驱动能够根据第一VF启用的队列的数量创建相应数量的vNIC,与现有技术相比更加灵活。在一种可能的设计中,所述方法还包括:从所述网卡的PF驱动接收限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略;根据所述整体限速策略,配置所述第一VF对应的带宽资源。现有技术中,由于一个VF仅对应一个vNIC,因此只能制定针对一个vNIC的限速策略,本方案中,由于N个vNIC共享第一VF的带宽资源,因此可以制定针对N个vNIC的整体限速策略,丰富了限速策略的种类。在一种可能的设计中,所述N个vNIC为所述第一VM中的全部vNIC。通过建立第一VF的队列与第一VM中的全部vNIC的对应关系,使得一个VF可以服务于一个VM,该VM中的全部vNIC可以共享同一VF的带宽资源。在一种可能的设计中,所述N个vNIC为所述第一VM中的全部vNIC,所述方法还包括:从所述网卡的PF驱动接收针对第一VM的限速策略信息;根据所述针对第一VM的限速策略信息,配置所述第一VF对应的带宽资源。通过制定针对VM的限速策略信息,进一步丰富了限速策略的种类。另一方面,本申请提供一种用于转发数据包的方法,所述方法应用于主机设备,所述主机设备与网卡相连,所述主机设备包括第一VM,所述第一VM包括N个vNIC,所述网卡包括分配给所述第一VM的第一VF,N为大于1的整数,所述方法包括:获取映射关系信息,所述映射关系信息用于指示所述第一VF配置的队列中的N对队列与所述N个vNIC之间的一一映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;向所述网卡发送所述映射关系信息,以便所述网卡将所述映射关系信息记录在所述网卡的转发表中。通过建立第一VF的N对队列和第一VM的N个vNIC之间的一一映射关系,使得N个vNIC的数据包均会使用第一VF中的队列进行转发,由于网卡会以VF为单位分配带宽资源,因此,该N个vNIC可以共享第一VF的带宽资源。在一种可能的设计中,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。在一种可能的设计中,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的MAC地址和VLAN标识。在一种可能的设计中,所述方法还包括:在所述第一VM启动之前,通过所述网卡的PF的驱动向所述网卡发送第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;在所述第一VM启动的过程中,接本文档来自技高网
...

【技术保护点】
1.一种用于转发数据包的方法,其特征在于,所述方法包括:/n建立第一VF配置的队列中的N对队列与N个vNIC之间的映射关系,所述N个vNIC是主机设备上运行的第一VM的vNIC,所述第一VF是分配给所述第一VM的VF,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包,所述N为大于1的整数;/n根据所述映射关系信息,转发所述N个vNIC的数据包。/n

【技术特征摘要】
1.一种用于转发数据包的方法,其特征在于,所述方法包括:
建立第一VF配置的队列中的N对队列与N个vNIC之间的映射关系,所述N个vNIC是主机设备上运行的第一VM的vNIC,所述第一VF是分配给所述第一VM的VF,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包,所述N为大于1的整数;
根据所述映射关系信息,转发所述N个vNIC的数据包。


2.如权利要求1所述的方法,其特征在于,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。


3.如权利要求2所述的方法,其特征在于,所述根据所述映射关系信息,转发所述N个vNIC的数据包,包括:
接收第一数据包,所述第一数据包是发往所述N个vNIC中的第一vNIC的数据包,所述第一数据包包括所述第一vNIC的标识;
根据所述第一vNIC的标识,通过查询所述所述映射关系信息,确定所述第一vNIC对应所述第一VF中的目标接收队列;
从所述第一VF的PCI内存空间中获取所述目标接收队列的控制信息;
根据所述目标接收队列的控制信息,通过所述目标接收队列向所述第一vNIC发送所述第一数据包。


4.如权利要求2所述的方法,其特征在于,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的媒体接入控制MAC地址和虚拟局域网VLAN标识。


5.如权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
在所述第一VM启动之前,从所述网卡的物理功能PF的驱动接收第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;
在所述第一VM启动的过程中,向所述第一VF的驱动发送第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。


6.如权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
从所述网卡的PF驱动接收限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略;
根据所述整体限速策略,配置所述第一VF对应的带宽资源。


7.一种用于转发数据包的方法,其特征在于,所述方法包括:
获取映射关系信息,所述映射关系信息用于指示第一VF配置的队列中的N对队列与N个vNIC之间的映射关系,所述N个vNIC是主机设备上运行的第一VM的vNIC,所述第一VF是分配给所述第一VM的VF,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包,所述N为大于1的整数;
向所述网卡发送所述映射关系信息。


8.如权利要求7所述的方法,其特征在于,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。


9.如权利要求8所述的方法,其特征在于,所述N个vNIC中的每个vNIC的标识包括所述每个vNIC的媒体接入控制MAC地址和虚拟局域网VLAN标识。


10.如权利要求7-9中任一项所述的方法,其特征在于,所述方法还包括:
在所述第一VM启动之前,通过所述网卡的物理功能PF的驱动向所述网卡发送第一指示信息,所述第一指示信息用于指示所述第一VF需要启用的队列的数量为N;
在所述第一VM启动的过程中,接收所述网卡向所述第一VF的驱动发送的第二指示信息,所述第二指示信息用于指示所述第一VF启用的队列的数量为N,以触发所述第一VF的驱动创建N个vNIC。


11.如权利要求7-9中任一项所述的方法,其特征在于,所述方法还包括:
通过所述网卡的PF驱动向所述网卡发送限速策略信息,所述限速策略信息用于指示所述第一VM的所述N个vNIC的整体限速策略。


12.一种网卡,其特征在于,所述网卡与主机设备相连,所述主机设备包括第一虚拟机VM,所述第一VM包括N个虚拟网络接口卡vNIC,所述网卡包括分配给所述第一VM的第一虚拟功能VF,N为大于1的整数,
所述网卡包括:
建立模块,用于建立所述第一VF配置的队列中的N对队列与所述N个vNIC之间的映射关系,所述N对队列中的每对队列用于转发所述每对队列对应的vNIC的数据包;
转发模块,用于根据所述所述映射关系信息,转发所述N个vNIC的数据包。


13.如权利要求12所述的网卡,其特征在于,所述映射关系信息记录了所述N个vNIC中的每个vNIC的标识,并记录了所述每个vNIC对应的VF的标识以及所述每个vNIC对应的队列的标识。


14.如权利要求13所述的网卡,其特征在于,所述N个vNIC中的每个vNIC的标识包括所述每个...

【专利技术属性】
技术研发人员:朱王勇
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1