Articles of keepalived

运行keepalived的两台服务器都成为主设备

networking故障后,两台运行keepalived的服务器成为主服务器。 当networking重新build立时,都保持MASTER状态。 什么可能导致它? 编辑:另一个可能相关的信息,每个服务器有两个网卡。 这是虚拟实例configuration: vrrp_instance VGAPP { interface eth0 virtual_router_id 61 state BACKUP nopreempt priority 50 advert_int 3 virtual_ipaddress { 10.26.57.61/24 } track_interface { eth0 } track_script { jboss_check #tomcat_check #interface_check #interface_check02 } notify_master "/opt/keepalived/scripts/set_state.sh MASTER" notify_backup "/opt/keepalived/scripts/set_state.sh BACKUP" notify_fault "/opt/keepalived/scripts/set_state.sh FAULT" notify_stop "/opt/keepalived/scripts/set_state.sh STOPPED"}

添加IP保持活动

将IP地址添加到keepalived vrrp_instance的正确方法是什么,而不必让IP翻转或丢弃一秒?

keepalived track_script似乎并没有运行

我希望有人能看到我做错了什么,并提供帮助,让keepalived track_script运行。 我在主Keepalived框的vrrp_instance上将优先级设置为101,在故障转移框上将优先级设置为100。 断开networking连接或在主机上停止保持活动会导致VIP按预期方式切换到备用盒子。 如果脚本运行,我会期望它将2添加到优先级,如果脚本返回成功。 但是tcpdump总是显示优先级不变。 即使我把伪造的脚本定义,我也从来没有看到/ var / log / messages中有关脚本的任何信息。 停止HAProxy服务没有任何作用,我已经做了脚本的其他testing表明它永远不会运行。 tcpdump输出: 172.18.8.2 > 224.0.0.18: vrrp 172.18.8.2 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 101, authtype simple, intvl 1s, length 20, addrs: 172.18.8.4 auth "password" 这里是keepalivedconfiguration: global_defs { router_id BETAPROXYSLC01 } vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 weight 2 } […]

Keepalived负载平衡MySQL。 备份服务器超时

亲爱的在ServerFault的人。 我试图(和失败)build立一个负载均衡的MySQL服务器arrays。 请赐教,告诉我在我的方式错误。 当前的设置:两个具有专用固定IP(10.116.219.47和10.116.219.48)的MySQL服务器和一个使用keepalived(10.116.219.12)共享的虚拟IP。 此设置可成功提供故障转移。 如果closuresDB1服务器,DB2服务器将迅速接pipe。 只有在configuration中添加虚拟服务器块时,事情才会中断。 DB1 vrrp_instance VI_2 { state MASTER interface eth0 virtual_router_id 60 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 3S83hbt200SbwY6 } virtual_ipaddress { 10.116.219.12 } } DB2 vrrp_instance VI_2 { state BACKUP interface eth0 virtual_router_id 60 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 3S83hbt200SbwY6 } virtual_ipaddress […]

机器过载时的虚拟IP故障切换

