AI营销云网络平台架构演进之路

AI营销云网络平台架构演进之路

引言:

我们知道网络是万物互连的基础,网络的稳定直接强关联着业务的稳定,尤其是对于互联网企业而言,一个业务的底层基础网络平台不够夯实,无疑对业务来说是致命的打击,那么如何才能构建一个高效、稳定、易扩展的网络平台呢?
本期我们有幸给大家讲一讲营销云网络基础平台这些年的发展历程,希望能够给从事网络的小伙伴提供些许帮助。
本文档为个人根据多年工作经历有感而作,如有不足之处还请谅解和斧正。

学过网络的同学应该都知道,网络按照拓扑结构分类,可以分为总线型拓扑、星型拓扑和环形拓扑结构。目前大多数企业使用的基础网络平台结构主要是根据星型结构模型构建,在星型结构的基础上进行二次扩展,形成复杂的扩展式星型网络拓扑结构。这种网络拓扑结构属于传统的三层网络路由结构,从核心层—汇聚层—接入层—终端接入,流量模型整体是一个南北向(N-S)流量走势。
考虑到建设成本,目前大多数企业的传统三层大多采用核心层和汇聚层复用(通俗说就没有汇聚层),直接采用高性能配置三层交换机充当核心和汇聚层,底层为多线缆接入层交换网络直接接入服务器集群。整体简化为核心层—接入层—终端接入。

接下来,小编将带大家一起,看一看科大讯飞语音云、营销云早期(2011-2016年)的网络拓扑结构,简单来回顾下飞云网络发展史,希望能给从事网络运维的小伙伴一些引导,权当抛砖引玉吧。

第一代营销云、飞云网络架构介绍

第1代飞云网络拓扑模型,主要是基于星型网络架构构建。
整体是一个核心层—接入层-终端三层结构,核心层采用两台高性能设备构建高可用容灾。
网络拓扑结构如下:

图-1 来自手绘

架构的整体设计思路:

  • 核心层(或汇聚层):两台高性能核心交换机采用高可用性容灾机制;
  • 接入层:接入层交换机通过双线绑定分别接入至两台核心交换机;
  • 服务器:服务器通过电口千兆网络接入至接入层交换机;
  • 通信原理:通过vlan间路由实现三层网络通信。
    整体结构简单,易于管理和维护。

技术实现思路:

这种架构的特点是两台高性能设备交换机通过IRF虚拟化技术(IRF技术,H3C私有网络通信协议,不小心暴露了设备厂商,支持国产),将两台独立的、高性能交换机通过虚拟化技术虚拟成一台逻辑网络设备,该设备承载数据中心整个网络流量转发,无论是东西向流量还是南北向流量,所有接入交换机下的服务器网络通信全部都要经过这两台交换机(简称核心交换),当然如果是同一个接入层下交换机下的同一网段(或者同一vlan下的)的服务器之间网络通信是可以直接通信的,而不用经过核心交换机进行转发。
接入层交换机采用双10G光纤线缆分别接入至两台核心交换机,骨干网网络带宽之间是20G双线负载均衡接入。
服务器通过电口,采用RJ45线缆(俗称网线)接入交换机通过端口下,通过在接入层交换机划分端口VLAN的方式(基于端口的VLAN划分,VLAN的划分有很多种,基于端口的是比较常见的一种,感兴趣的小伙伴可以自行了解更多),将位于不同VLAN之间的服务器IP网络打通。
打通的网络方式是通过在核心交换机启用SVI三层虚拟VLAN接口地址,实现VLAN间路由转发。

整体架构基于VLAN的理念规划和实施:

  • 通过在汇聚层交换机启用VLAN接口,就可以划分若干个VLAN子网,每个VLAN-ID对应一个独立的子网,一个子网对应一个独立网络地址段;关于子网这里就不多解释了,小伙伴自行百度哈。
  • 在没有实施网络策略的情况下,通常只有同交换机下的同一个VLAN下的服务器IP方可通信,如果是跨VLAN-ID或者是跨交换机设备的同一VLAN下的机器通信,必须要经过核心层交换完成网络数据中转,且核心交换机与接入交换机之间互连端口需要放行需要通信的服务器所在VLAN-ID信息才行,否则服务器之间依旧无法正常通信。
  • 交换机端口互连之间,能够承载多VLAN-ID信息的端口,我们通常称之为TRUNK干道,只能承载单一VLAN-ID标记的交换端口,我们称之为ACCESS端口。这里就不发散了。

