目的:测试 keepalived 的 master/backup
0 环境
vip 192.168.56.30
master server a 192.168.56.10
slave server b 192.168.56.20
keepalived-1.1.20
安装 我只用 keepalived 的 vrrp ,没有指定 Lvs
./configure --prefix=/usr/local/keepalived
1 配置文件
server a 192.168.56.10
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51 # 保持主从服务器一致
priority 100 # 优先级 (主服务器较高)
advert_int 1 # 心跳广播间隔(秒)
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.56.30 # 虚拟IP地址,可以多个.
}
}
server b 192.168.56.20
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface eth1
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.56.30
}
}
2 测试
a 查看日志
192.168.56.10
tail /var/log/messages
May 28 15:55:01 master Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
May 28 15:55:01 master Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 for 192.168.56.30
192.168.56.20
May 28 15:59:27 slave Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE
May 28 15:59:27 slave Keepalived_vrrp: VRRP sockpool: [ifindex(3), proto(112), fd(9,10)]
b 关掉 192.168.56.10 apache 服务
192.168.56.10 无法访问
192.168.56.30 无法访问
vip 还在 master 上,并没有为关掉 apache 服务,切换到 slave 上,这不是我要的!!!!
tail /var/log/messages
May 28 15:55:01 master Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 for 192.168.56.30
c 关掉 192.168.56.10 keepalived
192.168.56.30 可以访问
192.168.56.20 可以访问
tail /var/log/messages (slave)
May 28 16:13:54 slave Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
May 28 16:13:55 slave Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 for 192.168.56.30
d 再次开启 192.168.56.10 keepalived
master 192.168.56.10
tail /var/log/messages
May 28 16:26:04 master Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
May 28 16:26:04 master Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 for 192.168.56.30
slave 192.168.56.20
tail /var/log/messages
May 28 16:26:03 slave Keepalived_vrrp: VRRP_Instance(VI_1) Received higher prio advert
May 28 16:26:03 slave Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE
May 28 16:26:03 slave Keepalived_vrrp: VRRP_Instance(VI_1) removing protocol VIPs.
3 总结
master 上的服务停止不能让vip 切换到 slave上(比如说你的apache 服务器崩溃了,而系统或者 keepalived 还正常运行,这时就不能切换),只有当 master 上的keepalived 停止时 vip 才会切换到 slave 上, 当再次开启 master 上 keepalived vip 被 master 抢回 , slave 上的日志写的很清楚了!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |