白牌交换机教父深度解析AWS网络创新

作者简介:盛科网络 杨勇涛

前言

2010年,来自于思科的JR Rivers和来自于VMware的Nolan Leake联合创立了Cumulus Networks公司,开创了第三方商业白牌交换机的新时代,后来JR加入AWS公司担任资深主任工程师。2022年的AWS re:Invent大会,JR联合另外一名AWS资深工程师Stephen Callaghan第一次向外界全面阐述AWS的网络基础设施。本文内容来自Net402:Dive deep on AWS networking infrastructure,讨论用来构建 AWS 网络的宗旨和软硬件技术,包括如何构建以及为什么构建等问题。目前AWS网络基础设施团队负责管理百万级别的网络设备,后续将持续探索如何让网络无感知地为客户提供服务。

宗旨

安全。作为公有云行业的龙头老大,AWS优先考虑的是保护客户数据。AWS采用的常见技术包括设备访问时的事务审计,如果需要登录设备进行修复或确认时,会使用临时授权。除此之外,AWS会进一步采取一些典型的措施,其中之一就是会对离开控制区域的任何链接进行加密或以其他方式进行防篡改。例如,如果在传输过程中使用 EC2 加密,链路层会对数据包进一步加密,这样数据包就会变成一堆乱七八糟的比特,外人无法明白具体的意思。

另一个典型措施就是对离开高警戒区的任何设备进行净化处理,这意味着任何非易失性的东西,上面可能有的任何数据,无论是客户数据、内部的操作数据或是软件,在离开高警戒区之前都会被移除并物理销毁。对工程师来说,这有点痛苦,因为有时硬件出了问题,如果能直接送回实验室有助于找到问题所在。但规则就是规则,因为安全是AWS的重中之重。

可用性。网络本身是由许多冗余的交换机和链路组成的。工程团队为所有层提供冗余设计并进行监控。冗余备份系统将网络交换机放在不同的电源上,配备在不同的备份系统中,这样就几乎可以承受来自任何地方的冲击,而不会导致整个网络或整个数据中心瘫痪。

一个容易忽视的因素是,很多服务提供商的光纤线路都会汇聚到某个共同的管道中进行远距离传输,这一小段就是共享风险链路组即SRLG。AWS对光纤路径和所有光纤铺设的地理位置进行监控,以确保不会有数据中心因为单根管道被切断而被隔离,从而确保AWS的网络始终具有可用性。

可扩展性。AWS在客户需要的时间和地点提供所需的网络连接,实现这个目标需要用到多家供应商,它们包括ASIC、PCB、芯片上的网络系统、制造商和机架集成商等几乎所有供应商。这种多样化的供应链使AWS能够解决可能出现的一些问题,比如某个供应商可能有质量问题,或者他们可能在某个时间点无法满足需求,例如疫情期间或者 2021 年的半导体供应链挑战,AWS就能在客户需要的时候持续提供产能。

性能。虽然AWS仍有必要采用流量工程等技术来改善客户体验,但是AWS是在非常高性能的基础上构建网络。高性能的网络基础使AWS能够更明智、更周到地考虑如何使用流量工程,而不必为了使系统正常运行而被迫使用流量工程。所有这些都是为了向用户的应用程序提供看似无限的带宽。

硬件

2010 年AWS 的明星工程师James Hamilton发表了影响深远的博客文章“Datacenter Networks are in my way”,标志着 AWS 基础设施走到了转折点,从购买笨重的商用框式设备走向基于白盒交换机进行自研创新的新模式。

当前AWS广泛使用单芯片平台。这些平台通常只占用一个机架单元,所有端口都在前端,通常根据速度将(现网)设备分为 3.2 T 交换机和 12.8 T 交换机,可以在需要时混合和匹配不同类型的设备。这些产品化的设备通过电缆连成一个完整的机架,形成一个单一的部署单元。机架中的交换机间采用CLOS Fabric设计,支持从 32 台设备的单个机架扩展到最多 5120 台设备,满足不同场景需求,比如汇聚层通常需要小带宽和多端口,在骨干层需要大带宽和小空间。

交换机。对于AWS交换机,首先要求保证供应的多样性,以便确保始终能够在客户需要的时间和地点提供所需的带宽容量。这些交换机都包含一个 CPU 子系统,运行控制平面、管理应用程序和操作系统。AWS使用多家供应商的设备,通过测试的设备被集成在机架中部署,这样不仅仅是为了确保设备具有互操作性,而重要的是为了确保它们具有互换性。

BMC。当网络设备出了问题,管理员需要访问系统,或者关闭系统或者访问故障日志,诸如此类。在交换机上也有一个CPU子系统,因此AWS自研交换机引入服务器设备常用的硬件BMC来安全可靠地访问设备。BMC通过串口Console访问,是所有基础设施中最简单可靠的通信系统之一。

