xinxuaw231 发表于 2019-1-7 10:28:54

CentOS6.4 高可用集群之基于heartbeat(crm)和nfs的mysql高可用

  CentOS6.4 高可用集群之基于heartbeat和nfs的高可用mysql
  CentOS版本: CentOS release 6.4(Final) 2.6.32-358.el6.i686
  效果演示:

           使用ssh连接(nod-1.magedu.com)192.168.3.7 并执行以下命令:

           # hb_gui &
           http://s5.运维网.com/wyfs02/M01/8B/57/wKioL1hKTHaCKR4nAACrFeFXsP4129.png
        http://s3.运维网.com/wyfs02/M02/8B/56/wKioL1hKLluSl82hAAE6z4i2T5o772.png   
           说明:hb_gui是heartbeat为了方便管理集群资源而提供的一个图形用户接口

           安装heartbeat默认会在系统中创建一个名为"hacluster"的用户、这个用户是在执行hb_gui命令时
           所必须的、默认情况下此用户密码为空、需要手动为其指定一个密码。

           一般情况下,一个高可用服务包括多个资源,从属于同一个服务的多个资源必须运行在同一个节点上|
           而默认情况下是平行的。这句话可以这样来理解(如果此处我们不是创建了一个名MYSQL_HA的组,那么
           上图中的3个资源就很可不是运行在同一个节点上)这一点一定要注意。
  

  

            查看 集群IP 即mysql_ip 是否位于(nod-1这个节点的eth0)的别名上(eth0:0)
        http://s3.运维网.com/wyfs02/M00/8B/59/wKiom1hKLtKD9wDlAABLNLEtcvc945.png

  

            在nfs.magedu.com上执行以下命令
            模拟从远程nfs.magedu.com(192.168.3.9)访问 集群IP (192.168.3.10)
