新闻详情

新闻详情

首页 / 资讯中心 / 详情

CentOS下Keepalived高可用部署与VRRP协议详解

发布时间:2026/9/12 10:35:51来源:尧图网络
CentOS下Keepalived高可用部署与VRRP协议详解
1. Keepalived高可用方案概述在CentOS环境下部署Keepalived实现高可用性是保障关键业务连续性的经典方案。这套方案的核心在于利用VRRP协议Virtual Router Redundancy Protocol实现IP地址的自动漂移当主节点故障时备节点能在秒级完成接管。我曾在金融行业核心交易系统中部署过这套方案实测故障切换时间可控制在3秒以内。VRRP协议通过多播地址224.0.0.18进行通信默认使用112作为协议号。其工作原理类似于值班小组MASTER节点定期发送通告报文默认1秒间隔如果BACKUP节点超过3倍通告间隔未收到报文就会发起选举接管VIP。这种机制避免了单点故障但要注意网络分区Split-Brain风险——这也是为什么我们需要在配置中添加额外的健康检查。2. 基础环境准备2.1 系统要求与软件安装推荐使用CentOS 7.9或CentOS Stream 8作为操作系统这两个版本对Keepalived的支持最为稳定。安装过程需要注意几个关键点# 清除可能存在的旧版本 sudo yum remove keepalived -y # 安装EPEL仓库CentOS 7 sudo yum install epel-release -y # 安装Keepalived和依赖 sudo yum install keepalived ipvsadm -y # 验证安装版本应≥1.3.5 keepalived --version注意如果遇到为仓库appstream下载元数据失败错误需要先执行sudo yum clean all sudo yum makecache清理缓存。在企业内网环境建议配置本地yum镜像源。2.2 网络配置要点每台服务器需要至少两个网络接口eth0对外服务的VIP承载接口eth1VRRP协议通信的专用通道避免与业务流量竞争通过ip addr命令确认网卡名称后建议永久配置静态IP。编辑/etc/sysconfig/network-scripts/ifcfg-eth0示例DEVICEeth0 BOOTPROTOstatic IPADDR192.168.1.100 NETMASK255.255.255.0 GATEWAY192.168.1.1 ONBOOTyes3. Keepalived核心配置解析3.1 主备节点配置差异主节点配置文件/etc/keepalived/keepalived.conf示例global_defs { router_id LVS_MASTER # 唯一标识建议用主机名 } vrrp_instance VI_1 { state MASTER # 初始状态 interface eth0 # 监听网卡 virtual_router_id 51 # 组ID主备必须相同 priority 100 # 选举权重主备 advert_int 1 # 通告间隔(秒) authentication { auth_type PASS auth_pass 1111 # 密码需主备一致 } virtual_ipaddress { 192.168.1.200/24 dev eth0 label eth0:1 # VIP配置 } }备节点只需修改三处state BACKUP priority 90 router_id LVS_BACKUP3.2 健康检查增强配置基础VRRP缺乏业务层健康检测需要添加脚本检查vrrp_script chk_nginx { script /usr/bin/killall -0 nginx # 检查nginx进程是否存在 interval 2 # 检查频率 weight -20 # 检测失败时优先级调整值 } track_script { chk_nginx # 关联检测脚本 }更完善的健康检查应该包括端口检测和响应验证例如#!/bin/bash curl -sSf http://localhost:80/health-check /dev/null || exit 14. 高级部署方案4.1 多VIP场景配置当需要管理多个虚拟IP时可以扩展vrrp_instancevirtual_ipaddress { 192.168.1.200/24 dev eth0 label eth0:1 192.168.1.201/24 dev eth0 label eth0:2 10.0.0.100/24 dev eth1 label eth1:1 }4.2 脑裂防护措施为防止网络分区导致的双主问题建议配置多播检测vrrp_instance VI_1 { ... unicast_src_ip 192.168.1.100 # 本机真实IP unicast_peer { 192.168.1.101 # 对端真实IP } }使用iptables限制VRRP通信iptables -A INPUT -i eth0 -d 224.0.0.18 -j ACCEPT iptables -A INPUT -i eth0 -p vrrp -j ACCEPT iptables -A OUTPUT -o eth0 -d 224.0.0.18 -j ACCEPT5. 运维与排错指南5.1 服务管理命令# 启动服务首次需加载配置 systemctl start keepalived # 设置开机自启 systemctl enable keepalived # 查看运行状态 systemctl status keepalived -l # 动态重载配置不中断服务 systemctl reload keepalived5.2 日志分析技巧Keepalived日志默认输出到syslog建议单独配置global_defs { ... log_file /var/log/keepalived.log log_file_size 1024 # 日志轮转大小(MB) }常见日志分析Entering MASTER STATE成功接管VIPVRRP_Instance(xxx) Transition to MASTER状态切换IPVS: Cant initialize ipvs缺少ipvs模块需modprobe ip_vs5.3 故障排查流程图VIP是否漂移ip addr show eth0查看VIP绑定tcpdump -i eth0 vrrp抓包分析健康检查是否通过手动执行检测脚本验证检查应用端口netstat -tulnp防火墙是否放行iptables -L -n -v查看规则firewall-cmd --list-allFirewalld6. 生产环境优化建议6.1 参数调优vrrp_instance VI_1 { ... garp_master_delay 5 # 接管后延迟发送GARP garp_master_refresh 60 # 定期刷新GARP track_interface { eth0 weight -50 # 网卡故障降权 eth1 weight -50 } }6.2 与LVS集成Keepalived原生支持LVS负载均衡配置示例virtual_server 192.168.1.200 80 { delay_loop 6 lb_algo wrr # 加权轮询 lb_kind DR # 直接路由模式 persistence_timeout 50 # 会话保持 real_server 192.168.1.100 80 { weight 3 TCP_CHECK { connect_timeout 5 connect_port 80 } } }6.3 监控集成方案推荐Prometheus监控指标# 安装exporter yum install keepalived-exporter -y # 配置采集 scrape_configs: - job_name: keepalived static_configs: - targets: [localhost:9650]关键监控指标vrrp_state0init,1backup,2mastervrrp_data_errors通信错误计数check_script_status健康检查状态在部署过程中我发现很多故障源于基础配置错误。建议首次部署时逐步验证先测试单机VIP绑定再测试主备切换最后引入健康检查 这种分层验证法能快速定位问题层级。另外VIP切换时会有短暂网络抖动对TCP长连接应用需要做好重试机制。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

