admin管理员组

文章数量:1579351

经过 DPVS 团队和社区开发者一个多季度的开发迭代,爱奇艺开源项目DPVS已经正式发布了v1.9.0版本。DPVS v1.9.0 正式发布于2021/9/1,它适配了当前DPDK 稳定版本DPDK-20.11(LTS),支持 DPDK API/ABI 以及多种设备驱动的更新和优化。目前 DPVS v1.9.0 已在爱奇艺的多个核心数据中心部署上线,且稳定运行三个月。

01

   关于 DPVS

DPVS 是爱奇艺网络虚拟化团队基于DPDK (Data Plane Development Kit)和 LVS (Linux Virtual Server) 开发的高性能四层网络软件负载均衡器,支持 FullNAT /DR /Tunnel /SNAT /NAT64 /NAT 六种负载均衡转发方式和IPv4 /IPv6 /TCP /UDP /ICMP /IMCPv6 等多种网络协议,单核性能达到 2.3M PPS(每秒转发 230 万个包),单机性能可以达到万兆网卡线速(约为 15M PPS)。爱奇艺的四层负载均衡服务、SNAT 代理服务几乎全部都是基于 DPVS 实现的。此外,DPVS 于2017 年 10 月开源后,已吸引了来自包括网易、小米、中国移动、Shopee、字节跳动等在内的国内外众多知名企业的核心贡献者参与社区共建。

项目地址:

https://github/iqiyi/dpvs

使用文档:

https://github/iqiyi/dpvs/blob/master/doc/tutorial.md

02

   DPVS v1.9.0 内容更新列表

发布地址:

https://github/iqiyi/dpvs/releases/tag/v1.9.0

DPVS 整个 1.9 大版本都将基于 DPDK 20.11 开发,v1.9.0 版本核心更新就是全面适配了 DPDK-20.11(LTS)。对 DPDK-18.11(LTS) 的支持已经移动到 DPVS-1.8-LTS中,同时终止了对DPDK-17.11(LTS) 的支持。

注:DPVS v1.9.0 使用的 DPDK 具体版本号是DPDK 20.11.1

DPVS v1.9.0 是在 v1.8.10 基础上开发的,其主要的内容更新分为功能更新和漏洞修复两类,分别列举如下。

2.1  功能更新

  • Dpvs: 新增 flow 管理功能,使用通用的 rte_flow API 替换了基于 flow director 的流管理机制。

  • Dpvs: Mbuf 用户自定义数据分类管理,使用 dynfiels 实现了 mbuf 内部用户自定义数据的分类管理。

  • Dpvs: 适配 DPDK 20.11 数据类型,优化 DPVS 协议栈处理。

  • Dpvs: 优化 Makefile,适配 DPDK 20.11 meson/ninja 构建机制。

  • Dpvs: 增加"dedicated_queues" 配置选项,支持 802.3ad 网卡绑定模式下 LACP 包专用队列可配置。

  • Dpdk: 移植多个补丁文件到 DPDK 20.11,并废弃 DPDK 18.11 和 DPDK 17.11 的补丁文件。

  • Dpdk: 优化 DPDK 部署和安装,支持 DPVS 开发环境的快速构建。

  • Keeaplived: 增加 UDP_CHECK 健康检查方法,提高了 UDP 业务健康检查的可靠性和效率。

  • Docs: 更新文档,适配 DPDK 20.11。

  • CI: 更新 GitHubworkflow,支持 DPDK 20.11 (DPVS v1.9) 和 DPDK 18.11(DPVS 


2.2  漏洞修复

  • Dpvs: 修复 rr/wrr/wlc 调度算法不同 RS 上负载不均问题。

  • Dpvs: 修复 802.3ad 网卡绑定模式下 Mellanox 25G 网卡不通的问题。

  • Dpdk: 修复 DPDK ixgbe PMD 驱动无法支持 DPVS 的 flow 配置问题。

  • Dpdk: 修复 DPDK mellanox PMD 驱动在调试工作模式下程序崩溃问题。

03

   DPVS v1.9.0 重点更新介绍


3.1  更友好的编译使用安装方式

DPDK 20.11 用 meson/ninja彻底取代了之前版本的 Makefile 构建方式,而 DPVSv1.9.0 虽然继续沿用了 Makefile 构建方式,但是适配了 DPDK 20.11 的构建方式,通过 pkg-config工具自动查找依赖 DPDK 的头文件

本文标签: 版本DPDKDPVS