- 论坛徽章:
- 0
|
环境:
Rserver1:192.168.0.196
Rserver2:192.168.0.172
vip:192.168.0.18
Dserver:192.168.0.238
先说问题.我看了好多人问过目前好像没有解决
我用vmware来做测试,发现一切日志正常,但是问题来了...在ipvsadm做测试wrr调度法,权重都为1的时候,当使用vip访问会调度到r1上面,再刷..还是r1....但等过一段时间后再会变r2...
dserver配置命令如下:
ifconfig eth0:0 192.168.0.18 netmask 255.255.255.0 up
ipvsadm -At 192.168.0.18:80 -s wrr
ipvsadm -at 192.168.0.18:80 -r 192.168.0.172 -g -w 1
ipvsadm -at 192.168.0.18:80 -r 192.168.0.196 -g -w 1
两个rserver都跑脚本来配置如下:- cat lvs_dr_RS.sh
- #!/bin/bash
- #
- # Script to start LVS DR real server.
- # chkconfig: - 90 10
- # description: LVS DR real server
- #
- . /etc/rc.d/init.d/functions
- VIP=192.168.0.18
- host=`/bin/hostname`
- case "$1" in
- start)
- # Start LVS-DR real server on this machine.
- /sbin/ifconfig lo down
- /sbin/ifconfig lo 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
- /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
- /sbin/route add -host $VIP dev lo:0
- ;;
- stop)
- # Stop LVS-DR real server loopback device(s).
- /sbin/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
- ;;
- status)
- # Status of LVS-DR real server.
- islothere=`/sbin/ifconfig lo:0 | grep $VIP`
- isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
- if [ ! "$islothere" -o ! "isrothere" ];then
- # Either the route or the lo:0 device
- # not found.
- echo "LVS-DR real server Stopped."
- else
- echo "LVS-DR real server Running."
- fi
- ;;
- *)
- # Invalid entry.
- echo "$0: Usage: $0 {start|status|stop}"
- exit 1
- ;;
- esac
复制代码 第2个问题就是我用结合了keepalived与ipvsadm来做lvs高可用,遇到的问题是当使用vip访问会调度到r1上面,再刷..还是r1....但等过一段时间后再会变r2...,但是如果我把正在被访问的一个rserver的httpd关掉的话,可以在日志跟ipvsadm -Ln 看到正常的被剔除..可这时候在用vip再访问的时候就没办法访问了,要等一段时间才可以调度到另外一个rserver上面......在keepalived切换上没有半点问题.目前与ipvsadm问题一样都是不会在两个rserver之前来回切...配置如下
rserver配置脚本还是上面那一个.
keepalived的配置文件我贴出一个吧.因为backup那个只改了backup跟粘性值..
keepalived.conf如下- cat keepalived.conf
- ! Configuration File for keepalived
- global_defs {
- notification_email {
- root@localhost
- }
- 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 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- 192.168.0.18/24 dev eth0 label eth0:0
- }
- }
- virtual_server 192.168.0.18 80 {
- delay_loop 6
- lb_algo wrr
- lb_kind DR
- nat_mask 255.255.255.0
- protocol TCP
- real_server 192.168.0.196 80 {
- weight 1
- HTTP_GET {
- url {
- path /
- status_code 200
- }
- connect_timeout 3
- nb_get_retry 3
- delay_before_retry 3
- }
- }
- real_server 192.168.0.172 80 {
- weight 1
- HTTP_GET {
- url {
- path /
- status_code 200
- }
- connect_timeout 3
- nb_get_retry 3
- delay_before_retry 1
- }
- }
- notify_master "/etc/keepalived/notify.sh master 192.168.0.18"
- notify_backup "/etc/keepalived/notify.sh backup 192.168.0.18"
- notify_fault "/etc/keepalived/notify.sh fault 192.168.0.18"
- }
复制代码 |
|