设为首页 收藏本站
查看: 1093|回复: 0

[经验分享] 15、 Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节

[复制链接]

尚未签到

发表于 2019-1-7 12:58:41 | 显示全部楼层 |阅读模式
  15、 Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节
  参考自:http://oldboy.blog.运维网.com/2561410/1240412
  heartbeat和keepalived应用场景及区别
  很多网友说为什么不使用keepalived而使用长期不更新的heartbeat,下面说一下它们之间的应用场景及区别:
  1、对于web,db,负载均衡(lvs,haproxy,nginx)等,heartbeat和keepalived都可以实现
  2、lvs最好和keepalived结合,因为keepalived最初就是为lvs产生的,(heartbeat没有对RS的健康检查功能,heartbeat可以通过ldircetord来进行健康检查的功能)
  3、mysql双主多从,NFS/MFS存储,他们的特点是需要数据同步,这样的业务最好使用heartbeat,因为heartbeat有自带的drbd脚本
  总结:
  无数据同步的应用程序高可用可选择keepalived
  有数据同步的应用程序高可用可选择heartbeat(DRBD)
  1、
  安装部署准备
  (1)架构拓扑

  架构说明:
  一主多从最常用的架构,多个从库可以使用lvs来提供读的负载均衡。
  解决一主单点的问题,当主库宕机后,可以实现主库宕机后备节点自动接管,所有的从库会自动和新的主库进行同步,实现了mysql主库的热备方案
  (2)系统环境:

  (3)部署环境

  (4)主库服务器数据分区信息

  2、heatbeat安装部署
  (1)、配置服务器间心跳连接路由
  主节点
  [root@master1 ~]# route add -host 172.16.4.3 dev eth2 create database coral2;
  Query OK, 1 row affected (0.08 sec)                      #说明:VIP地址已经漂移到master2上面
  [root@slave1 ~]# mysql -uroot -e "show slave status\G"|egrep "Slave_IO_Running|Slave_SQL_Running"
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  [root@slave1 ~]# mysql -uroot -e "show databases like 'coral%'"
  +-------------------+
  | Database (coral%) |
  +-------------------+
  | coral1 |
  | coral2 |
  +-------------------+
  #注意:高可用主备节点切换过程中,会有一段时间从库才能连接上,大于在60秒内
  #说明:此时主从同步是正常的
  3)、模拟高可用主节点宕机恢复
  [root@master1 ~]# /etc/init.d/heartbeat start
  [root@master1 ~]# mysql -uroot
  mysql> create database coral3;
  [root@slave1 ~]# mysql -uroot -e "show slave status\G"|egrep "Slave_IO_Running|Slave_SQL_Running"
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  [root@slave1 ~]# mysql -uroot -e "show databases like 'coral%'"
  +-------------------+
  | Database (coral%) |
  +-------------------+
  | coral1 |
  | coral2 |
  | coral3 |
  +-------------------+
  #说明:高可用主节点故障恢复后也不影响主从库的同步
  7、高可用脑裂问题及解决方案
  (1)、导致裂脑发生的原因
  1、高可用服务器之间心跳链路故障,导致无法相互检查心跳
  2、高可用服务器上开启了防火墙,阻挡了心跳检测
  3、高可用服务器上网卡地址等信息配置不正常,导致发送心跳失败
  4、其他服务配置不当等原因,如心跳方式不同,心跳广播冲突,软件BUG等
  (2)、防止裂脑一些方案
  1、加冗余线路
  2、检测到裂脑时,强行关闭心跳检测(远程关闭主节点,控制电源的电路fence)
  3、做好脑裂的监控报警
  4、报警后,备节点在接管时设置比较长的时间去接管,给运维人员足够的时间去处理(人为处理)
  5、启动磁盘锁,正在服务的一方锁住磁盘,裂脑发生时,让对方完全抢不走"共享磁盘资源"
  磁盘锁存在的问题:
  使用锁磁盘会有死锁的问题,如果占用共享磁盘的一方不主动"解锁"另一方就永远得不到共享磁盘,假如服务器节点突然死机或崩溃,就不可能执行解锁命令,备节点也就无法接管资源和服务了,有人在HA中设计了智能锁,正在提供服务的一方只在发现心跳全部断开时才会启用磁盘锁,平时就不上锁




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660366-1-1.html 上篇帖子: Linux入门之:heartbeat v2 GUI模式下配置高可用 下篇帖子: Linux高可用集群方案之配置heartbeat v2基于haresources配置文件的httpd高可用集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表