这种架构的优点:

  • 结构简单,易于管理,核心层网络通过虚拟化技术实现高可用容灾,形成一台逻辑核心,易管理和维护;
  • 网络拓扑结构整体简单,没有用到特别复杂的网络协议和网络技术,通过简单的VLAN间路由就可以实现一个传统的三层网络架构建设;
  • 部署方便,配置简单;
  • 各接入层到核心网络之间独享网络带宽,各接入设备之间带宽互不抢占,网络通信不存在冲突检测机制,单台网络节点故障不影响其它网络设备通常通信,当然如果接入层再做一层高可用冗余就很完美了,这一点比起总线型和环形网络拓扑结构有着很大的架构优势;

基于综上考虑,这也是早期讯飞云网络设计采用星型网络架构的主要原因。

架构的缺点也是很明显的:

  • 核心交换机成本较高,对于核心交换性能要求较高,如果核心交换故障,则整体网络处于瘫痪状态;
  • 整体拓扑除了核心设备冗余之外,接入设备之间存在设备单点故障,单台接入交换没有冗余,接入层存在硬件故障风险;
  • 整体拓扑由于在二层环路机制上没有开启生成树STP协议防环,如果人为不小心接入环路,容易导致网络局部或者整体环路,造成网络瘫痪或者局部瘫痪(基于VLAN的网络风暴),风险隐患较大;
  • 服务器单网线接入,存在线缆接入单点,如果因网线故障,容易造成服务器脱网;
  • 最后就是整个网络设计还处于传统千兆网络时代设计,然而随着互联网的飞速发展,云计算,大数据浪潮不断涌现,传统千兆网络已经开始出现瓶颈,很难再满足业务的实时弹性需求了。
  • 未来的网络架构会逐步讨论传统三层网络,新一代弹性网络架构会越来越受欢迎。

关于第1代网络架构踩过的坑,导致的历史故障盘点

1. 服务器上架扩容造成的网络环路故障

2017年,运维小伙伴在广州机房现场上架服务器,服务器线缆综合布线时,因为人为操作失误,不小心将两台接入层交换机通过网线结成环路,造成该端口所在VLAN局域网网络整体环路,造成网络故障;

2. 接入层交换机硬件损坏导致网络故障

 2018年,位于鲁谷IDC机房一台过保接入交换机因设备老化严重,出现交换机硬件故障,故障直接造成该交换机下所有服务器终端网络通信中断;
 

3. 网线松动或者线缆故障导致的服务器脱网故障

从事过机房运维的小伙伴应该都知道,IDC机房通常部署有成千上万台服务器7*24h无时无刻不在飞速运转,服务器散热是不可躲避的一个问题,由于机房的网线长期使用,老化损坏严重,尤其是手动制作的网线,由于不合符工业化标准,在服务器尾部风扇高温高热的作用下,网线水晶头处容易膨胀,导致网络松动,造成网络接触不良,容易造成服务器掉线或网卡降速;
将于网卡降速,这里多说一句,现在交换机都是网卡自适应性,什么意思呢,比如服务器用过一根千兆网线接入一台千兆交换机端口下,加入此时网线8根芯,有一根接触不良(1236除外),网线就降速为百兆,如果交换机端口没有强行设置为千兆速率,会自动从1G降速至100M来完成网络通信,如果交换机端口管理员手动设置为千兆速率,此时网线降速会直接导致网络不通,而不是自适应降速为100M。当然这里排除了网卡的速率自适应,不考虑,默认如此。

4. 网络性能延迟带来的业务波动

这里不展开介绍,主要是针对东西向流量数据同步问题,造成的大数据日志汇总任务积压,最后定位为千兆网络存在性能瓶颈,此处不做发散。

