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

[经验分享] 开源高可用性HA之Heartbeat服务

[复制链接]

尚未签到

发表于 2019-1-7 12:03:06 | 显示全部楼层 |阅读模式
开源高可用性HAHeartbeat服务

  开源Heartbeat服务的安装:
  准备材料:
  heartbeat-libs-3.0.4-2.el6.x86_64.rpm   ldirectord-3.9.5-3.1.x86_64.rpm
  heartbeat-3.0.4-2.el6.x86_64.rpm      heartbeat-devel-3.0.4-2.el6.x86_64.rpm
  
  工作机制:
     Heartbeat最核心的两部分就是:心跳检测和资源监管。心跳检测一般是通过以太网交叉线来连接集群中的节点,作为心跳监控,其他还有串口线也可以用来做心跳监控,心跳监控通过集群主机之间相互发送报文来告诉对方自己运行的状态,如果在指定的时间内未收到对方发送报文,那么就认为对方失效,这时Heartbeat就启动资源接管模块将对方主机上运行的服务资源接管过来,从而保证服务运行的可靠性。
  

  步骤:
  #yum install -y mysql-server  #server50  server51上均安装mysql服务,后面双机集群就在上面运行此服务.
  #/etc/init.d/mysqld   start   #初始化数库据服务;
  #/etc/init.d/mysqld  stop   
  #yum install -y      heartbeat-libs-3.0.4-2.el6.x86_64.rpm   heartbeat-3.0.4-2.el6.x86_64.rpm  heartbeat-3.0.4-2.el6.x86_64.rpm     ####server50  server51上均安装heartbeat服务.
  #cd   /etc/ha.d/
  #cp  authkeys  ha.cf  haresources /etc/ha.d/
  # vim ha.cf
29 logfile /var/log/ha-log    #指明heartbeat的日志存放位置
34 logfacility     local0    #如果未定义上述的日志文件,那么日志信息将送往local0(对应的/var/log/messages里面)
48 keepalive     2   #发送报文的间隔,默认为2s
56 deadtime     30  #指定若备用节点唉30s内没有收到主节点的心跳信号,则立即接管主节点的服务资源。
61 warntime  10     #指定心跳的延时时间为10s,当10s内备份节点不能收到主机诶到哪的心跳就会往日志中写入一个警告日志,当此时不会切换服务。
71 initdead  60   #在某些系统上,系统启动或重启之后需要经过一段时间才能正常工作,该选项用于解决这种问题。
76 udpport   694    #设置广播、单播通信使用的端口号
80 baud    19200  #设置串行通信的波特率
91 bcast   eth0  #单播 
157 auto_failback on  #用来定义主节点回复后,是否回切
211 node   server50.example.com  #定义为主节点
212 node   server51.example.com  #定义为辅节点
220 ping 172.25.45.250    #ping真机的网关,能ping通,代表主节点没坏。
253 respawn hacluster/usr/lib64/heartbeat/ipfail  #ipfail 用于检测和处理网络故障,需要配合pingping_group来配合。
259 apiauth ipfail gid=haclient uid=hacluster           #指定对客户端api的访问控制,这里指定了有权限访问的/ipfail的用户和用户组。
  注意:我在配置时,忘了更改253行的lib64,因为我的电脑是64位的,所以一直报错,错误提示为:”ERROR:Client child command [/usr/lib/heartbeat/ipfail] is not executable”ipfail这个文件是不可执行的,因为我64位系统不能执行32位的文件,,记住这个错误哈!
  #vimharesources
150  server50.example.comIPaddr::172.25.45.100/24/eth0  mysqld
  #vim authkeys
23 auth 1    #密码为明文
24 1 crc
  #chmod 600  authkeys   记住:一定要更改认证文件的权限,否则heartbeat服务无法起来。
  #scp ha.cf haresources authkeys root@172.25.45.51:/etc/ha.d/
  #/etc/init.d/heartbeat start     #server50上开启heartbeat服务;
  # /etc/init.d/heartbeat start     #server51上开启heartbeat服务;
  #tail -f /var/log/messages  可以查看相关启动日志;
  共享远程存储,使得heartbeat+远程存储+mysql服务结合起来;
  首先开一个虚拟机提供远程存储,将存储快共享给指定ip的主机;
  Server3: #yum install -y scsi-target-utils.x86_64
  #vim /etc/tgt/targets.conf
