联盟时代VII.灾难容错与切换(1)

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 联盟时代VII.灾难容错与切换(1)

🐾 环境描述

     在上期的分享中,笔者通过演示用例说明了Federation架构下想要实现“本地输出”的需求是需要满足一定条件的:

  • 。延伸的Tier0网关必须以Active-Active的方式在多个数据中心(位置)部署;
  • 。不能使用Tier1网关来承载诸如负载均衡、网络地址转换等有状态的服务;
  • 。所有全局Overlay传输区域下的全局分段可以连接在延伸的Tier1网关或者Tier0网关之上。

     但不满足上述条件的其他一些网络拓扑虽然也能享受Federation带来的优势和便捷,但无法实现本地输出。鉴于这两种截然不同的南北向流量模型,接下来的分享将以此两种不同的场景作为对象分别进行阐述。今天的分享将只针对“本地输出场景”进行分析。下面给出笔者环境的简单拓扑:

本次用例涉及四台Federation网络环境中的虚拟机,分别是:位于同一个位置的web-11、web-12、db-11;以及另一个位置的web-21;其中web虚拟机全部连接在同一个全局Overlay分段上,db虚拟机连接在另一个全局Overlay分段上,所有分段的网关全部位于同一个延伸的Tier1网关之上。


🐾 本地输出场景-Tier0上联中断

在笔者的环境中,两个数据中心(位置)的延伸Tier0网关分别有2根上行链路连接到不同的物理核心(VYOS模拟)。换言之,每一个数据中心的Tier0网关与上游物理核心之间的可用连接数分别是2+2=4根。接下来笔者将陆续中断Tier0上联,来验证东西向和南北向流量是否会出现走向变化。

image.png

🐾 中断1根Tier0上联

第一个测试:中断10.255.1.0/30这一根链路,模拟以下几种场景:

1. Edge-11裸金属Edge传输节点网口、网线故障;

2. 物理核心与Edge-11裸金属Edge传输节点的网口、网线故障。

通过上图不难发现,这种故障场景下的云网络连通性不会有“灾难”式的影响。在Underlay网络没有故障点的情况下,本站点之内与远端站点之间的Overlay通信不会受到Tier0上联中断的影响。而所有到达tier0SR in Edge-11的北向流量依旧可以通过10.255.1.8/30这根上行链路继续北向转发;反之亦然,所有到达10.255.1.1/30所在上游物理核心的南向流量依旧可以通过10.255.1.12/30这根下行链路继续南向转发。

从tier0SR in Edge-11的路由表上观察默认路由就能得出上述结论。

image.png

可以看到与下方正常状态下的路由表对比,有一条默认路由消失了;对应的上行链路就是10.255.1.1。

image.png


🐾 中断2根Tier0上联

中断2根Tier0上联有两种情况,第一种情况同时中断10.255.1.0/30和10.255.1.12/30两根链路,这是模拟以下几种场景:

1. Tier0SR所在Edge传输节点的网口、网线故障;

2. 上游物理核心设备整机故障。

当上游物理核心整机故障的时候,在配置了BGP+BFD的笔者环境中,路由会快速收敛,不会有南北向流量被转发到这台物理核心上;如果只是对应的网口、网线故障,那么对于Tier0网关来说,由于路由表中指向这台物理核心的路由会全部“消失”,所以自然不会有北向流量被转发到这台核心;而由于10.255.1.16/30这根iBGP链路的存在,所有转发到这台核心的南向路由都会经过这根链路被转发到对应的10.255.1.18/30这台核心后,再南向转发到Tier0网关。综上所述,第一种情况下的各类流量并不会发生“中断”。第二种情况同时中断10.255.1.0/30和10.255.1.8/30两根链路,这是模拟以下几种场景:1. Tier0SR所在Edge传输节点的网口、网线故障;2. Edge-11传输节点整机故障。如果只是对应的网口、网线故障,那么在tier0SR in Edge-12正常运行的情况下,总体流量不会发生中断的情况。

image.png

上图是当前故障场景下的tier0SR in Edge-11的路由表,可以看到当有北向转发的流量到达这台已经中断2根上行链路的Tier0网关时,会通过Inter-SR iBGP链路被转发到相同数据中心的另一台可用的tier0SR in Edge-12。

image.png

但如果是Edge-11整机故障,事情就会变得不太一样。我们知道Edge-11除了承载tier0SR in Edge-11的南北向流量外,还会承载跨数据中心的全局Overlay分段流量。如下图所示,当web-11尝试与web-21通信的时候,会经过Edge-11的RTEP进行封装和传输;因此Edge-11的整机故障可能会影响跨数据中心Overlay流量。

