当前位置:首页 > 杂谈 > 正文内容

运维实例篇(2)——什么是冗余-冗余的两种工作方式

2024-09-20 11:17:42杂谈231

惯例的结论在开头

只有业务冗余才是真正的冗余,网络冗余总是会遇到瓶颈。而和冗余作对的,最终只能是成本(声明我没有系统学习过组网架构的知识,所有观点只是根据我日常经验总结一些分享)

冗余性设计

在IDC网络中,或者可以说在所有固定网络中,为了保证冗余性(定义来自百度百科:对执行某一安全功能的系统,设置重复的部件或系统,使它们中的任何一个,不管其他部件或系统所处的状态如何,都能单独地完成所要求的安全功能),我们都会设计两条链路(多一条嫌浪费),如果别人告诉你服务器四个网卡是为了冗余,那他就是不懂(应该是为了上联带宽),因为理论上来说,两个物理逻辑完全不相干的链路同时故障的概率已经低到我们没必要考虑的情况了。

但是在日常工作中,我们会经常发现网络的冗余性设计失效,导致问题的情况。简单总结如下:

物理条件限制无法完全冗余

在以下几个例子中,我们一个是要尽量避免耦合,同时也要强调业务的冗余性,才能完全避免。

长途链路虽然路由器之间链路是多个,但是传输共享一个设备。服务器上联两个接入设备,但是它们共用一个电源。上联接入设备是软件耦合的(使用了堆叠技术或者由控制器控制),或者是遇到了同一个软件bug。上联设备没事,下联服务器挂了。

动态感知

虽然设计了冗余,但是如果没有明确的检测机制,就没法在出现问题的时候进行切换,冗余也就是没有意义的。很多网络只靠物理端口状态触发切换,往往是不够的。当然检测机制的敏感性要和链路质量预期相匹配,如果本来就是质量较差的链路,太过敏感的检测反而会导致将影响扩大。

状态同步和无损切换

网络切换不等于业务切换,有很多业务是有状态的,在网络层来说防火墙设备也有类似问题。如果单纯的把流量切到另一个链路,会因为没有session表项而导致长链接中断。这种情况下需要有状态的设备及时数据同步,才能做到真正的无损切换。

双活模式的水位控制

双活模式简单说就是两个链路都承载流量,在出现问题是互做备份。这类备份一定要注意日常的流量,如果整体流量都超过50%了,一条链路故障了就会导致超流量丢弃(同时服务器负载等指标也有同样的问题),所以需要在日常运营中关注。

结论

冗余不止是设计建设时的问题,也是日常运营中需要时时关注的问题,没有日常的关注,再多的冗余链路也发挥不了应有的作用。

下篇计划讲讲日常故障库的建设和维护。有兴趣的同学可以一起进行讨论,也可以看看我专栏中的其他文章。拜拜~~~

网络运维工程师的日常www.zhihu.com/column/c_1113754609683816448