MySQL+Heartbeat+DRBD构建高可用MySQL环境(3)

MySQL+Heartbeat+DRBD构建高可用环境

MySQL+Heartbeat+DRBD构建高可用MySQL环境

MySQL+Heartbeat+DRBD构建高可用MySQL

1 Heartbeat主配置文件/etc/ha.d/ha.cf:

# cat /etc/ha.d/ha.cf 

logfacility local0       //定义日志,使用syslog; 

keepalive 2           //定义心跳频率; 

deadtime 15          //如果其他节点15S内没有回应,则确认其死     亡;       

warntime 5           //确认一个节点连接不上5S之后将警告信息写入日志;   

initdead 120          //在其他节点死掉之后,系统启动前需要等待的时间,一般为deadtime的两倍; 

udpport 694          // 用来通信的端口; 

bcast eth0            // 在eth0上进行心跳测试 

watchdog /dev/watchdog  //可选项 

auto_failback off        // 设置当死亡节点恢复正常之后是否重新启用;容易发生数据不一致的情况,必须项,不然后面hb_standby命令无法使用; 

node drbd-M 

node drbd-S 

respawn hacluster /usr/lib64/heartbeat/ipfail 

2 设置两个节点之间的通信密钥:

#cat authkeys 

auth 3 

3 md5 Hello! 

3 定义资源:

# cat haresources 

drbd-M drbddisk Filesystem::/dev/drbd0::/data::ext3 mysqld 192.168.43.20 

drbd-M    //主节点;

drbddisk  Filesystem::/dev/drbd0::/data::ext3 mysqld  //定义Heartbeat需要管理的资源,并且每一部分在/etc/ha.d/haresources.d下有对应的脚本;如果主节点失效,备节点将通过执行这些脚本来启用资源;如果脚本有参数可以使用“::”来进行分割;

drbddisk  管理drbd资源的脚本;

filesystem 管理文件系统资源的脚本,后面参数定义drbd设备,挂载点,文件系统类型

mysqld  管理mysql的脚本,需要从/etc/init.d/mysqld 拷贝

192.168.43.20  //VIP,用来连接MySQL的IP,当Heartbeat启用之后会自动分配;

图 Resource.d 下的内容

在主从节点上启动Heartbeat

# /etc/init.d/heartbeat start 

查看下资源启动情况:

先看下主节点drbd-M的日志:

wps_clip_image-26722

再看下drbd-S的日志,已经处在监听等待状态:

wps_clip_image-6070

虚拟IP已经启动:

Drbd和MySQL的端口已经在监听:

主节点/data目录下:

我们切换到drbd-S来试一下,看资源能不能切换过来:

使用/usr/lib64/heartbeat/hb_standby命令可以来模拟主节点死掉的情况。

2011/07/18_20:49:53 Going standby [all]. 

wps_clip_image-5686

从服务器drbd-S日志:

wps_clip_image-28906

再看下资源是否已经抢占过来:

/data目录下的文件:

PS:Heartbeat启动之前必须保证drbd服务已经启动,并且主服务器已经设置为primary并成功挂载/dev/drbd0.不然主服务器Heartbeat在启动的时候会提示找不到/dev/drbd0设备,并造成其他的资源也无法启动的情况。

PS:心跳探测和数据复制不建议在同一个网卡上进行,本实验只是为了方便采取了这样的方式。

dopd进程:当主从节点之间的失去连接,那么主从节点之间的数据就无法同步,就会发生从节点的数据过期的情况(数据不一致的情况)。如果此时主服务器发生宕机的情况,那么dopd进程会阻止从服务器提升为主服务器。具体实现:

1 修改/etc/ha.d/ha.cf 文件:

respawn  hacluster /usr/lib64/heartbeat/dopd 

apiauth  dopd gid=haclient uid=hacluster 

2 修改/etc/drbd.conf 文件:

common { 

handlers { 

         outdate-peer “/usr/lib64/heartbeat/drbd-peer-outdater”; 

      } 

resource db { 

disk { 

Fencing resource-only; 

     } 

   } 

3 重新加载配置文件:

# /etc/init.d/heartbeat reload 

#/drbdadm adjust all 

MySQL+Heartbeat+DRBD方案可以单独使用,也可以在构建MySQL主从架构时实现主服务器的高可用,在此不再详细实现,有兴趣的朋友可以尝试一下(完)!

参考文章:MySQL and DRBD Guide

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

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