安装keepalived
切换root用户
下载keepalived
[root@localhost /]:wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
解压缩
[root@localhost /]:tar xzvf keepalived-1.2.7.tar.gz
安装
[root@localhost /]cd keepalived-1.2.7
[root@localhost keepalived-1.2.7]./configure
如报错 Popt libraries is required
yum install popt-devel
yum install command not found:
https://blog.csdn.net/tianxiaoyu1987/article/details/87373139
再次执行./configure
[root@localhost keepalived-1.2.7]make
[root@localhost keepalived-1.2.7]make install
将keepalived加入服务
按照上述安装方法,keepalived安装完成后,自动安装在/usr/local/sbin目录下面,配置文件
位置在/usr/local/etc/keepalived目录下面,具体操作如下:
/*在配置文件夹/etc下面建立keepalived文件夹*/
mkdir /etc/keepalived
/*将配置文件复制过去*/
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived
/*将keepalived文件复制到/etc/init.d文件夹,这个文件夹存放可执行的服务程序*/
cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d
/*将安装目录下面的系统配置文件复制到/etc/sysconfig,这是一个存放系统配文件的目录*/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig
建立软链接:
ln -s keepalived路径/sbin/keepalived /usr/sbin/
/*开启服务*/
service keepalived start
/*停止服务*/
service keepalived stop
/*重启服务*/
service keepalived restart
keepalived
安装好以后,对其进行配置如下:
有两台机器(MASTER1)所在的192.168.187.129与(Master2)192.168.187.132,用(VIP)192.168.187.61做虚拟IP。
在两台服各器中的/etc/keepalived文件夹中的keepalived.conf下进行配置:
Master1的设置
192.168.187.129
global_defs {
router_id Mysql_HA #当前节点名
}
vrrp_instance VI_1{
state BACKUP #两台配置节点均为BACKUP
interface eth0 #绑定虚拟IP的网络接口
virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组
priority 100 #节点的优先级,另一台优先级改低一点
acvert_int 1 #组播信息发送间隔,两个节点设置必须一样
nopreempt #不抢占,只在优先级高的机器上设置即可,优先级低的机器不设置
authentication{ #设置验证信息,两个节点必须一致
auth_type PASS
auth_pass 1111
}
Virtual_ipaddress{ #指定虚拟IP,两个节点设置必须一样
192.168.187.61
}
}
virtual_server 192.168.187.61 3306 { #linux虚拟服务器(LVS)配置
delay_loop 2 #每个2秒检查一次real_server状态
lb_algo wrr #LVS调度算法,rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR #LVS集群模式 ,NAT|DR|TUN
persistence_timeout 60 #会话保持时间
protocol TCP #使用的协议是TCP还是UDP
real_server 192.168.187.129 3306 {
weight 3 #权重
notify_down /usr/local/bin/mysql.sh #检测到服务down后执行的脚本
TCP_CHECK {
connect_timeout 10 #连接超时时间
nb_get_retry 3 #重连次数
delay_before_retry 3 #重连间隔时间
connect_port 3306 #健康检查端口
}
}
Master2的设置
192.168.187.132
global_defs {
router_id Mysql_HA #当前节点名
}
vrrp_instance VI_1{
state BACKUP #两台配置节点均为BACKUP
interface eth0 #绑定虚拟IP的网络接口
virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组
priority 90 #节点的优先级,另一台优先级改低一点
acvert_int 1 #组播信息发送间隔,两个节点设置必须一样
authentication{ #设置验证信息,两个节点必须一致
auth_type PASS
auth_pass 1111
}
Virtual_ipaddress{ #指定虚拟IP,两个节点设置必须一样
192.168.187.61
}
}
virtual_server 192.168.187.61 3306 { #linux虚拟服务器(LVS)配置
delay_loop 2 #每个2秒检查一次real_server状态
lb_algo wrr #LVS调度算法,rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR #LVS集群模式 ,NAT|DR|TUN
persistence_timeout 60 #会话保持时间
protocol TCP #使用的协议是TCP还是UDP
real_server 192.168.187.132 3306 {
weight 3 #权重
notify_down /usr/local/bin/mysql.sh #检测到服务down后执行的脚本
TCP_CHECK {
connect_timeout 10 #连接超时时间
nb_get_retry 3 #重连次数
delay_before_retry 3 #重连间隔时间
connect_port 3306 #健康检查端口
}
}
脚本/usr/local/bin/mysql.sh
#vi /usr/local/bin/mysql.sh #!/bin/sh killall keepalived |
chmod +x mysql.sh
Keepalived 测试
两台启动keepalived后,
ip addr
其中一台可以看到配置的虚拟ip
将这一台的keepalived下线,再ip addr可以看到虚拟ip已经没有了。此时虚拟ip已经转移到另一台上。这说明keepalived配置成功了。
Mysql测试
需要第三台mysql访问虚拟ip测试。
两台mysql,keepalived启动,第三台能访问虚拟IP。下线一台虚拟IP所在机器的mysql,ip addr观察虚拟ip是否随着转移了,同时keepalived线程是否已经被杀死ps -ef|grep keepalived。如果虚拟IP转移了就说明是成功了。