设为首页 收藏本站
查看: 1867|回复: 2

[经验分享] HeartBeat 实现高可用mysql集群

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-9-12 08:50:41 | 显示全部楼层 |阅读模式
一:目标
   创建具备2台节点的集群
   使用HeartBeat检测集群状态,
   当集群种1台节点出现故障时,在另一台节点启动mysqld服务
   两台节点共用NFS数据库
   可以使用第3个节点提供nfs服务(这里偷个懒,用其中一台节点提供NFS服务)
二:准备
   VirtualBox
   两台具备centos 6.4 x_86.64位系统的虚拟节点
   每台节点具备2个ethernet网卡
   heartbeat-2.1.4-12.el6.x86_64.rpm
   heartbeat-pils-2.1.4-12.el6.x86_64.rpm
   libnet-1.1.5-1.el6.x86_64.rpm(yum源里没有,需要另行下载)

三:安装
   节点1:



# mkdir build
# cd build/
# rpm -ivh libnet--version.rpm(必须第一步)
(有出错信息的话,自己满足依赖
# rpm -ivh heartbeat-pils(必须第二步)
# rpm -ivh heartbeat*.rpm
# yum install mysql-server
# yum install nfs-utils
    节点2:
       跟节点1大体相同,不需要安装nfs-utils
四:规划
   node1
        eth0:172.16.100.1/24
        eth1:1.1.1.1/24(vbox内网)
   node2
        eth0:172.16.100.2/24
        eth1:1.1.1.2/24(vbox内网)
   虚拟IP
        VIP:172.16.100.80/24
   mysql数据库目录
       /share/data
   NFS共享目录
       /mydata
五:原理
   1.node1提供NFS服务,将自身/mydata目录共享出去,
   2.node1和node2均能自动挂载 node1:/mydata至/share目录
   3.Mysql数据库目录 datadir=/share/data
   4.HeartBeat检测节点状态,node1挂掉后,立即将VIP转移至node2,并启动node2的mysqld服务
六:实施
   1.NFS部分
   node1


# vim /etc/exports
#添加如下信息
/mydata 172.16.100.*/24(rw,sync,no_root_squash)
no_root_squash参数很重要,避免nfs目录挂载的权限问题
# service  nfs start
# exportfs -avr(若nfs有改变,可用此命令更新共享目录,免去重启nfs服务)


   node2


#showmount -e 172.16.100.1
确认有如下输出
Export list for 172.16.100.1
/mydata 172.16.100.*/24
   挂载测试,然后卸载,确保nfs正常使用

   2.Mysql部分
   node1




# mkdir -pv /mydata/data
# chown -R mysql.mysql /mydata
# vim /etc/my.cnf添加datadir=/mydata/data参数
# service mysqld start(自行排错)
# mysql_secure_installation(初始化,设定root密码,注意不要拒绝root远程登录,以后测试要用)
# mysql -u root -p 数据库初始化完成

   node2
   因node1已经完成了初始化,所以node2不需要做任何事,将node1的/mydata挂载到/share即可,
注意文件系统权限,然后直接启动mysqld即可,测试完成后退出

   3.HeartBeat部分

   heartbeat是基于“节点名称”来工作的,所以要给节点起名字,不建议使用DNS统一分配,因为一旦DNS跪了,整个集群都废了,所以采用/etc/hosts文件的方式来命名
   node1



# vim /etc/hosts
172.16.100.1 node1
172.16.100.2 node2


# hostname(查看当前主机名)
# hostname node1(设置为node1)
node2(同样操作)
   将node1的/etc/hosts 复制给node2,
# scp /etc/hosts root@node2:/etc/hosts
   发现每次scp都需要输密码,索性做密匙免登陆吧


# ssh-keygen -t rsa
# ssh-copy-id node2
node2同样操作

   下面来设置HeartBeat
   node1


# cd /usr/share/doc/heartbeat-2.1.4/
# cp authkey haresource ha.cf /etc/ha.d/
# openssl rand -hex 8 >> /etc/ha.d/authkey(生成16位md5值)
# cd /etc/ha.d/
# vim authkey
添加如下数据
auth 3
3 md5 d6e92e4ecbbede21
# chmod 600 authkey(确保权限)
#vim haresource
添加如下数据
node1 172.16.100.80/24/eth0/172.16.100.255 Filesystem::172.16.100.1:/mydata::/share::nfs mysqld
#vim ha.cf
bcast eth1
udpport 694
keepalive 2
logfile /var/log/ha-log
auto_failback on
node node1
node node2  (这里定义cluster里面有哪几个节点)
   设置好后 service heartbeat start
   然后对 node2做同样设置
   4.测试
         # mysql -u root -h '172.16.100.80' -p

       默认node1是主节点,应该连到172.16.100.1上了
       在node1上

       # cd /usr/lib64/heartbeat/
       # ./hb_standby
       即可观察到资源转换

       在node2上
       # mount (查看nfs是否挂载)
       # service mysqld status (查看mysql工作情况)

       没错的话,说明集群正常工作了
结语:
       除了heartbeat安装挺麻烦的,其他还挺简单的


运维网声明 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-9192-1-1.html 上篇帖子: heartbeat实现基于mysql服务自动切换 下篇帖子: centos6.4安装heartbeat3.0版本安装---超详细 mysql

尚未签到

发表于 2013-11-15 11:36:49 | 显示全部楼层
生我之前谁是我,生我之后我是谁?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2014-1-1 21:31:40 | 显示全部楼层
我的世界总是一个人,寂寞让我变的坚强╮。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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