四十五、MHA之VIP漂移

MHA之VIP漂移介绍

VIP: Virtual ip
配置VIP,以便在MHA集群中master主机宕机后,让客户端无需修改数据库地址,通过VIP进行无缝切换。

注意自带的VIP漂移脚本只能在同网段使用,跨网段不行
使用keeplived可以跨网段

配置

1、在manager上编辑配置文件

$ vim /etc/mha/app1.cnf
[server default]
master_ip_failover_script=/usr/local/bin/master_ip_failover
...

$ unzip MHA-2019-6.28.zip
$ cp master_ip_failover.txt /usr/local/bin/master_ip_failover

指明使用虚拟IP漂移的脚本路径
master_ip_failover脚本在MHA-2019-6.28.zip中,这里下载

2、修改master_ip_failover脚本

vim /usr/local/bin/master_ip_failover
my $vip = '10.154.0.120/24'; 
my $key = '1';
my $ssh_start_vip = "/sbin/ifconfig ens34:$key $vip";
my $ssh_stop_vip = "/sbin/ifconfig ens34:$key down";

因为虚拟ip是绑定在网卡上的,需要ifconfig查看一下本机网卡名称
这里要指定一个空闲IP即未使用的ip地址作为虚拟IP
key为ens34:1中的1,挂在真实网卡下的虚拟网卡编号

3、改变master_ip_failover编码格式

$ yum install -y  dos2unix
$ dos2unix /usr/local/bin/master_ip_failover
dos2unix: converting file /usr/local/bin/master_ip_failover to Unix format ...

$ chmod +x /usr/local/bin/master_ip_failover 

为什么使用dos2unix转换?因为脚本是在windows下编辑的,换行符不符合unix编码规范,所以要转换为unix换行符编码规范。

4、手工添加vip

$ ifconfig ens34:1 10.154.0.120/24

这时就会发现有一块虚拟网卡了


5、重启MHA

$ masterha_stop --conf=/etc/mha/app1.cnf

$ nohup masterha_manager \
--conf=/etc/mha/app1.cnf \
--remove_dead_master_conf \
--ignore_last_failover  < /dev/null> /var/log/mha/app1/manager.log 2>&1 &

$ masterha_check_status --conf=/etc/mha/app1.cnf
app1 (pid:14410) is running(0:PING_OK), master:10.154.0.111

学习来自:B站课程:搭建MHA高可用 P146,《MySQL入门与提高实践》第18章,MySQL-MHA高可用方案

posted @ 2021-04-17 17:32  努力吧阿团  阅读(557)  评论(0编辑  收藏  举报