Forum Discussion

Dog_23765's avatar
Dog_23765
Icon for Nimbostratus rankNimbostratus
Dec 16, 2009

LB::select forcing to use a subset of a particular pool

I am trying to see if it is possible to write an iRule where

 

 

1) (I know how to do this part) the HTTP header is parsed by the rule for a list of servers (all of these servers will be part of the default pool and there will be only one pool).

 

 

2) (i dont know how to do this) in the LB_SELECT event i would tell the F5 to LB::reselect if the selected server was not in the list passed in the HTTP headers. In this case, i want to send the F5 a hint that only choose from this subset of the pool.

 

 

i am basically trying to make a dynamic pool based on data which changes too often to make using iControl a good solution.

 

 

I could have the F5 keep calling reselect until it gets a server in the list- but that seems like a bad idea

 

 

Thanks

 

4 Replies

  • Hi,

     

     

    Is the HTTP header consistent for all clients at that instant? Or is the member list specific to that session or request?

     

     

    What load balancing algorithm are you currently/do you want to use?

     

     

    Does the application require persistence? If so, which persistence method are you currently/do you want to use?

     

     

    Thanks,

     

    Aaron
  • Hi- thanks for the response.

     

     

     

    1) Is the HTTP header consistent for all clients at that instant? Or is the member list specific to that session or request?

     

     

     

    No- the HTTP header (with the list of servers) would be dependent on whatever server first took the response. Basically the first request into the farm can go to any server, that server then looks at the URL to determine which subset of servers is best to respond. it redirects to the client which then makes another request back- but this time it should only go to one of the recommended servers

     

     

     

    2) What load balancing algorithm are you currently/do you want to use?

     

     

    i wanted to use the predictive model where it looks at previous response times/connections to determine what server should get the connection. worst case if i need to do round robin then i can just do it within the server code.

     

     

    3) Does the application require persistence? If so, which persistence method are you currently/do you want to use?

     

     

    Yes, it does, i use the cookie insert method but can use any of the other ones (except SSL)

     

     

     

    thanks
  • That's interesting and a bit unusual in that the servers are specifying at various points one or more servers that the client should be sent to for subsequent requests.

     

     

    Is this process always the same (ie, all clients make a request to some start URI and then the initial server sends a list of suggested servers for the next request to be sent to)?

     

     

    Does the server list change over the course of the client's session? If so, would you still want LTM to persist the client for all but the initial request? What would you want to happen if the previous server wasn't in the list of suggested servers for the next request?

     

     

    Also, out of curiosity, is it an HTTP header or a cookie that the servers insert the data into? If a header, is it a custom client or a standard browser?

     

     

    Thanks,

     

    Aaron
  • 1) Is this process always the same (ie, all clients make a request to some start URI and then the initial server sends a list of suggested servers for the next request to be sent to)?

     

     

    Yes- they all make a request to a start URL, and then based on the processing of that request, the server determines that the client should be processed on one of X servers. now once that logic has happened, the rest of the client's interactions will be with the same server (ie it doesnt keep bouncing them)

     

     

    2) Does the server list change over the course of the client's session?

     

     

    no- the list doesnt change, it would just be for the start URL that we do this logic to create the list.

     

     

    3) If so, would you still want LTM to persist the client for all but the initial request?

     

     

    right

     

     

     

    4) What would you want to happen if the previous server wasn't in the list of suggested servers for the next request?

     

     

    it shouldnt matter, after the first server generates the list and hands the list to F5 to figure out which server in the list should own the client, the first server isnt part of the process

     

     

    5) Also, out of curiosity, is it an HTTP header or a cookie that the servers insert the data into? If a header, is it a custom client or a standard browser?

     

     

    i planned on a cookie but i think the irule could parse the info out if it were in a custom header as well. The client would also be a standard browser

     

     

    thanks again