Forum Discussion

Rob_Eberhardt_1's avatar
Rob_Eberhardt_1
Historic F5 Account
Sep 25, 2006

Need help with intelligent re-loadbalancing

I've got a situation in which I need to round robin load balance requests between 2 server domains with 2 servers in each domain. Issue is, using persistence, in the case that one server fails in any domain - users that were on that failed server need to be flipped over to the other server in that same domain. If both servers in a single domain were to fail, then requests would be sent to the other domain. There's really not much of a unique identifier on the Domain servers outside of their IP addresses (i.e. no special ID's or unique replies upon requests) Here's an example:

 

 

 

Request 1 from Client 1 would goto Domain 1, Server A (standard Round Robin)

 

Request 2 from Client 2 would goto Domain 1, Server B (standard Round Robin)

 

Reuqest 3 from Client 3 would goto Domain 2, Server A (standard Round Robin)

 

Request 4 from Client 4 would goto Domain 2, Server B (standard Round Robin)

 

Request 5 from Client 4 would go back to Domain 2, Server B (source address persistence)

 

 

Then server B in Domain 2 fails

 

 

Request 6 from Client 4 would be sent to Domain 2, Server A (Keep request in the same domain, re-establish persistence to Server A)

 

 

Then server A in Domain 2 fails

 

 

Request 7 from Client 4 would be sent to next available server in Domain 1

 

 

So as of now, I have setup all 4 servers in a single pool with Round Robin Load balancing, source address persistence, and a basic HTTP monitor. This works for now, but I am a bit stumped on how to accomplish the intelligent re-load balancing in the case of a failure.

 

 

Many thanks in advance!
  • Perhaps you can configure the pools using priority load balancing with round robin.

     

     

    Pool_Domain_1 (Minimum of 1 Active Members at a time)

     

    Domain1ServerA Priority 100 (active)

     

    Domain1ServerB Priority 100 (active)

     

    Domain2ServerA Priority 50 (inactive)

     

    Domain2ServerB Priority 25 (inactive)

     

     

    Pool_domain_2 (Minimum of 1 Active Members in a pool active)

     

    Domain2ServerA Priority 100 (active)

     

    Domain2ServerB Priority 100 (active)

     

    Domain1ServerA Priority 50 (inactive)

     

    Domain1ServerB Priority 25 (inactive)

     

     

    In this scenerio of if Domain1serverA goes down requests are sent to Domain1serverB. If that goes down then Domain2ServerA is activated.

     

    In another scenerio if Domain2ServerA goes down, requests are sent to Domain2ServerB. If that does down then Domain1ServerA is activated.

     

     

    I hope this helps.

     

  • Just to add that if you have persistance turned on then the connections do not automatically return DomainNServerN, where N is a number, comes back up from being down. What it does is keeps new connections from forming and overtime sends it back to the original servers in the priority group.