热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

利用Heartbeat和drbd做mysql的高可用性,lvs做slave负载均衡

 650)this.width650;border0altsrchttps:img2021.freeaihub.comff80689b3d7d0b7ff5e07215ea391de


 







 


 


 




使用drbd,对于mysql存储引擎的选择最好使用
innodb
,因为这个存储引擎可以要求每次写操作立即写入磁盘,而不是放在内存中,myisam的写操作基本上是先放在内存中,然后定期写入磁盘。




实验证明,
drbd+innodb+heartbeat
可以实现无缝故障转移,不中断服务,实验中,很多次我进行了写数据时掉电处理,或者断网处理,或者关掉服务等,都能正常进行故障转移,而且故障时间控制在3秒内,就可以进行切换。


 


 




其实用keepalived也同样可以实现高可用性的~


 




keepalived变为主节点的时候运行的脚本


 






  1. #!/bin/bash 



  2. while : 


  3. do 



  4. drbd_status
    =`service drbd status|grep Inconsistent | gawk '{print $4}'` 



  5. if [ -n "$drbd_status" ]; then 


  6. echo "drbd's status is inconsisten,waiting..." 


  7. sleep 1 


  8. else 


  9. echo "drbd's status is ok,namenode will be changing" 


  10. break 


  11. fi 


  12. done 


  13.  


  14. while : 


  15. do 


  16. if [ -d /data/mysql ]; then 


  17. #service mysqld stop 


  18. service mysqld start 


  19. break 


  20. else 


  21. drbdadm primary r0 


  22. mount /dev/drbd0 /data 


  23. sleep 1 


  24. service mysqld start 


  25. fi 


  26. done 


  27.  


  28.  



  29. drbd_status
    =`service drbd status|grep StandAlone | gawk '{print $2}'` 



  30. if [ -n "$drbd_status" ]; then 



  31. vip_status
    =`ip addr |grep eth0|grep "192.168.100.7"` 



  32.    if [[ ! -z ${vip_status} ]];then 


  33.      for i in $(seq 3) 


  34.        do  


  35.         drbdadm connect all 


  36.         sleep 2 


  37.      done 


  38.    fi 


  39. fi 





keepalived变为备用机器的时候,运行的脚本



 






  1. #!/bin/bash 



  2. if [ -d /data/mysql ];then 


  3. service mysqld stop 


  4. pkill -9 mysql 


  5. sleep 1 


  6. fuser -ck /data/ 


  7. umount -l /dev/drbd0 


  8. drbdadm secondary all 


  9. else 



  10. drbd_status
    =`service drbd status|grep StandAlone | gawk '{print $2}'` 



  11. if [ -n "$drbd_status" ]; then 


  12. drbdadm secondary all 


  13.  


  14. fi 


  15. fi 


 


 


 


 


 




推荐阅读
  • 使用LVS与ldirectord实现高可用负载均衡
    本文介绍了如何通过LVS(Linux Virtual Server)结合ldirectord工具来实现服务器的健康检查及负载均衡功能。环境设置包括一个LVS节点和两个真实服务器节点,通过配置ldirectord进行健康状态监测,确保系统的高可用性。 ... [详细]
  • 免费获取:全面更新的Linux集群视频教程及配套资源
    本资源包含最新的Linux集群视频教程、详细的教学资料、实用的学习课件、完整的源代码及多种软件开发工具。百度网盘链接:https://pan.baidu.com/s/1roYoSM0jHqa3PrCfaaaqUQ,提取码:41py。关注我们的公众号,获取更多更新的技术教程。 ... [详细]
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • MHA 架构详解与实践
    MHA(Master High Availability)是一种高效的主从切换解决方案,确保了数据的一致性和系统的高可用性。本文将详细介绍MHA的功能、主从切换流程以及配置步骤,并探讨其优缺点。 ... [详细]
  • 微服务架构详解及其入门指南
    本文详细介绍了微服务的基本概念、发展历程、与传统架构的区别及优势,并探讨了适合采用微服务架构的场景。此外,文章还深入分析了几个主流的微服务开发框架,特别是Spring Cloud的组成和特点。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • Linux负载均衡LVS(IPVS)
    一、LVS简介LVS是LinuxVirtualServer的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,现在已经是Linux ... [详细]
  • 历经两个月,他成功斩获阿里巴巴Offer
    经过两个月的努力,一位普通的双非本科毕业生最终成功获得了阿里巴巴的录用通知。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • LVS-DR数据包流向分析介绍
    下文给大家带来LVS-DR数据包流向分析介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍, ... [详细]
  • 【Linux332】LVS的DR配置详解(ipvsadm+arptables)
    文章目录1.DR简 ... [详细]
  • java大数据量调优(超赞值得收藏)
    从总体上来看,对于大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节: ... [详细]
  • 目录结构如下:Nginx基础知识NginxHTTP服务器的特色及优点Nginx的主要企业功能Nginx作为web服务器的主要应用场景包括:Nginx的安装安装环境 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
author-avatar
Sheen2602906613
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有