就上述整体架构而言,对于早期的语音云、营销云规模不大的情况下,可以使用这种网络拓扑,但是随着业务的快速发展,业务的低延迟性和敏感性对网络性能的依赖越来越高,传统的三层网络架构已经无法再满足互联网化的业务需求了。

由于篇幅关系,关于1代网络踩过的坑这里不再一一举例。

**总结:
基于性能瓶颈和网络利用率等原因,传统的星型网络架构已经无法再满足互联网化的业务性能需求了。**

新一代网络架构的出现和广泛被应用

2017年,新一代网络架构模型不断被广泛应用起来,这个将是我们接下来讨论的新一代网络架构架构 ----Spine-and-Leaf架构。
什么是leaf-spine网络架构?它相比传统的星型架构又有那些优势?本期我们一起来探讨。
Spine-and-Leaf网络架构又称叶脊网络(leaf-叶节点,spine-脊节点)。Leaf-Spine网络架构又称之为分布式核心网络架构,网络整体结构只有Spine-汇聚层(或核心层)和Leaf-接入层。Leaf-负责接入服务器;Spine-负责连接Leaf节点,保证Leaf节点内的任意两个端口之间提供延迟非常低的无阻塞性能,从而实现3级CLOS(无阻塞交换)网络。通过一定的端口收敛比或超配比可以满足数万台服务器的线速转发。

Leaf-Spine网络架构拓扑介绍

  • 汇聚层:6台Spine节点组成,各Spine设备之间彼此独立;
  • 接入层:8台Leaf节点组成,各Leaf设备之间彼此独立;
  • 服务器:通过10G(AOC线缆)光缆接入至Leaf交换机端口;
  • 通过控制Leaf设备下的服务器数量来控制服务器和交换机骨干网络之间的网络带宽收敛比来确保交换机端口能够达到全线速转发(这里需要牺牲一定的端口成本才能做到),提高网络的整体转发性能。

图-2 来自手绘

Leaf-Spine架构基于BGP动态路由协议设计和规划:

  • 所有Spine和Leaf设备全网启用BGP动态路由协议配置,可以实现网络设备故障和链路故障时,网络拓扑、链路感知、路由自动发现和学习。实现全网动态收敛,网络收敛越快,说明网络达到稳定性的时间越短,从而达到全网无人干预的情况下网络自动恢复,比起传统三层网络,需要人工干预的情况下,整体网络的高可用性会更加高效;
  • 每一台Leaf设备通过分布式连接到每一台独立的Spine网络节点,实现Leaf至Spine之间1:N(此处Spine节点,N=6)的链路负载均衡,可以有效提高网络带宽利用率,通过控制交换机收敛比,实现Leaf层网络端口的全线速转发,提供网络转发性能,这对于云计算、大数据集群业务特性,全线速性能非常重要。

架构优点介绍

---网络低延迟、转发性能更高

“叶子脊柱体系结构的主要好处是它允许数据流从数据所在的位置到其去向的快捷方式(可以理解为每一台Leaf节点达到任意Spine节点的路径是完全copy的,都是类复制性的,简称快捷方式)”。不会应为网络设备所在位置导致数据通信的路径被扩大。同一Leaf下的服务器网络通信不需要再经过核心交换统一转发,更加节约网络通信时间,降低网络通信延迟。

---网络架构扁平化、结构化

“叶子结构内的数据流在网络上采用相同数量的跳数,跳数恒定=2(服务器到服务器之间网络节点永远是Leaf-Spine,故HOP=2不变),而不管源和目的地如何”。这样做的主要原因是叶子脊柱结构是完全扁平化、结构化的。而不是仅部分扁平化化的传统三层网络模型,局部扁平化呈现。

---无环、收敛快、负载均衡

“叶脊结构的主要好处是可以在无环路环境中使用全网格中的每个链路并进行负载平衡。
 在当今的企业环境中,叶子架构在数据中心部署时可实现最明显的优势。这样做的原因是数据流的效率最容易在东西向数据流中找到,而不是南北流。东西向流是同一数据中心内的服务器到服务器通信。使用分布式服务器体系结构时,特定应用程序或服务的资源分散在多个服务器上,缩短服务器之间的通信路径可以显着提高应用程序和服务性能。”

