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

[经验分享] Heartbeat(基于crm)+NFS+Mysql实现mysql的高可用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-23 09:27:53 | 显示全部楼层 |阅读模式
1.环境准备


角色
IP
VIP
192.168.42.160(提供服务的地址)
Master
eth0:192.168.42.163(本地管理IP)
eth1:172.16.1.2/16(心跳线)
Salve
eth0:192.168.42.162(本地管理IP)
eth1:172.16.1.3/16(心跳线)
NFS
192.168.42.135
2.搭建NFS服务器
1.)安装nfs
#yuminstall rpcbind nfs-utils –y
#servicerpcbind start
#chkconfigrpcbind on
#servicenfs start
#chkconfignfs off                         #一定要关掉,HA集群中由heartbeat管理
#mkdir/mydata                            #把/mydata目录用NFS共享出去
       2.)创建mysql用户
              #groupadd–g 3306 mysql
              #useradd–u 3306 –g 3306 –s /sbin/nologin –M mysql
              #mkdir/mydata/data                    #存放mysql数据
              #chown –R mysql.mysql /mydata/data
       3.)配置nfs服务
              #vim/etc/exports
              /mydata          192.168.42.0/24(no_root_squash,rw)
              #exportfs–arv
       4.)测试
              mount–t nfs 192.168.42.135:/mydata /mnt  #在其他机器测试是否能挂载成功
3.安装mysql

       1.)创建mysql用户
       各个节点和NFS上存在mysql用户且id号必须保持一致
   #groupadd –g 3306 mysql
   #useradd–u 3306 –g 3306 –s /sbin/nologin –M mysql
   # mkdir /mydata                        
       2.)mysql安装及配置
       #tar xf mysql-5.6.23-linux-glibc2.5-x86_64.tar–C /usr/local
       #cd /usr/local
       #ln –s mysql-5.6.23-linux-glibc2.5-x86_64mysql
       #chown –R root:mysql ./mysql/*        #解压并修改目录权限

       #mount 192.168.42.135:/mydata /mydata
       #cd /mysql
       #scripts/mysql_install_db –user=mysql–datadir=/mydata/data
       #ll /mydata/data    #挂载NFS目录并初始化mysql,其他节点无需初始化mysql

       #cp support-files/my-default.cnf/etc/my.cnf

       挂载nfs目录并测试mysql服务是否正常(各个节点)
       #mount –t nfs192.168.42.135:/mydata/data       /mydata
       #service mysqld start
       #/usr/local/mysql/bin/mysql
       mysql> create databases mydb;           #创建一个库进行测试
       mysql> show global variableslike ‘%innodb%’:       #查看innodb引擎设置是否生效
       #service mysqld stop
       #umount /mydata
       挂载nfs到另一节点看看刚才创建的库是否存在
       Mysql设置密码
       #mysqladm –u root –p password “新密码”
       Enter password: 【输入原来的密码】
4.   Heartbeat  v2安装部署前的环境准备
       1.) 主机名及hosts设置(heartbeat是通过主机名来通信的,所以必须规划好)
       Master:
       #hostname node1.pachira.cn
       #vim /etc/sysconfig/network
       HOSTNAME=node1.pachira.cn
       #vim /etc/hosts
       127.0.0.1   localhost
       ::1         localhost localhost.localdomainlocalhost6 localhost6.localdomain6
       192.168.42.163  node1.pachira.cn     node1
       192.168.42.162  node2.pachira.cn     node2

       Salve:
       按同样的步骤设置主机名及解析。必须确保主机名与uname –n的结果是一样的。
       最后在各自ping下node1、node2测试一下。
       2.) 各节点间的ssh双机互信
       node1:
       #ssh-keygen –t rsa –f./.ssh/id_rsa –P ‘’
       #ssh-copy-id –i ./.ssh/id_rsa.pubroot@node2
       node2:
       #ssh-keygen –t rsa –f ./ssh/id_rsa–P ‘’
       #ssh-copy-id –i ./.ssh/id_rsa.pubroot@node1
       3.) 各节点间的时间同步(很重要)
       node1:
       配置成ntp server端
       node2:
       #crontab –e
       */30 * * * * /sbin/ntpdate192.168.42.163
       添加防火墙(这里默认是关闭的)与关闭SELinux
       node1,node2
       #vim /etc/selinux/config
       SELINUX=disabled
       #setenforce 0
