只是写了安装流程,具体信息查看互联网;

环境:

CentOS6.8 x86_64 min

Heartbeat 3.0.6    http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/958e11be8686.tar.bz2
Cluster Glue 1.0.12 http://hg.linux-ha.org/glue/archive/0a7add1d9996.tar.bz2
Resource Agents 3.9.6 https://github.com/ClusterLabs/resource-agents/archive/v3.9.6.tar.gz

安装:

/********安装开始*************/

安装所需依赖:
yum install gcc gcc-c++ autoconf automake libtool glib2-devel libxml2-develbzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel make wget docbook-dtds docbook-style-xsl bzip2-devel asciidoc libuuid-devel 新建用户与组
groupadd haclient
useradd -g haclient hacluster -M -s /sbin/nologin 下载上述三个组件解压并进入相应目录进行安装 安装cluster-glue
./autogen.sh
./configure --prefix=/usr/local/heartbeat --sysconfdir=/etc/heartbeat libdir=/usr/local/heartbeat/lib64
make
make install 安装Resource Agents
./autogen.sh
./configure --prefix=/usr/local/heartbeat --sysconfdir=/etc/heartbeat libdir=/usr/local/heartbeat/lib64 CFLAGS=-I/usr/local/heartbeat/include LDFLAGS=-L/usr/local/heartbeat/lib64
ln -s /usr/local/heartbeat/lib64/* /lib64/
make
make install 安装Heartbeat
./bootstrap
./configure --prefix=/usr/local/heartbeat --sysconfdir=/etc/heartbeat CFLAGS=-I/usr/local/heartbeat/include LDFLAGS=-L/usr/local/heartbeat/lib64
vi /usr/local/heartbeat/include/heartbeat/glue_config.h /* 错误:“HA_HBCONF_DIR”重定义,删除最后一行,make clean */
make
make install cp doc/ha.cf doc/authkeys doc/haresources /etc/heartbeat/ha.d/
chmod 600 /etc/heartbeat/ha.d/authkeys
chkconfig --add heartbeat
chkconfig heartbeat on
chkconfig --list heartbeat /********安装结束*************/

模拟测试环境:

/********设置使用开始*************/

模拟环境:
四部CentOS主机,当前使用版本6.8 min
命名:
Heartbeat-DS1
Heartbeat-DS2
Heartbeat-RS1
Heartbeat-RS2 设置IP及修改主机名:
VIP: 192.168.1.200
Heartbeat-DS1 IP:192.168.1.181 修改主机名ds1.example.com
Heartbeat-DS2 IP:192.168.1.182 修改主机名ds2.example.com
Heartbeat-RS1 IP:192.168.1.183
Heartbeat-RS2 IP:192.168.1.183 四台主机安装httpd服务,并防火墙开启80/tcp端口:
yum install httpd -y 时间同步:
ntpdate -u time.windows.com Heartbeat-DS1与Heartbeat-DS2中,httpd不需要设置开机启动,而是由heartbeat来启用服务。 修改相应主页文件:
vi /var/www/html/index.html
<h1>
写入相应IP,用于区分主机
</h1> Heartbeat-DS1与Heartbeat-DS2: 防火墙开启694/udp端口,修改iptables配置文件。 修改hosts文件,添加如下内容: 192.168.1.181 ds1.example.com
192.168.1.182 ds2.example.com 实现基于ssh无密钥通信,设置如下: #ssh-keygen -t rsa -P ‘’ //这个生成一个密码为空的公钥和一个密钥,把公钥复制到对方节点上即可
#ssh-copy-id -i .ssh/id_rsa.pub root@ds2.example.com //两台主机都得互相生成密钥和复制公钥
#ssh ds2.example.com //测试如果不需要密码登陆就成功 heartbeat主要有三个配置文件:ha.cf,authkeys,haresources authkeys主从认证文件,主要内容如下: 这儿使用sha1认证, auth 2 //此处编号对应下面启的用编号
#1 crc
2 sha1 字符串 //可使用 openssl rand -hex 8 生成一随机字符串
#3 md5 Hello! crc是无安全的,具体查看配置文件。 haresources资源文件,添加如下内容: ds1.helilv.cn IPaddr::192.168.1.200/24/eth0 httpd ha.cf是主要配置文件: debugfile /var/log/ha-debug //调试日志
logfile /var/log/ha-log //日志文件
logfacility local0 //syslog,记录至/var/log/message keepalive 2 //每隔多长时间发送一次心跳包,默认秒,毫秒用ms
deadtime 30 //死亡超时时间
warntime 10 //告警时间
initdead 120 //网络初始化最长时间
udpport 694 //心跳包通讯端口
bcast eth0 //心跳包通讯使用网卡
auto_failback on //如果主节点重新恢复,主节点将抢占资源恢复服务; off为不抢占 node ds1.example.com //节点名,使用hosts保证主从节点能正常通讯
node ds2.example.com //节点名,使用hosts保证主从节点能正常通讯 ping 192.168.1.1 //一般ping网关,判断节点网络是否正常
respawn hacluster /usr/local/heartbeat/libexec/heartbeat/ipfail //断网切换功能,这个功能需要主从单独线路连接,如果ping不通,则会通知从机我有问题,且从机抢占ip。
apiauth ipfail gid=haclient uid=hacluster 以上三个配置文件主从保持一致。 如下测试Heartbeat-DS1与Heartbeat-DS2: 启动Heartbeat-DS1:
service heartbeat status //查看是否已启动
service httpd status //应该由heartbeat调用启动
ip a //等待一会后查看ip信息,eth0是否已绑定192.168.1.200 如果上述都正常启动,则开启Heartbeat-DS2主机:
service heartbeat status //查看是否已启动
service httpd status //如果Heartbeat-DS1已启动,则此处为关闭状态
ip a //如果Heartbeat-DS1已启动,则此处为关闭状态,eth0不会绑定192.168.1.200 现在使用浏览器访问192.168.1.200,则会出现Heartbeat-DS1的ip主页,现在测试将Heartbeat-DS1的heartbeat关闭后,刷新后应该出现Heartbeat-DS2的ip主页,
如果测试正常进行负载均衡设置。

