自动化驱动的高可用网络:爱奇艺B2网络流量自动调度系统建设实践
面对高昂的专线成本和复杂的业务需求,每一个优秀的网络建设和运营团队都在探索更先进的技术解决方案,在保证网络SLA的基础上,不断提高带宽利用率,构建低成本高可用的网络。目前主流的流量调度系统一般都是通过SDN平台实现流量自动调度。在保证服务质量的基础上,不断提高高成本洲际和省际专线的利用率,从而达到节省带宽成本的目的。爱奇艺网络团队长期跟踪研究RSVP、SR-TE等多种流量调度技术方案,并根据网络资源和业务需求,落地了一套基于业务优先级的全网流量自动调度系统,不断践行团队对高可用、低成本的极致追求,最终实现分钟级自动调度,链路可用率从99.524%提升至99.999%。
爱奇艺全网流量自动调度系统分为B1(外网)调度和B2(内网)调度,这里主要分享B2流量自动调度系统。B2网络采用两级组网架构:省际骨干网和省内城域网。骨干网分为骨干核心层和骨干接入层;城域网是连接到主干网的树形结构。全网采用BGP协议,骨干核心节点、骨干接入节点、城域网均配备独立AS,为流量调度提供了良好的架构基础。
1.流量调度的底层逻辑并不复杂:流量突发是动态的,而带宽设置是相对静态的。流量调度需要做的是将超过阈值的流量调度到利用率相对较低的链路上,避免本地流量突然增加影响服务可用性。
该方案的关键在于我们需要根据不同的网络架构选择合适的流量调度方案。省际骨干网是网状网,流量模型复杂,转发路径环路风险高。省际骨干网多级AS的组网架构提供了丰富的路由调度手段,因此采用BGP路由策略来实现省际骨干网的流量调度。城域网组的架构和流量模型相对简单,但希望在城域网中实现单个业务甚至单个主机的流量控制,所以选择策略路由实现流量调度。
图2-1全网调度示意图
骨干网调度方案
交通调度系统由五个模块组成:监控报警、信息采集、信息整理、调度分析和调度发送。架构图如下:
图2-2调度逻辑架构
监控警报:
信息收集:
信息整理:
计划分析:
派遣:
具体调度流程:
图3调度过程
邮件通知:
日程安排:
后退:
城域网实施方案
城域网的实现方案与骨干网类似,主要区别是拓扑计算通过Dijkstra算法;调度方式是将策略路由发送到设备。可以在城域网中实现基于五元组的流量调度,比骨干网更精细。
第二,问题和解决的准确性。
准确的流量调度方案是可行的前提,包括对当前网络流量的准确统计和对调度规模的准确评估。
准确统计当前网络流量:再比如,sFlow采样计算的流量有误差,所以我们根据SNMP得到的流量和sFlow计算的总流量,通过SWC计算出一个比例,然后将这个比例乘以NTA每个目的地址段的流量,计算出目的地址段的实际流量;当然,这个算法只限于流量没有达到100%的情况。如果流量超过100%,SNMP收集的流量会不准确。我们会通过sFlow的当前和历史情况来分析是否存在严重的地址段爆发,并做出相应的封堵或降级处理。
精确评估调度规模:除了网络中单个路径的拥塞、延时、丢包,当一个方向有多个平面负载,一个平面有多个链路负载时,如何计算某些链路的高流量?我们通过SDN平台实时感知具体的网络拓扑和协议构成。流量分析基于网络平面,支持多平面和交叉互联下的前向和后向分析。同时监控可用带宽、中断平面、中断接口数等的动态变化。,并分析多连杆和多平面载荷。通过这些算法,可以综合判断和计算出准确合理的可用链路和调度流量。
实时的
除了准确性,实时性在交通调度中也很重要。对于sFlow的采样和分析,为了提高精度,需要提高采样率。与此同时,随着DC和网络设备的覆盖面越来越大,每天收集的数据也只有几十吨。为了满足实时调度,必须能够实时分析海量数据流。这就挑战了我们最早的分析架构,数据延迟越来越大。
针对这一问题,我们调整了架构:前端加载到多个flow-agent,数据流标记从Logstash调整到Vflow,在拆包的同时标记相关标签,分析后进入一级Kafka,对接Flink流数据处理,处理统计数据,导入ES集群和二级Kafka,最终实现延迟分钟的业务数据查询。
图3-1 NTA的逻辑架构
此外,通过升级SWC流量监控组件,增加对端口OID更快频率的并发SNMP扫描,SNMP流量统计周期提升至1分钟,同时在支持遥测的设备上使用计量监控实现秒级端口流量统计。因为节点是多端口多平面互联的,流数据可能会陆续到达分析平台,所以我们需要统计每个端口的进出流量之和。这个时候,有两种解决方法。一种是使用轮询算法。在等待一段固定的时间后,我们检查缓存的数据是否已经到达,以及是否触发了调度阈值。另一种基于epoll思想的机制为每个实时数据流提供轮询方法来驱动检测阈值。显然,第一种方法的实时调度依赖于轮询周期,而第二种方法使我们能够实时驱动调度,所以我们选择第二种方法来实现实时计算。
安全
虽然自动排班可以更快的解决问题,但是如何保证自动排班不会造成新的问题,我们也对可能出现的问题做出相应的解决方案。比如在路由策略解决方案中,我们制定骨干网路由策略规范,所有设备都有统一的预设策略;在路由方案中,规定已经调度过一次的设备不再下发策略;当备份流量较高时,优先考虑调度和回退。
可用性
因为整个系统是由大量的数据驱动的,而且数据传输非常依赖于网络的健壮性。这里有一个矛盾。本来调度是为了解决网络问题,但是因为网络问题,调度系统失去了感知,导致系统形同虚设。事实上,在系统的迭代过程中,1s就填满了一条专线,导致监控数据延迟到达,调度失败,甚至ssh无法登录相应的网络设备。
图3-2
针对以上问题,需要将数据单元和计算单元下沉到区域内,异地调度分发模块;添加独立的调度执行代理;;支持rpc服务轮询,保证ssh有效登录;调度模块部署在不同的地方;对接swc数据异地消费;同时,提高网络设备管理和监控相关协议的Qos水平。以避免网络问题导致的调度失败。
图5 SWC逻辑架构
三。流量调度方案效果评估爱奇艺自动流量调度系统实现了基于IP地址段和匹配业务优先级的自动流量。采用自主研发的SDN平台进行统一管理,实时服务保障,也可以采用人工干预的方式按需调整流量。目前,该流量调度系统已运行一年,可自动避免流量突发、链路中断等影响服务可用性的故障超过2000分钟。已实现:
四。流量调度方案的技术展望目前流量调度的实现方案是基于IP或者路由的,不可能完全基于业务。我们正在研究如何通过可编程交换机、智能网卡等新硬件实现业务与网络的联动,让网络设备更好地识别业务,实现基于业务的调度。
由于目前的网络是全交换机组网,其功能和性能有限,所以用来实现调度的方案和技术都不是最优的,无法覆盖所有场景。我们也在研究通过增加服务器和路由器来实现SR模式的流量调度作为扩展,目前已经小规模部署。请关注后续介绍。同时也期待读者的疑问或者更好的解决方案与我们分享。
注意事项:
①SWC:通过SNMP收集设备信息的系统。
②NTA:对sFlow收集的网络流量进行分析、标记和分类的系统。