5.  安装与配置
       1.) 安装heartbeat(
       node1:
       #yum install PyXML perl-MailTools –y
       #rpm –ivh libnet-1.1.6-7.el6.x86_64
       #rpm -ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpmheartbeat-gui-2.1.4-12.el6.x86_64.rpm
      2.) 配置heartbeat
      默认安装好的heartbeat没有配置文件,但是有样例文件
      #cp/usr/share/doc/heartbeat-2.1.4/{authkeys,ha.cf} /etc/ha.d/
      这里只需要两个配置文件,ha.cf与authkeys
      #cd /etc/ha.d/
      #chmod 600 authkeys
      以下的ha.cf与authkeys是经过我删减后的,可以直接使用

      #vim authkeys
      auth 1
      1 md591961e19f5730f736d27c07ffbc093d1

      #vim ha.cf
      #debugfile /var/log/ha-debug
      #logfile        /var/log/heartbeat.log
      logfacility     local0
      keepalive 2                                       #发送心跳的间隔时间
      #deadtime 30   #超出30秒未收到对方节点的心跳,则认为对方已经死亡
      #warntime 10       #警告时间
      #initdead 120       #网络启动时间
      udpport 694
      #bcast  eth1   #广播的方式进行心跳监测,网卡根据生产环境设置
      mcast eth1 225.0.100.10 694 1 0 #组播的方式进行心跳监测
      auto_failback on         
      node    node1.pachira.com    #设置集群中的节点,节点名必须与uname –n 一样
      node    node2.pachira.com
      ping 192.168.42.254    #ping集群外的其他节点,监测网络的连通性,可以设置网关
      #ping_group group1 10.10.10.25410.10.10.253
      #deadping 30
      crm on   #启用crm

      复制以上2个配置文件到node2上
      #scp authkeys ha.cfnode2:/etc/ha.d
      3.) 启动heartbeat
      说明:启动heartbeat之前确保heartbeat所管理的资源都是关闭状态,并关闭开机自启动
      #service heartbeat start
      #ssh node2 “service heartbeatstart”

      node1 node2上用netstat –tunlp 检查下端口
      4.) 配置heartbeat集群资源
      需要配置的集群资源:VIP NFS Mysql

      #passwd hacluster #为客户端连入服务端进行配置的用户设置密码

      #hb_gui &    #启动heartbeat图形化的客户端程序,在window中可以用xmanager打开,也可以用VNC连接linux                    桌面
      wKioL1UdF06ySn_-AAEfQk2vqMY047.jpg
         定义资源粘性,定义一个大于0的数代表该资源更倾向于运行于当前所在的节点上。
         wKiom1UdFiTQeucoAAHVFFeLQ_w995.jpg         
    把VIP Mysql NFS定义到一个资源组内(资源启动顺序 VIP NFS Mysql)创建资源组(按资源启动顺序创建)
         wKioL1U3HDDDNi70AACWuWKzGkY510.jpg

    wKiom1U3Gz_SRpoeAABaNm3fK-g619.jpg
    wKioL1U3HJyAboqiAAB0qNhmF9M658.jpg
    添加VIP资源

    wKioL1U3HYXxGASPAALIHf-Pe3c539.jpg
    添加NFS资源
    wKioL1U3HSOwx8G8AACUIiL2AKE405.jpg
    wKiom1U3G8bQs-lwAAKaScZmmsE303.jpg
    添加mysql资源

    wKiom1U3G8fQ9ThPAAI-O9ysoCE092.jpg
    启动

         wKioL1U3Hk3TtVaBAAFTJvJ9OMk786.jpg
        启动后
         wKioL1U3HpOTDf0HAAJEmL209jo668.jpg         
   尝试让node1处于standby状态,查看资源的切换情况
    wKiom1U3HZWgOI0CAAKH3k6LnZI650.jpg    
  模拟node1再次上线,查看情况
   wKioL1U3Hy_zP_1eAAFqBbWN49s493.jpg

  所有资源都运行于node2上
    wKiom1U3HieiRnEeAAFyjrCwk_A679.jpg     5.)添加资源的监控
    Mysql(每60秒监测资源运行状况,如果发现资源不在,则尝试启动资源,如果30秒还未启动成功,则 资源切换到另外节点)
   wKiom1U3MOqAML3MAAII-lieVow489.jpg
   wKiom1U3MRfxy3GrAAK4pBoKBs8106.jpg     其他资源的监控均可参照mysql的配置。
       6.)heartbeat默认启动与关闭资源的超时时间是20s,如果20s未启动成功与关闭成功,则会造成切换故障,有些资源启动与关闭的时间超过20s,这时候就需要单独配置资源的启动与关闭的超时时间了。
         wKiom1U3MsrjkZg_AAIJuxWg-rs640.jpg
         wKiom1U3M0Ly_uTQAAIjJzkZRp4279.jpg


        至此,此高可用方案部署完毕。




运维网声明 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-59895-1-1.html 上篇帖子: 关于my.cnf配置文件详解 下篇帖子: 解决MySQL Table '***' is marked as crashed and should be repaired问题 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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