DRBD+Corosync+pacemaker+mysql 高可用集群搭建(2)

3)定义一个资源/etc/drbd.d/web.res,内容如下:

resource web {     //web为资源名可以和文件名不一致

 

  on node1.magedu.com {     device    /dev/drbd0;     disk      /dev/sda5;     address   172.16.21.11:7789;     meta-disk internal;   }   on node2.magedu.com {     device    /dev/drbd0;     disk      /dev/sda5;     address   172.16.21.12:7789;     meta-disk internal;   } 

   

     以上的文件在两个节点上必须相同,因此,可以使用scp命令同步到另一个节点中

 

在两个节点上初始化已定义的资源并启动服务:

  1)初始化资源,在node1和node2分别执行:

  #drbdadm create-md web     这里的web对应.res文件中的resource名称

  2)启动服务 在node2和node2分别执行

    #servivce drbd start

  3) 指定一个为Primary节点(在node1上执行)

    #drbdadm -- --overwirte-data-of-peer primary web

  4) drdb-overview  数据同步过程已经开始 需要一段时间 结果会显示为

    0:web  Connected Primary/Secondary UpToDate/UpToDate C r---- 

 

创建文件系统

  #mke2fs 0j /dev/drbd0

  #mount /dev/drbd0 /mydata

[root@node2 MySQL]# drbd-overview 

  0:web  Connected Primary/Secondary UpToDate/UpToDate C r---- /mydata ext3 1.9G 66M 1.7G 4% 

 

测试:

   在node1的/mydata 目录中touch一个文件

   然后 

   #umount /mydata

   #drbdadm secondary web 

   在node2中

   #drbdadm primary web

   #mount /dev/drbd0

   #ls /mydata   即可查看到刚才touch到的文件

 至此DRBD建立成功

 

 

 在此基础上实现mysql数据库的基于DRBD,需要利用Corosync+Pacemaker高可用集群,使得mysql在一个节点出现故障时,立即转移到另一节点

 而当故障节点恢复后又能重新上线提供服务,并且保证了mysql数据库的数据能同步。

 这种方案实现起来较iSCASC 的方式廉价,但却能提供接近99.5%的高可用性  

 

依然利用上面已经建立的DRBD节点中添加Corosync和Pacemaker来提供HA

 一、node1和node2能互相解析对方的主机名称  可临时在hosts中添加

 二、 双节点需要建立互信认证:

  建立双机互信机制:

 

    node1: ssh-keygen -t rsa ssh-copy-id -i .ssh/id_rsa.pub root@172.16.21.22     node2: ssh-keygen -t rsa ssh-copy-id -i .ssh/id_rsa.pub root@172.16.21.21 

 

 三、HA搭建:

   安装:

   cluster-glue-1.0.6-1.6.el5.i386.rpm       

cluster-glue-libs-1.0.6-1.6.el5.i386.rpm  

corosync-1.2.7-1.1.el5.i386.rpm           pacemaker-1.0.11-1.2.el5.i386.rpm

corosynclib-1.2.7-1.1.el5.i386.rpm        pacemaker-libs-1.0.11-1.2.el5.i386.rpm

heartbeat-3.0.3-2.3.el5.i386.rpm          perl-TimeDate-1.16-5.el5.noarch.rpm

heartbeat-libs-3.0.3-2.3.el5.i386.rpm     resource-agents-1.0.4-1.1.el5.i386.rpm

libesmtp-1.0.4-5.el5.i386.rpm

 

yum localinstall --nogpgcheck *.rpm    //使用yum解决依赖关系 安装以上的软件包 ,node1和node2中都要安装

 

 四、 配置样例:corosync.conf:

 

    cd /detc/corosync    cp /etc/corosnc/corosync.conf.example corosync.conf     totem {         version: 2         secauth: on         threads: 0         interface {                 ringnumber: 0                 bindnetaddr: 172.16.0.0                 mcastaddr: 226.94.2.1                 mcastport: 5405         }  logging {         fileline: off         to_stderr: no         to_logfile: yes         to_syslog: yes         logfile: /var/log/cluster/corosync.log         debug: off # Please read the corosync.conf.5 manual page compatibility: whitetank  totem {         version: 2         secauth: on         threads: 0         interface {                 ringnumber: 0                 bindnetaddr: 172.16.0.0                 mcastaddr: 226.94.2.1                 mcastport: 5405         }  logging {         fileline: off         to_stderr: no         to_logfile: yes         to_syslog: yes         logfile: /var/log/cluster/corosync.log         debug: off         timestamp: on         logger_subsys {                 subsys: AMF                 debug: off         }  amf {         mode: disabled service {         ver:  0         name: pacemaker          use_mgmtd: yes aisexec {         user:   root         group:  root 

 

上述配置文件在两个节点中都要一样 

            

#service corosync start

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/cc36f46866dfe8cde63ba7b672c8a559.html