MySQL + KeepaLived 高可用

MySQL + KeepaLived 高可用

1. 基础环境

两台服务器,MySQL互为主从

MASTER 的 IP:10.0.0.11

BACKUP 的 IP:10.0.0.12

2.MASTER 实操

yum -y install keepalived cd /etc/keepalivedcp keepalived.conf keepalived.conf.bakvim keepalived.conf
vrrp_instance VI_1 {    state MASTER            # 主机的初始身份:MASTER/BACKUP    interface eth0          # VIP绑定网卡设备    virtual_router_id 51    # 路由广播ID,同步ID可以接受广播    priority 100            # 优先级,越大优先级越高,主的初始优先级必须要大于备份的主机    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        10.0.0.90      # VIP地址    }}virtual_server 10.0.0.90 3306 {      # 虚拟服务器,IP地址是VIP,端口是对应服务的端口    delay_loop 6    nat_mask 255.255.255.0    protocol TCP?    real_server 10.0.0.11 3306 {      # 真实服务器的ip和端口        weight 1        notify_down  /tmp/kill.sh           # 检测到down状态时要执行的脚本,内容为停止keepalived        TCP_CHECK {                             # 健康检查模块,通过TCP检查            connect_port 3306                   # TCP要检查的端口            connect_timeout 3                   # 超时时间            nb_get_retry 3                      # 重试次数            delay_before_retry 3               # 检查轮询周期时间        }    }}

配置文件结束,保存退出

创建脚本

vim /tmp/kill.sh
#!/bin/bashservice keepalived stop

重启 keepalived 服务

service keepalived restart

查看 VIP 是否生成

ip a

MySQL + KeepaLived 高可用

3. BACKUP 实操

 

yum -y install keepalived cd /etc/keepalivedcp keepalived.conf keepalived.conf.bakvim keepalived.conf
vrrp_instance VI_1 {    state BACKIP            # 主机的初始身份:MASTER/BACKUP    interface eth0          # VIP绑定网卡设备    virtual_router_id 51    # 路由广播ID,同步ID可以接受广播    priority 90            # 优先级,越大优先级越高,主的初始优先级必须要大于备份的主机    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        10.0.0.90      # VIP地址    }}virtual_server 10.0.0.90 3306 {      # 虚拟服务器,IP地址是VIP,端口是对应服务的端口    delay_loop 6    nat_mask 255.255.255.0    protocol TCP?    real_server 10.0.0.12 3306 {      # 真实服务器的ip和端口        weight 1        notify_down  /tmp/kill.sh           # 检测到down状态时要执行的脚本,内容为停止keepalived        TCP_CHECK {                             # 健康检查模块,通过TCP检查            connect_port 3306                   # TCP要检查的端口            connect_timeout 3                   # 超时时间            nb_get_retry 3                      # 重试次数            delay_before_retry 3               # 检查轮询周期时间        }    }}

配置文件结束,保存退出

创建脚本

vim /tmp/kill.sh
#!/bin/bash
service keepalived stop

重启 keepalived 服务

service keepalived restart

查看 VIP 是否生成

ip a

MySQL + KeepaLived 高可用

4. 高可用测试

master 服务器上启动 MySQL keepalived

service mysql restart
service keepalived restart

MySQL + KeepaLived 高可用

此时表示 master 服务器正在正常使用

service mysql stop

MySQL 停止,代表服务器宕机,此时去查看 Backup 的 IP

MySQL + KeepaLived 高可用

master 的 IP,已经漂浮到了 Backup 上,此时,Backup 是主

相关推荐