- 论坛徽章:
- 0
|
大家好,希望大家能一起帮我解决问题,主要想实现WEB负载均衡,谢谢。(目前都是在虚拟机上进行试验)
lvs_dr1:192.166.5.175协调服务器
lvs_dr2:192.166.5.202 备份服务器
VIP:192.166.5.250 虚拟IP
lvs_real1:192.166.5.200 应用服务器1
lvs_real2:192.166.5.201
前已经安装了 ipvs 和keepalived 在应用服务器上也配置了脚本
也可以实现负载均衡
在lvs_dr1上keepalived.conf 的配置如下:
global_defs {
# notification_email {
# cnseek@gmail.com
# }
# notification_email_from sns-lvs@gmail.com
# smtp_server 127.0.0.1
# smtp_connect_timeout 30
router_id LVS_DEVEL
}
# 20081013 written by aa
# 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 {
192.166.5.250
}
}
virtual_server 192.166.5.250 80 {
delay_loop 6 #(每隔10秒查询realserver状态)
lb_algo wlc #(lvs 算法)
lb_kind DR #(Direct Route)
persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver)
protocol TCP #(用TCP协议检查realserver状态)
real_server 192.166.5.200 80 {
weight 3 #(权重)
TCP_CHECK {
connect_timeout 10 #(10秒无响应超时)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.166.5.201 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
在备份服务器上lvs_dr2 keepalived。conf主要做以上两点修改即可
应用服务器上的脚本配置如下:
SNS_VIP=192.166.5.250
/etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast 192.166.5.254
/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
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
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
以上就是我所作的热备份负载均衡。
现在的存在的问题是:
1.如果应用到WEB上,是否这5个IP都要换为公网IP且在一个物理网段上(采用LVS/DR)
2.在测试的时候,当我在地址栏上输入:http://192.166.5.250(VIP)时,出现的页面是 显示该页无法刷新 那个页面。再刷新一次,就可以到应用服务器上。为什么会出现 该页无法刷新的页面,是我配置哪里错误了吗?
3.目前采用wlc算法,权值分别为3(应用服务器1)和1(应用服务器2 )。我输入http://192.166.5.250(VIP)时,首先进入的都是权值为1的应用服务器上,为什么呢?(我也删除了COOKIES)
4.在测试的时候,有的时候会出现 在lvs_dr上 输入:ipvsadm -l 时 里面的值都是0 不变的,但是输入VIP,可以在两台应用服务器上实现轮调,为什么有的时候值都是0 还有情况是 值的变化 不随我刷新的页面的次数变?
5.在输入ipvsadm -l -c 时 为什么 显示FIN_WAIT和NONE很多,但ESTABLISH很少?还搞不清楚FIN_WAIT是什么意思?
6.关于负载均衡的算法,在keepalive.conf里面 有写,但是我不清楚 这个都是根据自己的需要来修改吗? 如果是这样的话,那权值也都是手动来修改吗?(我看有资料说,权值是可以自动修改的,我在测试时没发现)
7.如果把这个应用的话,我怎么可以在真实环境下进行测试,这个在网上搜索到的关于压力测试方面的资料很少,请指点一下。
谢谢,希望大家一起讨论,解决这些困扰我的问题 |
|