英特尔网卡25G来了,你准备好了吗
随着互联网、云计算和大数据快速发展,数据中心的带宽需求日益增长,以满足当前和未来云端的海量数据流需求。相对于旧的10G->40G->100G的以太网升级方案,数据中心更青睐于25G的方案。25G相对40G,有如下优势:
易升级:10G/25G端口兼容,四路汇聚即可达到100G
更高的PCIE带宽利用率
更经济
英特尔也推出了一款25G网卡--XXV710。XXV710是Intel® Ethernet 700系列的成员之一,Intel® Ethernet 700系列包含10G,25G及40G网卡成员,他们分别是X710,XL710,及XXV710。首先让我们先看看它长什么样?
主要产品特性
1. 8通道 PCI Express*(PCIe)3.0
2. 单端口和双端口的10 GbE/25 GbE 支持
3. 同时支持总线接口(PCI Express)和开放计算项目(OCP)物理规格
4. 符合IEEE 802.3by和25GEthernet.org规范
5. 网络虚拟化卸载,包括包含网络服务标头(NSH)和多协议标记交换(MPLS)的VXLAN、NVGRE、GENEVE、VXLAN-GPE
6. 英特尔以太网流量导向器(英特尔以太网FD),用于操纵基于硬件的应用流量
7. 为网络设备和网络功能虚拟化(NFV)提供卓越的小数据包性能
8. 智能卸载支持采用英特尔至强处理器的服务器实现高性能
9. I/O虚拟化创新,在虚拟化服务器中实现性能最大化
10. 自适应链路创建,支持与其它25GbE交换机和主机控制器的互通
性能比较
是不是太笼统了? 有了比较才能让特性更突出,是不是?众所周知,在数据中心广泛使用的10G网卡中,Intel® Ethernet X520 (82599EB)系列是大家最为熟悉的产品。那么相比该产品,XXV710 25G有什么不一样? 给我们带来了什么新的功能?下面就突出的几点区别展开描述:
数据包处理
82599EB (X520系列):
固定的包解析拓扑;固定的包处理逻辑。通俗的来说,就是该网卡可以解析的数据包类型是不可变的,过滤,分类等包处理过程的逻辑是固定的。比如82599EB可以认识IPv4 UDP的报文,也可以对此类报文做RSS从而达到负载分担的目的。但是它无法认识新定义的报文类型,比如NSH,MPLS,即使对于UDP报文,其RSS依赖的关键字也是五元组,不可更改。
XXV710 (700系列):
可变的包解析拓扑;可变的包处理逻辑。其可变的数据包处理,可以让网卡在升级固件或者通过特定的软件配置后,达到可解析、分类不同种类型的报文的目的,比如NSH,MPLS报文。即使对于经典的TCP UDP报文,也可以更改分类是依赖的关键字。比如可以达到仅匹配UDP目的端口将流导入指定的队列,又比如可以达到匹配报文的payload将流导入指定队列。
交换桥接
82599EB (X520系列):
网卡嵌入交换功能。VF之间的流可以在网卡上进行交换,交换基于MAC及VLAN。同时提供基于VLAN,VF和接口的流镜像。
XXV710 (700系列):
在82599的基础上,增加了除MAC及VLAN以外的匹配规则,可以讲VXLAN等Tunnel报文导入指定的VF及队列上。此外,还增加了floating VEB的功能,顾名思义,floating VEB就是VF之间的交换,与物理脱离,并可以与普通的VEB共存,从而达到了流在VEB之间隔离,并不受端口状态影响的目的。
虚拟化:
如何在DPDK上使用XXV710
1. I40e PMD driver 来驱动。它和X710,XL710是一家嘛。
2. 引入Dynamic Device Personalization (DDP) 功能,通过DPDK的API为网卡写入特性文件,更改网卡的包处理行为,达到用户定制的目的,同时避免了更新固件带来的麻烦。
3. 虚拟化功能的卸载:包括导流,checksum卸载等。比如可以将MPLS, VXLAN, NVGRE流导入到具体的VM以及队列。
4. Generic Flow API为XXV710的灵活包处理能力提供了很好的支持。
5. VF的DCB和QoS功能的使能,适用于NFV的场景下。