然而,除了网络架构本身,我们在Leaf层接入网络设备自身硬件容灾(双机虚拟化接入),接入层Leaf节点采用双机虚拟化技术形成单台逻辑交换接入网络、服务器采用双网卡双线绑定接入一组逻辑Leaf节点,从而实现接入层Leaf设备的高可用性考虑。

至此,我们从汇聚层Spine集群建设(多节点)、接入层Leaf双机虚拟化容灾(双机硬件容灾))、服务器双网卡绑定(双卡)、多线缆接入等方式(双线)更加全面的呵护我们的基础网络架构平台,从真正的技术落地夯实我们的网络架构。

基于Leaf-Spine网络架构的高可用性验证

基于网络架构的高可用性功能验证
最后关于Leaf-Spine全局网络架构高可用性,做一个简单图演。
背景介绍:
如图,一台Leaf-8(第8台Leaf节点)接入交换机分别接入6个Spine汇聚节点,6台Spine节点和2台核心交换机互联,全网通过BGP动态路由协议组网。
现在Leaf-8下有台服务器,IP=x.x.18.11/26(26为子网掩码,表示该地址段网络的大小,比如该IP子网掩码为26,表示该网络下可承载的主机数量为64,可用IP为62,去掉一个网络位和广播位,感兴趣的同学可以自行去百度了解更多),现在想要和核心交换机下的一台主机IP地址为x.x.111.11/25实现跨网络、跨设备通信。

网络拓扑如下

图-3 来自手绘

通过在Leaf-8这台接入层设备上,查看交换机Leaf-8的BGP邻居表,我们发现去往x.x.111.0/25目的主机的链路共计有6条令居,分别指向Spine1至Spine6节点,下一跳分别指向240.33(Spine1),240.65(Spine2),240.97(Spine3),240.129(Spine4),240.161(Spine5)和240.193(Spine6)。
当然,这里需要简单补充下,学过BGP路由协议的同学应该都知道,只有BGP邻居表里面最优的BGP路由条目才会被写入到路由表中(实际转发IP数据包的网络路由表),才能真正实际用于网络数据包的转发。
本图中,凡是打上“>”符号的路由条目都是最优的,此处,我们看到BGP邻居表里面中有7台最优路由,这7条最优路由将全部写入到路由表中,其中到目的地址段x.x.18.0/26存在一条网络路由;去往x.x.111.0/25的目的地址段存在6台网络路由,表明到目的主机的网络链路是负载均衡的。


图-4 来自内部截图

通过查看Leaf-8交换机路由表发现去往目的网段x.x.111.0/25的目的地址的确存在6条路由,分别指向6台Spine节点。


图-5 来自内部截图

此时,模拟假设Spine1-Spine6台汇聚设备中,其中spine2-6全部故障,可能是设备故障,也可能是线缆被人为拔出,看下我们的源主机x.x.18.11达到x.x.111.11网络会不会中断?

假设Spine2-Spine6这6台Spine汇聚交换机全部故障或者Spine2-Spine6线缆故障。

通过查看leaf-8这台交换机设备的路由表,我们发现,此时路由表还存在一条路由可以正常达到x.x.111.0/25,网络通信数据包可以正常转发到Spine1节点出去。


图-6 来自内部截图

正常情况下,每一台Leaf设备通过分布式上联到我们的的Spine汇聚层设备,每条网络链路都是负载均衡的,通过链路负载均衡,既能满足链路高可用性的同时,又能实现网络链路负载均衡,提供性能和网络利用率,这一点可以通过我们的运维流量监控系统得到作证。

我们以Leaf-8交换机为例,Leaf-8通过FG1/0/49---54如下6个40G端口分布式上联至6台Spine设备,我们看下这6个端口的网络流量是否均衡。


图-7 来自内部截图


图-8 来自内部截图


图-9 来自内部截图


图-10 来自内部截图


图-11 来自内部截图


图-12 来自内部截图

基于接入层服务器双网卡绑定高可用性功能验证图演

