一、基本了解

1、Hearbeat和keepalived区别
Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP);
Heartbeat是基于主机或网络的服务的高可用方式;
keepalived的目的是模拟路由器的双机
heartbeat的目的是用户service的双机
lvs的高可用建议用keepavlived
业务的高可用用heartbeat
heartbeat有主备模式,双主模式

2、heartbeat 主要配置文件
ha.cf           参数配置文件
authkey        认证文件
3haresource     资源配置文件,如配置ip资源及脚本程序

3、拓展:一个网卡接口配置两个ip

[root@slave ~]# cd /etc/sysconfig/network-scripts/

[root@slave network-scripts]# vim ifcfg-ens33:0

DEVICE=ens33:0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.40.222
NETMASK=255.255.255.0
GATEWAY=192.168.40.1

二、源码安装

1、搭建环境

#hostnamectl set-hostname master (132) ------>      192.168.40.221 (心跳线)

#hostnamectl set-hostname slave (211)    ------->     192.168.40.220  (心跳线)

vip :192.168.40.222 (后续的操作,暂时列出来)

[root@master ~]# vim /etc/hosts

192.168.40.132 master  
192.168.40.211 slave

关闭防火墙、selinux

yum安装nginx

2、源码安装(两台机子一样)

#yum install gcc gcc-c++ autoconf automake libtool glib2-devel libxml2-devel bzip2 bzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel asciidoc

rz 上传源码包

安装glue

#tar xf 0a7add1d9996.tar.bz2

#cd Reusable-Cluster-Components-glue--0a7add1d9996/

./autogen.sh

./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'

make && make install

echo $?

安装Resource Agents

tar xf v3.9.6.tar.gz

cd resource-agents-3.9.6/

./autogen.sh

./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'

make && make install

echo $?

cd ..

安装HeartBeat

#tar xf 958e11be8686.tar.bz2

cd Heartbeat-3-0-958e11be8686/

./bootstrap

export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"

./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'

make && make install

echo $?

配置网卡支持插件文件

#mkdir -pv /usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/

#cp /usr/lib/ocf/lib/heartbeat/ocf-* /usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/

注意:一般启动时会报错因为 ping和ucast这些配置都需要插件支持 需要将lib64下面的插件软连接到lib目录 才不会抛出异常

#ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/RAExec/* /usr/local/heartbeat/lib/heartbeat/plugins/RAExec/

#ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/* /usr/local/heartbeat/lib/heartbeat/plugins/

拷贝三个模版配置文件到 /usr/local/heartbeat/etc/ha.d 目录下

#cp /root/Heartbeat-3-0-958e11be8686/doc/{ha.cf,haresources,authkeys} /usr/local/heartbeat/etc/ha.d/

三、heartbeat配置文件

#vim /usr/local/heartbeat/etc/ha.d/ha.cf

  1. debugfile /var/log/ha-debug
  2. logfile /var/log/ha-log
  3. logfacility local0
  4. keepalive 2
  5. warntime 10
  6. deadtime 5
  7. initdead 120
  8. udpport 694
  9. ucast ens33 192.168.40.221 (对方的心跳线)
  10. auto_failback on
  11. node master
  12. node slave
  13. ping 192.168.0.1

#vim /usr/local/heartbeat/etc/ha.d/authkeys(主备一样)

auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!

#vim /usr/local/heartbeat/etc/ha.d/haresources (主备一样)

master IPaddr::192.168.40.222/24/ens33  (虚拟IP)

四、测试

1、[root@master ~]# echo  web1  >   /usr/share/nginx/html/index.html  (修改主页文件,好区分,方法多样)

2、[root@master ~]# cat  /usr/share/nginx/html/index.html
web2  (132机子)
3、[root@slave ~]# cat  /usr/share/nginx/html/index.html  
we1    (211机子)

4、虚拟ip访问(主机正常)

5、[root@master ~]# systemctl stop  heartbeat  (停掉master的heartbeat)

6、虚拟ip转移到从机

[root@slave ~]# ip a
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
  2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:17:c0:db brd ff:ff:ff:ff:ff:ff
    inet 192.168.40.211/24 brd 192.168.40.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.40.222/24 brd 192.168.40.255 scope global secondary ens33:0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe17:c0db/64 scope link
       valid_lft forever preferred_lft forever

