LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Feature of ldirectord doesn't take virtual hosts into account?

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Feature of ldirectord doesn't take virtual hosts into account?
From: "lists@xxxxxxxxxx" <lists@xxxxxxxxxx>
Date: Mon, 03 Apr 2006 19:51:48 +0100
I think I've run into a problem with the feature of ldirectord that only
checks a real servers status once (even if it occurs in multiple virtual 
servers)
Waiver:Not convinced because a similar set up seemed to work.

With the following config where only wwwtest.blast.com is set to weight=0..
ALL of the 192.168.3.60:80 servers in all of the VIPs go offline!
Tested in v1.99 & v1.132

Debug shows:
DEBUG3: Already checked: real 
server=negotiate:http:tcp:192.168.3.60:80:80:1:\/test\/lb\.aspx:Running 
(virtual=tcp:192.168.3.82:80)
DEBUG3: Already checked: real 
server=negotiate:http:tcp:192.168.3.70:80:80:1:\/test\/lb\.aspx:Running 
(virtual=tcp:192.168.3.82:80)
DEBUG3: Already checked: real 
server=negotiate:http:tcp:192.168.3.60:80:80:1:\/test\/lb\.aspx:Running 
(virtual=tcp:192.168.3.83:80)
DEBUG3: Already checked: real 
server=negotiate:http:tcp:192.168.3.70:80:80:1:\/test\/lb\.aspx:Running 
(virtual=tcp:192.168.3.83:80)
DEBUG3: Already checked: real 
server=negotiate:http:tcp:192.168.3.60:80:80:1:\/test\/lb\.aspx:Running 
(virtual=tcp:192.168.3.84:80)
DEBUG3: Already checked: real 
server=negotiate:http:tcp:192.168.3.70:80:80:1:\/test\/lb\.aspx:Running 
(virtual=tcp:192.168.3.84:80)



checktimeout=5
checkinterval=10
quiescent=no
fallback=127.0.0.1:80
autoreload=yes
callback="/etc/ha.d/sync"
virtual=192.168.3.80:80 gate
real=192.168.3.60:80 gate 0 real=192.168.3.70:80 gate 1 fallback=127.0.0.1:80
        service=http
        checktype=negotiate
        checkport=80
        request="/test/lb.aspx"
        receive="Running"
        virtualhost="wwwtest.blast.com"
        scheduler=wlc
        netmask=255.255.255.255
        protocol=tcp
virtual=192.168.3.81:80 gate real=192.168.3.60:80 gate 1 real=192.168.3.70:80 gate 1 fallback=127.0.0.1:80
        service=http
        checktype=negotiate
        checkport=80
        request="/test/lb.aspx"
        receive="Running"
        virtualhost="asastest.blast.com"
        scheduler=wrr
        netmask=255.255.255.255
        protocol=tcp
virtual=192.168.3.82:80 gate real=192.168.3.60:80 gate 1 real=192.168.3.70:80 gate 1 fallback=127.0.0.1:80
        service=http
        checktype=negotiate
        checkport=80
        request="/test/lb.aspx"
        receive="Running"
        virtualhost="tracktest.blast.com"
        scheduler=wrr
        netmask=255.255.255.255
        protocol=tcp
virtual=192.168.3.83:80 gate real=192.168.3.60:80 gate 1 real=192.168.3.70:80 gate 1 fallback=127.0.0.1:80
        service=http
        checktype=negotiate
        checkport=80
        request="/test/lb.aspx"
        receive="Running"
        virtualhost="mpsatest.blast.com"
        scheduler=wrr
        persistent=300
        netmask=255.255.255.255
        protocol=tcp
virtual=192.168.3.84:80 gate real=192.168.3.60:80 gate 1 real=192.168.3.70:80 gate 1 fallback=127.0.0.1:80
        service=http
        checktype=negotiate
        checkport=80
        request="/test/lb.aspx"
        receive="Running"
        virtualhost="apptest.blast.com"
        scheduler=wrr
        netmask=255.255.255.255
        protocol=tcp
Ps. I think this is the code that effects it?
                        REAL: foreach my $r (@$real) {
                                my $real_id = get_real_id_str($r, $v);
                                foreach my $tmp_id (@real_checked) {
                                        if($real_id eq $tmp_id) {
                                                &ld_debug(3, "Already checked: real 
server=$real_id (virtual=$virtual_id)");
                                                next REAL;
                                        }
                                }
Thanks in advance for any help..
Regards,
Malcolm Turnbull.



<Prev in Thread] Current Thread [Next in Thread>