接入层设计思路:

  • 同一Leaf采用两台全万兆交换机通过虚拟化形成一台逻辑Leaf节点,形成高可用灾备;
  • 服务器通过双万兆线缆分别接入一组Leaf节点下的两台物理交换机,服务器网卡通过绑定技术,实现服务器双线接入至Leaf层,任意中断一根线缆,或者是移除一台Leaf组下的任意一台物理接入交换机,服务器网络通信均不影响;
  • 从而实现从服务器网卡、线缆、交换机硬件容灾等方面,全面保障服务器基础网络平台稳定。

我们随机从现网提取一台服务器,通过查看服务器bond网卡信息
逻辑网卡是bond0,通过将万兆网卡enp175s0f0和enp175s01进行绑定。


图-13 来自内部截图

通过在linux系统中查看bond网卡信息,cat /proc/net/bonding/bond0(此处以ubuntu16.04为例)。


图-14 来自内部截图

从上面的截图可以看到,服务器底层采用双万兆网卡enp175s0f0和enp175s0f1进行的双网卡bond绑定,绑定后形成的逻辑网卡是bond0;
这里Bond绑定使用的模式是MODE1(bond绑定共计有7种绑定模式,感兴趣的可以自行去研究下),MODE1模式是主备模式,通常情况下,服务器网卡流量只走其中主网卡出去,处于备用状态的网卡默认是不承载数据流量的,除了bond绑定用于心跳检测的微小流量。
只有当主网卡出现故障时,处于备用网卡的链路才会承载数据流。
这里为何用MODE1主备模式呢?难道不是用负载均衡模式(MODE0模式)更好吗?可以充分利用网卡带宽?
主要是考虑到复杂的网络环境和减小服务器接入网络的交换机人工配置的强关联性带来的配置麻烦。我们都知道,一台服务器双线接入到不同的网络设备中,除了服务器自身网卡需要绑定外,通常情况下,交换机也需要进行双线绑定,否侧将形成环路,容易导致网络通信阻塞或者异常。
我们知道,服务器网卡通过双网卡绑定技术实现后,两块物理网卡的mac地址会同步变更为网卡bond0的mac地址,由于网卡mac地址相同,同时接入到网络中同时转发流量,容易造成数据包转发紊乱,但是MODE1(主备模式)帮我们解决了这个问题,因为同一时刻,只有处于主网卡的线路才会转发数据,处于备用状态的网卡处于休眠状态,不会干扰网络通信。
这里抛出一个问题,如果服务器双网卡采用MODE0模式(双线负载均衡)模式接入两台交换机中,此时交换机并未对双线做绑定,服务器网络通信会受到影响吗?(这里以H3C交换机技术举例,不同厂商设备,技术实现可能存在差异)
答:网卡MODE0需要交换机的支持,如果交换机不做绑定,虽然不会影响连通性,但是性能只有单个网卡,这是因为MODE0时,服务器两个网卡都是相同的MAC地址,在交换机上无论对应哪一个端口,同一时刻也只有一个端口转发流量,所以需要在交换机上做链路聚合

好了,不过多发散,重新回到案例这里,此时,我们模拟假设服务器正在使用的网卡enp175s0f1网卡故障或者对应线缆被拔出(这里我们手动shutdwon网卡),我们看下服务器对外网络通信会不会受到影响。
此处,我们用命令手动关闭网卡enp175s0f1,看下网络通信是否正常(ping 百度)。


图-15 来自内部截图

此时,查看网卡bond的链路状态。


图-16 来自内部截图

系统自动切换至备用网卡enp175s0f0网卡,于此同时,我们开启另一个窗口模拟服务器对外连通性验证,发现网卡切换期间,服务器网络并未丢包,由于切换时间极短,默认我们设置的是100ms,远远小于数据包转发间隔(一秒一个包),故网络通信无感知。


图-17 来自内部截图

文章关键词摘取:
网络架构:Network architecture
高可用:High availability
负载均衡:load balancing
绑定:binding
vlan路由:vlan routing
容灾:disaster recovery
Leaf-Spine:叶脊
STP:生成树

由于鄙人知识水平有限,不足之处还请各位大佬包涵,网络高手欢迎指教,学习交流。
关于网络知识分享后期持续更新中。

添加新评论

我们会加密处理您的邮箱保证您的隐私. 标有星号的为必填信息 *