mysql HA 负载均衡

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

DRBD+heartbeat + LVS + keepalived+ mysql



硬件:master *2 :安装drbd, heartbeat,mysql

          slave*3 : 安装mysql

          keep alived主机*2: 安装LVS, keepalived(real server就是slave)

          应用主机*3


IP: 两台master 有一个HA VIP1

     两台keepalived主机有一个lvs VIP2


写操作:

应用主机(AS)->VIP1->dev/drbd(两台master的drbd会实时同步)


mysql复制操作:

0) start slave

1) 3台slave会起一个I/O线程向vip1发送请求,请求master发送binlog;

2)master会起一个I/O线程发送binlog给三台slave;

3)1步骤中的I/O线程会把改变的语句保存到中继log -relay log;

4)slave会再开一个I/O读取进程,读取relay log。


读操作:

三台AS->VIP2->根据lVS算法(RR或WRR)->某一台slave

也就是读写是分离master与slave的


一些关键的配置:

drbd: /etc/drbd.conf, 需要配置drbd device名,例如/dev/drbd0, node1和node2的本地磁盘名,

            node1和node2的IP: 7788


keepalived:配置vrrp, virtual serverIP配置DR模式,real servers添加slave的IP, 还有一个集成了监控slave I/O健康的脚本 check.slave.pl


LVS: ipvsadm -L 可以看到多个real server的负载状态, 路由算法RR用于各个real server性能差不多的情况,你一个我一个,WRR加权算法,性能强的做的多。


heartbeat相关命令:

# crm_resource --list                       ###查看所有资源,有一组资源
Resource Group: group_1
    IPaddr_192_168_21_1 (ocf::heartbeat:IPaddr)
    httpd_2     (lsb:httpd)


主备切换:

[root@orasrv1 crm]# crm_standby -v true
[root@orasrv1 crm]# curl http://192.168.21.1/
orasrv2.xlk.com

###也可以通过指定节点的方式进行切换
###假定节点2为主,则可以在节点1上执行一下命令将其切换为备
# crm_standby -v true -U orasrv2.xlk.com 


rhcs切换:

 C、切换某个服务

    可以通过如下方式将一个应用服务从一个节点切换到另一个节点:

    clusvcadm -r <ServiceName> -m <NodeName>

    例如:要将节点web1的服务切换到web2上。

    [root@web1 /]# clusvcadm -r WebServer -m web2.shbztech.com






    本文转自UVN2015  51CTO博客,原文链接:http://blog.51cto.com/10851095/1946554,如需转载请自行联系原作者



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
负载均衡 算法 关系型数据库
mysql的弹性扩展和负载均衡
mysql的弹性扩展和负载均衡
121 0
|
1月前
|
负载均衡 关系型数据库 MySQL
MySQL Router读写节点支持负载均衡策略
`routing_strategy`是MySQL Router配置选项,用于设定数据路由策略。可选值包括:`first-available`, `next-available`, `round-robin`和`round-robin-with-fallback`,分别对应不同的负载均衡和故障转移策略。更多详情参考:&lt;https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-conf-options.html#option_mysqlrouter_routing_strategy&gt;。
10 1
|
2月前
|
消息中间件 关系型数据库 MySQL
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
60 0
|
负载均衡 Linux 调度
使用keepalived(HA)+LVS实现高可用负载均衡群集,调度器的双机热备
使用keepalived(HA)+LVS实现高可用负载均衡群集,调度器的双机热备
160 1
使用keepalived(HA)+LVS实现高可用负载均衡群集,调度器的双机热备
|
SQL 负载均衡 监控
关于Linux下MySQL主备集群负载均衡之读写分离(MaxScale)的一些记笔
分享一些MySQL(MariaDB)集群主从结构数据读写分离的笔记,关于读写分离: 一如果对于读密集型应用,可以容忍从库异步复制延迟导致的脏数据,读写分离是一种不错的负载均衡方式 如果对于脏数据零容忍,不建议这样搞,出了故障还需要考虑这个因素,不太方便定位问题 二是读写分离需要做体量评估,不能为了读写分离去读写分离,系统负载正常,完全没必要,如果扩了资源还是频繁的sql timeout,读写分离是解决方法之一 博文偏实战,内容涉及: 为什么需要负载均衡? MaxScale配置主从集群的读写分离 食用方式:了解Linux,MySQL 理解不足小伙伴帮忙指正
402 0
关于Linux下MySQL主备集群负载均衡之读写分离(MaxScale)的一些记笔
|
负载均衡 关系型数据库 MySQL
使用 LVS+Keepalived 实现 MySQL 双主复制负载均衡高可用
使用 LVS+Keepalived 实现 MySQL 双主复制负载均衡高可用
702 0
使用 LVS+Keepalived 实现 MySQL 双主复制负载均衡高可用
|
负载均衡 网络协议 关系型数据库
【Nginx】如何使用Nginx实现MySQL数据库的负载均衡?看完我懂了!!
Nginx能够实现HTTP、HTTPS协议的负载均衡,也能够实现TCP协议的负载均衡。那么,问题来了,可不可以通过Nginx实现MySQL数据库的负载均衡呢?答案是:可以。接下来,就让我们一起探讨下如何使用Nginx实现MySQL的负载均衡。
411 0
|
11天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
28 0
|
3月前
|
负载均衡 应用服务中间件 nginx
百度搜索:蓝易云【Nginx和tomcat实现负载均衡教程】
至此,你已经成功地使用Nginx和Tomcat实现了负载均衡。Nginx将根据配置的负载均衡策略将客户端请求分发到多个Tomcat服务器上,以提高系统的性能和可用性。请注意,在实际生产环境中,还需要进行其他配置和优化,如健康检查、会话保持等,以满足具体的需求。
34 0
|
3月前
|
负载均衡 安全 前端开发
百度搜索:蓝易云【Nginx与Tomcat负载均衡-动静分离教程】
这些是将Nginx与Tomcat结合使用实现负载均衡和动静分离的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
48 1