设为首页 收藏本站
查看: 1870|回复: 0

[经验分享] heartbeat 双网卡bond0的配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-21 08:50:40 | 显示全部楼层 |阅读模式
  当然在linux 下面除了heartbeat还有很多,比如redhat的cluster软件等等。下面将简单介绍heartbeat的安装和配置。
  2.安装
  2.1. 准备
  本试验环境共有2个主机,其IP分别为:
  主机名 IP地址
  alssme_probe3 172.18.158.23
  alssme_probe4 172.18.158.24
  如果/etc/hosts中没有配置的话, 则需要先配置/etc/hosts文件
  2.2 创建用户和用户组
  heartbeat需要haclient用户组和hacluster用户。
  两个节点做同样的操作,并保证haclient和hacluster的ID一样。
  [iyunv@alsme_probe3 log]# groupadd haclient
  [iyunv@alsme_probe3 log]# useradd -g haclient hacluster
  2.3. 安装
  可以直接下载rpm包,或者自己下载源码包进行编译,在这里,我采用自己编译源码的方式。安装heartbeat前,需要先安装libnet包。
   [iyunv@alsme_probe3 tmp]# tar zxvfheartbeat-2.1.3.tar.gz
  [iyunv@alsme_probe3 tmp]# rpm -ivhlibnet-1.1.2.1-2.2.el4.rf.x86_64.rpm
  [iyunv@alsme_probe3 tmp]# cd heartbeat-2.1.3
  [iyunv@alsme_probe3 tmp]#./configure
  [iyunv@alsme_probe3 tmp]# make
  [iyunv@alsme_probe3 tmp]# make install
  同样地,在另一个主机上也是这么安装。
  libnet包可以在http://rpmfind.net/linux/rpm2html/search.php这里搜索到。
  ?
  
  3. 配置
  heartbeat有三个配置文件:
  ha.cf
  authkyes
  haresources
  这些文件在每台机器都要保持一致.下面将一一介绍.
  cp /usr/local/share/doc/heartbeat-2.1.3/ha.cf/usr/local/etc/ha.d
  cp /usr/local/share/doc/heartbeat-2.1.3/haresources/usr/local/etc/ha.d
  cp /usr/local/share/doc/heartbeat-2.1.3/authkeys/usr/local/etc/ha.d
  ?3.1 编辑hertbeat主配置文件ha.cf,2个主机上的内容一样。
  以下是需要打开的配置,ha.cf里面有详细说明。
  [iyunv@alsme_probe3 tmp]# vi /usr/local/etc/ha.d/ha.cf
  ## ha的日志文件记录位置。如没有该目录,则需要手动添加
  logfile /var/log/ha-log #File to write other messagesto
  logfacility local0 #这个是设置heartbeat的日志,这里是用的系统日志
  ##设定心跳(监测)时间时间为2秒
  keepalive 2 #多长时间检测一次
  warntime 5 #连续多长时间联系不上后开始警告提示
  deadtime 20 #连续多长时间联系不上后认为对方挂掉了(单位是妙)
  initdead 120 #这里主要是给重启后预留的一段忽略时间段(比如:重启后启动网络等,如果在网络还没有通,keepalive检测肯定通不过,但这时候并不能切换)
  ?#采用bond0的udp广播用来发送心跳信息
  #bcast bond0
  #采用网卡bond0的udp单播来通知心跳,ip应为对方IP,建议采用单播。当一个网段有多台这样cluster话,则一定要采用单播,否则每组cluster都会看到对方的节点,从而报错。
  ucast bond0 172.18.57.154
  ##使用udp端口694 进行心跳监测
  udpport 694
  auto_failback off #恢复正常后是否需要再自动切换回来,一般都设为off。
  ##节点1,必须要与uname -n 指令得到的结果一致。
  node alsme_probe3
  ##节点2
  node alssme_probe4
  ##通过ping 网关来监测心跳是否正常
  ping 172.18.158.254
  hopfudge 1
  deadping 5
  #指定和heartbeat一起启动、关闭的进程#respawn hacluster /usr/local/lib64/heartbeat/ipfail#apiauth ipfailgid=haclient uid=hacluster
  #是否采用v2 style模式,在三节点以上时一定要打开
  #crm on
  从heartbeat的官方文档来看,目前的ping节点还没什么实际用途,只是用于检测节点的连通性,并不作为节点切换的真正依据。在将来的新版本中也许会这么做。
  ?3.2 编辑双机互联验证文件:authkeys
  [iyunv@alsme_probe3 heartbeat-2.1.3]# vi /usr/local/etc/ha.d/authkeys
  auth 1
  1 crc
  [iyunv@alsme_probe3 heartbeat-2.1.3]# chmod 600/usr/local/etc/ha.d/authkeys
  注意authkeys的权限一定要是600.
  ?3.3 编辑集群资源文件:haresources
  [iyunv@alsme_probe3 heartbeat-2.1.3]# vi/usr/local/etc/ha.d/haresources
  alssme_probe3 IPaddr::172.18.158.111/24/bond0 mysql
  如何配置,可以参见haresources,里面也有详细的说明。
  有几个注意事项:
  1).资源组的第一列是我们在ha.cf配置文件中的node之一,而且应该是当前准备作为primary节点的那一个node。
  2).每一行代表一个资源组,如果一行写不下可以用" "换行
  3).资源组启动顺序是从左往右,关闭的顺序是从右往左
  4).脚本的参数通过::来分隔和传递
  5).一个资源组里面不同资源之间以空格分隔
  6).不同的资源组之间没有必然关系
  7).每个资源都是一个角本,可以是在/etc/init.d目录下面的,也可以是/usr/local/etc/ha.d/resource.d目录下面的角本。这些角本必须要支持xxx start;xxx stop;模式。
  8).关于service IP的资源设置格式详见haresources文件。
  9).如果mysql是编译安装的话, 则需要修改/etc/init.d/mysql文件中的basedir和datadir两个参数
  ?3.4 资源角本例子---drbd
  下面是drbd的资源管理角本的例子:
  [iyunv@alsme_probe3 heartbeat-2.1.3]# vi/usr/local/etc/ha.d/resource.d/drbd
  #!/bin/sh
  case "$1" in
  start)
  #声明为drbd的primary节点
  drbdadm primary db
  #挂载文件系统
  mount /dev/drbd0 /data
  #启动相关服务
  service mysql start
  ;;
  stop)
  #上面操作的反向
  service mysql stop
  umount /dev/drbd0 /data
  drbdadm secondary db
  ;;esac
  exit 0
  我们测试的mysql是安装mysql时自带的,在/etc/init.d目录下面,它可以实现mysql的启动和关闭。
  如果我们采用的是heartbeat+双master模式的话,则不需要加上mysql资源组。
  如果我们采用的是heartbeat+master/slave模式的话,则需要重新mysql角本,在start时将slave变成master。在stop时将master变成slave。
  建议还是采用heartbeat+双master模式,这样将数据丢失降到最低。
  ?4. 测试
  测试切换不外乎以下几种:1).手工调用heartbeat的节点切换脚本
  2).拔掉网线,测试在primary节点的网络断开后的切换情况,通过测试,在拔掉网线后,当主节点发现无法和standby节点无法通信后,会在log中记录warn信息,如果延续时间达到在ha.cf中设定的时长后,会开始释放资源,standby节点发现无法和主节点通信一段时间(ha.cf设定)后,开始尝试启动资源并将自己active成primary节点。切换过程除ha.cf中设定的时长之外的时间段同样非常短。这里容易出现custer脑分裂的问题。如果采用双master的话,就不存在这个问题。
  3). shutdown primary主机,测试是否能够正常切换。4). 主节点机器掉电,是否能够正常切换。
  第一种和第三种测试方法一定要测一下。
  5.管理
  启动和关闭heartbeat的方法:
  /etc/init.d/hearbeat start或serviceheartbeat start
  
  /etc/init.d/hearbeat stop或serviceheartbeat stop
  ?手工切换:
  [iyunv@alsme_probe3 rc.d]#/usr/local/share/heartbeat/hb_standby
  2008/07/19_20:01:21 Going standby [all].
  [iyunv@alsme_probe3 rc.d]# service heartbeat status
  heartbeat OK [pid 13763 et al] is running on alsme_probe3[alsme_probe3]...
  手工接管
  [iyunv@alsme_probe3 rc.d]#/usr/local/share/heartbeat/hb_takeover
  查看heartbeat状态
  [iyunv@alsme_probe3 rc.d]# service heartbeat status
  heartbeat OK [pid 13763 et al] is running onalsme_probe3 [alsme_probe3]...
  ?6.其他
  实际测试结果表明:如果采用myisam存储引擎,则在primary节点当掉的时候,总会丢失数据;而采用innodb存储引擎时,如果 primary节点本身没有程序往本机写数据的话,那么基本上不会发生数据丢失;而如果primary节点本身有程序在写数据,则在当机瞬间,本机上的程序可能还会写入部分数据,而如果是其他主机程序连接过来的话,基本上不会发生丢数据的情况。
  建议:在drbd+hb的环境中,最好是采用innodb存储引擎,并且设置innodb_flush_log_at_trx_commit = 1,这使得几乎每个提交的事务都能记录在 ib_logfile* 中,在 secondary 节点上能得到恢复,减小损失。
  ?heartbeat有两种模式,默认的模式只支持两个节点。如果cluster里面有2个以上节点的话,则需要采用cib模式,即v2 style:
  1).把三个节点都加到ha.cf里,然后在ha.cf里加上"crm 1"
  2).然后用/usr/local/lib64/heartbeat/haresources2cib.py把原来的/usr/local/etc/ha.d/haresources 转换成 /usr/local/var/lib/heartbeat/crm/cib.xml.
  "/usr/local/lib64/heartbeat/haresources2cib.pyharesources /usr/local/var/lib/heartbeat/crm/cib.xml"
  3).把haresources清空
  ?另外如果只起一个节点的话,则service IP地址需要2分钟才能生效。
  

运维网声明 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-141699-1-1.html 上篇帖子: heartbeat和Pacemaker配置 下篇帖子: mysql的pt-heartbeat监控备库延迟记录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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