http://s3.运维网.com/wyfs02/M02/8B/56/wKioL1hKNjCh4xWSAAA9CNsto34944.png

  

           在nod-1.magedu.com上执行以下命令
           观察nfs.magedu.com连接的到底是否是第1个节点:(nod-1.mageud.com)上的mysql数据库。

        http://s5.运维网.com/wyfs02/M00/8B/56/wKioL1hKMUigPJ08AABgsoF-5lI150.png
        
         在nod-1.magedu.com上查看nfs共享挂载的情况
         http://s4.运维网.com/wyfs02/M02/8B/5A/wKiom1hKNPKhQ8xiAAA-wt18W4g568.png   

  

     
  模拟故障是否能成功转移:
  

         http://s2.运维网.com/wyfs02/M01/8B/5B/wKiom1hKUPejF3J7AAFZFxgkSqA712.png
         http://s4.运维网.com/wyfs02/M00/8B/58/wKioL1hKUSCwO5r4AAEzedCdKAI387.png
  
           从上图看当nod-1这个设定为"备用节点"后、集群资源已经转移到nod-2这个节点上。那么是否真的

           成功了呢(验证一下)

        http://s1.运维网.com/wyfs02/M00/8B/5B/wKiom1hKUdTxZfOLAAAUzsFBjp4873.png
        http://s2.运维网.com/wyfs02/M01/8B/5B/wKiom1hKUoOwjDM4AABMuwSBCCQ075.png
        http://s3.运维网.com/wyfs02/M01/8B/5B/wKiom1hKUxfAKF0yAABAzFiWpfQ442.png
  

  

  

  准备工作:

        SSH 双机互信

        本次实验中高可用集群中只2个节点:(nod-1| nod-2)
        nod-1.magedu.com (192.168.3.7)

        nod-2.magedu.com (192.168.3.8)
        nsf.magedu.com   (192.168.3.9)
        集群的IP

        mysqlip          (192.168.3.10)

        
        1、在第1个节点(nod-1.magedu.com)上执行以下命令:      
              cd ~/.ssh
               ssh-keygen -t rsa

           ssh-copy-id -i ./id_rsa.pub root@192.168.3.8
  

        2、在第2个节点(nod-2.magedu.com)上执行以下命令:

               cd ~/.ssh

               ssh-keygen -t rsa
               ssh-copy-id -i ./id_rsa.pub root@192.168.3.7
  

        3、在第3个节点(nfs.magedu.com)上安装配置rpcbind(nfs服务) 及ntp服务:
              nfs.magedu.com这台服务器同时提供(nfs|ntp)这2种服务。
              rpcbind可以使用yum命令来安装此处就不做多讲了。

     
              本次实验中计划将 nfs.magedu.com这台服务器上的/mysqldata/data做为共享

              导出来供(nod-1|nod-2)挂载。

              1.查看或编辑 nfs.magedu.com上的nfs共享

              # cat /etc/exports
                  /mysqldata/data192.168.3.0/24(rw,no_root_squash)
  
         2.在(nod-1|nod-2)执行挂载测试

              可以执行以下命令测试能否正常挂载(nfs.magedu.com)上的共享目录/mysqldata/data
              # mount -t nfs 192.168.3.9:/mysqldata/data/mysqldata/data
              # mount -t nfs 192.168.3.9:/mysqldata/data/mysqldata/data
              在创建并配置高可用集群的时候首先要做的便是要使用集群内各节点的时间保持同步

              在(nod-1|nod-2)上分别执行如下命令:      

              # ntpdate 192.168.3.9
              9 Dec 12:00:42 ntpdate: step time server 192.168.3.9 offset 57574.355435 sec
  

  

   HeartBeat-2.1.4-11.el5.i386.rpm安装及配置                                    
  下载链接:https://dl.fedoraproject.org/pub/epel/5/i386/

            http://rpm.pbone.net/
            http://rpmfind.net/
            http://fedoraproject.org/wiki/EPEL(这个地址有时候访问会很慢、使用***软件会有明显改善)

  

  RPM包:
        http://s4.运维网.com/wyfs02/M01/8B/57/wKiom1hKDG_iZrNuAAEyGBoRyQ0105.png
        安装顺序

        http://s2.运维网.com/wyfs02/M02/8B/57/wKiom1hKDPfDT-y4AAC3Cx5xop8554.png
        说明:
        devle包、和 ldirectord 包在本实验(高可用集群)当中暂时用不着所以用不着安装
        所以无需安装。
        net-snmp-libs-5.3.2.2-22.el5_10.1.i386.rpm

        在安装之前必须把系统自带net-snmp-libs包卸载掉(自带版本为net-snmp-libs-1:5.5-44.el6.i686)
        执行命令: yum-e --nodepsnet-snmp-libs
                     rpm -ivhnet-snmp-libs-5.3.2.2-22.el5_10.1.i386.rpm
        gnutls-1.4.1-10.el5_9.2.i386.rpm
        在安装之前必须把系统自带gnutls包卸载掉(自带版本为gnutls-2.8.5-10.el6.i686)
        执行命令: yum-e --nodepsgnutls
                     rpm -ivhgnutls-1.4.1-10.el5_9.2.i386.rpm
  配置:
         使用crm与haresource 不同之处是haresource(配置文件有3个:authkeys,har.cf,haresources)      
        # cd /etc/ha.d/
        # ll
        total 48
        -rw-------. 1 root root   693 Dec8 12:01 authkeys
        -rw-r--r--. 1 root root 10686 Dec8 12:09 ha.cf
        -rwxr-xr-x. 1 root root   745 Mar 202010 harc
        -rw-r--r--. 1 root root5905 Mar 202010 haresources
        drwxr-xr-x. 2 root root4096 Dec6 17:57 rc.d
        -rw-r--r--. 1 root root   692 Mar 202010 README.config
        drwxr-xr-x. 2 root root4096 Dec7 19:13 resource.d
        -rw-r--r--. 1 root root7862 Mar 202010 shellfuncs
         authkeys: 是验证身份的密钥文件。只有通过验证的主机才能成为集群当中的节点。

                 出于安全的authkeys的权限必须设定为 600,否则执行service heartbeat start

                 时可能报错、并伴随有警告信息。

         ha.cf    是关于集群本身设定的配置文件(我们可以在此文件中设定有多少个节点、还可以
                  设定心跳信息发送模式即[广播|多播|单播],等各种参数)

  

         haresources高可用集群中各资源的定义都位于此文件中

  

        因为我们此处要讲的是crm所以只需要对authkeyst和ha.cf进行配置即可

        1、authkeys   
        # cat authkeys
        #Authentication file.Must be mode 600

        #

        #auth 1
        #1 crc
        #2 sha1 HI!
        #3 md5 Hello!
  

        auth 1
        1 md5 3c0d2f606e0ddd100509d42795436dc1
        #

        为了不占据空间多余的注释行我都删掉了、authkeys这个文件中需要修改的地方就2行:
            auth 1
              1 md5 3c0d2f606e0ddd100509d42795436dc
        它表示启用标识为1的加密方式、在1这个标识中我们指定了加密的方式为md5,后面一长串字符是salt。


        2、ha.cf

         在这个文件当中我们只需要修改4处地方

     
         #mcast eth0 225.0.0.1 694 1 0
         mcast eth0 225.0.0.1 694 1 0

  

         #nodekathy
         nodenod-1.magedu.com

         nodenod-2.magedu.com
  

         #ping 10.10.10.254

         ping192.168.3.9
  

        #compression_threshold 2
        crm on

        或者写成下面这种方式效果也是一样的(表示启用crm)

        crm respawn

   CRM:即 Cluster Resource Manager
  

     当authkeys和ha.cf这2个文件都配置完成后,可以执行以下命令:
     # /usr/lib/heartbeat/ha_propagate
     把这2个配置好的文件分发至集群中的其它各节点对应目录下、不用我们手动去复制。

     

  高可用
  集群的常用命令
        关于集群日常维护命令及其参数的使用、有一个网友写的比较具体、此处就直接引用了。

        出处:http://czmmiao.iteye.com/blog/1181720
        crm_mon:crm_mon 命令允许您监视群集的状态和配置。其输出包括节点数、uname、uuid、状态
        、群集中配置的资源及其各自的当前状态。crm_mon 的输出可以显示在控制台上或打印到 HTML
        文件。当具有不包含状态部分的群集配置文件时,crm_mon 会按文件中所指定的方式创建节点
        和资源概览。
