mysql+keepalived高可用集群

我们了解在LVS集群当中,LVS是整个机群的唯一入口!如果LVS出现故障的话,那么整个集群都将无法访问!像这种重要的服务器只有一台服务器在工作的情况,如果出现故障会对集群有较大的影响,我们可以称之为集群中的单点问题

所以集群中不能出现单点的隐患,要让我们的各个

节点都具备高可用性

实现lvs的高可用,就需要工具:keepalived

keepalived的开发最初的目的就是为了实现lvs的高可用,以及对后端服务器的健康检查!所以在keepalived中有很多和lvs原生的配置!

实现lvs的高可用就要至少准备两台以上的服务器!服务器会分为:MASTER和BACKUP

keepalived在启动后,会自动根据配置添加VIP、虚拟服务器和真实服务器,同时keepalived会周期性的对后端的真实服务器进行健康检查,会自动将不能提供服务的服务器给删除掉!当恢复后再自动的添加回来!

当master故障后,VIP会自动再BACKUP主机上生成,然后继续提供服务

MySQL互为主从+Keepalived实现MySQL高可用集群

准备两台Centos7

IP:

192.168.189.171

192.168.189.172

配置互为主从

参考“互为主从”文件

安装配置keepalived

在两台MySQL上安装keepalived

yum -y install keepalived

配置keepalived master

vim /etc/keepalived/keepalived.conf
global_defs {
! vrrp_strict # 注释或者删除了
}
vrrp_instance VI_1 {
state MASTER # 初始状态
interface ens33 # 绑定VIP的网卡
virtual_router_id 51 # 虚拟路由ID,同集群中ID必须一样
priority 100 # 优先级,值越大优先级越高,BACKUP一定要低于MASTER
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.189.181 # 要生成的VIP地址
}
}
virtual_server 192.168.189.181 3306 { # 虚拟服务的IP和端口
delay_loop 6
protocol TCP
real_server 127.0.0.1 3306 { # 真实服务的IP和端口
weight 1
notify_down "pkill keepalived" # 真实服务器端口连不上的时候执行的命令,停止keepalived
TCP_CHECK { # 健康检查策略,TCP_CHECK,用tcp协议连接端口
connect_port 3306 # 健康检查连接的端口
connect_timeout 3 # 连接超时时间
nb_get_retry 3 # 重试次数
delay_before_retry 3 # 健康检查轮询时间间隔
}
}
}

重启keepalived

systemctl restart keepalived

查看VIP地址是否生成,生成则是成功

ip a

配置keepalived backup

vrrp_instance VI_1 {
state BACKUP # 初始状态为BACKUP
interface ens33 # 绑定VIP的网卡
virtual_router_id 51 # 虚拟路由ID,同集群中ID必须一样
priority 90 # 优先级,值越大优先级越高,BACKUP一定要低于MASTER
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.189.181 # 要生成的VIP地址
}
}

重启keepalived

systemctl restart network

测试VIP漂移

停止掉master的MySQL,若VIP能漂移到BACKUP节点,则是成功