系统 Centos 5.2
IP信息列表
名称 IP
- LVS-DR-Master 120.72.47.197
- LVS-DR-BACKUP 120.72.47.196
- LVS-DR-VIP 120.72.47.194
- WEB1-Realserver 120.72.47.195
- WEB2-Realserver 120.72.47.218
安装LVS和Keepalvied软件包
下载软件包
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz
首先检测内核版本
# uname -r
2.6.18-128.el5ln -s /usr/src/kernels/2.6.18-128.el5-i686/ /usr/src/linux
tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24make && make install
cd ..
tar zxvf keepalived-1.1.15.tar.gz
cd keepalived-1.1.15
#./configure && make && make install
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/sbin/keepalived /usr/sbin/
mkdir /etc/keepalived
LVS-DR-Master上配置keepalived.conf
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
- global_defs {
- notification_email {
- wvuu@msn.com
- }
- notification_email_from sns-lvs@gmail.com
- smtp_server 127.0.0.1
- # smtp_connect_timeout 30
- router_id LVS_DEVEL
- }
- # VIP1
- vrrp_instance VI_1 {
- state MASTER #备份服务器上将MASTER改为BACKUP
- interface eth0
- virtual_router_id 51
- priority 100 # 备份服务上将100改为99
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- 120.72.47.194
- #(如果有多个VIP,继续换行填写.)
- }
- }
- virtual_server 120.72.47.194 80 {
- delay_loop 6 #(每隔10秒查询realserver状态)
- lb_algo wrr #(lvs 算法)
- lb_kind DR #(Direct Route)
- persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver)
- protocol TCP #(用TCP协议检查realserver状态)
- real_server 120.72.47.195 80 {
- weight 3 #(权重)
- TCP_CHECK {
- connect_timeout 10 #(10秒无响应超时)
- nb_get_retry 3
- delay_before_retry 3
- connect_port 80
- }
- }
- real_server 120.72.47.218 80 {
- weight 3
- TCP_CHECK {
- connect_timeout 10
- nb_get_retry 3
- delay_before_retry 3
- connect_port 80
- }
- }
- }
LVS-DR-BACKUP上配置keepalived.conf
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
- global_defs {
- notification_email {
- wvuu@msn.com
- }
- notification_email_from sns-lvs@gmail.com
- smtp_server 127.0.0.1
- # smtp_connect_timeout 30
- router_id LVS_DEVEL
- }
- # VIP1
- vrrp_instance VI_1 {
- state BACKUP
- interface eth0
- virtual_router_id 51
- priority 99
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- 120.72.47.194
- }
- }
- virtual_server 120.72.47.194 80 {
- delay_loop 6
- lb_algo wrr
- lb_kind DR
- persistence_timeout 60
- realserver)
- protocol TCP
- real_server 120.72.47.195 80 {
- weight 3
- TCP_CHECK {
- connect_timeout 10
- nb_get_retry 3
- delay_before_retry 3
- connect_port 80
- }
- }
- real_server 120.72.47.218 80 {
- weight 3
- TCP_CHECK {
- connect_timeout 10
- nb_get_retry 3
- delay_before_retry 3
- connect_port 80
- }
- }
- }
Realserver脚本 (在两台WEB-Realserver上运行)
vi /usr/local/sbin/realserver.sh
#!/bin/bash
- # description: Config realserver lo and apply noarp
- SNS_VIP=120.72.47.194
- . /etc/rc.d/init.d/functions
- case "$1" in
- start)
- ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
- /sbin/route add -host $SNS_VIP dev lo:0
- 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
- sysctl -p >/dev/null 2>&1
- echo "RealServer Start OK"
- ;;
- stop)
- ifconfig lo:0 down
- route del $SNS_VIP >/dev/null 2>&1
- echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
- echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
- echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
- echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
- echo "RealServer Stoped"
- ;;
- *)
- echo "Usage: $0 {start|stop}"
- exit 1
- esac
- exit 0
至此全部安装完毕
启动Keepalvied
/etc/rc.d/init.d/keepalvied start
查看lvs服务是否正常
ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 120.72.47.194:80 wrr persistent 60
-> 120.72.47.195:80 Route 3 3 0
-> 120.72.47.218:80 Route 3 3 0
停Master服务器的keepalived服务,查看BAKCUP服务器是否能正常接管服务。