231312111 发表于 2016-12-12 11:35:22

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 &
         
         
         说明:hb_gui是heartbeat为了方便管理集群资源而提供的一个图形用户接口

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

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




          查看 集群IP 即mysql_ip 是否位于(nod-1这个节点的eth0)的别名上(eth0:0)
         



          在nfs.magedu.com上执行以下命令
          模拟从远程nfs.magedu.com(192.168.3.9)访问 集群IP (192.168.3.10)
      



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

      
      
       在nod-1.magedu.com上查看nfs共享挂载的情况
            



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


      
      

         从上图看当nod-1这个设定为"备用节点"后、集群资源已经转移到nod-2这个节点上。那么是否真的

         成功了呢(验证一下)

         
      
      





准备工作:

      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/data        192.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包:
      
      安装顺序

         
      说明:
      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



       #node        kathy
       node        nod-1.magedu.com

       node        nod-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.iyunv.com/blog/1181720
      crm_mon:crm_mon 命令允许您监视群集的状态和配置。其输出包括节点数、uname、uuid、状态
      、群集中配置的资源及其各自的当前状态。crm_mon 的输出可以显示在控制台上或打印到 HTML
      文件。当具有不包含状态部分的群集配置文件时,crm_mon 会按文件中所指定的方式创建节点
      和资源概览。
   
   

   
   
   
   
   
   
   

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