1. 高可用需求
110.110.110.77上有某个服务,端口是3333。
在110.110.110.78机器上也安装这个服务,端口也是3333
当110.110.110.77或78停机后,客户端可以访问另一台上的服务。
解决方案:使用keepalived,
需要另一个ip: 110.110.110.76,这个ip要和77,78在同一网络。
这样客户端只要访问110.110.110.76:3333就行了,keepalived会自动把110.110.110.76这个ip和77或78绑定在一起,同一时刻76只能绑定在77或78其中一台,比如此时帮定在77上,访问76就相当于访问77,当77停机时,keepalived会自动把76绑定到78上。
2. 安装
两台机器ip分另为:110.110.110.77 , 110.110.110.78。
另需要一个ip作为虚拟ip: 110.110.110.76,注意要和这两台机器在同一网络。
两台机器上安装:yum install -y keepalived
3. 配置
110.110.110.77这台机器上配置,安装好后就有这个配置文件。
vi /etc/keepalived/keepalived.conf
直接修改这个文件即可,参数的意思自行网上查询。
virtual_server这个参数没有用到,直接删除这个参数的所有配置即可
[root@xxx home]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
#router_id每台机器都要不一样,作为唯一标识
router_id LVS01
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
#state属于同一个keepalived的只有一个MASTER和多个BACKUP
state MASTER
#ip所在的网卡,我的机器110.110.110.77在eth0上
interface eth0
#virtual_router每台机器要一样,应该是属于同一个keepalived的机器要一样
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
#virtual_ipaddre要和机器ip属于同一网络,注意子网掩码要一样,这里是24
virtual_ipaddress {
110.110.110.76/24
}
}
110.110.110.78这台机器上配置
vi /etc/keepalived/keepalived.conf
[root@xxx conf]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS02
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
110.110.110.76/24
}
}
启动/etc/init.d/keepalived start
在110.110.110.77上 ip addr 可以看到eth0上多了110.110.110.76/24
此时客户端访问 110.110.110.77:3333可改为访问110.110.110.76:3333
在110.110.110.78上用ip addr是看不到110.110.110.76的,如果把77上的keepalived停掉,在78上就能看到110.110.110.76了。
也就是说110.110.110.76会绑定在77或78机器其中一台。当一台机器停机,76会绑定到另一台上。
这样客户端一直访问110.110.110.76:3333就行了。