MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障。然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负载均衡,如果其中master宕掉的话需要手动切换到另外一个master,而不能自动进行切换。前面介绍了Mysql+Keepalived双主热备高可用方案记录,那篇文档里没有使用到LVS(实现负载均衡),而下面要介绍的就是如何通过Keepalived+LVS方式来是实现MySQL的高可用性,利用LVS实现MySQL的读写负载均衡,Keepalived避免节点出现单点故障,同时解决以上问题。

Keepalived是一个基于VRRP(虚拟路由冗余协议)可用来实现服务高可用性的软件方案,避免出现单点故障。Keepalived一般用来实现轻量级高可用性,且不需要共享存储,一般用于两个节点之间,常见有LVS+Keepalived、Nginx+Keepalived组合。

LVS(Linux Virtual Server)是一个高可用性虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。LVS主要用于多服务器的负载均衡,作用于网络层。LVS构建的服务器集群系统中,前端的负载均衡层被称为Director Server;后端提供服务的服务器组层被称为Real Server。通过下图可以大致了解LVS的基础架构。

LVS有三种工作模式,分别是:

1)DR(Direct Routing 直接路由)模式。 DR可以支持相当多的Real Server,但需要保证Director Server(分发器)虚拟网卡与物理网卡在同一网段,并且后端Real Server的vip要建立在本地回环口lo设备上,这样做是为了防止ip冲突;DR模式的好处是进站流量经过Director Server,出站流量不经过Director Server,减轻了Director Server的负载压力。

2)NAT(Network Address Translation 网络地址转换)模式。NAT扩展性有限,无法支持更多的Real Server,因为所有的请求包和应答包都需要Director Server进行解析再生,这样就很影响效率。

3)TUN(Tunneling IP隧道)模式。TUN模式能够支持更多的Real Server,但需要所有服务器支持IP隧道协议;

LVS负载均衡有10中调度算法,分别是:rr(轮询)、wrr(加权轮询)、lc、wlc、lblc、lblcr、dh、sh、sed、nq

以下详细记录了Mysql在主主同步环境下,利用LVS实现Mysql的读写负责均衡以及使用Keepalived心跳测试避免节点出现单点故障,实现故障转移的高可用。

1)高可用方案的环境准备

2)环境部署记录如下

a)Mysql主主热备环境部署

MySQL1 Real Server1和MySQL2 Real Server的主主热备可以参考Mysql+Keepalived双主热备高可用操作记录中对应部分。

b)Keepalived安装

LVS_Master和LVS_Backup的keepalived安装,也可以参考Mysql+Keepalived双主热备高可用操作记录中对应部分。

c)LVS安装

d)编写LVS启动脚本/etc/init.d/realserver

e)配置iptables防火墙

3)接着配置LVS+Keepalived配置

此时LVS+Keepalived+MySQL主主复制已经搭建完成。

4)最后进行测试验证

总结几点:

1)MySQL主主复制是集群的基础,组成Server Array,其中每个节点作为Real Server。

2)LVS服务器提供了负载均衡的作用,将用户请求分发到Real Server,一台Real Server故障并不会影响整个集群的。

3)Keepalived搭建主备LVS服务器,避免了LVS服务器的单点故障,出现故障时可以自动切换到正常的节点。

4)VRRP虚拟IP地址和接口实际IP必须在同一个网段内,VRRP两个实际接口不在同一网段,是不能形成主备关系的。因为:

mysql+keepalived必须要lvs吗_Mysql双主热备+LVS+Keepalived高可用操作记录相关推荐

  1. mysql+keepalived必须要lvs吗_MySQL 双主热备 + LVS + Keepalived 高可用操作记录

    MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...

  2. ubuntu mysql双主热备配置_MySql双主热备配置

    用四台服务器配置MySql双主热备配置 主机1服务器ip:192.168.31.208 主机2服务器ip:192.168.31.133 从机1服务器ip:192.168.31.121 从机2服务器ip ...

  3. mysql双主故障自动切换_mysql双主热备宕机自动切换

    一.定义 通常说的「双机热备」是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短. 二.原理 Keepal ...

  4. keepalived mysql双主架构图_基于keepalived Mysql双主热备配置

    基于keepalived双主热备: 一.环境: OS:CentOS 6.5 X64 DB Version:Percona Mysql 5.7.15-9-log 路径:/app/mysql57 数据文件 ...

  5. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变...

    [Mysql主从复制] 解决的问题 数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了. 负载均 ...

  6. MySQL8.0.19 双主热备

    MySQL8.0.19 双主热备 一.环境准备 二.双主配置 2.1 主机A(131)配置 2.2 主机B(132)配置 2.3 主机A(131)主从配置 2.4 主机B(132)主从配置 2.5 启 ...

  7. centos7双机搭建_Centos7 Mysql 双机热备实现数据库高可用

    mysql双主热备,也称主主互备,目的是mysql数据库高可用,只支持双机,原因是mysql的复制是一主多从,但一个从服务器只能有一个主服务器. 双机热备的条件是双机mysql版本必须一致. 服务器分 ...

  8. mysql 5.6 双向互备_mysql双主互备

    5.则配置同步信息. change master to master_host='192.168.1.102',master_port=3306,master_user='replication',m ...

  9. 主nginx linux,Linux-实现双主模型的nginx的高可用

    1 [root@234c17 ~]# for i in {1..4};do curl www.a.com;curl www.b.com;sleep 1;done 2 234.57 3 234.77 4 ...

最新文章

  1. 应力循环次数60ant_恒温恒湿箱循环试验失效分析
  2. 新同事上来就把项目性能优化了一遍,瑟瑟发抖。。。
  3. ComboBox的真实值和显示值
  4. Unity3D研究院之获取摄像机的视口区域
  5. Q_learning简介与实例
  6. oracle数据库inactive状态session过多的原因定位
  7. 如何忽略SVN目录?
  8. 基于GDAL的一个通用的3×3模板函数
  9. 新版手机浏览器_简约但不“简单”的手机浏览器
  10. android+6.0中兴v5s,中兴v5s
  11. 计算机应用基础作业4第一次,《计算机应用基础》第一次作业题目、答案
  12. Struts2详细使用教程
  13. python读取并显示图片
  14. C#序列化和反序列化到底是什么意思
  15. python中反斜杠是什么意思_python中反斜杠是什么意思
  16. layui layer诡异bug记录
  17. plsql快速导入sql文件
  18. 妙用“Check out”与“Check In”
  19. linux 下添加环境变量(使用 path = $path... )
  20. 继sina想在csdc开博

热门文章

  1. S/4HANA的生产订单,哪个字段可以用来做生产完成的标志位
  2. git提交后的自动化流程构建
  3. SAP Marketing和SAP Marketing Cloud的区别
  4. 批量删除指定user和transaction type对应order的report
  5. SAP Customer Data Cloud的Audit log设置
  6. 如何在SAP CRM Fiori My Task应用里创建task
  7. Kubernetes本地集群和Google Kubernetes Engine的区别
  8. rocketmq怎么保证数据不会重复_rocketmq如何保证消息不丢失
  9. Android studio实现底部导航,Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果...
  10. nginx session共享_Centos下实现nginx负载均衡