谈谈VIP漂移那点破事

简介:

一直以来都是用nginx的upstream模块做网站最前端的负载均衡,为了防止nginx本身宕机导致网站不能访问,通常都会做两套nginx反向代理,然后用keepalive之类的软件提供VIP。


常见的环境是nginx主节点和从节点各有一个公网IP,一个私有IP,VIP地址也使用公网IP来提供,正常情况下VIP只会在nginx主节点上工作,只有主节点宕机或者网络不可达等情况下,VIP才会漂移到nginx从节点上。如果keepalive配置了非抢占模式,则主节点恢复后,VIP也不会漂移会主节点,而是继续在从节工作。这种配置要求机房网络不做mac地址绑定。


最近做的两套培训系统测试情况如下:

系统一:主从节点做双网卡绑定,都只有一个私有IP,VIP也为私有IP,通过防火墙的NAT转发用户的访问请求。主节点宕机后,VIP可以漂移至从节点,但用户无法访问网站,telnet防火墙公网IP的80端口提示无法连接。


系统二:主从节点各有两张网卡,分别配置一个公网IP和一个私有IP。VIP地址也使用公网IP来提供。

主节点宕机后,VIP可以漂移至从节点,但用户无法ping通VIP,自然网站也就打不开。


于是分别对这两种情况进行排查:

系统二:属于比较常见的配置方案。VIP漂移后无法ping通,第一反应询问机房工作人员,是否相应的设备做了mac地址绑定。得知无绑定策略后继续排查。

发现配置net.ipv4.ip_nonlocal_bind = 1 参数并使其生效后重新测试正常。


系统一:情况有点特殊,按系统二的解决方法尝试无果后,怀疑端口路由器映射上出现问题。于是继续测试VIP漂移,发现VIP漂移到从节点后,防火墙上的arp表中vip对应的mac地址依旧是主节点网卡的mac地址,原来防火墙才是罪魁祸首,坑爹的货。机房使用的防火墙型号华为Quidway Eudemon1000E,据说默认配置下,这个arp地址表自动刷新需要20分钟!


好吧!于是用下面的命名手工刷新后,万事大吉,网站访问也很顺畅,比较郁闷的是当主节点重新抢占VIP后,依然需要手工刷新下,否则防火墙还是把请求转给从节点响应。

# arping -I 网卡地址 -c 3 -s VIP地址 网关地址


后记:

要彻底解决系统一的问题,可以从两方面去着手,首先是考虑去调整防火墙的arp表的自动刷新时间;其次是考虑在从节点上部署一个无限循环的脚本,时时去检测是否抢占到了VIP,若抢占成功,则运行前面的刷新命令,命令成功运行后退出脚本,同时可以用nagios监控该脚本,了解最新的主从切换情况。切记,循环运行一次接受后sleep 1秒,否则会死机的哦!

如果在主节点上也部署类似的脚本,则会对网络带来负担,因而主节点恢复后的刷新手工运行下就好了,如果忘记运行了,从节点依然可以工作,无伤大雅!

本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/1314004如需转载请自行联系原作者


ylw6006

相关文章
|
缓存 边缘计算 监控
2024年前端性能优化的新策略
【10月更文挑战第3天】本文分享了一些2024年前端性能优化的新策略,希望能够为前端开发者提供实用的参考和指导。在实际开发中,应根据应用的具体需求和场景选择合适的优化方法。
|
机器学习/深度学习 算法 计算机视觉
SORT新方法AM-SORT | 超越DeepSORT/CO-SORT/CenterTrack等方法,成为跟踪榜首
SORT新方法AM-SORT | 超越DeepSORT/CO-SORT/CenterTrack等方法,成为跟踪榜首
937 0
|
存储 编解码 算法
H.264编码及AAC编码基础 1
H.264编码及AAC编码基础
933 0
|
机器学习/深度学习 人工智能 编解码
十连冠!阿里云蝉联中国音视频整体市场第一!
阿里云视频云以24.17%市场份额连续十次蝉联IDC音视频市场第一。AI+视频云成为增长核心驱动力,“AI实时互动”与“智能媒体生产”等赛道实现商业化突破。阿里云推出三大解决方案:AI实时互动助力企业快速构建沉浸式体验;智能媒体服务通过大模型提升内容生产效率;超高清与超低延时技术双突破,为客户提供高品质直播及点播服务。未来,阿里云将持续定义音视频新体验,与伙伴共创行业未来。
604 1
|
JSON 搜索推荐 算法
利用API提升电商用户体验:个性化推荐系统
在电商竞争激烈的当下,个性化推荐系统成为提升用户粘性与转化率的关键。本文详解如何通过API集成高效接入先进推荐算法,实现实时精准推荐,优化用户体验,提升业务增长。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
MCP、LLM与Agent:企业AI实施的新基建设计方案
MCP+LLM+Agent架构通过"大脑-神经网络-手脚"的协同机制,实现从数据贯通到自主执行的智能闭环。本文将深度解析该架构如何将产线排查效率提升5倍、让LLM专业术语识别准确率提升26%,并提供从技术选型到分层落地的实战指南,助力企业打造真正融入业务流的"数字员工"。通过协议标准化、动态规划与自愈执行的三重突破,推动AI从演示场景迈向核心业务深水区。
|
SQL Java 关系型数据库
【📕分布式锁通关指南 01】从解决库存超卖开始加锁的初体验
本文通过电商场景中的库存超卖问题,深入探讨了JVM锁、MySQL悲观锁和乐观锁的实现及其局限性。首先介绍了单次访问下库存扣减逻辑的正常运行,但在高并发场景下出现了超卖问题。接着分析了JVM锁在多例模式、事务模式和集群模式下的失效情况,并提出了使用数据库锁机制(如悲观锁和乐观锁)来解决并发问题。 悲观锁通过`update`语句或`select for update`实现,能有效防止超卖,但存在锁范围过大、性能差等问题。乐观锁则通过版本号或时间戳实现,适合读多写少的场景,但也面临高并发写操作性能低和ABA问题。 最终,文章强调没有完美的方案,只有根据具体业务场景选择合适的锁机制。
697 12
【📕分布式锁通关指南 01】从解决库存超卖开始加锁的初体验
|
存储 监控 Linux
select/poll/epoll优缺点及应用场景
select/poll/epoll优缺点及应用场景
853 1
|
分布式计算 大数据 BI
ClickHouse与大数据生态整合:从ETL到BI报表
【10月更文挑战第27天】在这个数据驱动的时代,企业越来越依赖于数据来做出关键决策。而高效的数据处理和分析能力则是支撑这一需求的基础。作为一位数据工程师,我有幸参与到一个项目中,该项目旨在利用ClickHouse与Hadoop、Spark、Flink等大数据处理框架的整合,构建一个从数据提取(Extract)、转换(Transform)、加载(Load)到最终生成商业智能(BI)报表的全流程解决方案。以下是我在这个项目中的经验和思考。
812 1
|
存储 网络性能优化 文件存储
OpenStack的块存储卷类型和QoS
【8月更文挑战第25天】
558 4