云网络架构
云计算从9年前被质疑为新瓶装旧酒,到经过多年的高速发展,正在成为水电煤一样的基础设施。云网络构建在物理网络之上,为云计算提供灵动、智能的网络连接。云网络的性能和稳定性是云计算的基石。
VPC是云网络的基础,VPC的基础组件主要包括2部分:Gateway,vSwitch。
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款产品都已顺利上线,把阿里云网络产品的竞争力提升了一个台阶。
vSwitch硬件加速
网络的业务可以理解为各种route + ACL的组合,一次报文转发要经过多次表项查找和head update。快慢速分离的思路就是让Slowpath负责复杂的业务逻辑,首包上送Slowpath生成Session/Flow,后续报文就不需要把整个业务流程再走一遍,直接在Fastpath里基于Session/Flow做Match/Action,提升转发性能。
软转发里,快慢速都是通过CPU实现的。为了提升vSwitch的性能和稳定性,阿里云网络团队经过一年多的努力,成功通过AISC实现了Fastpath的硬件化。
通过硬件化,vSwitch的性能对比软转发提升了10倍以上,延时大幅降低。
Gateway硬件加速
Gateway是VPC所有流量的入口,也是云网络带宽和稳定性压力最大的一环。随着搬站和企业上云的推进,专线流量出现了数量级的增长,达到几十Tbps。这么大的流量,通过堆服务器来提升转发能力基本成了不可能完成的任务。
传统交换芯片的数据面对客户是固定的pipeline;云网络由于业务和需求变化快,没有业界通用标准,方案基本都是按需做定制,没法使用固定转发的交换芯片。可编程交换芯片的出现给云网络打开了一扇窗,让Gateway硬件化成为可能。
为应对超大流量的挑战,阿里云网络团队启动了基于可编程交换芯片的Gateway设计。经过一年多的努力,成功实现了Gateway的软硬结合设计
通过可交换芯片的加速,Gateway单机bps性能提升20倍以上,单机pps性能提升近百倍,延时降低数十倍,整体Capex和Opex大幅降低。
客户价值
技术创新的目的是为了更好的客户体验,实现客户第一的目标。通过软硬一体化的技术,阿里云可以给客户提供更大带宽/更低延时/更加可靠的网络连接。
持续演进
可编程交换芯片的转发能力强,但片内SRAM/TCAM容量有限。阿里云体量大/客户多,表项规格大,没法全量下发到硬件里。解决方法之一是对表项做水平拆分,但云网络的业务复杂,客户的配置变化快,水平拆分的难度大/成本高。解决方法之二是软硬结合+动态调整,通过速率计算动态检测大象流/长尾流,长尾流动态调整到软转发,大象流动态调整到硬转发,软硬一体/动态优化。
云网络的二八原则明显,长尾流的表项大/流量小,大象流的流量大/表项小。通过软硬结合+动态调整的方式,一个集群可以容纳全量配置。软转发弥补硬件的表项容量问题,硬转发弥补软件的转发能力问题,相互配合/相得益彰。