heartbeat高可用的更多相关文章

  1. Heartbeat高可用解决方案

    Heartbeat高可用 Heartbeat作用: 通过heartbeat,可以将资源(ip以及程序服务等资源)从一台已经故障的计算机快速转移到另一台正常运转的机器上继续提供服务,一般称之为高可用服务 ...

  2. Haproxy+Heartbeat 高可用集群方案操作记录

    之前详细介绍了haproxy的基础知识点, 下面记录下Haproxy+Heartbeat高可用web集群方案实现过程, 以加深理解. 架构草图如下: 1) 基本环境准备 (centos6.9系统) 1 ...

  3. CentOS 6.5环境下heartbeat高可用集群的实现及工作原理详解

    Linux HA Cluster高可用服务器集群,所谓的高可用不是主机的高可用,而是服务的高可用. 什么叫高可用:一个服务器down掉的可能性多种多样,任何一个可能坏了都有可能带来风险,而服务器离线通 ...

  4. LVS+Heartbeat 高可用集群方案操作记录

    之前分别介绍了LVS基础知识和Heartbeat基础知识, 今天这里简单说下LVS+Heartbeat实现高可用web集群方案的操作说明. Heartbeat 项目是 Linux-HA 工程的一个组成 ...

  5. heartbeat 高可用

    转载来自 http://www.cnblogs.com/liwei0526vip/p/6391833.html 使用HeartBeat实现高可用HA的配置过程详解 一.写在前面 HA即(high av ...

  6. Lvs+heartbeat高可用高性能web站点的搭建

    这是我们公司在实际的生产环境当中使用的一套东西,希望对大家有所帮助(实际的公网ip,我已经做了相应的修改): 说明:每台服务器需要有两块网卡:eth0连接内网的交换机,用私网ip,实现服务器间内部访问 ...

  7. Heartbeat+LVS构建高可用负载均衡集群

    1.heartbeat简介: Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里 ...

  8. heartbeat+DRBD 高可用 双机热备

    heartbeat+DRBD 高可用 双机热备 原创博文http://www.cnblogs.com/elvi/p/7658109.html ## heartbeat+DRBD 高可用 双机热备 # ...

  9. 19、高可用工具heartbeat介绍

    19.1.heartbeat的作用: heartbeat的官方网站地址是:http://linux-ha.org/wiki/Main_Page 19.2.heartbeat工作原理: 19.3.hea ...

随机推荐

  1. 2019全国卷(III)理科23题的另类解法

    已知 $x,y,z\in\textbf{R}$且$x+y+z=1$ (1)求$(x-1)^2+(y+1)^2+(z+1)^2$的最小值: (2)若$(x-2)^2+(y-1)^2+(z-a)^2\ge ...

  2. 再提供一种解决Nginx文件类型错误解析漏洞的方法

    [文章作者:张宴 本文版本:v1.2 最后修改:2010.05.24 转载请注明原文链接:http://blog.zyan.cc/nginx_0day/] 注:2010年5月23日14:00前阅读本文 ...

  3. python 安装第三方包

    python环境是Anaconda3安装的,由于项目需要用到git的第三方包,但是在conda自带的环境中没有. 例如使用jieba分词库. 安装的三种方式: (1)全自动安装:`easy_insta ...

  4. RobotFramework常见语法

    https://blog.csdn.net/yu1014745867/article/details/79324732 常用关键字* Settings * Library Selenium2Libra ...

  5. zrender-部分小知识点集合

    1.存组件元素和取组件元素,会在数据更新时,将存起来的拿出来 在construct(){ this.saveData=[];//先声明一个空的数组 } //存的方法 setSave(ele,i,nam ...

  6. CSS定位——文档流定位

    关于CSS的定位机制Ⅰ ㈠概念 对于盒子模型来说,也就是页面元素,这些盒子究竟在页面的什么位置,怎样排列它,那么找到它的位置,确定它的位置,这个就是定位机制所决定的. ㈡分类 文档流, 浮动定位,层定 ...

  7. luogu 3241 [HNOI2015]开店 动态点分治+二分+vector

    独立写出来+想出来的,1.5h就切了~ 建立点分树,然后用 $vector$ 暴力存所有子节点,然后二分一下子就可以了. #include <cstdio> #include <ve ...

  8. idea2018.3.6安装与破解教程(亲测可用、破解到2100年)

    最近,帮室友进行idea安装,之前自己安装借鉴的博客已404,在网上找了好几个都无效,想着总结一份备用. 此博客是又找了一台电脑,边安装边写的. 目录 (已安装好的,可以直接看idea2018.3.6 ...

  9. spark RDD 的基本操作

    好记性不如烂笔头,分享一下 Spark是一个计算框架,是对mapreduce计算框架的改进,mapreduce计算框架是基于键值对也就是map的形式,之所以使用键值对是人们发现世界上大部分计算都可以使 ...

  10. JS箭头函数的this

    箭头函数的this看定义他的时候,他的外层有没有函数 有:外层函数的this就是箭头函数的this 无:箭头函数的this就是window obj = {age:18, getAge: ()=> ...