免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3094 | 回复: 2
打印 上一主题 下一主题

(原创)Linux下LVS+Keepalived实现HA和Load balancing [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-08 16:14 |只看该作者 |倒序浏览
一.环境介绍:
Master:Centos5.2  
Backup:Centos5.2  
RealServer1:RHEL5 (安装有apache2.2)
RealServer2:RHEL5  (安装有apache2.2)
VIP:192.168.3.241
RealServer1:192.168.3.160
RealServer2:192.168.3.170
用到的软件包:
ipvsadm-1.24.tar.gz
官方网址:
http://www.linuxvirtualserver.org
keepalived-1.1.15.tar.gz
官方网址:
http://www.keepalived.org

首先在master上
二.安装ipvsadm
ln -s /usr/src/kernels/2.6.18-92.1.18.el5-i686 /usr/src/linux
tar -zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make && make install
三.安装keepalived
tar -zxvf keepalived-1.1.15.tar.gz
cd keepalived-1.1.15
./configure -prefix=/usr/local/keepalived
make && make install

四.修改keepalived的配置文件
! Configuration File for keepalived
global_defs {
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 3
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.3.241
    }
}
virtual_server 192.168.3.241 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP
real_server 192.168.3.160 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
}
real_server 192.168.3.170 80 {
        weight 1
        TCP_CHECK{
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
}
}
注:备机上也安装ipvsadm和keepalied只不过BACKUP的keepalived的配置文件和以上基本一样只需要将state MASTER 改为state BACKUP即可.
五.启动keepalived
/usr/local/keepalived/sbin/keepalived -D -f
/usr/local/keepalived/etc/keepalived/keepalived.conf
六.RealServer的配置忽略Client 对VIPMAC地址的ARP请求
#!/bin/sh
#filename:lvs-dr.sh
VIP=192.168.3.241
/etc/rc.d/init.d/functions
case "$1" in
start)
echo "Start LVS of RealServer"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
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
;;
stop)
/sbin/ifconfig lo:0 down
echo "Stop LVS of RealServer"
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 "Usage:$0{start|stop}"
exit 1
esac
两台RealServer上都启动该脚本 ./lvs-dr start
七.测试RealServer部分
为了正好的说明问题。我在RealServer1上也就是192.168.3.160的apache的主页显示3.160
在RealServer2上也就是192.168.3.170的apache主页上显示3.170
现在用不同的机器访问
http://192.168.3.241
如果出现3.160或3.170说明正常.现在断开其中一台
的网线,再次访问都出现为同一页面则为正常。
八.测试主备部分
断掉BACKUP机器的网线.再次访问
http://192.168.3.241
看是否正常如果正常访问说明成功切换.
也可以用在主备机上用ipvsadm -l查看连接状态,哪个有连接状态说明哪个机器正在起作用。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/30312/showart_1685997.html

论坛徽章:
0
2 [报告]
发表于 2009-01-08 13:25 |只看该作者
刚刚按照上述步骤进行LVS+KEEPALIVED的安装配置,但是访问VIP时出现"无法显示网页"现象.

我是安装上面的步骤来的,我来说一下我配置的环境:


1.Master: centos5.2
Backup: 没有.  先用一台LVS+KEEPALIVED做为负载均衡器

realserver1:   centos5.2  (安装有httpd-2.2.9)  
realserver2:   centos5.2  (安装有httpd-2.2.9)


VIP:192.168.1.183
realserver1:192.168.1.181
realserver2: 192.168.1.96


2.keepalived的配置文件如下:

[root@test-server keepalived]# more keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
     state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 3
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.183/24
    }
}
virtual_server 192.168.1.183 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP
real_server 192.168.1.181 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
}
real_server 192.168.1.96 80 {
        weight 1
        TCP_CHECK{
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
}
}


3.然后启动keepalived.
用ipvsadm -ln命令查看也是正常的
[root@test-server 01]# ipvsadm -ln
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddressort Scheduler Flags
  -> RemoteAddressort           Forward Weight ActiveConn InActConn
TCP  192.168.1.183:80 rr persistent 50
  -> 192.168.1.96:80              Route   1      0          0         
  -> 192.168.1.181:80             Route   1      0          0      


但是访问http://192.168.1.183出现"无法显示网页"现象.好像keepalived没有将请求转过去


请有配置成功过的高手赐教!!thanks

论坛徽章:
0
3 [报告]
发表于 2014-02-18 14:32 |只看该作者
你的realserver的loop是否绑定了vip地址?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP