下载
www.keepalived.org/software/ke…
解压
tar xvf keepalived-2.0.20.tar.gz
依赖安装
yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel
创建编译目录
mkdir /usr/local/keepalived
配置
cd keepalived-2.0.20
./configure --prefix=/usr/local/keepalived
安装编译
make && make install
创建配置文件目录
mkdir /etc/keepalived/
相关文件移动
复制配置文件
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
keepalived启动脚本变量引用文件,默认文件路径是/etc/sysconfig/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
将keepalived主程序加入到环境变量(安装目录下)
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived
keepalived启动脚本(源码目录下),放到/etc/init.d/目录下就可以使用service命令便捷调用
cp /data/soft/keepalived-2.0.20/keepalived/etc/init.d/keepalived /etc/init.d/keepalived
将keepalived加到系统服务
chkconfig --add keepalived
相关命令
启动
service keepalived start
重启
service keepalived restart
停止
service keepalived stop
简单的配置文件
global_defs {
# 故障发送邮件的地址
notification_email {
}
# 发送人
# notification_email_from Alexandre.Cassen@firewall.loc
# smtp地址
# smtp_server 192.168.200.1
# 链接smtp超时
smtp_connect_timeout 30
# 本节点标识
router_id 28
vrrp_skip_check_adv_addr
# 注释掉解决不能ping的问题
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
# 检查mysqlrouter
vrrp_script chk_mysqlrouter {
# 检查的脚本
script "/data/shell/keepalived/check_port.sh 6446"
# 检查的频率 2s一次
interval 2
}
vrrp_instance VI_1 {
state MASTER #只有 BACKUP MASTER
nopreempt #非抢占
interface eth0 #网卡
virtual_router_id 28 #虚拟路由标识 同组一样
priority 100 #优先级
advert_int 1 #MASTER与BACKUP同步检查的时间间隔
# 组内密码,同一个组必须相同
authentication {
auth_type PASS
auth_pass 123456
}
# 虚拟IP地址,可以写多个
virtual_ipaddress {
x.x.x.x/24
}
# 调用检查脚本
track_script {
chk_mysqlrouter
}
}
问题处理
出现脑裂
1、检查配置文件
检查配置中的 virtual_router_id、authentication 以及 virtual_ipaddress 参数是否一致。
2、检查vrrp协议
两台机器同时生成虚拟ip,即出现脑裂现象,请检查防火墙是否已放开vrrp协议。
编辑iptables文件
vi /etc/sysconfig/iptables
放开 vrrp
-A INPUT -p vrrp -j ACCEPT
重启一下iptables
service iptables restart