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

[经验分享] heartbeat介绍与基于heartbeat+lvs

[复制链接]

尚未签到

发表于 2019-1-5 07:03:40 | 显示全部楼层 |阅读模式
heartbeat工作原理

  通过修改Heartbeat的配置文件,可以制定那一台Heartbeat服务器作为主服务器,则另一台将自动成为热备服务器。然后在热备服务器上配置Heartbeat守护程序来监听来自主服务器的心跳消息。如果热备服务器在指定时间内为监听到来自主服务器的心跳,就会启动故障转义程序,并取得主服务器上的相关资源服务的所有权,接替主服务器继续不间断的提供服务,从而达到资源以及服务高可用的目的。
   以上的描述heartbeat的主备模式,heartbeat还支持主主模式,即两台服务器互为主备,这是他们之间还会互相发送报文来告诉对方自己的当前的状态,如果在指定的时间内未收到对方发送的心跳报文,那么,一方就会认为对方失效或者是已经宕机了,这时每个运行正常的主机就会启动自身的资源接管模块来接管运行在对方主机上的资源或者是服务,继续为用户提供服务。
准备以下几台虚拟机
serverX
  
ip:172.25.39.X
domain:serverX.example.com
Heartbeat配置
  server1,2
  安装以下rpm包
  heartbeat-3.0.4-2.el6.x86_64.rpm        
  heartbeat-libs-3.0.4-2.el6.x86_64.rpm
  heartbeat-devel-3.0.4-2.el6.x86_64.rpm  
  ldirectord-3.9.5-3.1.x86_64.rpm
  rpm -q heartbeat -d#查看有关文件
  其中Ha.cfharesourcesauthkeys为配置文件,要在/etc/ha.d/中才会生效
  cp /usr/share/doc/heartbeat-3.0.4/{Ha.cf,haresource,authkeys} /etc/ha.d/
  配置 ha.cf


  两个server交换心跳的端口,同一网段内,端口不要重复
  

  
  通过广播通知心跳
  


  注意配置节点时主节点在前 网络测试不要选对方

  配置haresources

  配置authkeys
  chmod 600 authkeys#密钥认证,只有所有人可以操作
  
  /etc/init.d/heartbeat start
  tail -f /var/log/ha-log#查看是否报错
  ip addr show#vip在主节点上
  

drbd 分布式复制块设备
DRBD(Distributed Replicated Block Device),DRBD 号称是 “网络 RAID”,开源软件,由LINBIT 公司开发。DRBD实际上是一种块设备的实现,主要被用于Linux平台下的高可用(HA)方案之中。他有内核模块和相关程序而组成,通过网络通信来同步镜像整个设备,有点类似于一个网络RAID-1的功能。也就是说当你将数据写入本地的DRBD设备上的文件系统时,数据会同时被发送到网络中的另外一台主机之上,并以完全相同的形式记录在文件系统中。本地节点与远程节点的数据可以保证实时的同步,并保证IO的一致性。所以当本地节点的主机出现故障时,远程节点的主机上还会保留有一份完全相同的数据,可以继续使用,以达到高可用的目的
  
  主机之间有解析,并配置时间同步
  
  Server1,2
  drbd-8.4.2.tar.gz
  yum install -y rpm-build
  rpmbuild -tb drbd-8.4.2.tar.gz            #失败,缺少spec file
  tar zxf drbd-8.4.2.tar.gz
  cd drbd-8.4.2
  ./configure --enable-spec --with-km
  rpmbuild -bb drbd.spec            #失败,看报错
  cp /file/drbd-8.4.2.tar.gz /root/rpmbuild/SOURCES/
  rpmbuild -bb drbd.spec
  yum install -y kernel-devel
  rpmbuild -bb drbd-km.spec
  在/root/rpmbuild/RPMS/x86_64/中编译成rpm包
  rpm -ivh *
  cat /etc/drbd.conf            #文件会提示include ”drbd.d/*.res”;
  cd /etc/drbd.d/
  vim example.res
  

  resource example {
  meta-disk internal;
  device /dev/drbd1;
  syncer {
  verify-alg sha1;
  }
  #net {
  #allow-two-primaries;
  #}
  on server1.example.com {
  disk /dev/vda;
  address 172.25.39.1:7789;
  }
  on server2.example.com {
  disk /dev/vda;
  address 172.25.39.2:7789;
  }
  }
  
  此配置只允许primary挂载
  
  drbdadm create-md example            #初始化
  /etc/init.d/drbd start            #两边需同步开启
  cat /proc/drbd            #查看状态,正确开启时cs:Conneced
  drbdadm primary example --force            #两块硬盘开始同步,等待同步完成进行下一操作,同步完后的设备为配置文件中设定的/dev/drbd1
  cat /proc/drbd            #查看状态,正确同步时ds:UpToDate
  相关指令 drbdadm primary/secondary exampledrbd-overviewdrbdadm down exampledrbdadm up example
  

  drbd+heartbeat 例,作为httpd的存储
  vim /etc/ha.d/haresources
  
  
  /etc/init.d/heartbeat start
  

  lvs  
  
  server1
  ip addr add 172.25.39.100/24 dev eth0
  ipvsadm -A -t 172.25.39.100:80 -s rr            #rr 工作状态轮询
  ipvsadm -a -t 172.25.39.100:80 -r 172.25.39.4:80 -g
  ipvsadm -a -t 172.25.39.100:80 -r 172.25.39.5:80 -g
  /etc/init.d/ipvsadm save
  cat /etc/sysconfig/ipvsadm            #查看配置
  
  server4,5
  ip addr add 172.25.39.100/32 dev eth0
  yum install -y arptables_jf
  arptables -nL
  arptables -A IN -d 172.25.39.100 -j DROP
  arptables -A OUT -s 172.25.39.100 -j mangle --mangle-ip-s 172.25.39.4
  /etc/init.d/arptables_jf save
  vim /var/www/html/index.html
  在物理机中
  arp -an | grep 172.25.39.100            #正确结果,只会绑定server1的MAC
  arp -d 172.25.39.100            #如有错误操作,需删除记录,才会重新绑定
  curl 172.25.39.100            #会轮流访问server4,server5,但当一个server的httpd停止后,仍会轮流访问(没有资源检测)
  

  
heartbeat+lvs+ldirectord
  
  sever1,2
  先将/etc/init.d/ipvsadm stop
  cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
  cd /etc/ha.d/
  vim ldirectord.cf
  

  
  /etc/init.d/ldirectord start
  Ipvsadm -l
  

  
  /etc/init.d/ldirectord stop
  Ip addr del 172.25.39.100/24 dev eth0
  vim /etc/ha.d/haresources
  

  
  /etc/init.d/heartbeat start            #ldirectord httpd 开启
  ip addr show            #vip在主节点上
  
  rs都挂掉,本机补上;primary 挂掉,secondary补上。

  

  




运维网声明 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-659437-1-1.html 上篇帖子: Heartbeat群集的搭建与LVS的结合 下篇帖子: heartbeat v2+ldirectord+LVS集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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