系统环境: rhel6 x86_64 iptables and selinux disabled

主机: 192.168.122.119 server19.example.com

192.168.122.25 server25.example.com

192.168.122.163 server63.example.com

192.168.122.193 server93.example.com

所需的包:heartbeat-3.0.4-1.el6.x86_64.rpm heartbeat-libs-3.0.4-1.el6.x86_64.rpm heartbeat-devel-3.0.4-1.el6.x86_64.rpm ldirectord-3.9.2-1.2.x86_64.rpm

Realserver1
192.168.122.163:apache

Realserver2
192.168.122.193:apache

Load
Balance 192.168.122.119:heartbeat apache

Load
Balance 192.168.122.25:heartbeat apache

#配置
Load
Balance

以下步骤在server19server25上实施:

[root@server19
kernel]# yum localinstall heartbeat-3.0.4-1.el6.x86_64.rpm
heartbeat-devel-3.0.4-1.el6.x86_64.rpm
heartbeat-libs-3.0.4-1.el6.x86_64.rpm ldirectord-3.9.2-1.2.x86_64.rpm
-y

[root@server19
kernel]# yum install perl-IO-Socket-INET6 ipvsadm -y

[root@server19
ha.d]# modprobe softdog

[root@server19
ha.d]# echo modprobe softdog >> /etc/rc.d/rc.local

[root@server19
ha.d]# yum install httpd -y

[root@server19
ha.d]# echo `hostname` > /var/www/index.html

[root@server19
ha.d]# /etc/init.d/httpd stop

以下步骤在server19server25上实施:

[root@server19
kernel]# cd /usr/share/doc/heartbeat-3.0.4/

[root@server19
heartbeat-3.0.4]# cp authkeys haresources ha.cf /etc/ha.d/

注:这三个配置文件可以通过rpm
-q heartbeat -d 查看其位置

[root@server19
heartbeat-3.0.4]# cd /usr/share/doc/packages/ldirectord/

[root@server19
ldirectord]# cp ldirectord.cf /etc/ha.d/

注:这个配置文件可以通过rpm
-q ldirectord -d 查看其位置

[root@server19
ldirectord]# cd /etc/ha.d/

#配置/etc/ha.d/authkeys

[root@server19
ha.d]# vim authkeys

auth
3

#1
crc

#2
sha1 HI!

3
md5 Hello! (去掉注释)

[root@server19
ha.d]# chmod 600 authkeys

认证文件(/etc/ha.d/authkeys),文件的权限必须是
600

#配置/etc/ha.d/ha.cf

[root@server19
ha.d]# vim 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
通信,取默认值

bcast
eth0 (去掉注释)

采用
udp
广播播来通知心跳

auto_failback
on

当主节点恢复后,是否自动切回

watchdog
/dev/watchdog (去掉注释)

watchdog
能让系统在出现故障
1
分钟后重启该机器,这个功能可以帮助服务器在确实停止心
跳后能够重新恢复心跳

node
server19.example.com

主节点名称,与
uname
--n 保持一致.排在第一的默认为主节点,所以不要搞措顺序

node
server25.example.com

副节点名称,与
uname
--n 保持一致

ping
192.168.122.1

respawn
hacluster /usr/lib64/heartbeat/ipfail

apiauth
ipfail gid=haclient uid=hacluster

默认
heartbeat
并不检测除本身之外的其他任何服务,也不检测网络状况。
所以当网络中断时,并不会进行
Load
Balancer 和
Backup
之间的切换。
可以通过 ipfail
插件,设置'ping
nodes'来解决这一问题,但不能使用一个集群节点作为
ping
的节点.

#配置/etc/ha.d/haresources

[root@server19
ha.d]# vim haresources

server19.example.com
IPaddr::192.168.122.178/24/eth0 ldirectord httpd

注:192.168.122.178为虚拟IP

这个文件中定义了实现集群所需的各个软件的启动脚本,这些脚本必须放在/etc/init.d
或者
/etc/ha.d/resource.d
目录里
IPaddr
的作用是启动
Virutal
IP,它是
HeartBeart
自带的一个
脚本.ldirectord 的作用是启动
ldirectord
监控程序,它会使
ldirectord.cf
中定义的
lvs
生效,
并监听其健康状;httpd

apache
服务的启动脚本。

#配置/etc/ha.d/ldirectord.cf

[root@server19
ha.d]# vim ldirectord.cf

#
Sample for an http virtual service

virtual=192.168.122.178:80
虚拟IP:服务端口

real=192.168.122.163:80
gate realserver:服务端口

real=192.168.122.193:80
gate realserver:服务端口

fallback=127.0.0.1:80 gate 当realserver全挂掉后,由调度器上的服务来提供服务

service=http 服务名

scheduler=rr 算法

#persistent=600 持续连接时间

#netmask=255.255.255.255

protocol=tcp

checktype=negotiate

checkport=80 检测端口

request="index.html" 检测有无inde.html测试页

#
receive="Test Page"
检测测试页中的内容

#
virtualhost=www.x.y.z

[root@server19
ha.d]# scp authkeys ha.cf haresources ldirectord.cf
root@192.168.122.25:/etc/ha.d/

#配置Realserver

以下步骤在server63上实施:

[root@server63
~]# yum install arptables_jf httpd -y

[root@server63
~]# arptables -A IN -d 192.168.122.178 -j DROP