http://s1.运维网.com/wyfs02/M00/8B/5C/wKiom1hKWbCgMAKmAAAy88ssdBA798.png
http://s4.运维网.com/wyfs02/M02/8B/59/wKioL1hKXQGSYLxNAABrNW_jJXY612.png
  

http://s5.运维网.com/wyfs02/M00/8B/58/wKioL1hKW03DqnryAABj7pkUDx4866.png
http://s2.运维网.com/wyfs02/M01/8B/59/wKioL1hKW-iSqCn-AABG7yRVJoY362.png
http://s1.运维网.com/wyfs02/M00/8B/59/wKioL1hKXW3wSL1rAABpAtTKF-8030.png
http://s4.运维网.com/wyfs02/M00/8B/59/wKioL1hKXffwU_f3AABQDJciAtc293.png
http://s1.运维网.com/wyfs02/M02/8B/5C/wKiom1hKXi2QT9aaAABar_ycb2o785.png
http://s3.运维网.com/wyfs02/M02/8B/59/wKioL1hKXqTRvdNpAACDTknld1Q803.png
http://s4.运维网.com/wyfs02/M00/8B/5C/wKiom1hKXtSgGQ6rAABRIWxhs8w712.png
  




页: [1]
查看完整版本: CentOS6.4 高可用集群之基于heartbeat(crm)和nfs的mysql高可用