阿里云官网阿里云飞天洛神2.0:高性能网络软硬一体化技术实践


云网络架构
云计算从9年前被质疑为新瓶装旧酒 , 到经过多年的高速发展 , 正在成为水电煤一样的基础设施 。 云网络构建在物理网络之上 , 为云计算提供灵动、智能的网络连接 。 云网络的性能和稳定性是云计算的基石 。
VPC是云网络的基础 , VPC的基础组件主要包括2部分:Gateway , vSwitch 。
【阿里云官网阿里云飞天洛神2.0:高性能网络软硬一体化技术实践】
阿里云官网阿里云飞天洛神2.0:高性能网络软硬一体化技术实践
本文插图

Gateway是VPC的流量入口 , 负责公网/专线和跨region流量的汇聚和分发 。 vSwitch负责ECS的虚拟交换 , 和Gateway一起为客户搭建一张虚拟专用网 。 CPU软转发
物理网络经过几十年的发展 , 接口和协议相对标准和成熟 , 所以物理网络的各类交换机基本都是基于switch芯片(其中大部分是Broadcom的)做硬转发的 。
云网络的发展是这几年的事 , 业务和需求都在快速变化中 , 缺乏行业标准 , 基本都是在按需做定制 , 所以云网络的各类业务基本都是基于CPU在做软转发 。
DPDK是Intel针对x86开发的数据面优化技术 , 作为一个开源软件 , DPDK也可以用于其它的CPU架构 , 比喻说ARM和Power 。 DPDK运行在用户态 , 通过大页/轮询/CPU亲和性等技术 , 达到减少内存拷贝/减少cache miss/减少中断调用/减少进程和线程切换等优化目标 , 进而实现CPU软转发的性能优化 。
在DPDK出现之前 , 软转发通常是采用带加速引擎的NP , x86主要用于控制 。 DPDK出现之后 , 基于x86的转发从内核态迁移到用户态 , 性能有了大幅提升 。
阿里是最早把DPDK产品化的公司之一 , 目前阿里云网络的各个组件已经全面切到DPDK 。 以vSwitch为例 , 通过DPDK , vSwitch的性能得到了数倍的提升 。 软硬件一体化
基于CPU的软转发主要面临2个问题:一是CPU的单core性能瓶颈 , 在大流和攻击场景下比较容易被打爆 , 导致故障;二是CPU的摩尔定律逐步失效 , CPU的频率和核数提升空间越来越小 , 靠CPU软转做进一步性能提升的空间有限 。
以太网的接口速率正在飞速发展中 , 25G NRZ已经普及 , 50G PAM4已经成熟 , 单模块400G已经成为现实 。 PCIE的接口速率也在快速发展中 , 单lane 16Gb的PCIE Gen4还未规模上线 , 单lane 32Gb的PCIE Gen5的规范已经发布 。
随着云计算的发展 , 云网络的流量出现了爆发式增长 。 游戏/视频/NFV化对ECS网络性能提出了更高的要求 , vSwitch的网络正在朝百Gbps迈进 。 混合云的发展带来了专线和跨region流量的激增 , Gateway的流量正在朝百Tbps迈进 。
为了提升云网络的性能和稳定性 , 满足云计算的技术发展需求和业务发展需求 , 阿里云网络团队对VPC的基础组件做了全链路的软硬一体化设计 , Gateway以超大流量+百万表项为目标 , vSwitch以超大表项+百Gbps为目标 。 经过一年多的努力 , 2款产品都已顺利上线 , 把阿里云网络产品的竞争力提升了一个台阶 。

阿里云官网阿里云飞天洛神2.0:高性能网络软硬一体化技术实践
本文插图

vSwitch硬件加速
网络的业务可以理解为各种route + ACL的组合 , 一次报文转发要经过多次表项查找和head update 。 快慢速分离的思路就是让Slowpath负责复杂的业务逻辑 , 首包上送Slowpath生成Session/Flow , 后续报文就不需要把整个业务流程再走一遍 , 直接在Fastpath里基于Session/Flow做Match/Action , 提升转发性能 。

阿里云官网阿里云飞天洛神2.0:高性能网络软硬一体化技术实践
本文插图

软转发里 , 快慢速都是通过CPU实现的 。 为了提升vSwitch的性能和稳定性 , 阿里云网络团队经过一年多的努力 , 成功通过AISC实现了Fastpath的硬件化 。


推荐阅读