[root@server63
~]# arptables -A OUT -s 192.168.122.178 -j mangle --mangle-ip-s
192.168.122.163

[root@server63
~]# /etc/init.d/arptables_jf save

[root@server63
~]# ifconfig eth0:0 192.168.122.178 netmask 255.255.255.255 up

[root@server63
~]# ip addr add 192.168.122.178 dev eth0

注:可用ip
addr show查看

[root@server63
~]# echo `hostname` > /var/www/html/index.html

[root@server63
~]# /etc/init.d/httpd start

以下步骤在server93上实施:

[root@server93
~]# yum install arptables_jf httpd -y

[root@server93
~]# arptables -A IN -d 192.168.122.178 -j DROP

[root@server93
~]# arptables -A OUT -s 192.168.122.178 -j mangle --mangle-ip-s
192.168.122.193

[root@server93
~]# /etc/init.d/arptables_jf save

[root@server93
~]# ifconfig eth0:0 192.168.122.178 netmask 255.255.255.255 up

[root@server93
~]# ip addr add 192.168.122.178 dev eth0

注:可用ip
addr show查看

[root@server93
~]# echo `hostname` > /var/www/html/index.html

[root@server93
~]# /etc/init.d/httpd start

#启动

以下步骤在server19server25上实施:

[root@server19
ha.d]# /etc/init.d/heartbeat start

测试

访问192.168.122.178反复刷新页面,如果页面在server63server93直接来回切换,说明正常。

:server63server93上的apache服务关闭后,访问的将是调度器上的apache页面,如果调度器上的apache也关闭,将无法访问到页面.当一台调度器宕掉后,另一台调度器会接管,发挥调度的作用(即调度器之间实现了高可用)

Rhel6-heartbeat+lvs配置文档的更多相关文章

  1. Rhel6-keepalived+lvs配置文档

    系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.119 server19.example.com 192.168.12 ...

  2. LVS+Heartbeat安装部署文档

    LVS+Heartbeat安装部署文档 发表回复 所需软件: ipvsadm-1.24-10.x86_64.rpmheartbeat-2.1.3-3.el5.centos.x86_64.rpmhear ...

  3. MYSQL服务器my.cnf配置文档详解

    MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...

  4. 转!!Java代码规范、格式化和checkstyle检查配置文档

    为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...

  5. Hibernate配置文档详解

    Hibernate配置文档有框架总部署文档hibernate.cfg.xml 和映射类的配置文档 ***.hbm.xml hibernate.cfg.xml(文件位置直接放在src源文件夹即可) (在 ...

  6. Java代码规范、格式化和checkstyle检查配置文档

    http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...

  7. Spring Hibernate4 整合配置文档

    1 applicationContext.xml配置文档 <?xml version="1.0" encoding="UTF-8"?><bea ...

  8. Kerberos主从配置文档

    Kerberos主从配置文档   1. Kerberos主从同步机制 在Master上通过以下命令同步数据: kdb5_util dump /var/kerberos/krb5kdc/slave_db ...

  9. python常用模块-配置文档模块(configparser)

    python常用模块-配置文档模块(configparser) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. ConfigParser模块用于生成和修改常见配置文档,当前模块的名称 ...

随机推荐

  1. hdu 5340 Three Palindromes

    前几晚 BC 的第二题,官方给出的题解是: 然后我结合昨天刚看的 Manacher 算法试着写了下,发现 pre.suf 数组挺难构造的,调试了好久,然后就对中间进行枚举了,复杂度应该是 O(n2) ...

  2. Winform_播放声音文件

    1.调用非托管的dll using System.Runtime.InteropServices;  //DllImport命名空间的引用 class test  //提示音 { [DllImport ...

  3. javascript AOP实现

    参考:http://www.cnblogs.com/rubylouvre/archive/2009/08/08/1541578.html function Person(){ this.say = f ...

  4. 抛弃vboot不格盘用grub4dos+firadisk安装Ghost版XP到VHD,轻松RAMOS!

    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=363198&extra=抛弃vboot不格盘用grub4dos+firadisk安 ...

  5. ios app 支持 ipv6-only

    最近苹果公司发布声明:自今年6月1日开始,所有提交至苹果App Store的应用申请必须要兼容面向硬件识别和网络路由的最新互联网协议--IPv6-only标准. 那么问题来了,目前的app是否支持ip ...

  6. sealed(C# 参考)

    sealed 修饰符可以应用于类.实例方法和属性.密封类不能被继承.密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写.当应用于方法或属性时,sealed 修饰符必须始终与 overri ...

  7. call的其他应用

    看一些源码的时候常常发现例如这些的代码 Array.prototype.slice.call(arg) Object.prototype.toString.call(str) 等等 ,着一些系列的句子 ...

  8. python 练习 7

    #!/usr/bin/python # -*- coding: utf-8 -*- def gcd(x,y): #最大公因子 if x>y:x%=y while x: x,y=y%x,x ret ...

  9. js,jquery判断某一节点是否存在

    前两天工作时遇到一问题,就是模块A显示时,B是一种样式,模块A删除,B是另一种样式.记录下判断节点存在的方法. 先写下html <!doctype html> <html> & ...

  10. q和blockquote标签的区别

    q用来分离文本中的引语,定义一个短的引用.该标签会对引用的文本加双引号,一般情况很少用,博客论坛系统会用得多一些: blockquote用于对长文本的引用,用来定义一段引语,标签内的内容会自动有缩进: ...