LVS+Heartbeat 安装笔记
2010-08-10
物理机:Dell 2950 环境: VIP 192.168.0.210 DS 192.168.0.211(master) 192.168.0.212(backup) RS 192.168.0.215 192.168.0.216 操作系统: vmware ESXi CentOS 4.6 x86_64 需要软件 libnet-1.1.2.1.tar.gz ipvsadm-1.24.tar.gz heartbeat-2.0.2.tar.gz LVS工作方式:DR(Direct Route)
架构图:
[![](http://192.168.1.238/wp- content/uploads/2010/08/LVS.jpg)](http://192.168.1.238/wp- content/uploads/2010/08/LVS.jpg)
DS配置:
tar xzvf libnet-1.1.2.1.tar.gz
cd libnet
./configure
make && make install
tar xzvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
ln -s /usr/src/kernels/2.6.9-67.EL-largesmp-x86_64/ /usr/src/linux
make && make install
groupadd -g 694 haclient
useradd -g haclient -d /dev/null -s /sbin/nologin -u 694 hacluster
tar xzvf heartbeat-2.0.2.tar.gz
cd heartbeat-2.0.2
./ConfigureMe configure
make && make install
cp doc/{authkeys,ha.cf,haresources} /etc/ha.d/
cp ldirectord/ldirectord.cf /etc/ha.d/
ln -s /usr/sbin/ldirectord /etc/ha.d/resource.d/
chmod 600 /etc/ha.d/authkeys
chkconfig --add heartbeat
chkconfig heartbeat on
编辑配置文件:
vim /etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth0 192.168.0.212 #配置另一方IP
auto_failback off
node node1
node node2
ping_group group1 192.168.0.211 192.168.0.212
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
deadping 30
vim /etc/ha.d/ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes
logfile="/var/log/ldirectord.log"
logfile="local0"
quiescent=no
virtual=192.168.0.210:80
real=192.168.0.215:80 gate 2
real=192.168.0.216:80 gate 2
service=http
virtualhost=www.linux.com
scheduler=wrr
#persistent=600
#netmask=255.255.255.255
protocol=tcp
vim /etc/ha.d/haresources
node1 \
LVSSyncDaemonSwap::master \
IPaddr2::192.168.0.210/24/eth0/192.168.0.255 \
ldirectord::ldirectord.cf
vim /etc/ha.d/authkeys
auth 3
3 md5 Hello!
Real Server 配置:
tar xzvf arptables-v0.0.3-3.tar.gz
cd arptables-v.0.0.3-3
make && make install
#!/bin/bash
# chkconfig: 2345 90 10
# description: Preparing for Load Balancer and Real Server switching
VIP=192.168.0.210
LOCAL_IP=192.168.0.215
BROADCAST=192.168.0.255 #vip's broadcast
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo "reparing for Real Server"
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "0" > /proc/sys/net/ipv4/tcp_ecn
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "1" > /proc/sys/net/ipv4/tcp_synack_retries
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "0" > /proc/sys/net/ipv4/ip_forward
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $BROADCAST up
/sbin/route add -host $VIP dev lo:0
/usr/local/sbin/arptables -F
/usr/local/sbin/arptables -A INPUT -j DROP -d ${VIP}
/usr/local/sbin/arptables -A OUTPUT -j mangle -o eth0 -s ${VIP} --mangle-ip-s ${LOCAL_IP}
;;
stop)
echo "reparing for Load Balancer"
echo "1" > /proc/sys/net/ipv4/ip_forward
ifconfig lo:0 down
/usr/local/sbin/arptables -F
;;
*)
echo "Usage: lvs {start|stop}"
exit 1
esac