LLM结构化输出:Pydantic实现与应用实践 2026/9/12 11:17:56

LLM结构化输出:Pydantic实现与应用实践

1. 项目概述:LLM结构化输出的痛点与解决方案大语言模型(LLM)的文本生成能力令人惊叹,但原生输出的非结构化特性常常让开发者头疼。想象一下这样的场景:你调用LLM生成一份用户简历,得到的却是一段自由格式的…

阅读更多 →
机器学习每日一题:算法实现与优化实战 2026/9/12 11:17:56

机器学习每日一题:算法实现与优化实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
倒立摆控制:从MATLAB建模到LQR算法实现 2026/9/12 11:17:56

倒立摆控制:从MATLAB建模到LQR算法实现

1. 倒立摆控制问题的工程意义倒立摆系统作为控制理论中的经典研究对象,其价值远超过一个简单的学术练习。这个看似简单的机械系统实际上浓缩了现代控制工程中的核心挑战——如何在非线性、不稳定系统中实现精确控制。我第一次接触倒立摆是在研究生阶段的控制系统课程…

阅读更多 →
蛋白质修饰鉴定:质谱参数优化与数据分析策略 2026/9/12 11:17:56

蛋白质修饰鉴定:质谱参数优化与数据分析策略

1. 项目背景与问题定义在蛋白质组学研究中,目的蛋白修饰鉴定是揭示蛋白质功能调控机制的关键环节。当我们通过质谱技术获得修饰位点数据后,经常会遇到两个典型问题:一是检测到的修饰位点不全(部分已知修饰位点未被检出&#xff09…

阅读更多 →
LSTM电力负荷预测项目实战:从数据预处理到高分答辩全解析 2026/9/12 11:17:56

LSTM电力负荷预测项目实战:从数据预处理到高分答辩全解析

简介:电力负荷预测是智能电网运行与能源调度中的关键环节,直接关系到供电可靠性与经济性;这份以Python与长短期记忆(LSTM)网络为核心实现的电力负荷预测项目,面向高校人工智能、数据科学及电气信息等方向的…

阅读更多 →
scrcpy导致Rockchip VPU DMA-BUF泄漏黑屏问题解析 2026/9/12 11:14:56

scrcpy导致Rockchip VPU DMA-BUF泄漏黑屏问题解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