keepalived实现mysql高可用_keepalived+MySQL实现高可用

f84e7439a0d4ab07daf279465e1acf93.png

(一)keepalived概述

Keepalived通过VRRP(虚拟路由冗余协议)协议实现虚拟IP的漂移。当master故障后,VIP会自动漂移到backup,这时通知下端主机刷新ARP表,如果业务是通过VIP连接到服务器的,则此时依然能够连接到正常运行的主机,RedHat给出的VRRP工作原理如下图:

d639083e1c44cb253ec3280718f8bf7d.png

本来对VIP漂移有一定了解的我,看了上面的图后,越来越懵了。因此只能根据我的个人理解,来对keepalived的VIP漂移做一个解释了,假设我现在有一套这样的环境:

主机A的IP地址为:192.168.10.11

主机B的IP地址为:192.168.10.12

我们再单独定义一个keepalived使用的VIP:192.168.10.10

当2台主机安装了keepalive并正常运行时,keepalive会选择一个节点做为主节点(这里假设为主机A,IP为192.168.10.11),由于A是主节点,所以主机A上还会生成一个IP地址192.168.10.10,即虚拟IP(Virtual IP,也称VIP),此时我们使用192.168.10.10访问主机,访问到的主机是A;假如A主机上的keepalived由于某些原因(例如服务器宕机、用户主动关闭…)关闭了,keepalived备用节点会检查与主节点keepalived的通信是否正常,检测到不正常,则会提升一个备节点为主节点,相应的虚拟IP也会在对应的主机上生成,从而实现高可用的目的。

502e99b457ba18bce8a363fe30000de0.png

(二)MySQL是如何结合keepalived实现高可用的

在MySQL中,通过搭建MySQL双主复制,保持2台主机上的MySQL数据库一模一样,并在2台主机上安装keepalived软件,启用VIP,用户应用程序通过VIP访问数据库。当包含VIP的主机上的数据库发生故障时,关闭keepalived,从而将VIP漂移到另一个节点,用户依然可以正常访问数据库。 (这里需要注意,虽然MySQL架构双主复制,2个节点都可以写入数据,但是我们在使用的时候,是通过VIP访问其中一个实例,并没有2个数据库实例一起使用)。这里我简单画了一个流程图,来说明keepalive与MySQL实现高可用的过程:

708fa70621ca76fa90b697d010b026a6.png

(三)keepalived+MySQL实现高可用过程实现

基础环境规划:

主机名

IP地址

备注

服务器A

hosta

192.168.10.11

keepalive主节点

服务器B

hostb

192.168.10.12

keepalive备节点

192.168.10.10

虚拟IP,会在keepalive启动后分配到上面2台机器的主节点上

(3.1)搭建MySQL双主复制环境

STEP2:配置双主复制参数

服务器A

服务器B

[mysqld]

basedir=/usr/local/mysql

datadir=/mysql/data

server_id = 1

binlog_format=ROW

log_bin=/mysql/binlog/master-bin

auto-increment-increment = 2            #字段变化增量值

auto-increment-offset = 1               #初始字段ID为1

slave-skip-errors = all                 #忽略所有复制产生的错误

gtid_mode=ON

enforce-gtid-consistency=ON

[mysqld]

basedir=/usr/local/mysql

datadir=/mysql/data

server_id = 2

binlog_format=ROW

log_bin=/mysql/binlog/master-bin

auto-increment-increment = 2            #字段变化增量值

auto-increment-offset = 2               #初始字段ID为2

slave-skip-errors = all         

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值