女主宣言
本文主要对Mellanox CX-5网卡支持OVS流表加速功能进行了调研,简单介绍了配套软件的版本要求,并描述了整体测试的步骤,另外对其支持VF热迁移也进行了初步的调研,希望对有相同需求的同学有所帮助。
PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!
背景简介
广泛的业务层需求致使数据中心快速增长,数据流量日益激增,vSwitch会大量占用宿主机计算资源,增加运营成本,虽然可以通过cpu及irq亲和性提高转发性能,但由于性能上的瓶颈,难以满足当前快速增长的高网络带宽应用需求。因此,进一步加速vSwitch势在必行。
涉及的技术
1
VT-d
Intel Virtualization Technology for Direct I/O,是对IO的虚拟化技术,在io透传虚拟化中,当一个虚机直接和IO设备对话时,它提供给这个设备的地址是虚机的物理地址(GPA),那么设备拿着这个地址去发起DMA势必会失败。
难点就是DMA的操作如何直接访问宿主机的物理地址,因此,vt-d在芯片组里引入了DMA重映射的硬件,就是IOMMU,负责对DMA的地址做转换(IO页表),也存在IOTLB,vt-d的功能主要包括,IO设备分配、DMA重映射、中断重映射。
2
SR-IOV
sriov技术就是为了解决网卡透传到虚机后,网卡不足的问题,支持水平扩展网卡,一个io设备最多支持256个VF;
PF用来配置和管理sriov,拥有所有的pcie资源;
VF是精简的pcie功能,由PF创建和销毁,拥有独立的pci配置空间,收发队列,中断等,宿主机可以分配一个或者多个VF给虚机使用;
把一个网卡透传到虚机中,其收发流程与宿主机上直接使用一样,主要不同在于地址访问多做了一次地址转换。
测试要求
1)开启vf前,安装firmware-tools工具,安装OFED驱动,可去官网下载
https://cn.mellanox.com/products/adapter-software/firmware-tools
https://cn.mellanox.com/products/infiniband-drivers/linux/mlnx_ofed
2)版本要求:
* Linux Kernel >= 4.13-rc5 (Upstream Kernel)
>= 3.10.0-860 (RedHat Based Distributions)
* Mellanox NICs FW
FW ConnectX-5: >= 16.21.0338
* iproute >= 4.11
* upstream openvswitch >= 2.8
* openstack >= Pike version
* SR-IOV enabled
3)开启VT-d及iommu
vt-d在bios开启,iommu在cmdline开启
<