当笔者关闭Edge-11传输节点的电源模拟整机故障后,可以看到Primary DataCenter(后文简称PDC)的南北向流量并没有影响;而且由于Edge-11的整机故障,PDC的延伸Tier1网关实例只会将北向流量转发到tier0SR in Edge-12,通过在web-11虚拟机使用traceroute命令可以清楚地看到这个变化。

image.png

而对于跨数据中心的Overlay流量来说,因为Edge-12也可以承载这类流量,因此总体的网络连通性也不会受到影响。

image.png

在PDC的Local Manager Edge传输节点状态上可以清楚地看到这个状态。

image.png

综上所述,当存在2根上行链路中断的场景下,无论是东西向还是南北向的流量均不会有影响。


🐾 中断3根Tier0上联

第三个测试,同时中断3根Tier0上联,这是模拟以下几种情况:1. Tier0SR所在Edge传输节点的网口、网线故障;2. Edge-11和上游网络核心设备位于同一台机柜,机柜出现了电源中断。

image.png

通过对前两个测试的分析,相信各位看官不难得出“在这种场景下,所有流量均不会受到影响”的结论吧。


🐾 中断4根Tier0上联

其实真正严格意义上涉及到“Federation灾难切换和冗余”命题的,是第四个测试。

出现这种场景的可能性是多种多样的,如果笔者说“巧了,就Edge-11和Edge-12对应的那四个口出现了故障或者网线物理中断”,各位看官大概也不会相信吧,虽然这种可能性是存在的。客观来说,这类故障通常会是以下三种情况:

1. 上游物理设备故障

2. Edge传输节点故障

3. 站点整体故障

接下来,笔者就逐条来分析故障场景下的网络流走向变化情况。

首先,笔者关闭上游物理设备电源(两台VYOS虚拟机)。在Tier0SR的路由表上可以看到原先的南北向路由发生了变化。

image.png

可以看到,所有原先指向上行网络核心的路由(包括默认路由)全部指向远端数据中心Secondary DataCenter(后文称SDC)的Tier0SR实例;这是否意味着所有本地数据中心NSX网络承载的虚拟机北向流量依旧可以通过远端数据中心继续转发?

笔者在web-11上通过traceroute命令验证了这个猜想:

image.png

可以看到访问互联网3.3.3.3的流量即使到达了tier0SR in Edge11或者tier0SR in Edge12,也会经过inter-SR iBGP链路被转发到tier0SR in Edge21或者tier0SR in Edge22,再继续北向转发,如下图所示:

而跨数据中心的Overlay流量因为Edge-11以及Edge-12依旧正常运行,RTEP的封装和解封装并不会受到影响,因此此类流量不会发生中断。

image.png

不过对于经过上游物理核心南向转发的流量来说,这些流量到达上游物理核心后,没有其他备用的路由继续南向转发,因此此类流量就会发生中断。

接着,笔者开启上游物理核心,再关闭Edge-11和Edge-12两台边界传输节点的电源。

显而易见的故障是跨数据中心Overlay流量一定发生了中断:

image.png

因为实现了“本地输出”的关系,SDC的南北向流量并不会受到影响。

image.png

那么PDC的虚拟机南北向流量是否受到了影响呢?

要知道对于源是SDC目的是PDC虚拟机的流量来说,虽然可以经过SDC的Tier0网关被转发到NSX网络,但是因为Edge-11和Edge-12都出现了故障,最后的跨数据中心Overlay流量无法被转发,所以必然会受到影响。(笔者没测试RTEP单独由额外的Edge集群承载的情况,因为环境的资源基本消耗光了,得过一段时间再看看能不能腾出点资源部署台Edge测试一下)基于上述逻辑,不难得出在Edge-11和Edge-12均出现故障的情况下,所有可能的备选路由因为都需要经过RTEP封装和解封装,因此所有南北向流量均会影响。

image.png

那么在这种情况下,如何快速恢复业务呢?

最直接的方法就是尽快通过替换-重装,或者其他方式完成Edge-11和Edge-12的恢复。

最笨重的方法就是临时将Federation架构改成Multi-Site架构,新建一个全新的非延伸的Tier1网关;不过这完全是以跨数据中心Underlay链路MTU不低于1600且L3连通性并没有发生故障为前提的。

当然还有一个轻松的方法,就是利用管理的L3链路,将PDC的虚拟机迁移到SDC的vCenter,从而继续享受“本地输出”带来的便捷。

最后的一种场景,是PDC整体发生了故障,那么结果是显而易见的......


🐾 本地输出场景-跨数据中心L3网络中断

对于跨数据中心L3网络中断来说,可以分为三类情况:

1. 管理网络L3中断;

2. 承载跨数据中心Overlay流量的L3 Underlay网络中断;

3. 数据中心之间的其他网络链路中断。


