一、概述
Keepalived 是一个基于 VRRP 协议来实现的 LVS 服务高可用方案,可以解决静态路由出现的单点故障问题。
原理
在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。
二、安装
配置三台主机 两台nginx服务 一台用于共享目录
yum install -y epel-release (nginx 服务)
yum install -y nginx (nginx服务)
yum install -y keepalived (nginx服务)
yum install -y nfs-utils (三台主机)
nginx1 ip 192.168.100.10
nginx 2 ip 192.168.100.11
nfs ip 192.168.100.12
keepalived配置文件解析
router_id 1 定义节点id
state MASTER|BACKUP 定义节点主从状态
interface ens33 配置监听的网卡
virtual_router_id 51 同一个热备组要保持一致
priority 100 节点优先级
advert_int 1 多少秒进行一次心跳检测
authentication {
auth_type PASS keepalived节点的认证方式,
auth_pass 1111 同一个keepalived双机热备组一定要保持一致
}
virtual_ipaddress 配置VIP,即漂移地址
vrrp 虚ip相关配置
三、功能模块
core 主进程启动
vrrp vrrp协议:热备份路由协议
check 健康状态检测
四、配置双机热备
一、配置nginx 服务的keepalived
修改配置文件
修改后
测试
暂时停掉nginx 1中的keepalived,配置nginx2中的keepalived
二、配置nfs
实现nginx热备用网页内容一致
配置nfs共享目录
mkdir /optpub
vim /etc/exports
exportfs -avr
三、nginx服务挂载共享目录
四、测试
五、双机热备的脑裂现象
Keepalived配置里同一 VRRP实例
如果 virtual_router_id两端参数配置不一致也会导致裂脑问题发生。
vrrp实例名字不一致、优先级一致
防火墙打开,导致心跳无法正常通信
网卡故障 网卡进行多路复用(不可停用网卡进行测试)