1、用rpm安装dep pack(相关包):
rpm -ivh ipvsadm-1.21-1.rh.el.1.i386.rpm
rpm Civh ipvsadm-debuginfo-1.21-1.rh.el.1.i386.rpm
rpm Civh libnet-1.1.0-1.rh.el.1.i386.rpm
rpm Civh perl-Digest-SHA1-2.01-15.1.i386.rpm
rpm Civh perl-Digest-HMAC-1.01-11.1.noarch.rpm
rpm Civh perl-Authen-SASL-2.03-1.rh.el.um.1.noarch.rpm
rpm Civh perl-Convert-ASN1-0.16-2.rh.el.um.1.noarch.rpm
rpm Civh perl-Net-SSLeay-1.23-1.rh.el.um.1.i386.rpm
rpm -ivh perl-IO-Socket-SSL-0.92-1.rh.el.um.1.noarch.rpm
rpm Civh perl-Net-SSLeay-debuginfo-1.23-1.rh.el.um.1.i386.rpm
rpm Civh perl-XML-NamespaceSupport-1.08-1.rh.el.um.1.noarch.rpm
rpm Civh perl-Parse-RecDescent-1.80-1.rh.el.um.1.noarch.rpm
rpm -ivh perl-Mail-IMAPClient-2.2.7-1.rh.el.um.1.noarch.rpm
rpm Civh libnet-debuginfo-1.1.0-1.rh.el.1.i386.rpm
rpm -ivh perl-HTTP-GHTTP-1.07-1.n0i.3.i386.rpm
rpm -ivh perl-XML-SAX-0.12-1.rh.el.um.1.noarch.rpm
rpm -ivh perl-ldap-0.2701-1.rh.el.um.1.noarch.rpm
rpm -ivh perl-libwww-perl-5.65-6.noarch.rpm
下面是最初的安装过程
rpm -ivh ipvsadm-1.21-1.rh.el.1.i386.rpm
rpm Civh ipvsadm-debuginfo-1.21-1.rh.el.1.i386.rpm
rpm Civh libnet-1.1.0-1.rh.el.1.i386.rpm
rpm Civh libnet-debuginfo-1.1.0-1.rh.el.1.i386.rpm
/*rpm Civh perl-Authen-SASL-2.03-1.rh.el.um.1.noarch.rpm
error: Failed dependencies:
perl(Digest::HMAC_MD5) is needed by perl-Authen-SASL-2.03-1.rh.el.um.1
Suggested resolutions:
perl-Digest-HMAC-1.01-11.1.noarch.rpm
从网上http://www.start-art.co.il/startcom/AS-3.0.1/os/i386/StartCom/RPMS/
下载上面的rpm包*/
rpm Civh perl-Digest-SHA1-2.01-15.1.i386.rpm
rpm Civh perl-Digest-HMAC-1.01-11.1.noarch.rpm
重新安装perl-Authen-SASL-2.03-1.rh.el.um.1.noarch.rpm
rpm Civh perl-Authen-SASL-2.03-1.rh.el.um.1.noarch.rpm
rpm Civh perl-Convert-ASN1-0.16-2.rh.el.um.1.noarch.rpm
rpm -ivh perl-IO-Socket-SSL-0.92-1.rh.el.um.1.noarch.rpm
perl(Net::SSLeay) >= 1.08 is needed by perl-IO-Socket-SSL-0.92-1.rh.el.um.1
perl-Net-SSLeay >= 1.0.3 is needed by perl-IO-Socket-SSL-0.92-1.rh.el.um.1
rpm Civh perl-Net-SSLeay-1.23-1.rh.el.um.1.i386.rpm
重新安装 perl-IO-Socket-SSL-0.92-1.rh.el.um.1.noarch.rpm
rpm -ivh perl-IO-Socket-SSL-0.92-1.rh.el.um.1.noarch.rpm
rpm Civh perl-Net-SSLeay-debuginfo-1.23-1.rh.el.um.1.i386.rpm
rpm Civh perl-ldap-0.2701-1.rh.el.um.1.noarch.rpm
error: Failed dependencies:
perl(IO::Socket::SSL) is needed by perl-ldap-0.2701-1.rh.el.um.1
perl(XML::SAX::Base) is needed by perl-ldap-0.2701-1.rh.el.um.1
perl-IO-Socket-SSL is needed by perl-ldap-0.2701-1.rh.el.um.1
perl-XML-SAX is needed by perl-ldap-0.2701-1.rh.el.um.1
新安装下面的包
rpm Civh perl-XML-NamespaceSupport-1.08-1.rh.el.um.1.noarch.rpm
重新安装perl-ldap-0.2701-1.rh.el.um.1.noarch.rpm
rpm Civh perl-ldap-0.2701-1.rh.el.um.1.noarch.rpm
rpm -ivh perl-Mail-IMAPClient-2.2.7-1.rh.el.um.1.noarch.rpm
error: Failed dependencies:
perl(Parse::RecDescent) is needed by perl-Mail-IMAPClient-2.2.7-1.rh.el.um.1
perl-Parse-RecDescent is needed by perl-Mail-IMAPClient-2.2.7-1.rh.el.um.1
先安装
rpm Civh perl-Parse-RecDescent-1.80-1.rh.el.um.1.noarch.rpm
2、安装heartbeat包
rpm Civh heartbeat-pils-1.2.3-2.rh.el.3.0.i386.rpm
rpm Civh heartbeat-stonith-1.2.3-2.rh.el.3.0.i386.rpm
rpm Civh heartbeat-1.2.3-2.rh.el.3.0.i386.rpm
rpm Civh heartbeat-ldirectord-1.2.3-2.rh.el.3.0.i386.rpm
这样有关的软件已经全部安装完毕,下面进行Heartbeat和ipvs的配置:
配置ipvsadm:
ipvsadm是1.0.8版,安装后在/etc/rc.d/init.d/目录下自动生成了标准的init服务脚本,如果你的Director没有 备份服务器,你可以通过服务管理工具让它在相应的运行级里自动运行,如果Director是HA系统,则由heartbeat控制运行。
另外该服务脚本提供了配置保存功能。配置文件为:/etc/sysconfig/ipvsadm 你必须手工建立。然后在其中输入规则和策略:
-A -t 10.1.0.254:80 -s rr
-a -t 10.1.0.254:80 -r 10.1.0.1:80 -g -w 1
-a -t 10.1.0.254:80 -r 10.1.0.3:80 -g -w 1
-a -t 10.1.0.254:80 -r 10.1.0.4:80 -g -w 1
然后存盘。
或直接运行:
ifconfig lo:0 10.1.0.254 netmask 255.255.255.255 broadcast 10.1.0.254 up
route add -host 10.1.0.254 dev lo:0
(这两条在手工启动Ipvsadm时需要执行)
ipvsadm -C
ipvsadm -A -t 10.1.0.254:80 -s rr
ipvsadm -a -t 10.1.0.254:80 -r 10.1.0.1:80 -g
ipvsadm -a -t 10.1.0.254:80 -r 10.1.0.3:80 -g
ipvsadm -a -t 10.1.0.254:80 -r 10.1.0.4:80 Cg
然后运行:/etc/rc.d/init.d/ipvsadm save
就可以保存当前配置到/etc/sysconfig/ipvsadm文件中
在DR上启用IP转发:
1. modifying the line containing net.ipv4.ip_forward in /etc/sysctl.conf
# Enables packet forwarding
net.ipv4.ip_forward = 1
# Enables source route verification
net.ipv4.conf.default.rp_filter = 1
2. 查看上述是否成功:
For these changes to take effect the sysctl command may be used:
/sbin/sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
配置directord:负责侦听realserver的状态,如果realserver出现问题将自动从路由表中删除之。
/usr/share/doc/ heartbeat-ldirectord-1.2.3/ldirectord.cf文件是Ldirectord的配置文件的范例。拷贝该文件到/etc/ha.d/conf目录下,修改其内容以便在Heartbeat的配置文件haresources中使用,并建立链接:ln Cs /etc/ha.d/conf/ldirectord.cf /etc/ha.d/ldirectord.cf
编辑ldriectord.cf:下面是一个配置实例
# Global Directives
checktimeout=3
checkinterval=1
fallback=127.0.0.1:80
autoreload=yes
logfile="/var/log/ldirectord.log"
#logfile="local0"
quiescent=yes
# A sample virual with a fallback that will override the gobal setting
virtual=10.1.0.254:80
real=10.1.0.1:80 gate
real=10.1.0.3:80 gate
real=10.1.0.4:80 gate
fallback=127.0.0.1:80 gate
service=http
request="reply.html"
receive="Yeah OK!"
virtualhost=DR1
scheduler=rr
#persistent=600
#netmask=255.255.255.255
protocol=tcp
配置HA
需要配置的有三个文件:ha.cf haresources(在每个节点必须相同) Authkeys,应该将它们放置在/etc/ha.d目录下。范例配置在/usr/share/doc/heartbeat-1.2.3目录下,你可以修改后拷贝到/etc/ha.d目录下
cd /usr/share/doc/heartbeat-1.2.3
cp ha.cf /etc/ha.d
cp haresources /etc/ha.d
cp authkeys /etc/ha.d
1.设置双机脚本ha.cf:负责测试两台DR的状态,如果主机有故障将自动切换到备机上去。
主要修改如下几项:
debugfile
logfile
logfacility
keepalive
deadtime
warntime
initdead
udpport
ucast eth1 10.3.1.6此处需要自己指定eth1为心跳线的连接网卡,10.3.1.6为对方网卡的地址
auto_failback off:此处指定当主机恢复后是否将资源自动切换到主机上,建议选off.
//这次设置为on看看怎样?
node DR1
node DR2 :此处指定加入集群的节点的机器名可以通过uname Cn查看,一定注意不能用ip地址。
上面几个参数出了有说明的地方外,都可以用默认值,只需将该项前面的#去掉就可以了
下面是ha.cf中主要的参数介绍:
这个配置文件告诉heartbeat 使用的是什么介质和如何配置它们。ha.cf 包含你将到的所有的选项,内容如下:
serial /dev/ttyS0 使用串口heartbeat - 如果你不使用串口heartbeat, 你必须选择其它的介质,比如以太网bcast (ethernet) heartbeat。如果你使用其它串口heartbeat,修改/dev/ttyS0 为其它的串口设备。
watchdog /dev/watchdog 可 选项:watchdog功能提供了一种方法能让系统在出现故障无法提供"heartbeat"时,仍然具有最小的功能,能在出现故障1分钟后重启该机器。这个功能可以帮助服务器在确实停止心跳后能够重新恢复心跳。如果你想使用该特性,你必须在内核中装入"softdog" 内核模块用来生成实际的设备文件。想要达到这个目的, 首先输入 "insmod softdog" 加载模块。然后,输入"grep misc /proc/devices" 注意显示的数字 (should be 10). 然后, 输入"cat /proc/misc | grep watchdog" 注意输出显示出的数字(should be 130)。现在你可以生成设备文件使用如下命令:"mknod /dev/watchdog c 10 130" 。
bcast eth1 指定使用的广播heartbeat 的网络接口eth1(修改为eth0, eth2, 或你所使用的接口)
keepalive 2 设置心跳间隔时间为2两秒。
warntime 10 在日志中发出最后心跳"late heartbeat" 前的警告时间设定。
deadtime 30 在30秒后明确该节点的死亡。
initdead 120 在一些配置中,节点重启后需要花一些时间启动网络。这个时间与"deadtime"不同,要单独对待。至少是标准死亡时间的两倍。
hopfudge 1 可选项: 用于环状拓扑结构,在集群中总共跳跃节点的数量。