🐾 管理网络L3中断

我们知道,在Federation架构下的跨数据中心的管理/系统流量包含以下几种类型:

vCenter实例之间的流量,当跨数据中心之间的L3网络中断之后,管理员访问一台vCenter Web UI将会看到与另一台vCenter实例之间的连接中断这类提示。但这本身不会影响整体平台的运行,除非有应用与之强关联;比如两个数据中心之间启用了SRM容灾解决方案;与此同时,跨数据中心的vMotion也会失败,这也是管理网络L3中断的一些影响。

Global Manager(后文简称GM)主备集群之间的流量,GM和Local Manager(后文简称LM)集群之间的流量;这类属于管理平面与控制平面的流量,同样不会对业务产生影响。对于每一个站点来说,只要能确保自己的LM与传输节点之间的网络可达不受到影响,就不会出现业务中断的情况。

综上所述,管理网络L3的中断不会对业务产生显著的影响。


🐾 跨数据中心Underlay网络中断

     这类网络中断对于Federation架构来说,算是一种近乎致命的影响了。在之前分析“Edge-11和Edge-12同时故障的场景”中,笔者已经提到过,因为跨数据中心Underlay网络承载的是经过Edge传输节点RTEP封装和解封装的流量,因此这类网络中断肯定会造成NSX网络连通性的巨大问题。在笔者的环境中,此时位于SDC的web-21虚拟机将无法访问PDC的db-11虚拟机。对于SDC站点来说,web-21与db-11共同对外提供的业务将出现“数据库不可达”的情况,业务因之出现了停摆。不过好在web-11和web-12能继续对外提供业务访问,在使用NSX Advanced Loadbalancer或者其他ADC作为全局负载均衡的条件下,总体的业务不会受到影响。同时,如果管理员能够数据库只读等方式,通过同步机制在SDC的主机传输节点上部署一台db-21,那么依旧可以实现业务的冗余性。因此,跨数据中心Underlay网络中断虽然会造成东西向严重的网络不可达,但可以通过其他形式进行弥补。


🐾 跨数据中心其他网络链路中断

通过之前对tier0sr in Edge路由表的分析,各位不难发现:所有另一个数据中心站点学习到的路由条目,对于本数据中心来说都会经过inter SR iGBP链路进行转发。以下图为例:

image.png

在tier0SR in Edge21以及tier0SR in Edge22两个延伸Tier0网关的路由表上,都会学习到2.2.2.2/32这个路由,这是上游网络设备通过eBGP宣告给Tier0网关的。

那么对于tier0SR in Edge11和tier0SR in Edge21来说,2.2.2.2/32的路由就会被inter SR iBGP链路转发到远端的Tier0SR实例,下方的tier0SR in Edge11的路由表印证了这个说法。

image.png

因此通常情况下,除了管理网络、跨数据中心Underlay网络故障外,其他的网络故障不会对Federation业务产生不利的影响。


🐾 本地输出场景-小结

     总结来看,在满足“本地输出”前提下,出现以下几种情况时,NSX云网络的东西向以及南北向流量可能会受到影响。某一个站点Tier0网关上游所有的网络设备全部出现故障,此时无论是站点内还是站点间的东西向流量无影响,故障站点的北向流量会经过inter-SR iBGP链路到达另一个站点的Tier0网关后向北转发。故障站点的Tier0网关不会收到任何南向流量。其他站点访问故障站点NSX云网络的流量均会通过跨站点的Underlay网络转发(前提是这个网络不在上游网络设备上)。      某一个站点用于跨站点RTEP封装的Edge传输节点全部出现了故障,如果该Edge传输节点本身不承载Tier0网关,那么各自站点的南北向流量不会受到影响;反之南北向流量中断。而同站点内的东西向流量不会受到影响(因为本地输出没有Tier1SR实例);但跨站点的东西向流量中断。某一个站点全部出现故障的时候,毫无疑问所有东西向、南北向流量均会受到影响。


🐾 写在最后

经过本次分享,相信各位对满足“本地输出”的Federation故障切换应该有了充分的认识了。其实Federation架构的故障场景基本上与普通NSX架构的故障场景产生的结果相类似。南北向的可用性取决于Edge传输节点(Edge集群)的稳定性,因此在设计部署Edge传输节点的时候,管理员应该尽量选择满足兼容性的硬件选型,并且充分考虑吞吐合理规划Edge(虚拟机)规模。同时,笔者还是“盲目”相信Tier0SR与上游物理设备的|X|型连接能提供最高的可用性,只要有一根链路是正常的情况下,本地的总体南北向网络可达不会中断,只是吞吐会受到一些影响。普通NSX架构的Tier0网关上游设备出现故障的时候,所有的南北向流量均会中断,而Federation很好地弥补了这个缺陷。不过当RTEP所在的Edge集群出现问题的时候,NSX网络的跨数据中心L2互访同样会出现问题,这是MultiSite架构不会遇到的情况。

