LVS+Keepalived高可用集群

目录

[一、Keepalived 双机热备核心原理与基础配置](#一、Keepalived 双机热备核心原理与基础配置)

[(一)Keepalived 技术定位与核心功能](#(一)Keepalived 技术定位与核心功能)

[(二)VRRP 协议工作机制](#(二)VRRP 协议工作机制)

[1. 基本概念](#1. 基本概念)

[2. 状态迁移](#2. 状态迁移)

[3. 漂移 IP 实现特点](#3. 漂移 IP 实现特点)

(三)环境准备与软件安装

[1. 实验环境规划](#1. 实验环境规划)

[2. 安装步骤](#2. 安装步骤)

(四)双机热备核心配置解析

[1. 主服务器(Master)配置](#1. 主服务器(Master)配置)

[2. 备用服务器(Backup)配置](#2. 备用服务器(Backup)配置)

[3. 关键参数说明](#3. 关键参数说明)

(五)服务控制与状态验证

[1. 启动服务前准备](#1. 启动服务前准备)

[2. 启动服务并验证状态](#2. 启动服务并验证状态)

二、双机热备功能测试与故障切换验证

[(一)连通性测试:VIP 漂移验证](#(一)连通性测试:VIP 漂移验证)

[1. 客户端持续 Ping 测试](#1. 客户端持续 Ping 测试)

[2. 模拟 Master 故障](#2. 模拟 Master 故障)

[3. Master 恢复测试](#3. Master 恢复测试)

[(二)Web 服务切换测试:业务连续性验证](#(二)Web 服务切换测试:业务连续性验证)

[1. 配置测试页面](#1. 配置测试页面)

[2. 客户端访问测试](#2. 客户端访问测试)

[3. 故障切换验证](#3. 故障切换验证)

(三)日志分析:故障切换过程追踪

[1. 日志文件位置](#1. 日志文件位置)

[2. Master 节点关键日志](#2. Master 节点关键日志)

[3. Backup 节点关键日志](#3. Backup 节点关键日志)

[三、LVS+Keepalived 高可用群集构建](#三、LVS+Keepalived 高可用群集构建)

(一)群集架构设计

[1. 组件分工](#1. 组件分工)

[2. 工作模式选择:直接路由(DR 模式)](#2. 工作模式选择:直接路由(DR 模式))

[(二)基础环境配置(主 / 从调度器通用)](#(二)基础环境配置(主 / 从调度器通用))

[1. 关闭防火墙与 SELinux](#1. 关闭防火墙与 SELinux)

[2. 修改主机名](#2. 修改主机名)

[3. 加载 LVS 模块与安装工具](#3. 加载 LVS 模块与安装工具)

(三)主调度器详细配置

[1. 热备与 VIP 配置(同双机热备部分,新增虚拟服务器配置)](#1. 热备与 VIP 配置(同双机热备部分,新增虚拟服务器配置))

[2. 关键参数解析](#2. 关键参数解析)

[3. 重启服务使配置生效](#3. 重启服务使配置生效)

(四)从调度器配置

[(五)Web 节点服务器配置(DR 模式)](#(五)Web 节点服务器配置(DR 模式))

[1. 配置 VIP 回环接口](#1. 配置 VIP 回环接口)

[2. 调整 ARP 参数(避免 ARP 欺骗)](#2. 调整 ARP 参数(避免 ARP 欺骗))

[3. 启动 Nginx 服务并挂载共享存储(示例)](#3. 启动 Nginx 服务并挂载共享存储(示例))

[(六)NFS 共享服务器配置(可选,用于数据一致性)](#(六)NFS 共享服务器配置(可选,用于数据一致性))

[1. 安装 NFS 服务](#1. 安装 NFS 服务)

[2. 创建共享目录并设置权限](#2. 创建共享目录并设置权限)

[3. 配置 NFS 共享](#3. 配置 NFS 共享)

[4. 启动服务并验证](#4. 启动服务并验证)

(七)群集功能测试

[1. 负载均衡测试](#1. 负载均衡测试)

[2. 节点健康检查验证](#2. 节点健康检查验证)

[3. 调度器故障切换测试](#3. 调度器故障切换测试)

[4. LVS 规则查看](#4. LVS 规则查看)

四、高级配置与优化实践

[(一)多虚拟 IP 配置](#(一)多虚拟 IP 配置)

(二)端口监控与服务联动

(三)权重动态调整

(四)安全加固建议

五、故障排查与常见问题解决

[(一)VIP 无法绑定](#(一)VIP 无法绑定)

(二)主备切换失败

(三)节点未被剔除(健康检查失效)


一、Keepalived 双机热备核心原理与基础配置

(一)Keepalived 技术定位与核心功能

Keepalived 最初专为 LVS 负载均衡器设计,核心目标是解决单点故障问题,实现高可用性(HA)。其核心功能包括:

  • 故障切换(Failover):基于 VRRP 协议实现主备节点自动切换,确保服务持续可用。
  • 健康检查(Health Checking):监测 LVS 调度器及后端节点服务器的健康状态,自动剔除故障节点。
  • 虚拟 IP 管理:通过漂移 IP(VIP)实现服务地址透明切换,客户端无需感知后端服务器变化。

(二)VRRP 协议工作机制

1. 基本概念
  • 热备组(VRRP Group):由多台服务器组成,共享一个虚拟 IP 地址(VIP),同一时刻仅一台主服务器(Master)提供服务,其余为备用服务器(Backup)。
  • 虚拟路由器:逻辑上的路由器实体,对应热备组,通过 VIP 对外提供服务。
  • 优先级(Priority):决定主备选举顺序,数值越大优先级越高(范围 1-254,默认 100)。
2. 状态迁移
  • Master 状态:持有 VIP,周期性发送 VRRP 通告(默认 1 秒)。
  • Backup 状态:监听通告,当超时未收到 Master 通告(默认 3 倍通告间隔),触发主备选举。
  • Initialize 状态:初始启动状态,完成配置加载后进入 Backup 或 Master 状态。
3. 漂移 IP 实现特点
  • 无需手动创建虚接口(如 ens33:0),由 Keepalived 根据配置自动管理。
  • VIP 通过路由机制在热备组内迁移,对客户端透明。

(三)环境准备与软件安装

1. 实验环境规划
操作系统 配置 IP 地址 角色 服务
OpenEuler24 2C4G 192.168.10.101 主服务器(Master) Keepalived、Nginx
OpenEuler24 2C4G 192.168.10.102 备用服务器(Backup) Keepalived、Nginx
2. 安装步骤
复制代码
# 安装Keepalived及依赖工具(ipvsadm用于LVS管理,nginx用于测试服务)
yum install -y keepalived ipvsadm nginx
# 启动Keepalived服务并设置开机自启
systemctl start keepalived
systemctl enable keepalived

(四)双机热备核心配置解析

1. 主服务器(Master)配置
复制代码
# 进入配置目录
cd /etc/keepalived/
# 复制示例配置文件
cp keepalived.conf.sample keepalived.conf
# 编辑主配置文件
vi keepalived.conf

global_defs {
  router_id HA_TEST_R1  # 本服务器标识,需唯一
}

vrrp_instance VI_1 {
  state MASTER          # 节点状态:MASTER为主服务器,BACKUP为备用
  interface ens33       # 承载VIP的物理接口(需与实际网卡一致)
  virtual_router_id 1   # 虚拟路由ID,同一热备组内必须相同
  priority 100          # 优先级,数值越大越优先成为Master
  advert_int 1          # VRRP通告间隔(秒)
  authentication {
    auth_type PASS      # 认证类型,支持PASS和AH(此处使用简单密码认证)
    auth_pass 123456    # 认证密码,热备组内需一致
  }
  virtual_ipaddress {
    192.168.10.100/24   # 虚拟IP地址(VIP),可配置多个
  }
}
2. 备用服务器(Backup)配置
复制代码
vi keepalived.conf

global_defs {
  router_id HA_TEST_R2  # 备用服务器标识,需与Master不同
}

vrrp_instance VI_1 {
  state BACKUP          # 状态设置为备用
  interface ens33
  virtual_router_id 1
  priority 99           # 优先级低于Master(确保Master优先)
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 123456
  }
  virtual_ipaddress {
    192.168.10.100/24
  }
}
3. 关键参数说明
  • router_id:用于标识热备组内不同节点,需唯一,建议包含角色信息(如 R1/Master、R2/Backup)。
  • virtual_router_id:热备组唯一标识,取值范围 1-255,同一组内必须一致,不同组需不同。
  • priority:决定主备选举顺序,Master 需设置为高于 Backup 的数值(如 100 vs 99),且组内唯一。
  • advert_int:心跳间隔,建议保持默认 1 秒,过小可能增加网络负载,过大可能延长故障切换时间。
  • auth_pass:认证密码,需在热备组内保持一致,避免未授权节点加入。

(五)服务控制与状态验证

1. 启动服务前准备
复制代码
# 关闭防火墙(测试环境使用,生产环境需配置安全策略)
systemctl stop firewalld
systemctl disable firewalld
# 关闭SELinux(临时生效)
setenforce 0
# 永久关闭SELinux(修改配置文件)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2. 启动服务并验证状态
复制代码
# 启动Keepalived服务
systemctl start keepalived
# 查看Master节点VIP是否绑定
ip addr show dev ens33 | grep inet
# 预期输出:包含192.168.10.101(物理IP)和192.168.10.100(VIP)
inet 192.168.10.101/24 scope global ens33
inet 192.168.10.100/32 scope global ens33
# 查看Backup节点VIP状态(此时Master正常运行,Backup不应持有VIP)
ip addr show dev ens33 | grep inet
# 预期输出:仅包含192.168.10.102(物理IP)
inet 192.168.10.102/24 scope global ens33

二、双机热备功能测试与故障切换验证

(一)连通性测试:VIP 漂移验证

1. 客户端持续 Ping 测试
复制代码
# 在客户端执行持续Ping VIP
ping -t 192.168.10.100
2. 模拟 Master 故障
复制代码
# 停止Master节点Keepalived服务
systemctl stop keepalived
  • 预期结果
    • Ping 请求短暂中断(1-2 个包丢失),随后恢复正常,说明 Backup 接管 VIP。
    • Backup 节点执行ip addr show可见 VIP 绑定到 ens33 接口。
3. Master 恢复测试
复制代码
# 重新启动Master节点Keepalived服务
systemctl start keepalived
  • 预期结果
    • Ping 请求再次短暂中断后恢复,说明 Master 重新获取 VIP 控制权。
    • Master 节点ip addr show显示 VIP 重新绑定,Backup 节点 VIP 消失。

(二)Web 服务切换测试:业务连续性验证

1. 配置测试页面
复制代码
# 在Master节点设置Nginx首页内容
echo "Master Server (192.168.10.101)" > /usr/share/nginx/html/index.html
systemctl start nginx
# 在Backup节点设置不同的首页内容
echo "Backup Server (192.168.10.102)" > /usr/share/nginx/html/index.html
systemctl start nginx
2. 客户端访问测试
复制代码
# 在客户端浏览器访问http://192.168.10.100
# 正常情况下显示Master的页面内容
3. 故障切换验证
  • 停止 Master 服务
    • 浏览器刷新后应显示 Backup 的页面内容,说明 VIP 已切换至 Backup。
  • 恢复 Master 服务
    • 浏览器刷新后应重新显示 Master 的页面内容,说明 Master 重新接管 VIP。

(三)日志分析:故障切换过程追踪

1. 日志文件位置
复制代码
# 查看Keepalived日志(需实时跟踪)
tail -f /var/log/messages
2. Master 节点关键日志
  • 正常运行时

    复制代码
    Sep 11 13:36:42 localhost Keepalived_vrrp[18280]: VRRP_Instance(VI_1) Entering MASTER STATE
    Sep 11 13:36:43 localhost Keepalived_vrrp[18280]: VRRP_Instance(VI_1) setting protocol VIPs.
  • 停止服务时

    复制代码
    Sep 11 13:32:24 localhost Keepalived_vrrp[18261]: VRRP_Instance(VI_1) removing protocol VIPs.
3. Backup 节点关键日志
  • 接管 VIP 时

    复制代码
    Sep 11 13:12:44 localhost Keepalived_vrrp[25338]: VRRP_Instance(VI_1) Entering MASTER STATE
    Sep 11 13:12:44 localhost Keepalived_vrrp[25338]: VRRP_Instance(VI_1) setting protocol VIPs.
  • 释放 VIP 时(Master 恢复后)

    复制代码
    Sep 11 13:14:23 localhost Keepalived_vrrp[25338]: VRRP_Instance(VI_1) Entering BACKUP STATE
    Sep 11 13:14:23 localhost Keepalived_vrrp[25338]: VRRP_Instance(VI_1) removing protocol VIPs.

三、LVS+Keepalived 高可用群集构建

(一)群集架构设计

1. 组件分工
  • 负载调度器(Director):主(192.168.10.101)、从(192.168.10.102)各一台,基于 Keepalived 实现热备,共享 VIP(192.168.10.100)。
  • 节点服务器(Real Server):两台 Web 服务器(192.168.10.103、192.168.10.104),提供 HTTP 服务。
  • 共享存储(NFS):一台 NFS 服务器(192.168.10.105),存储 Web 内容,确保节点数据一致性。
2. 工作模式选择:直接路由(DR 模式)
  • 特点:调度器仅处理入站请求,响应报文直接由节点服务器返回给客户端,性能较高。
  • 要求:节点服务器需配置 VIP 的本地回环接口(lo:0),并调整 ARP 参数避免地址冲突。

(二)基础环境配置(主 / 从调度器通用)

1. 关闭防火墙与 SELinux
复制代码
systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2. 修改主机名
复制代码
# 主调度器
hostnamectl set-hostname lb01
# 从调度器
hostnamectl set-hostname lb02
# Web节点1
hostnamectl set-hostname web01
# Web节点2
hostnamectl set-hostname web02
3. 加载 LVS 模块与安装工具
复制代码
modprobe ip_vs          # 加载LVS内核模块
cat /proc/net/ip_vs     # 验证模块加载(显示LVS版本信息)
yum install -y ipvsadm keepalived  # 安装LVS管理工具与Keepalived

(三)主调度器详细配置

1. 热备与 VIP 配置(同双机热备部分,新增虚拟服务器配置)
复制代码
vi /etc/keepalived/keepalived.conf

global_defs {
  router_id LVS_HA_R1  # 主调度器标识
}

vrrp_instance VI_1 {
  state MASTER
  interface ens33
  virtual_router_id 1
  priority 100
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 123456
  }
  virtual_ipaddress {
    192.168.10.100/24  # 群集VIP
  }
}

# 虚拟服务器配置(LVS负载均衡规则)
virtual_server 192.168.10.100 80 {
  delay_loop 15          # 健康检查间隔(秒)
  lb_algo rr             # 调度算法:轮询(Round Robin)
  lb_kind DR             # 群集模式:直接路由(DR)
  protocol TCP           # 协议类型:TCP
  persistence_timeout 50 # 连接保持时间(秒,可选,用于会话保持)

  # 第一个Web节点配置
  real_server 192.168.10.103 80 {
    weight 1             # 节点权重(1-254,数值越大处理请求越多)
    TCP_CHECK {          # TCP健康检查
      connect_port 80    # 检查端口
      connect_timeout 3  # 连接超时时间
      nb_get_retry 3     # 重试次数
      delay_before_retry 4 # 重试间隔
    }
  }

  # 第二个Web节点配置
  real_server 192.168.10.104 80 {
    weight 1
    TCP_CHECK {
      connect_port 80
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 4
    }
  }
}
2. 关键参数解析
  • delay_loop:健康检查频率,建议根据服务响应速度调整,默认 15 秒。
  • lb_algo:调度算法,支持 rr(轮询)、wrr(加权轮询)、lc(最少连接)等,此处使用简单轮询。
  • lb_kind:群集模式,DR 模式要求调度器与节点服务器在同一子网,且节点配置 VIP 回环接口。
  • TCP_CHECK:健康检查机制,通过尝试连接节点指定端口判断存活状态,失败则从服务器池中剔除。
3. 重启服务使配置生效
复制代码
systemctl restart keepalived

(四)从调度器配置

复制代码
vi /etc/keepalived/keepalived.conf

global_defs {
  router_id LVS_HA_R2  # 从调度器标识,需唯一
}

vrrp_instance VI_1 {
  state BACKUP         # 状态设置为备用
  interface ens33
  virtual_router_id 1
  priority 90          # 优先级低于主调度器
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 123456
  }
  virtual_ipaddress {
    192.168.10.100/24
  }
}

# 虚拟服务器配置与主调度器完全一致,无需修改节点列表
virtual_server 192.168.10.100 80 {
  # 内容同主调度器的virtual_server区段
}

systemctl restart keepalived

(五)Web 节点服务器配置(DR 模式)

1. 配置 VIP 回环接口
复制代码
vi /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0
IPADDR=192.168.10.100
NETMASK=255.255.255.255
ONBOOT=yes
USERCTL=no

# 启动接口
ifup lo:0
# 验证IP绑定
ip addr show dev lo | grep inet
# 预期输出:包含192.168.10.100/32
inet 192.168.10.100/32 scope host lo
2. 调整 ARP 参数(避免 ARP 欺骗)
复制代码
# 临时设置(立即生效)
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce   # 限制ARP通告源地址为本地接口IP
echo "2" > /proc/sys/net/ipv4/conf/default/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore     # 忽略非本地接口的ARP请求
echo "1" > /proc/sys/net/ipv4/conf/default/arp_ignore
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore      # 针对回环接口单独配置
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

# 永久生效(修改系统配置文件)
sed -i '$a net.ipv4.conf.all.arp_announce = 2' /etc/sysctl.conf
sed -i '$a net.ipv4.conf.default.arp_announce = 2' /etc/sysctl.conf
sed -i '$a net.ipv4.conf.all.arp_ignore = 1' /etc/sysctl.conf
sed -i '$a net.ipv4.conf.default.arp_ignore = 1' /etc/sysctl.conf
sed -i '$a net.ipv4.conf.lo.arp_ignore = 1' /etc/sysctl.conf
sed -i '$a net.ipv4.conf.lo.arp_announce = 2' /etc/sysctl.conf
sysctl -p  # 使配置立即生效
3. 启动 Nginx 服务并挂载共享存储(示例)
复制代码
# 安装Nginx
yum install -y nginx
# 启动服务
systemctl start nginx
systemctl enable nginx
# 挂载NFS共享(假设NFS服务器地址为192.168.10.105,共享目录为/var/www/html)
mkdir -p /var/www/html
mount -t nfs 192.168.10.105:/var/www/html /var/www/html
# 开机自动挂载(添加到fstab)
echo "192.168.10.105:/var/www/html /var/www/html nfs defaults 0 0" >> /etc/fstab

(六)NFS 共享服务器配置(可选,用于数据一致性)

1. 安装 NFS 服务
复制代码
yum install -y nfs-utils rpcbind
2. 创建共享目录并设置权限
复制代码
mkdir -p /var/www/html
chmod -R 755 /var/www/html
chown -R nfsnobody:nfsnobody /var/www/html  # 设置NFS用户权限
3. 配置 NFS 共享
复制代码
vi /etc/exports

/var/www/html 192.168.10.0/24(rw,sync,no_root_squash)  # 允许192.168.10.0/24网段读写
4. 启动服务并验证
复制代码
systemctl start rpcbind && systemctl start nfs-server
systemctl enable rpcbind && systemctl enable nfs-server
# 验证共享导出(在客户端执行)
showmount -e 192.168.10.105
# 预期输出:显示/var/www/html共享
Export list for 192.168.10.105:
/var/www/html 192.168.10.0/24

(七)群集功能测试

1. 负载均衡测试
复制代码
# 在客户端循环访问VIP并记录响应节点IP
while true; do curl -s http://192.168.10.100; echo -e "\n--------"; sleep 1; done
# 预期输出:交替显示web01(10.103)和web02(10.104)的页面内容
Master Server (192.168.10.103)
--------
Master Server (192.168.10.104)
--------
2. 节点健康检查验证
  • 模拟节点故障

    复制代码
    # 停止web01的Nginx服务
    systemctl stop nginx
    • 预期结果
      • 客户端访问不再返回 web01 内容,Keepalived 自动将其从服务器池剔除。

      • 主调度器日志显示:

        复制代码
        Keepalived_vrrp[xxx]: VRRP_Instance(VI_1) removing real_server 192.168.10.103:80
  • 恢复节点

    复制代码
    systemctl start nginx
    • 预期结果
      • web01 重新加入服务器池,客户端再次轮询到其响应。
3. 调度器故障切换测试
  • 停止主调度器 Keepalived

    复制代码
    systemctl stop keepalived
    • 预期结果
      • 从调度器接管 VIP,客户端访问通过从调度器负载均衡,业务不中断。

      • 从调度器日志显示: log

        复制代码
        Keepalived_vrrp[xxx]: VRRP_Instance(VI_1) Entering MASTER STATE
  • 恢复主调度器

    复制代码
    systemctl start keepalived
    • 预期结果
      • 主调度器重新获取 VIP,从调度器退回备用状态,负载均衡继续由主调度器处理。
4. LVS 规则查看
复制代码
# 查看当前服务器池节点(主调度器执行)
ipvsadm -ln
# 预期输出:显示VIP及后端节点IP
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.10.100:80 rr
  -> 192.168.10.103:80            Route   1      0          0
  -> 192.168.10.104:80            Route   1      0          0

# 查看连接状态
ipvsadm -lnc
# 预期输出:显示当前连接的客户端IP及目标节点
TCP 00:00:05 192.168.10.1:50123 192.168.10.100:80 FIN_WAIT 192.168.10.103:80

四、高级配置与优化实践

(一)多虚拟 IP 配置

复制代码
vrrp_instance VI_1 {
  # ... 其他配置 ...
  virtual_ipaddress {
    192.168.10.100/24  # 主VIP
    192.168.10.101/24  # 备用VIP(可选)
  }
}

(二)端口监控与服务联动

复制代码
virtual_server 192.168.10.100 80 {
  # ... 其他配置 ...
  notify_master "/etc/keepalived/scripts/master.sh"  # Master节点激活时执行脚本
  notify_backup "/etc/keepalived/scripts/backup.sh"  # 切换至Backup时执行
  notify_fault "/etc/keepalived/scripts/fault.sh"    # 故障时执行
}

示例脚本(master.sh

复制代码
#!/bin/bash
# 当Master激活时启动额外服务
systemctl start mysql

(三)权重动态调整

复制代码
# 通过脚本实时监控节点负载,调整权重(需结合crontab定时执行)
#!/bin/bash
LOAD=$(wget -q http://127.0.0.1/load -O -)  # 获取节点负载
if [ $LOAD -gt 8 ]; then
  ipvsadm -e -t 192.168.10.100:80 -r 192.168.10.103:80 -w 0  # 负载过高时设置权重为0
else
  ipvsadm -e -t 192.168.10.100:80 -r 192.168.10.103:80 -w 1  # 恢复权重
fi

(四)安全加固建议

  1. 认证方式升级

    • 使用 AH(Authentication Header)认证替代 PASS 明文密码,提高安全性。

      authentication {
      auth_type AH
      auth_hmac_key "复杂加密密钥" # 需使用工具生成随机密钥
      }

  2. 防火墙策略

    复制代码
    # 允许VRRP协议(多播地址224.0.0.18,端口112)
    firewall-cmd --add-protocol=vrrp --permanent
    firewall-cmd --reload
  3. SELinux 策略

    复制代码
    # 允许Keepalived绑定非特权端口(如需使用80/443等)
    semanage port -a -t http_port_t -p tcp 80

五、故障排查与常见问题解决

(一)VIP 无法绑定

  • 可能原因

    • 物理接口名称错误(如误写为 ens32 而非实际的 ens33)。
    • 防火墙拦截 VRRP 协议或 VIP 绑定操作。
    • 同一子网内存在重复 VIP。
  • 解决步骤

    复制代码
    # 检查接口名称与配置是否一致
    ip link show
    # 临时关闭防火墙验证
    systemctl stop firewalld
    # 检查子网内IP冲突
    arp -a | grep 192.168.10.100

(二)主备切换失败

  • 可能原因

    • 优先级配置错误(Backup 优先级高于 Master)。
    • 认证密码不一致。
    • 网络故障导致 VRRP 通告无法传输。
  • 解决步骤

    复制代码
    # 对比主备配置文件中的priority和auth_pass
    diff /etc/keepalived/keepalived.conf master.conf backup.conf
    # 测试网络连通性(主备互Ping)
    ping 192.168.10.101 -c 3 && ping 192.168.10.102 -c 3
    # 检查VRRP通告是否正常(抓包分析)
    tcpdump -i ens33 vrrp -n

(三)节点未被剔除(健康检查失效)

  • 可能原因

    • TCP_CHECK 参数设置不合理(如超时时间过短)。
    • 节点防火墙阻止健康检查请求。
    • LVS 模块未正确加载。
  • 解决步骤

    复制代码
    # 调整健康检查参数(延长超时时间)
    vi /etc/keepalived/keepalived.conf
    # 将connect_timeout从3秒调整为5秒
    TCP_CHECK {
      connect_timeout 5
      # ... 其他参数 ...
    }
    # 检查节点防火墙规则
    firewall-cmd --list-ports | grep 80
    # 重新加载LVS模块
    modprobe -r ip_vs && modprobe ip_vs
相关推荐
liulilittle20 分钟前
关于DDOS
linux·运维·服务器·网络·ddos·通信
别NULL1 小时前
《TCP/IP 详解 卷1:协议》第3章:链路层
网络·网络协议·tcp/ip
SysMax4 小时前
TC/BC/OC P2P/E2E有啥区别?-PTP协议基础概念介绍
网络·网络协议·ptp
SZ1701102315 小时前
每个路由器接口,都必须分配所属网络内的 IP 地址,用于转发数据包
网络·tcp/ip·智能路由器
嵌入式学习菌5 小时前
TCP通信与MQTT协议的关系
网络·网络协议·tcp/ip
贝锐7 小时前
贝锐蒲公英工业路由器R300A海外版:支持多国4G频段,全球组网
网络
Hello.Reader7 小时前
基于 HTTP 的邮件认证深入解读 ngx_mail_auth_http_module
网络·网络协议·http
weixin_541299947 小时前
Nodejs+http-server 使用 http-server 快速搭建本地图片访问服务
网络·网络协议·http
MonKingWD9 小时前
【Redis原理】四万字总结Redis网络模型的全部概念
网络·arm开发·redis
伤不起bb9 小时前
LVS 负载均衡群集
linux·运维·负载均衡·lvs