Google B4 and After 论文阅读二
作者:互联网
目录
这篇文章主要讲的内容是Google在假设好B4后,从2013年以来到2018年5年时间内对B4的升级改造和技术更新,以及在运维过程中遇到的问题解决问题的经验总结,还有一些有待更进一步研究的开放性问题。因为本人并不是主要学的网络,只是选的课程相关,所以就来研读论文。选课老师说,国内很多互联网企业大多关注上层的应用,而对于这种底层的习以为常的技术研究的并不是很前沿,不过商业利益在那,Google研究B4也是为了私有网络,不过Google的开源分享确实有利于技术的发展,现如今科学技术越来越受到政治等因素的影响了。我在读的过程中也是查阅了好些资料,不好的地方欢迎批评指正。如果想了解更多关于SDN的可以看下“马绍文”大佬的文章(见文末参考文献)。
文章标题:B4 and After: Managing Hierarchy, Partitioning, and Asymmetry for Availability and Scale in Google’s Software-Defined WAN
一、B4的发展与挑战
本篇论文是有关B4[1]发展和挑战经验总结的第二篇,在B4继续发展5年后,谷歌再次发表论文介绍和总结其私有数据中心网络的技术和运维经验。上一篇阅读报告介绍了B4的整体网络架构和运行效果评估。本文将概括介绍B4数据中心网络5年来的主要技术难题及其解决方案和运维方面经验教训。
B4最初的设计是面向跨数据中心索引复制的,对于可用性的要求并没有太高。但随着广域网(WAN)流量的激增以及软件的快速发展,带宽需求每9个月翻一番,对于B4的服务水平目标(SLOs)要求也越来越高,达到了99.99%。因此,需要更加革新的技术方案来解决B4的扩展性和可用性的问题。
1. 扁平拓扑的问题
B4之前的站点物理拓扑为扁平拓扑结构,网络难以扩展,网络流量承载能力难以有效提升与带宽需求指数级增长相矛盾。为此谷歌增加了与现有B4站点临近的站点来提升网络容量。但是这种方法带来了三个问题:第一,站点数量增加导致集中式TE优化算法显著变慢。优化算法在站点级别的拓扑下运行时间超线性增长,这将导致数据平面故障时数据黑洞(数据流向失效链路)的时间也延长,无法满足可用性目标。第二,交换机有限的转发表空间使得站点数量增加较为困难。第三,最为重要的是,这种方法将导致网络容量规划更加复杂化,使得原本只需考虑集群之间的数据交换,变成了还需要理解集群内部单独B4站点的相关映射情况。最终谷歌选择并重新设计了层次化的物理拓扑结构。如图1. B4物理拓扑结构由扁平式第一代Saturn逐渐发展到层级式Stargate。
图1. B4网络物理拓扑结构发展图
Stargate提供了高达81.92Tbps的站点到外部容量,这些容量可以在WAN、集群和旁路间划分,相对简单的拓扑更加容易维护,并且比Saturn的站点容量提升了8倍以上,满足了流量增长的需求。
2. 层次化拓扑拓扑容量不对称
虽然层次化拓扑带来了可扩展性,但是也为TE带来了挑战。由于固有的网络维护、运维和数据平面设备的不稳定,在一定规模下容量不对称问题是不可避免的,主要表现为设计的超级节点(supernode)提供的承载流量的容量都是相同的,但是在具体数据传输过程中,有些超级节点的准入流量(即承载的数据容量)是明显少于设计标准的。
2.1 旁路技(sidelink)术
因此,引入旁路(sidelink),将同一站点中超级节点连接成全mesh拓扑。
图2. 利用旁路动态重均衡数据流解决不对称WAN链路故障
如图2. 通过集中控制器利用旁路动态重均衡站点内数据流来解决WAN链路故障导致的容量不对称。c为最大网络准入流量,图2.(b)中没有旁路技术,受限于A2的最大容量2,站点A中,c最大为4。图2.(b)中引入旁路,使得A2可以将超出的流量容量重分配给A1,从而使得从站点A传递到站点B的最大准入流量c增至12,也较好地利用起超级节点的容量设计。旁路的成本更低且比WAN链路更为可靠。不过也带来了两个问题:第一,TE通常需要隧道封装,需要设计TE算法;第二,TE升级会引入路由黑洞和环路,在排序超级节点TE更新操作的时候,需要利用无黑洞和环路并且不需要任何隧道或标签的方法。
2.2 层次化TE架构
引入旁路概念,利用负载均衡机制最大化站点级拓扑容量,需要层次化TE架构。如图3. 在站点级TE,隧道分组(TG)通过IP-in-IP封装数据流分组(FG)映射到隧道集合(站点级路径),谷歌利用的是类似最大-最小公平优化算法来为每个隧道流量划分设置权重值。在超级节点级TE,隧道划分组(TSG)指明某一隧道中的流量分布,控制当前站点的其他超级节点和隧道另一端站点的超级节点之间的流量划分。在交换机级路由中,交换机划分组(SSG)指明了交换机上跨物理链路的流量划分。通过域控制器编排FG,TG和TSG,根据域内拓扑计算SSG,实现层次化TE划分规则达到可扩展性。
在以任意顺序进行TSG更新时会导致B4网络严重的流量黑洞或环路,降低可用性。因此,谷歌开发了通过构造依赖图的方式编排TSG更新顺序的可扩展算法,并且证明得知TSG更新是无黑洞或环路的。
图3. 层次化的超级节点级TE通过旁路技术解决容量不对称
3. 高效的交换机规则管理
解决容量不对称问题使用了层次化TE结构,而层次化TE需要交换机更多的哈希项来执行两层的细粒度流量划分,同时当前匹配规则下商用交换机的哈希项数量有限。为此,谷歌使用两种机制优化了交换机转发行为。分别是层次化FG匹配和使用高效的流哈希划分。
3.1 层次化FG匹配
一开始谷歌采用访问控制列表(ACL)实现FG匹配,但是FG匹配项的数量受限于ACL表的大小。因此,将FG匹配换分为两个层次化阶段。如图4. 首先将集群前缀匹配(Cluster prefix match)移动到最长前缀匹配(LPM)表,LPM表项远多于ACL表。利用LPM表匹配虚拟路由转发(VRF)标签,通过虚拟转发平面(VFP)表匹配DSCP标记,使得匹配的数据包进入交换机流水线的LPM表之前可以关联一个VRG标签标示其相应的服务等级。这种两阶段可扩展的方法可以支持1920个站点,而解耦前的ACL表最多只支持32个站点。
图4. 解耦FG匹配为两个阶段
3.2 高效的流哈希划分
使用层次化TE,源站点负责实现TG、TSG和SSG划分。如表1. 原始设计中,仅在入口边缘交换机(Ingress edge switches)实现划分。但是这样有交换机ECMP(Equal-cost multi-path)表大小的限制
为了将在入口边缘交换机的划分决策送达后端交换机(Backend swithces),谷歌将数据封装到TG划分确定的隧道IP地址中,同时使用TSG(part 1)划分确定的MAC地址表示自身站点/下一站点目标。后端交换机,根据隧道IP和源MAC地址,在TSG(part 2)划分规则中,决定数据包转发的超级节点;在SSG划分规则中,确定与目标超级节点连接的出口边缘交换机。
表1. 细粒度流量划分表
通过高效的交换机规则管理,采用层次化两阶段匹配规则使B4支持的站点数目增加了约60倍。通过分割路由路径实现跨CLOS设备,细粒度划分入口边缘交换机和后端交换机,采取这种优化的两阶段哈希规则,使得B4网络吞吐量提升了6%。
二、运维经验与未来展望
谷歌作为第一家将SDN技术成功运用到数据中心网络的公司,其产品B4的成功部署和运行,以及谷歌的开源和分享精神,对于SDN技术的发展和推广有莫大的帮助。谷歌对B4网络的运维经验和一些开放性的问题也是非常值得借鉴和学习的。
1. 简化网络管理工作
谷歌在B4运维期间,从扁平化的Saturn的扩展性差,到层次化的Stargate准入流量瓶颈,当网络故障时需要人为物理拓扑架构和容量不对称导致的容量损失等问题。但是随着B4网络规模的越来越大,网络故障或者流量控制相关的问题,还需要工程师人为检测、分析、发现和处理,已经变得越来越复杂。因此谷歌对于网络管理工作更倾向于由开发的管理工具去通过控制器暴露的RPC管理编排网络操作。
2.旁路容量规划
旁路技术在同站点内超级节点之间,形成mesh拓扑,可以应对物理故障、网络操作和划分不均衡导致WAN容量不对称。但是对于旁路容量的规划则需要基于统计学的需求分析,预测和评估较长期的网络需求、成本等。为此,谷歌也在开发基于日志的统计分析框架,来以最小化成本规划旁路容量。
3. 入口流量均衡管理
TSG算法假设的是站点内超级节点间输入流量都是均衡的,这种假设简化了TSG在网络中具体设计与实现。但是TSG算法并未考虑入口流量的不均衡,谷歌也正在计划研究更多的可选择的设计,因为解决方案的开放性,谷歌提出了一个可选的方案,就是为每对相邻站点级链路计算TSG。
三、总结
随着大规模云数据中心的发展,越来越多的新思想被引入到云网络设计。OTT云公司也期望软硬件解耦,控制和转发解耦,来增加网络的可编程性,扩展网络的灵活性。P4编程语言对交换机的控制的深入使得智能网卡成为可能,越来越多的功能将会集成到网卡上,则SDN的应用场景将会更加全面。人工智能的技术也能更好地在网络方面运用起来,比如对网络流量的转发和拥塞控制,谷歌的旁路容量设计也可以利用机器学习来预测容量需求。未来发展是云数据中心、WAN深度接入SDN,SDN对网络状态的管理和控制更加全面,云技术和网络技术更进一步融合。
参考文献:
[1]Jain S , Kumar A , Mandal S , et al. B4: Experience with a Globally-Deployed Software Defined WAN[C]// Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM. ACM, 2013:3-14.
[2]Hong C Y , Liang S , Mendelev K , et al. B4 and after: managing hierarchy, partitioning, and asymmetry for availability and scale in google's software-defined WAN[C]// the 2018 Conference of the ACM Special Interest Group. ACM, 2018.
[3]马绍文. Google B4广域网SDN 的前世今生[EB/OL]. https://www.sdnlab.com/22346.html, 2018-09-13
[4]马绍文. 超大规模云网络数据中心创新(下)[EB/OL]. https://www.sdnlab.com/24041.html, 2020-04-21
标签:层次化,站点,Google,容量,After,旁路,B4,交换机 来源: https://blog.csdn.net/admin11111111/article/details/116356216