千家信息网

keepalived+vip+mysql双机高可用的示例分析

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章主要为大家展示了"keepalived+vip+mysql双机高可用的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"keepalived+
千家信息网最后更新 2024年11月14日keepalived+vip+mysql双机高可用的示例分析

这篇文章主要为大家展示了"keepalived+vip+mysql双机高可用的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"keepalived+vip+mysql双机高可用的示例分析"这篇文章吧。

1.环境 mysql主从
更新

yum update glib*

配置第三方源
yum install -y epel-release

直接通过yum安装keepalived

#查看是否有安装包
yum list |grep keepalived

安装
yum install keepalived.x86_64

各种参数定义查看如下bolg
http://blog.csdn.net/zhu_tianwei/article/details/43603135

真实生产环境案例
master
路径/etc/keepalived/keepalived.conf
通过权重 priority 0-250 来判断 主从
#######################master###########################
global_defs {
router_id HA_MySQL
}


vrrp_instance VI_1 {
state BACKUP
interface em1
virtual_router_id 12
priority 120
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#vip
192.168.27.12
}
}


virtual_server 192.168.27.12 3306 {
delay_loop 2
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.27.73 3306 {
weight 3
inhibit_on_failure
#检查真实ip的端口3306 是否down 如果down 执行stop_keeplived.sh
notify_down /usr/local/keepalived/sbin/stop_keeplived.sh
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}

###########################slave###############################


slave
通过权重 priority 0-250 来判断 主从


global_defs {
router_id HA_MySQL
}


vrrp_instance VI_1 {
state BACKUP
interface em1
virtual_router_id 12
priority 100
advert_int 1
#nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#vip
192.168.27.12
}
}


virtual_server 192.168.27.12 3306 {
delay_loop 2
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.27.72 3306 {
weight 3
notify_down /usr/local/keepalived/sbin/stop_keeplived.sh
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}


################stop_keeplived.sh############
/usr/local/keepalived/sbin/stop_keeplived.sh
内容
#! /bin/bash
echo "test" > text.txt
/etc/init.d/keepalived stop

#遇到的错误
停止mysql 3306端口
service mysqld stop
正常应该是vip 进行漂移,但是却没有漂,查看keepalived状态
service keepalived status
发现 ipvs: Protocol not available 提示信息
此问题 导致vip无法漂移
原因是ip_vs模块系统默认没有自动加载
查看ip_vs模块
lsmod | grep ip_vs 若没有值需要手工加载
modprobe ip_vs
modprobe ip_vs_wrr

lsmod | grep ip_vs正常输出
[root@hs-73 sbin]# lsmod | grep ip_vs
ip_vs_wrr 12697 0
ip_vs 140944 2 ip_vs_wrr
nf_conntrack 105745 1 ip_vs
libcrc32c 12644 2 xfs,ip_vs
设置开机加载
/etc/rc.local
modprobe ip_vs
modprobe ip_vs_wrr
写入rc.local配置文件


到此 问题解决

vip 可以正常漂移

使用命令 ip a 可以查看vip

-----keepalived 对应的机器必须开启112端口 否则 两边无法通信

以上是"keepalived+vip+mysql双机高可用的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0