我们一直在使用keepalived和虚拟IP地址两年。 在极less数情况下,机器崩溃这个作品非常好。 但是当盒子本身出现问题时,我们看到了一些没有发生故障转移的情况。 例如,当我们遇到系统一直在交换的问题时。 负载是25,而不是正常的5,并没有办法ssh进入机器。 平正在工作。 Keepalived保持运行,虚拟IP地址不被另一个从站接pipe。 另外我们也有这样的情况:在MySql HA设置中,有人通过在主服务器而不是从服务器上进行备份来错误地locking完整的数据库。 这也没有拿起。 问题在这里,我只是使用错误的脚本检查机器本身,如果主要工作正常,或者这是典型的虚拟IP设置? 我感到奇怪的是,你不使用第三个系统来确定主设备是否可用。 当然我明白为什么:keepalivd应该由主人打开主人本身。 我最近注意到,对于Redis HA安装,人们正在使用Zookeeper(例如https://github.com/ryanlecompte/redis_failover )。 那是因为我遇到的限制吗?

keepalived:第二个VRRP_Script似乎永远不会运行

我试图在3个mongodb盒子上实现keepalived,这个想法是,如果某个盒子上的mongod出现故障,或者由于某种原因我们需要将主节点移动到另一个系统,我们的应用程序就不需要重新configuration。 keepalived.conf非常简单,有两个VRRP_scripts,一个用来检查mongod是否正在运行,另一个是用来执行一个bash脚本,用来检查本地mongod实例是否是主节点。 keepalived.conf !Configuration File for keepalived # Global definitions global_defs { notification_email { [email protected] } notification_email_from [email protected] smtp_server smtprelay.penton.com smtp_connect_timeout 30 } # Check to see if mongod is running vrrp_script chk_mongod { script "killall -0 mongod" # verify the pid exists interval 2 # check every 2 seconds # weight 2 # add […]

防止主人失败后回到主人

我使用keepalived来build立一个指向主服务器的虚拟IP地址。 当发生故障转移时,应该将虚拟IP指向备份,并且IP应该保持在那里直到我手动启用(修复)主设备。 这很重要的原因是我在服务器上运行mysql复制,写入只能在主服务器上。 当我失败时,我促使奴隶掌握。 主服务器: global_defs { ! this is who emails will go to on alerts notification_email { [email protected] ! add a few more email addresses here if you would like } notification_email_from [email protected] ! I use the local machine to relay mail smtp_server 127.0.0.1 smtp_connect_timeout 30 ! each load balancer should have a […]

keepalived nopreempt选项不起作用

我想使用nopreempt选项与keepalived vrrp设置运行备份节点作为主人时,主停机并再次回到networking。 我在两台服务器上都设置了nopreempt选项,并在两台服务器上都设置了状态作为备份,但由于高优先级的nopreempt不起作用。 请指导解决它? Master Machine: ! Configuration File for keepalived vrrp_instance VI_1 { state BACKUP nopreempt interface eth0 virtual_router_id 1 priority 250 advert_int 1 virtual_ipaddress { 192.168.1.2/24 } } Backup Machine : ! Configuration File for keepalived vrrp_instance VI_1 { state BACKUP nopreempt interface eth0 virtual_router_id 1 priority 200 advert_int 1 virtual_ipaddress { 192.168.1.2/24 […]

Keepalived定期发送免费ARP

有没有办法让keepalived定期发送免费ARP? 我们有以下情况: 交换机故障(VLAN设置) keepalived失败备份实例 备份实例发送免费ARP,但Cisco ASA设备没有得到它(因为交换机故障) 当交换机恢复时(几分钟后),VIP无法访问,因为ASA没有刷新ARP表(ARP表过期设置为4h) 因为ASA已经有来自之前活动节点的MAC,所以它没有发送ARP请求 VIP直到我们重新启动新的GARP的keepalived实例才无法访问 所以我们认为我们可以用定期的GARP来避免这种情况。 这是一个很好的方法,有没有办法在keepalived内做到这一点? 任何其他的build议,以避免这种问题? Keepalivedconfiguration: global_defs { notification_email { [email protected] } notification_email_from SERVER_1 smtp_server smtp.server.local smtp_connect_timeout 30 router_id SERVER_1 } vrrp_instance V1 { state BACKUP nopreempt interface eth0 lvs_sync_daemon_interface eth0 virtual_router_id 150 priority 120 advert_int 1 persistence_timeout 0 smtp_alert authentication { auth_type PASS auth_pass xxx } virtual_ipaddress […]

keepalivedclosures – 在守护进程closures时不运行“通知”钩子

我正在使用Debian(Lenny,Squeeze)在一个相当简单的设置下运行keepalived ,我只是(ab)将它用作VRRP守护进程来决定两台相同机器之间对于某些虚拟IP的主控权。 所有的魔法都发生在notify -script中。 当我完全停止守护进程(使用debian的init脚本)时,keepalived不会运行通知脚本进行备份或至less是故障模式,这是我所怀疑和需要的。 我可以用一些不需要的效果“修复”rc脚本 – 通知脚本会被硬编码到rc脚本中,引入这两者之间的不必要的耦合,并将修补程序移植到下一个debian版本,所以这是不是我真正想去的方式 任何提示更清洁的解决这个问题? vrrp_instance FOORRP { virtual_router_id 42 interface eth0 state BACKUP priority 200 nopreempt authentication { auth_type AH auth_pass foobar42 } notify "/usr/local/bin/vrrp-state" virtual_ipaddress { 127.0.0.2 } } PS:使用“three notify _” – 脚本不会改变任何东西 PPS:在更新日志 (版本1.1.16)中有一些提到,这适合我的问题(尽pipe我没有使用任何与keepalived相关的lvs),但是我使用的是更新的版本(1.1.20):“notify_down在keepalivedclosures工作真正的服务器不执行“。