单主架构
A主机--主(192.168.1.252)+nginx
B主机--备(192.168.1.250)+nginx
安装keepalived
yum install keepalived* -y
配置文件内容:(/etc/keepalived.conf)-----主(192.168.1.252)
! Configuration File for keepalived
global_defs {
notification_email {
tianye@lzad.cc
}
notification_email_from tianye@lzad.cc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
#这部分为检测nginx脚本,暂时不用
#vrrp_script chk_nginx {
# script "/data/sh/check_nginx.sh"
# interval 2
# weight 2
#}
#VIP1 192.168.1.188
vrrp_instance VI_1 {
state MASTER #状态设置为主
interface ens33 #监听的网卡,这个要看自己的网卡名
virtual_router_id 151 #虚拟路由组的id(主从两边要一致,表示在同一个组内)
priority 100 #优先级为100
advert_int 5
#nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.188 #设置虚拟IP(VIP)
}
# track_script {
# chk_nginx
# }
}
配置完 ,通过scp把该文件发送到 备用机(192.168.1.102)/etc/keepalived,并重启keepalived服务
systemctl restart keepalived
备用机只修改两处
state BACKUP
priority 80 #优先级比主的小就行
网卡名字如果不一样也要修改一下
保存退出,重启keepalived服务
先看下主的nginx---192.168.1.252
备的nginx---192.168.1.102
VIP---192.168.1.188(此时页面显示的是优先级高的master)
我们现在断开master的keepalived服务或者网卡服务,模拟宕机
(使整个虚拟广播组里收不到master发的包了,这时多个backup之间会重新竞选,优先级高的会成为新的master ,这里咱们只有一个backup,所以直接取代了master),看下结果吧:
systemctl stop keepalived
观察下102上的日志(keepalived默认日志在/var/log/messages,后期可以自己定义分离出来)
ip add也可以看到VIP漂移过来了
双主架构
双主架构就是有两个VIP,互相为主备关系
VIP1: 192.168.1.188
VIP2: 192.168.1.199
web1--192.168.1.252(1.188的主机 , 1.199的备用机)
web2--192.168.1.102(1.199的主机,1.188的备用机)
有了两个VIP,那么我们的配置文件就要发生变化了,在增加一段新的VRRP段
下面为1.252刚才的配置上在添加一段
#VIP2 192.168.1.199
vrrp_instance VI_2 {
state BACKUP #状态设为BACKUP
interface ens33
virtual_router_id 152 #换一个新的虚拟组ID
priority 80 #优先级
advert_int 5
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.199 #虚拟IP
}
}
下面为1.102在刚才的配置上添加
#VIP2 192.168.1.199
vrrp_instance VI_2 {
state MASTER #状态为主
interface ens33
lvs_sync_daemon_inteface ens33
virtual_router_id 152 #ID
priority 100 #优先级改为最高
advert_int 5
#nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.199 #VIP
}
}
重启两边的keepalived的,效果为(1.188显示它的主,1.99显示它的主)
测试:此时 web1(1.252)宕机,停掉web1的keepalived。
结果那么1.188就切成备了
切回来,恢复web1,开启keepalived服务
结果那么1.188又恢复成自己的主了。
测试一下web2(1.102)(1.199的主,188的备),模拟它宕机了会怎么样
再恢复:
总结:
双主架构的整体思路为,两个机器互为对方的主备,有两个VIP。当一方宕机,另一方作为宕机机器的备用机会顶上去充当MASTER,属于自己主机的VIP不受影响,因为自己还是正常运行的。理解起来就是 哪方宕机了,哪个备用就上,如果主机恢复了就会自动再重新工作恢复MASTER的身份,一直遵循着 MASTER>BACKUP. 优先级高>优先级低 来保证系统的持续正常运转。