renshanshan 发表于 2019-1-7 11:59:45

linux之heartbeat高可用的简单配置

  Heartbeat
  系统环境:
  防火墙关闭,
  seliux状态为disabled
  各服务器之间组做好地址解析
  Node3:172.25.44.3
  Node4:172.25.44.4
  物理真机:172.25.44.250
  VIP:172.25.44.100
  
  以下内容node3和nod4上都进行配置
  
  安装软件
  heartbeat-libs-3.0.4-2.el6.x86_64.rpm
  heartbeat-3.0.4-2.el6.x86_64.rpm      
  ldirectord-3.9.5-3.1.x86_64.rpm
  heartbeat-devel-3.0.4-2.el6.x86_64.rpm
  rpm -q heartbeat -d             ##查看软件生成的配置文件
  
  cd /usr/share/doc/heartbeat/
  cp ha.cf haresources authkeys /etc/ha.d
  1).
  vim /etc/ha.d/ha.cf      ####需要添加或更改的内容,根据具体情况而设定,参数不固定
  29 logfile /var/log/ha-log
  48 keepalive 2
  56 deadtime 30
  61 warntime 10
  71 initdead 60
  76 udpport 738
  91 bcast   eth0
  157 auto_failback on
  211 node    server3.example.com
  212 node    server4.example.com
  220 ping 172.25.44.250#已存在的ip地址,非节点地址,
  253 respawn hacluster /usr/lib64/heartbeat/ipfail
  259 apiauth ipfail gid=haclient uid=hacluster
  #########################################
  主配置文件(/etc/ha.d/ha.cf):
  debugfile /var/log/ha-debug
  调试日志文件文件,取默认值
  logfile /var/log/ha-log
  系统运行日志文件,取默认值
  logfacility local0
  日志等级,取默认值
  keepalive 2
  心跳频率,自己设定。1:表示 1 秒;200ms:表示 200 毫秒
  deadtime 30
  节点死亡时间阀值,就是从节点在过了 30 后还没有收到心跳就认为主节点死亡,自己设定
  warntime 10
  发出警告时间,自己设定
  initdead 120
  守护进程首次启动后应该等待 120 秒后再启动主服务器上的资源
  udpport 694
  心跳信息传递的 udp 端口,使用端口 694 进行 bcast 和 ucast 通信,取默认值
  #baud 19200
  串口波特率,与 serial 一起使用。
  #serial /dev/ttyS0
  采用串口来传递心跳信息。
  bcast eth1
  采用 udp 广播播来通知心跳
  #ucast eth1 10.0.0.3采用网卡 eth1 的 udp 单播来通知心跳,eth1 的 IP
  #mcast eth0 225.0.0.1 694 1 0
  采用 udp 多播播来通知心跳
  auto_failback on
  当主节点恢复后,是否自动切回
  #stonith baytech /etc/ha.d/conf/stonith.baytech
  stonith 用来保证共享存储环境中的数据完整性
  watchdog /dev/watchdog
  watchdog 能让系统在出现故障 1 分钟后重启该机器,这个功能可以帮助服务器在确实停止心
  跳后能够重新恢复心跳。 如果使用该特性,修改系统中/etc/modprobe.conf, 添加如下行
  options softdog nowayout=0
  这样在系统启动的时候,在内核中装入"softdog"内核模块,用来生成实际的设备文件
  /dev/watchdog
  node station3.example.com
  主节点名称,与 uname –n 保持一致。排在第一的默认为主节点,所以不要搞措顺序
  node station4.example.com
  副节点名称,与 uname –n 保持一致
  ping 192.168.0.254
  respawn hacluster /usr/lib/heartbeat/ipfail
  apiauth ipfail gid=haclient uid=hacluster
  默认 heartbeat 并不检测除本身之外的其他任何服务,也不检测网络状况。
  所以当网络中断时,并不会进行 Load Balancer 和 Backup 之间的切换。
  可以通过 ipfail 插件,设置'ping nodes'来解决这一问题,但不能使用一个集群节点作为ping 的节点。
  ###########################
  2).
  vim /etc/ha.d/haresources
http://s1.运维网.com/wyfs02/M01/89/35/wKioL1gMpfXizsB0AABfGYhk49o486.png
  server3.example.com IPaddr::172.25.44.100/24/eth0 httpd
  虚拟ip是172.25.44.100,启动服务是httpd
  ########################
  资源文件(/etc/ha.d/haresources):
  station3.example.com IPaddr::192.168.0.200/24/eth0 ldirectord httpd
  这个文件中定义了实现集群所需的各个软件的启动脚本,这些脚本必须放在/etc/init.d 或者/etc/ha.d/resource.d 目录里 IPaddr 的作用是启动 Virutal IP,它是 HeartBeart 自带的一个脚本;ldirectord 的作用是启动 ldirectord 监控程序,它会使 ldirectord.cf 中定义的 lvs 生效,
并监听其健康状;httpd 是 apache 服务的启动脚本.
  3).
  vim /etc/ha.d/authkeys
http://s2.运维网.com/wyfs02/M02/89/37/wKiom1gMpgvBSSgKAAAeL0ODneI144.png
  chmod 600 /etc/ha.d/authkeys
  配置完成后将文件传送到node4
  #scp ha.cf haresources authkeys 172.25.44.4:/etc/ha.d/
  #########认证文件,此文件权限必须是600#######
  
  测试:
  1..编写测试文件(在node3和node4上编写不同内容方便测试)
   vim /var/www/html/index.html
  2.# /etc/init.d/heartbeat start###l两边都开启hearbeat服务
  Starting High-Availability services: INFO:Resource is stopped
  Done.
  #arp -an | grep 172.25.44.100##查看vip在哪个节点上运行(在物理真机上执行此命令)
  在主节点上查看vip
  #ip addr show
  3.浏览器访问vip:172.25.44.100,查看网页内容
  4.Node3上手动关闭heartbeat服务,查看vip是否跳转到node4上,同时httpd在node4上开启,访问172.25.44.100,若内容与节点node4上测试文件内容一致,测试成功。



页: [1]
查看完整版本: linux之heartbeat高可用的简单配置