38
39    backing-store /dev/vdc
40    initiator-address 172.25.45.50
41    initiator-address 172.25.45.51
42
  #/etc/init.d/tgtd restart
  
  配置双机集群:server50   server51
  #yum install -yiscsi-initiator-utils.x86_64
  #iscsiadm -t st -mdiscovery -p 172.25.45.22
  #iscsiadm -m node -l
  #fdisk /dev/sda  #
  #mkfs.ext4 /dev/sda1
  #mount /dev/sda1 /mnt
  #cp -rp /var/lib/mysql/*  /mnt
  #chown mysql.mysql  /mnt
  #umount /mnt
  #vim /etc/ha.d/haresources
150 server50.example.com      IPaddr::172.25.45.100/24/eth0Filesystem::/dev/sda1::/var/lib/mysql::ext4  mysqld
  #/etc/init.d/heartbeat stop
  # /etc/init.d/heartbeat start
  注意:标红色部分均需要在集群的两台主机上进行操作,,黑色部分之用在其中一台主机(server50)进行操作就好了,,强调一点,就是server50做完分区过后,server51一定要同步分区表:partprobe!
  
  验证:server50df查看挂在情况,可以看到远程存储块挂载在/var/lib/mysql,可以直接打开mysql,还可以命令ip addrshow可以查看虚拟ip地址在哪台主机上,就说明服务运行在哪台主机.
  
  
  作磁盘阵列:使两个虚拟机都分4G虚拟硬盘;相当于做一个RAID1阵列,数据块同步,使得挂载时,都能看到另外一个虚拟机的操作,刚好也符合heartbeat的工作机制;
  下载好:drbd-8.4.3.tar.gz
  步骤:
  #tar zxf drbd-8.4.3.tar.gz
  #yum install -y gcc
  #yum install -y flex
  #./configure --with-km --enable-spec
  #cd drbd-8.4.3
  #yum install -y kernel-devel
  # cp drbd-8.4.3.tar.gz /root/rpmbuild/SOURCES/
  #rpmbuild -bb drbd.spec  #将源码.spec文件编译成二进制文件(-bb)
  # rpmbuild drbd-km.spec  #同上
  #cd /root/rpmbuild/RPMS/x86_64/
  #rpm -ivh *   #安装里面所有rpm包
  #vim /etc/drbd.d/example.res
  #scp example.res root@172.25.45.50:/etc/drbd.d/
  #drbdadm create-md  sqldata      
  #/etc/init.d/drbd start
  #cat /proc/drbd
  #drbdadm primery sqldata --force
  # mkfs.ext4 /dev/drbd1
  #mount /dev/drbd1  /mnt
  #cp -rp /var/lib/mysql/*  /mnt
  #chown mysql.mysql /mnt
  #umount /mnt
  #drbdadm secondary sqldata
  #vim /etc/ha.d/haresources
       150   server50.example.com IPaddr::172.25.45.100/24/eth0drbddisk::sqldata Filesystem::/dev/drbd1::/var/lib/mysql   ::ext4  mysqld
  #scp -r/etc/ha.d/haresources  root@172.25.45.50:/etc/dha.d/
  #/etc/init.d/heartbeat start
  
  Server51主机:
  #cd /root/
  #rpm -ivh drbd-*
  #rbdadm create-md sqldata
  # /etc/init.d/drbd start
  #cat /proc/drbd
  #/etc/init.d/heartbeat start
  
  ##df查看/dev/drbd1 自动挂载在/var/lib/mysql上面,且能够打开mysql
  





运维网声明 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-660333-1-1.html 上篇帖子: heartbeat安装配置及httpd高可用简单示例 下篇帖子: Heartbeat 的配置,Linux高可用性集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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