1.需要安装openssl_devel包。yum install openssl_devel。
2../configure; make; make install 安装keepalived。
3.拷贝配置文件,启动程序,使用目录到系统目录下面:
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/sbin/keepalived /usr/sbin
4.编辑/etc/keepalived/keepalived.conf
需要记得下面的修改配置:
vrrp_instance VI_1 {
state MASTER #设置为主服务器,如果是备服务器,则设置为BACKUP
interface eth0 #设置keepalived的网卡
virtual_router_id 51 #设置唯一号,主备都要相同
priority 100 #优先级,要保证主服务器的优先比备的高,备服务器要低于主服务器,在这里是100
advert_int 1 #心跳检测的间隔(秒)
...
...
}
在下面的地址上写(若是在三层的检测服务器,就设置这项足够)
virtual_ipaddress{
10.0.0.12 虚拟ip,主备要一直
*.*.*.* 可以设置多个虚拟ip,通过虚拟ip来达到keepalived
}
5.启动keepalived
service keepalived start
检查主服务器的状态
ip a
可以查看到主服务器里多个个虚拟ip
但在备服务器上没看到虚拟ip
这是因为现在默认访问虚拟ip,是对应的主服务器
一旦主服务器挂掉了,备用服务器马上接管此ip
测试:
在主服务器上service keepalived stop
然后在备服务器上
ip a
看到虚拟ip已经显示
这就证明备服务器已接管虚拟ip。
实验结束
若要主从互备,则只需要加入另外一个vrrp_instance,命名为vrrp_instance VI_2 {。。。}
当然,里面的主从要互换位置,优先级也要有高低。。。
题外
若要只监测80端口或其他端口的网络四层keepalived,则需修改另一个选项,virtual server
如:
virtual_server 192.168.1.200 3306 {
delay_loop 2 #每个2秒检查一次real_server状态
lb_algo wrr#LVS算法
lb_kind DR#LVS模式
persistence_timeout 60#会话保持时间
protocol TCP
real_server 192.168.0.111 80 { 真实的ip
weight 3 权重3
notify_down /root/httpd.sh #检测到服务down后执行的脚本
TCP_CHECK {
connect_timeout 10#连接超时时间
nb_get_retry 3#重连次数
delay_before_retry 3#重连间隔时间
connect_port 80#健康检查端口
}
}
httpd.sh脚本:
#vi /root/httpd.sh
#!/bin/sh
pkillkeepalived
#chmod +x /root/httpd.sh
注:此脚本是上面配置文件notify_down选项所用到的,keepalived使用notify_down选项来检查real_server的服务状态,当发现real_server服务故障时,便触发此脚本
下个实验做