负载均衡热备模式下服务器网卡的主备切换问题

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
网络型负载均衡 NLB,每月750个小时 15LCU
简介:

今天讨论拓扑中负载均衡部署在冗余网络结构下,服务器双网卡的切换问题。

122727326.png

图一

图一拓扑中四台服务器与负载均衡直接相连,每台服务器双网卡各连接一台负载均衡,负载均衡热备模式部署,服务器双网卡也绑定为主备模式。当负载均衡发生主备切换时,服务器的主备网卡也跟随切换。其实这样的应用需求非常的普遍,但实际网络拓扑更常见是的如图二所示结构。服务器不直接与负载均衡连接,服务器数量也不必受到负载均衡物理接口数量的限制,这样的网络架构,一对负载均衡设备可以为几百台服务器提供应用交付。

122836349.png

图二

先看看图二中主备切换时,服务器网卡是如何切换的。服务器双网卡绑定为主备模式,主备网卡的切换条件通常配置为链路检测,发现链路中断时,主备网卡自动切换。从服务器的角度看,冗余链路的主备切换分两种,第一种,服务器到交换机连接链路down掉的主备切换,交换机死机和链路故障都属于这类切换,此时服务器网卡也会进行主备切换;第二种,连接链路是up时的主备切换,此时服务器主备网卡不发生切换,但交换机之间启用VRRPHRSP协议,两台交换机之间的连接线除了传输交换机的状态信息外,也可以传输业务数据。服务器数据报文传输链路如图三所示,网络发生主备切换时,服务器依然能正常接入网络。

123006784.png

图三

但第二种主备切换发生在图一拓扑中时就会遇到问题,原因是负载均衡HA心跳线只传输ha相关数据,不传输业务数据,因此当负载均衡主备切换,而服务器网卡不能主备切换时,服务器是无法接入网络的。

这里提供两种解决方案:

方案一、改变服务器双网卡主备模式的检测方法:以linux服务器为例,服务器双网卡绑定在网络上常见的配置参数如下,millmon=100是对链路状态检测的配置项,这也是上述无法主备切换的原因。

/etc/modprobe.d/bonding.conf 

alias bond0 bonding

options bond0 mode=1 miimon=200

mode=1表示主备模式

millmon=100,表示每100ms监测一次链路连接状态

 

可以将链路状态检测改为arp请求检测,当负载均衡发生主备切换时,主网卡向原来的主负载均衡发送arp请求,由于floating-ip已经漂移到新的主设备上,原来的主设备不会回应服务器的arp请求,服务器arp请求超时后,主备网卡发生切换。服务器双网卡绑定检测方式更改如下:

/etc/modprobe.d/bonding.conf 

alias bond0 bonding

options bond0 mode=1 arp_interval=60 arp_ip_target=2.2.2.1 arp_validate=all

mode=1表示主备模式

arp_interval =100表示100毫秒发一次arp请求

arp_ip_target=2.2.2.1表示主网卡发出的arp请求,IP一般是服务器网关地址,这网关地址在图一拓扑中是负载均衡的floating-ip

arp_validate=all arp保持验证,一定要配置不然无法实现预期的网卡切换。

方案二、负载均衡实现服务器vlan的数据透传:当服务器受操作系统或其他原因限制,无法通过更改服务器配置实现双网卡主备切换时,可以采用此解决方案。两台负载均衡设备之间除了HA心跳线,还需要一条打通主备负载均衡上服务器段vlan的链路,最简单方法是在两台设备之间再增加一条连接链路,其作用是实现如图三所示的数据传输。

负载均衡新增配置较为简单,主备设备只需将新增链路接口划入服务器所在vlan,接口类型为tagged即可。

vlan 10

untagged ethernet 1 to 4

tagged ethernet 7

router-interface ve 10

name " servers"

从整体上来说,方案一实现服务器双网卡的主备切换更为合理,方案二是非常规环境下,负载均衡设备完全通过自身配置调整的解决之道,是没有办法的办法。


本文转自 virtualadc 51CTO博客,原文链接:http://blog.51cto.com/virtualadc/1227388



相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
13天前
|
弹性计算 监控 负载均衡
|
17天前
|
监控 负载均衡 算法
slb管理后端服务器
【10月更文挑战第18天】
18 5
|
1月前
|
消息中间件 分布式计算 监控
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
61 6
|
1月前
|
弹性计算 负载均衡 算法
负载均衡如何帮助阿里云国际服务器搭建的网站或应用程序?
负载均衡如何帮助阿里云国际服务器搭建的网站或应用程序?
|
1月前
|
SQL 存储 数据管理
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
56 2
|
1月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
44 1
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
3月前
|
负载均衡 监控 算法
揭秘负载均衡的五大算法秘籍:让你的服务器轻松应对亿万流量,不再崩溃!
【8月更文挑战第31天】在互联网快速发展的今天,高可用性和可扩展性成为企业关注的重点。负载均衡作为关键技术,通过高效分配网络流量提升系统处理能力。本文介绍了轮询、加权轮询、最少连接及IP哈希等常见负载均衡算法及其应用场景,并提供Nginx配置示例。此外,还探讨了如何根据业务需求选择合适算法、配置服务器权重、实现高可用方案、监控性能及定期维护等最佳实践,助力系统优化与用户体验提升。
68 2
|
3月前
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
127 2
|
3月前
|
数据采集 弹性计算 供应链
阿里云服务器付费模式:按量付费、包年包月和抢占式实例全解析
阿里云服务器提供包年包月、按量付费与抢占式实例三种付费模式。包年包月为预付费,适合长期稳定使用,价格更优惠并支持备案。按量付费则为后付费模式,按小时结算,适合短期或访问量波动大的场景,但不支持备案。抢占式实例基于按量付费,价格更低(最多节省90%),适用于无状态应用,如临时测试或可弹性伸缩的Web服务,但存在被系统释放的风险,同样不支持备案。根据具体需求选择合适的付费模式能够有效降低成本并提高效率。
126 0