1.首先利用yum安装好keepalived :
yum install -y ipvsadm keepalived
2.配置文件
用Keeplived做VIP,VIP为 214,2台机器(1台 86 ,1台200)的配置/etc/keepalived/如下:
机器:86IP
! Configuration File for keepalived
global_defs {
notification_email {
acassen@
failover@
sysadmin@
}
notification_email_from @
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_haproxy {
script "/etc/keepalived/haproxy_check.sh"
interval 2
weight -5
fall 3
rise 2
}
vrrp_instance VI_1 {
state MASTER
interface ens160
unicast_src_ip 192.168.19.86
unicast_peer {
192.168.19.200
}
virtual_router_id 78
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.19.214
}
track_script {
chk_haproxy
}
}
机器:200IP
! Configuration File for keepalived
global_defs {
notification_email {
acassen@
failover@
sysadmin@
}
notification_email_from @
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_haproxy {
script "/etc/keepalived/haproxy_check.sh"
interval 2
weight -5
fall 3
rise 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens160
unicast_src_ip 192.168.19.200
unicast_peer {
192.168.19.86
}
virtual_router_id 78
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.19.214
}
track_script {
chk_haproxy
}
}
3.启动keepalived
测试发现,第一台86启动后,查询状态正常,第二台200启动后,查询状态报错:10?.19 10:35:47 rabbitmqCW2 Keepalived[25200]: VRRP child process(30004) died: Respawning
验证发现,当只开启86的keepalived,其他机器上 ping 200 的VIP地址,可以ping通,但是当只开启200的keepalived,其他机器上 ping 200 的VIP地址,ping不通!
网上查了资料,原因是:Linux系统中的SELinux服务问题:
因为这种机制的限制太多,配置也特别烦琐,所以几乎没有人真正使用它。安装完系统,我们一般都要把SELinux关闭,以免引起不必要的麻烦。临时关闭SELinux的方法为:
setenforce 0
但这仅仅是临时的,要想永久关闭需要更改配置文件/etc/selinux/config,需要把SELINUX=enforcing改成SELINUX=disabled。
更改完配置文件后,重启系统方可生效。可以使用getenforce命令获得当前SELinux的状态。
默认会输出enforcing,使用setenforce 0这个命令后会显示permissive,修改配置文件重启系统后会显示Disabled。
建议装完系统后就将其关掉,防止引起不必要的麻烦
把服务关了之后再启动200上的keepalived,就可以ping通了。