一、软件包安装
[root@localhost ~]# rpm -qa|grep heart
heartbeat-ldirectord-2.1.3-3.el5.centos
heartbeat-pils-2.1.3-3.el5.centos
heartbeat-stonith-2.1.3-3.el5.centos
heartbeat-2.1.3-3.el5.centos
[root@localhost ~]# rpm -qa|grep ipvs
ipvsadm-1.24-10
[root@localhost ~]# rpm -qa|grep arp
arptables-noarp-addr-0.99.2-1.rh.el.um.1
arptables_jf-0.0.8-8
[root@localhost ~]# rpm -qa|grep perl-Mail
perl-Mail-POP3Client-2.17-1.el5.centos
perl-MailTools-1.77-1.el5.centos
[root@localhost ~]# cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
[root@localhost ~]# cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
[root@localhost ~]# cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/
[root@localhost ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf /etc/ha.d/
二、LVS IPIP模式配置
1)加载ipip模块
[root@LVS-master ~]# modprobe ipip
[root@LVS-master ~]# lsmod |grep ipip
ipip 14501 0
tunnel4 7365 1 ipip
2)调度器配置
[root@LVS-master ~]# ifconfig tunl0 192.168.2.253 broadcast 192.168.2.253 netmask 255.255.255.255 up
添加路由
[root@LVS-master ~]# route add -host 192.168.2.253 dev tunl0
设置调度方法
[root@LVS-master ~]# ipvsadm -A -t 192.168.2.253:8601 -s lc
设置RS
[root@LVS-master ~]# ipvsadm -a -t 192.168.2.253:8601 -r 192.168.2.123 -i
[root@LVS-master ~]# ipvsadm -a -t 192.168.2.253:8601 -r 192.168.2.124 -i
[root@LVS-master ~]# ipvsadm -a -t 192.168.2.253:8601 -r 192.168.2.122 -i
查看配置连接
[root@LVS-master ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.123:8601 lc
-> 192.168.2.122:8601 Tunnel 1 0 0
-> 192.168.2.124:8601 Tunnel 1 0 0
-> 192.168.2.123:8601 Tunnel 0 0 0
删除真实机器
ipvsadm -d -t 192.168.2.253:8601 -r 192.168.2.120
3)真实服务器配置
[root@localhost ~]# modprobe ipip
[root@localhost ~]# lsmod |grep ipip
ipip 14501 0
tunnel4 7365 1 ipip
[root@localhost ~]# ifconfig tunl0 192.168.2.253 netmask 255.255.255.255 broadcast 192.168.2.253 up
[root@localhost ~]# route add -host 192.168.2.253 dev tunl0
echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
4)确认是否成功
至此一个LVS已经配置好可以使用正常的访问方法去确认配置是否有效
三、HEARTBEAT配置---此软件可实现热lvs的热备及lvs的配置管理,替代上述手工使用ipvsadm配置
配置ldirectord
[root@LVS-master ~]# vi /etc/ha.d/ldirectord.cf
checktimeout=3 #超时间隔为秒
checkinterval=1
autoreload=yes #是否自动重载
logfile="/var/log/ldirectord.log"
quiescent=yes #为yes时,设置真实机器权值为0即不可达,设置为no时,则删除不可达的真实机器
virtual=192.168.2.253:8601
real=192.168.2.122:8601 ipip 1 #ipip为tun模式gate为DR模式 1为权值不设置时权值为1
real=192.168.2.123:8601 ipip
real=192.168.2.124:8601 ipip
# fallback=127.0.0.1:80 gate #是否设置当真实机器全部不可达时,由其它机器接替
scheduler=wlc #调度方法加权最少链接
protocol=tcp
# checktype=negotiate
checktype=connect #检测端口是否可达
checkport=8601
注:此服务可代替上面的第三个步骤配置LVS的调度器
多个调度如下实例:每个调度后面都一个轮叫算法,如果没有调度器会使用默认调度算法
#SH_level2
virtual=192.168.2.253:8601
real=192.168.2.120:8601 ipip 1
real=192.168.2.125:8601 ipip
real=192.168.2.126:8601 ipip
real=192.168.2.27:8601 ipip
real=192.168.2.77:8601 ipip
scheduler=lc
#SHZ_level2
virtual=192.168.2.252:8601
real=192.168.2.74:8601 ipip
real=192.168.2.75:8601 ipip
scheduler=wlc
heartbeat冗余配置文件文件配置
[root@LVS-master ~]# vi /etc/ha.d/authkeys
auth 2
#1 crc
2 sha1 thssee10jqka
#3 md5 Hello!
配置认证为sha安全性最高的,1的认证是明码,2的是秘钥,3的是md5加密
[root@LVS-master ~]# chmod 600 /etc/ha.d/authkeys
警告:如果你不能使用chmod命令修改这个文件的安全属性,Heartbeat程序将不能启动,它会在/var/log/messages文件中产生记录,提示你没有正确设置这个文件的安全属性。
[root@LVS-master ~]# vi /etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120 #此时间为deadtime的两倍,这个时间会导到heartbeat主刚启动时服务起来慢,主可以设置时间短些
udpport 694 #开放防火墙694端口
baud 19200
bcast eth0 # Linux #采用udp广播来通知心跳
mcast eth0 225.0.0.1 694 1 0 #采用udp多播来通知心跳,建议主副使用
ucast eth0 192.168.2.121 #eth0的IP,此处从为从的IP
auto_failback on #主节点恢复后,是否自动切回,主可设置恢复后切回,从设置为off
watchdog /dev/watchdog #看门狗,如果本节点在超过一分钟后还没有发出心跳,那么本节点自动重启
node LVS-master #与uname -n保持一致,第一个为主节点,第二个为副节点
node LVS-slave
ping_group group1 192.168.2.121 192.168.2.127
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=root uid=root
haresources配置
haresources脚本调用路径是/etc/ha.d/resource.d/
[root@localhost ~]# vi /etc/ha.d/haresources
LVS-master tunip
# LVS-master为节点名与uname -n相同tunip为脚本,这个文件是heartbeat启动后会调用tunip这个脚本,当start时则向该脚本传递一个start参数,当为stop时则向该脚本传递一个stop参数,如果该脚本没有接收stop参数时,而在使用heartbeat stop时,会导致系统重启完成heartbeat的关闭,如下日志
Oct 2 22:50:57 localhost ResourceManager[10966]: info: Retrying failed stop operation [IPaddr2::192.168.3.254/24/tunl0]
Oct 2 22:50:57 localhost ResourceManager[10966]: info: Running /etc/ha.d/resource.d/IPaddr2 192.168.3.254/24/tunl0 stop
Oct 2 22:50:58 localhost IPaddr2[12083]: INFO: ip -f inet addr delete 192.168.3.254/24 dev tunl0
Oct 2 22:50:58 localhost IPaddr2[12054]: ERROR: Generic error
Oct 2 22:50:58 localhost ResourceManager[10966]: ERROR: Return code 1 from /etc/ha.d/resource.d/IPaddr2
Oct 2 22:50:58 localhost IPaddr2[12142]: INFO: Running OK
Oct 2 22:50:58 localhost ResourceManager[10966]: CRIT: Resource STOP failure. Reboot required!
Oct 2 22:50:58 localhost ResourceManager[10966]: CRIT: Killing heartbeat ungracefully!