利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境

时间:2022-11-29 17:15:11

应用背景

MySQL复制(主主,主从...)能在保证数据的备份的同时也能够做读写分离分摊系统压力,但是发生单点故障时,需要手动

切换到另外一台主机。LVS和Keppalived可以设定一个VIP来实现统一访问入口,实现单点故障时,VIP自动切换至另外一台

主机上达到高可用效果,同时LVS可以提供多种调度算法来实现负载均衡机制。

测试环境

MySQL主主复制,利用Keepalived控制LVS的高可用,在利用LVS的某种调度算法对2台MySQL实现负载均衡。

  利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境

  利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境

操作步骤

1. MySQL复制(双主)

  略

2. 安装LVS和Keepalived(在两台LVS上操作)

[root@server-8 ~]# yum install epel-release -y
[root@server-8 ~]# yum install ipvsadm keepalived -y
[root@server-8 ~]# echo "" > /etc/keepalived/keepalived.conf
[root@server-8 ~]# vim  /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
router_id LVS1              #另外一台就写LVS2
} vrrp_instance VI_1 {
state MASTER #指定instance初始状态,当前是主MASTER,另外一节点填BACKUP
interface eth0 #请查看网卡名,CentOS6和7命名不一样
virtual_router_id #VRID,相同VRID为一个组,决定多播MAC地址,重要!主备一致
priority #优先级,另一台改为低一点,比如90
advert_int #检查间隔
authentication {
auth_type PASS #认证方式,可以是pass或ha
auth_pass #认证密码
}
virtual_ipaddress {
138.138.82.222 #VIP
}
} virtual_server 138.138.82.222 {
delay_loop #服务轮询的时间间隔
lb_algo wlr #加权最小连接调度算法,LVS调度算法 rr|wrr|lc|wlc|lblc|lblcr|sh|dh|sed|nq
lb_kind DR #LVS集群模式 NAT|DR|TUN,其中DR模式要求负载均衡器网卡必须有一块与物理网卡在同一个网段
persistence_timeout #会话保持时间
protocol TCP #健康检查协议

#=== Real Server设置,3306就是MySQL连接端口 ===#
real_server 138.138.82.10 {
weight #权重
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
real_server 138.138.82.11 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}

保存,退出;

另外一台LVS主机的Keepalived配置同上,修改上面的提到的router_id,state,priority值即可,不在赘述;

接下来启动Keepalived

[root@server-8 ~]# service keepalived start
[root@server-9 ~]# service keepalived start
[root@server-8 ~]# ip a

利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境

[root@server-8 ~]# ipvsadm -ln

利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境

目前VIP只在MASTER上,如果MASTER节点挂了,VIP自动飘到BACKUP节点上;

3. 配置两台MySQL所需脚本(在两台MySQL上操作)

[root@server-10 ~]# vim lvs.sh
#!/bin/bash
VIP=138.138.82.222
case "$1" in
start)
echo "start LVS of RealServer DR"
/sbin/ifconfig lo: $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
/sbin/ifconfig lo: down
echo "close LVS of RealServer DR"
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
;; *)
echo "Usage: $0 {start|stop}"
exit
esac
exit

保存,退出;  

启动脚本:

[root@server-10 ~]# sh lvs.sh start
[root@server-10 ~]# ip a

利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境

另一台MySQL操作如上(脚本内容一致)。

[root@server-11 ~]# ip a

利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境

这样,两台mysql会通过各自的loopback接口与这个VIP通信。

直此,客户端就可以通过统一个接口IP(138.138.82.222)来访问数据了。

关于LVS的10种调度算法介绍

官网:http://www.linuxvirtualserver.org/docs/scheduling.html

参考:https://blog.csdn.net/scape1989/article/details/21085659

结束.