负载均衡:

Heartbeat负载均衡使用插件ldirectord,源码编译安装默认已生成。

Heartbeat-DS1与Heartbeat-DS2中使用ldirectord需要安装依赖:
yum install ipvsadm perl-Socket6 perl-libwww-perl perl-IO-Socket-INET6 perl-MailTools 修改Heartbeat-DS1与Heartbeat-DS2的配置文件:
ldirectord主要配置文件:
vi /etc/heartbeat/ha.d/ldirectord.cf //修改以下参数
virtual=192.168.1.200:80
real=192.168.1.183:80 gate
real=192.168.1.184:80 gate
fallback=127.0.0.1:80 gate
service=http
scheduler=rr
protocol=tcp
checktype=negotiate
checkport=80 配置文件haresources,添加启动应用ldirectord: ds1.helilv.cn IPaddr::192.168.1.200/24/eth0 ldirectord httpd 配置Heartbeat-RS1与Heartbeat-RS2:
参考: https://www.suse.com/communities/blog/load-balancing-howto-lvs-ldirectord-heartbeat-2/ 一、实际web服务器,需要在回环上绑定192.168.1.200: vi /etc/sysconfig/network-scripts/ifcfg-lo
//添加如下内容
IPADDR0=192.168.1.200
NETMASK0=255.255.255.255
NETWORK0=192.168.0.0
BROADCAST0=192.168.1.255
LABEL0='0' 重启网卡 service network restart
使用ip addr 查看lo信息,是否已绑定192.168.1.200 二、修改/etc/sysctl.conf //文件未尾添加如下内容后,使用sysctl -p使用其生效
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.eth0.arp_announce = 2 三、设置默认网关,使用route -n查看,如已设置可省略。 echo "default 192.168.1.1" > /etc/sysconfig/network/routes; 重启Heartbeat-DS1与Heartbeat-DS2:
ps aux //可看到ldirectord运行信息 现在使用浏览器访问192.168.1.200,应该会轮流出现Heartbeat-RS1与Heartbeat-RS2的ip主页。 /********设置使用结束*************/

杂记使用串口:

/********以下是使用vmware模拟串口*************/

主从添加串口设备:

主从都使用管道命名
主节点: 设置为该端是服务器,另一端是虚拟机,勾选轮询
从节点: 设置为该端是客户端,另一端是虚拟机,不勾选轮询 我测试时,添加的设备名为:/dev/ttyS1
测试串口通讯:
主:cat < /dev/ttyS1 从:echo 'hello' > /dev/ttyS1 如果主节点接收到hello,那么通讯正常。否则再测试其它接口。 修改主从节点配置文件ha.cf: 注释
上面测试使用的广播通讯模式bcast.
udp端口也不需要了
开启
baud 19200
serial /dev/ttyS1 # Linux