光模块。传统光模块都是采用低速的I2C总线进行信息读取,包括模块信息或者接收端和发送端的光功率。但随着400G时代的到来,越来越多的遥测数据获取以及在系统运行时更新光模块中DSP 固件的需求导致访问频率太低的I2C总线无法满足数据带宽的需求。AWS创新设计一个硬件部件称之为模块访问卸载,允许独立访问并且并行的访问每个光模块,不受速度的限制。

带外管理交换机和串口服务器。作为AWS 基础设施的关键部分,这部分网络的可靠性和安全性尤为重要。AWS自行设计相关系统并编写了在这些系统上运行的软件,这样就能完全控制这些关键组件的硬件供应链和所有软件供应链。

交换机机架。云网络的速率从 10G到 40G/100G再到现在的 400G。在 100 G 时,标准的 2.5 米DAC电缆外径为 6.7 mm,但在400G 时,外径就达到了11mm,电缆的厚度增加了三倍,而且更加坚硬。所以这个简单的电缆硬度问题导致AWS重新设计网络的核心组件之一——交换机机架。通过采用具有Retimer的有源DAC,无需光学转换就能实现更细的电缆。

配线架。无源的配线架通常位于可能会发出 40 千瓦热量的交换机机架附近,既无法自行散热也占据了数据中心机房宝贵的空间。为了解决这个问题,AWS利用QSFP能够以单根连接或Break out方式工作的特点,允许四根标准单模光纤电缆直接连接到 QSFP 接口,这样既可以省去跳线架,也提高了可靠性,并减少了信号丢失的可能性。

400G ZR+。AWS很早就使用400G ZR技术将长距离可调谐光缆直接安装到交换机中,可调谐光缆意味着不再需要单独的 DWDM从而简化了网络。但是ZR的覆盖范围只有 80 公里,因此AWS与 OIF 一起推出了工作距离可达 400 公里的400G ZR+。对于由此产生的模块散热问题,AWS的网络设备也相应做了改动,从传统的一个机架单元变为两个机架单元。

AWS以机架为单位进行产品化,以12.8T交换机为基本规格由集成商完成不同的机架配置,完成相关burn-in测试包括对电缆间的坚固性进行测试。所有组件间具备互换性和互操作性。当这些机架最终进入数据中心,AWS会对机架本身和交换机内部组件与机架集成商和设备制造商提供的BOM 进行比较,以确保在运输过程中没有被更换。在正式上线之前,AWS会将设备原有的操作系统、引导加载程序、可编程的FPGA等等都彻底清除并重新加载AWS的版本,重新对机架内的设备进行链接测试后设备才达到上线的要求。

软件

AWS早期使用标准路由协议构建网络,如OSPF或者BGP。但随着网络规模的发展,这些协议显示出一些缺陷比如缺少操作控制,并且不适合高度并行的网络。随着软件定义网络SDN的出现,AWS开始尝试研究这一概念,最终构建了一个混合控制平面,既保留了分布式模型的大量特性,比如分布式协议的静态稳定性和有限故障域,又拥有集中式机制带来的可视性和规范性,方便跟踪整个系统中的事务。

层次化控制。对于超过一百万的网络设备,完全的集中控制是不可行的,因此AWS在各层间通过抽象建立分层控制,既可以快速对本地任务快速决策,也可以实现集中的全局的优化。

SRD。对TCP流量进行简单哈希并不能在并行网络中高效解决链路拥塞或者故障的问题,因此AWS在2018年就推出了EFA和SRD技术,它通过在网卡端将流量分散至多条路径传输的方式实现在所有链路上非常均匀地分配负载,这意味着当网络中有越多的 EFA 或 SRD 端点运行,网络负载就会变得越平缓,而且非常容易分配,易于流量管理。

监控。AWS的每台网络设备都会上报数百个信息比如计数器信息或者传感器数据等等,每分钟大概会收集到70亿的数据。同时,AWS网络也会主动探测网络状态,每分钟达到15亿次。这些数据可以帮助运维查找延迟变化,数据包丢失以及由于系统变化而导致的意外行为等。有些信息很直接比如电源或者DRAM出错,有些信息相对复杂比如光纤被挖断带来的海量报警,因此AWS工程师设计了关联引擎,确保问题发生时引擎可以查看到所有相关数据并确认所有这些观察结果与当前事件有关。

自动修复系统。AWS网络中部署的超百万台网络设备,通过主动监测和三角测量可以找出到底是哪个设备导致了问题,相关信息会进入自动修复系统。这个系统会告诉控制平面让故障设备停止服务,然后发出工单让运维更换该设备。该自动化系统还负责监控网络内进行的所有操作,无论是部署配置更新或升级软件,确保网络行为完全符合预期,如果某些行为超出预期会立即回滚该更改,停止系统。这种可能看起来有点保守的做法是为了确保租户的安全可靠。

未来

网络行业正在研究基于意图的网络等概念,IETF发布了相关 RFC,意图网络有助于层次化的多域网络抽象层间相互不冲突,网络行为符合预期,AWS团队也在加强投入相关研发。2023年的AWS re:Invent大会Stephen如约介绍了最新进展,Stay tuned。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/26452.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于24-02-29
0