Chinaunix
标题:
keepalived 配置非抢占模式nopreempt
[打印本页]
作者:
rwx_hc
时间:
2014-07-17 15:37
标题:
keepalived 配置非抢占模式nopreempt
本帖最后由 rwx_hc 于 2014-07-17 16:54 编辑
这段时间在弄热备方面东西,采用的是keepalived配置HA
先说下遇到的问题:
1、主、从设备同时有vip起来,感觉主从设备之间通讯有问题
2、当配置为非抢占时没有效果,优先级高的仍然会在重新起来后抢占master
网上搜索了一下,很多人也遇到设置不抢占没有效果问题。解决办法也似乎并不能凑效。
后来经过反复修改配置终于测试通过了。下面我将配置分享出来希望能帮到有同样问题的朋友:
主设备:/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost.localdomain
}
notification_email_from ha@localhost.localdomain
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id xyz
}
vrrp_sync_group xyz_vsg {
group {
xyz_vi
}
}
vrrp_instance xyz_vi {
state BACKUP
nopreempt
smtp_alert
notify_fault /usr/bin/xyz_notify_mail.sh fault
notify_master /usr/bin/xyz_notify_mail.sh master
notify_backup /usr/bin/xyz_notify_mail.sh backup
interface eth0
track_interface {
eth1
}
virtual_router_id 51
priority 150
advert_int 3
authentication {
auth_type PASS
auth_pass xyz123456
}
virtual_ipaddress {
172.16.1.30/24 dev eth0 scope global
}
}
复制代码
从设备配置:/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost.localdomain
}
notification_email_from ha@localhost.localdomain
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id xyz
}
vrrp_sync_group xyz_vsg {
group {
xyz_vi
}
}
vrrp_instance xyz_vi {
state BACKUP
smtp_alert
notify_fault /usr/bin/xyz_notify_mail.sh fault
notify_master /usr/bin/xyz_notify_mail.sh master
notify_backup /usr/bin/xyz_notify_mail.sh backup
interface eth0
track_interface {
eth1
}
virtual_router_id 51
priority 100
advert_int 3
authentication {
auth_type PASS
auth_pass xyz123456
}
virtual_ipaddress {
172.16.1.30/24 dev eth0 scope global
}
}
复制代码
说明一下:
1、监控网卡,也可以和vip网卡相同
track_interface {
eth0
}
2、主、从配置中都不能有: mcast_src_ip ...
如果设置了一定会出现这样那样的问题。
3、主设备配置一定要加上:nopreempt,否则非抢占也不起作用。
4、防火墙问题
允许组播,两台设备上都需要执行
iptables -A INPUT -d 224.0.0.18 -j ACCEPT
或修改:vim /etc/sysconfig/iptables
适当位置添加行:
-A INPUT -d 224.0.0.18 -j ACCEPT
作者:
wjw870907
时间:
2014-07-24 17:46
本帖最后由 wjw870907 于 2014-07-24 18:22 编辑
感谢楼主,最近我也头疼这个问题,不过我的配置没看出和你有什么区别
望指教
主:
vrrp_script chk_redis {
script "/etc/keepalived/scripts/redis_check.sh"
interval 2
!fall 2
}
vrrp_sync_group redis {
group {
k_redis
}
}
vrrp_instance k_redis {
state BACKUP
interface eth0
virtual_router_id 73
priority 100
nopreempt
smtp_alert
notify_master /etc/keepalived/scripts/redis_master.sh
notify_backup /etc/keepalived/scripts/redis_slave.sh
notify_fault /etc/keepalived/scripts/redis_fault.sh
notify_stop /etc/keepalived/scripts/redis_stop.sh
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.20.105 dev eth0 scope global
}
track_script {
chk_redis
}
}
备:
vrrp_script chk_redis {
script "/etc/keepalived/scripts/redis_check.sh"
interval 2
!fall 2
}
vrrp_sync_group redis {
group {
k_redis
}
}
vrrp_instance k_redis {
state BACKUP
interface eth0
virtual_router_id 73
priority 50
smtp_alert
notify_master /etc/keepalived/scripts/redis_master.sh
notify_backup /etc/keepalived/scripts/redis_slave.sh
notify_fault /etc/keepalived/scripts/redis_fault.sh
notify_stop /etc/keepalived/scripts/redis_stop.sh
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.20.105 dev eth0 scope global
}
track_script {
chk_redis
}
}
防火墙也加了
作者:
wjw870907
时间:
2014-07-24 18:08
本帖最后由 wjw870907 于 2014-07-24 18:12 编辑
LZ,增加了防火墙还是没用哦
作者:
rwx_hc
时间:
2014-08-01 16:02
script "/etc/keepalived/scripts/redis_check.sh"
问题可能出在这个脚本上,
我的是用的网卡检查,因为需求不同
track_interface {
eth1
}
除此外确实基本上没啥差别
作者:
zmoon
时间:
2014-08-07 17:23
我的理解很简单, 如果你没有心跳口,那么对外的网口一旦断开,双方都认为对方down了,自然就都active了,只要把vrrp的心跳口和业务口区分开就可以了。
interface eth0 这行代表 vrrp (keepalived通讯的组播端口)接口 或者叫心跳口
track_interface {
eth1 (这行代表keepalived监控的业务端口)
}
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2