未来的几篇公众号分享,笔者计划一来是把有Tier1SR实例的故障切换情况与各位看官做个阐述;二来自己已经搭建好NSX Advanced Loadbalancer和Opencart开源电商网站演示用例,想好好学习并实践一下AVI的全局负载均衡和弹性伸缩功能。不过,笔者估计需要不少时间才能吃透自己并不擅长的东西,期待下次的见面吧~


相关文章
|
5月前
|
负载均衡 网络协议 算法
【揭秘】IP负载均衡背后的神秘力量:如何让网站永不宕机?揭秘四大核心技术,解锁高可用性的秘密通道!
【8月更文挑战第19天】负载均衡技术保障互联网服务的高可用性和可扩展性。它像交通指挥官般按策略分配用户请求至服务器集群,提高响应速度与系统稳定性。本文轻松介绍IP负载均衡的工作原理、算法(如轮询、最少连接数)及实现方法,通过示例展示基于四层负载均衡的设置步骤,并讨论健康检查和会话保持的重要性。负载均衡是构建高效系统的关键。
117 2
|
5月前
|
存储 安全 Unix
揭秘Linux配置之谜:为何重启成常态?动态刷新配置竟成奢望?一场关于系统稳定性与灵活性的较量!
【8月更文挑战第12天】Linux以其卓越性能在各领域广泛应用,但配置更新需重启而非动态刷新。这源于系统架构的静态设计、配置管理机制的局限、安全考量及性能优化需求。配置文件存储于磁盘,改动不自动反映至内存;服务管理依赖systemd等初始化系统,启动时加载配置而不主动监测变更;动态刷新可能引入安全风险;频繁更新配置亦影响性能。开发者可通过信号或IPC机制实现在特定信号下重新加载配置。
60 4
|
5月前
|
Prometheus 监控 Java
微服务架构下的服务治理策略:打破服务混乱的惊天秘籍,开启系统稳定的神奇之门!
【8月更文挑战第7天】微服务架构将应用细分为可独立部署的小服务,提升灵活性与可扩展性。但服务增多带来治理挑战。通过服务注册与发现(如Eureka)、容错机制(如Hystrix)、监控工具(如Prometheus+Grafana)、集中配置管理(如Spring Cloud Config)和服务网关(如Zuul),可有效解决这些挑战,确保系统的高可用性和性能。合理运用这些技术和策略,能充分发挥微服务优势,构建高效应用系统。
70 1
|
8月前
|
算法
配电网故障重构/孤岛划分/故障恢复
配电网故障重构/孤岛划分/故障恢复
|
消息中间件 存储 容灾
共识协议的技术变迁 -- 既要“高”容错,又要“易”定序,还要“好”理解
这篇文章与读者朋友们好好聊一聊共识这个技术领域,期望能够让大伙儿对共识协议的前世今生以及这些年的技术演进有个大体了解。
20982 53
|
数据中心 网络虚拟化 虚拟化
联盟时代VIII.灾难容错和切换(2)
在上期的分享中,笔者对Federation网络架构下满足“本地输出”要求的场景在出现故障时的容错和切换情况进行了说明。当整体NSX网络在设计时就充分考虑冗余的前提下,大部分的“组件故障”并不会引起大面积的“业务停摆”。但Edge集群的故障不仅仅会造成南北向网络可达性的中断,也同样会造成跨数据中心的东西向网络中断;因此笔者认为Edge集群的稳定性很大程度上决定了Federation网络的稳定性。今天的分享将围绕不满足“本地输出”的场景展开,看看在具有Tier1SR实例的Federation网络模型中,灾难容错和网络切换的情况究竟是如何的一番天地。
|
算法
主动配电网故障恢复的重构与孤岛划分统一模型研究【升级版本】(Matlab代码实现)
主动配电网故障恢复的重构与孤岛划分统一模型研究【升级版本】(Matlab代码实现)
|
负载均衡 API 数据库
【韧性架构设计】软件韧性:从意外中恢复的 7 个必备因素
【韧性架构设计】软件韧性:从意外中恢复的 7 个必备因素
|
存储 区块链
区块链101:什么是SegWit(隔离见证)?
区块链101:什么是SegWit(隔离见证)?
|
运维 监控 数据可视化
架构设计60-落地原则02-故障隔离(故障的传播方式与隔离办法)
架构设计60-落地原则02-故障隔离(故障的传播方式与隔离办法)
693 0
架构设计60-落地原则02-故障隔离(故障的传播方式与隔离办法)

热门文章

最新文章

下一篇
开通oss服务