HeartBeat源码安装的更多相关文章

  1. mono-3.4.0 源码安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1 解决方法

    Mono 3.4修复了很多bug,继续加强稳定性和性能(其实Mono 3.2.8 已经很稳定,性能也很好了),但是从http://download.mono-project.com/sources/m ...

  2. 搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展

    上一篇:搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展 一.安装Memcached 1.yum安装libevent事件触发管理器 yum -y install libe ...

  3. 搭建LNAMP环境(二)- 源码安装Nginx1.10

    上一篇:搭建LNAMP环境(一)- 源码安装MySQL5.6 1.yum安装编译nginx需要的包 yum -y install pcre pcre-devel zlib zlib-devel ope ...

  4. 搭建LNAMP环境(一)- 源码安装MySQL5.6

    1.yum安装编译mysql需要的包 yum -y install gcc-c++ make cmake bison-devel ncurses-devel perl 2.为mysql创建一个新的用户 ...

  5. Greenplum 源码安装教程 —— 以 CentOS 平台为例

    Greenplum 源码安装教程 作者:Arthur_Qin 禾众 Greenplum 主体以及orca ( 新一代优化器 ) 的代码以可以从 Github 上下载.如果不打算查看代码,想下载编译好的 ...

  6. salt源码安装软件和yum安装软件

    上面简单列出了源码安装的sls文件书写思路. 涉及到一些固定的思路:如, 1,拷贝 解压安装时候需要依赖tar.gz存在 如果已安装则无需再次安装. 2,启动脚本 加入chk时候需要文件存在,如果已添 ...

  7. 搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展

    上一篇:搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展 一.安装MongoDB 1.创建mongodb用户组和用户 groupadd mongodb useradd -r -g ...

  8. 搭建LNAMP环境(三)- 源码安装Apache2.4

    上一篇:搭建LNAMP环境(二)- 源码安装Nginx1.10 1.yum安装编译apache需要的包(如果已经安装,可跳过此步骤) yum -y install pcre pcre-devel zl ...

  9. Linux MySQL源码安装缺少ncurses-devel包

    在Red Hat Enterprise Linux Server release 5.7 上用源码安装MySQL-5.6.23时,遇到了" remove CMakeCache.txt and ...

随机推荐

  1. 巧用final

    1.final可以修饰函数的参数,以防止函数内部随意篡改不允许修改的参数. 2.在函数内部,把函数的局部变量声明为final类型,可以检查在函数内部它们是否的确只被赋值一次.

  2. context.response.end()和return的区别

    最近忽然想起这个问题,上网查了很多,觉得这个网友回答的很给力,从本质上剖析了问题.最后发现这篇文章也是转载自博客园的一位网友.http://www.cnblogs.com/adolphyang/p/4 ...

  3. iframe自适应高度问题

    我页面中的iframe <iframe name="mainFrame" id="mainFrame" src="/account/${page ...

  4. [HMLY]10.深入研究Block用weakSelf、strongSelf、@weakify、@strongify解决循环引用

    前言 在上篇中,仔细分析了一下Block的实现原理以及__block捕获外部变量的原理.然而实际使用Block过程中,还是会遇到一些问题,比如Retain Circle的问题. 目录 1.Retain ...

  5. C#Dictionary集合的使用

    题目:输入一串字符串字母,比如:Welcome to China,比较每个字母出现的次数,不区分大小写. 解决这道题的方法很多.可能一百个人有一百个思路.当时第一眼看到这个题我的思路是:先将接受的一串 ...

  6. 【Excel】Excel筛选迟点时间的公式

    效果是这样: 方法: 在B列第2排,输入=if(HOUR(A2) >=9,"迟点","") 然后就是复制,粘贴整个列就OK了.不想复制也可以按住的右下角那 ...

  7. Cocos2d-x 3.x事件分发机制总结

    在2.x中处理事件需要用到委托代理(delegate),相信学过2.x的触摸事件的同学,都知道创建和移除的流程十分繁琐.而在3.x中由于加入了C++11的特性,而对事件的分发机制通过事件分发器Even ...

  8. Crystal Report 纵向排列,多列格式化

    一个表格区域就是一条数据,一张A4纸分布成2列4行打印. 这与通常的报表有点不一样,通常报表的明细都是一条一行:而现在要每2条放在一行,这需要用到“多列格式化”属性. 选择"多列格式”后,会 ...

  9. [Q]AdobePDF打印机“仅依靠系统字体”问题

    使用Adobe打印机打印时提示: 解决方法: 不勾选“仅依靠系统字体”选项,并确认.

  10. centos7下引导win7

    1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry &q ...