keepalived 安装与使用

886 阅读2分钟

下载

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