利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境的更多相关文章

  1. keepalived+mysql双主复制高可用方案

    MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了 ...

  2. 基于keepalived搭建mysql双主高可用

    目录 概述 环境准备 keepalived搭建 mysql搭建 mysql双主搭建 mysql双主高可用搭建 概述 传统(不借助中间件)的数据库主从搭建,如果主节点挂掉了,从节点只能读取无法写入,只能 ...

  3. Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)

    原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.ne ...

  4. Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)-转帖篇

    原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.ne ...

  5. 通过keepalived搭建MySQL双主模式的高可用集群系统

    1. 配置MySQL双主模式 1.修改my.cnf配置文件 默认情况下,MySQL的配置文件是/etc/my.cnf,在配置文件的[mysqld]段添加如下内容: server-id=1 log-bi ...

  6. 基于MySQL+MHA+Haproxy部署高可用负载均衡集群

    一.MHA 概述 MHA(Master High Availability)是可以在MySQL上使用的一套高可用方案.所编写的语言为Perl 从名字上我们可以看到.MHA的目的就是为了维护Master ...

  7. 【线上测试之后的应用】基于MySQL+MHA+Haproxy构建高可用负载均衡数据库集群(详解)

    这里我们先介绍一下MHA是什么,其次就是它的应用与测试,同时为了大家呈现了数据备份案例,最后总结了使用情况以及注意事项和解决办法 一.MHA 概述 MHA(Master High Availabili ...

  8. keepalived+nginx高可用负载均衡环境搭建

    上篇说道keepalived的环境搭建,本来keepalived结合lvs更有优势,但是也可以结合nginx来使用.下面接着说下nginx的环境搭建 环境信息: nginx(master)  192. ...

  9. 分布式数据存储 - MySQL双主复制

    上篇文章<分布式数据存储 - MySQL主从复制>,我们说到MySQL主从复制很好的保障了从库,读的高可用性.so,问题来了: 1.针对主库,写的高可用性又是如何做到高可用性? 2.如果需 ...

随机推荐

  1. 用C&num;从数据库动态生成AdminLTE菜单的一种方法

    当前的应用设计风格趋于Flat扁平化,很多基于BootStrap实现了很多UI非常漂亮的管理界面(Bootstrap admin template). 此核心文件开源在Github:https://g ...

  2. C&plus;&plus;&lowbar;系列自学课程&lowbar;第&lowbar;7&lowbar;课&lowbar;数组&lowbar;《C&plus;&plus; Primer 第四版》

    说到数组,大家应该都很熟悉,在C.Pascal.Java等语言中,都有数组的概念.在C++中也提供了对数组的支持.数组简单来说就是一堆相同 数据类型对象的集合. 这里要把握住两个要点: 相同的数据类型 ...

  3. ASP&period;NET Core 开发 - Entity Framework &lpar;EF&rpar; Core

    EF Core 1.0 Database First http://www.cnblogs.com/linezero/p/EFCoreDBFirst.html ASP.NET Core 开发 - En ...

  4. Linux防火墙iptables学习笔记(三)iptables命令详解和举例&lbrack;转载&rsqb;

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  5. 转载收藏之用 - 微信公众平台开发教程(四):Hello World

    这一篇文章其实可以写在很前面,不过我还是希望开发者们尽多地了解清楚原理之后再下手. 通过上一篇Senparc.Weixin.MP SDK 微信公众平台开发教程(三):微信公众平台开发验证,我们已经使微 ...

  6. 利用redis的订阅和发布来实现实时监控的一个DEMO(Python版本)

    redis的list类型有个很好的特性,就是每次添加元素后会返回当前list的长度,利用这个特点,我们可以监控它的长度,比如我们的key是用户注册的IP地址,list中存放的是已经在此IP地址上注册的 ...

  7. &lbrack;array&rsqb; leetcode - 39&period; Combination Sum - Medium

    leetcode - 39. Combination Sum - Medium descrition Given a set of candidate numbers (C) (without dup ...

  8. PyCharm运行Nosetests并导出测试报告

    1. Pycharm运行Nosetests PyCharm可以使用两种方法,运行Nosetests测试文件: 1) 图形用户界面GUI a) 在PyCharm中,选中测试文件,如Tests/test_ ...

  9. wet 下载jdk 64位

    wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com% ...

  10. 设计模式学习--Builder

    What Builder:将一个复杂的对象的构建和表示分离,使得同样的构建过程可以创建不同的表示. Why Builder也是创建型模式的一种,它是一步一步的向导式的创建一个复杂的对象,Builder ...