|
|
|
|
||||||
| comp.protocols.tcp-ip TCP and IP network protocols. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
This is regarding the load balancing/sharing across the servers.
Assume I have the following in my setup: - clients: C-1, C-2, ..., C-m - 1 load sharing server(LSS) - Servers: S-1, S-2, ...., S-n Here are my requirements: - The load sharing should be done across the servers(S-1,...S-n) only based on the number of connections(and not based on the number,size of the requests etc. ) towards them. - The clients use only one IP address for all the requests(including for fetching new connections). - Only the initial connecting 'Bind' request should go via the LSS. The LSS assigns one of the servers which has less number of connections towards it(round-robin if all the servers have equal connections). For this, the LSS maintains a table for keeping the number of connections towards each of the servers. - Once the server is assigned, the requests from the clients should be sent directly to the designated Server. - Complete routing steps(initial bind requests via LSS; further application requests to server directly) should be transparent to the Clients. - If a connection to the server fails, the client retries to get a new connection. Now, this request should be transparently sent to the LSS and the same cycle repeats. I would like to use such a load sharing mechanism, as I personally feel it is simply a performance overhead to route the application requests via the LSS, when the load sharing is done only based on the number of connections. Is it possible to implement such a load sharing mechanism using any of the routing protocols(E.g.VRRP)? |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
qazmlp1209@rediffmail.com wrote: > This is regarding the load balancing/sharing across the servers. > > Assume I have the following in my setup: > - clients: C-1, C-2, ..., C-m > - 1 load sharing server(LSS) > - Servers: S-1, S-2, ...., S-n > > Here are my requirements: > - The load sharing should be done across the servers(S-1,...S-n) only > based on the number of connections(and not based on the number,size of > the requests etc. ) towards them. > - The clients use only one IP address for all the requests(including > for fetching new connections). > - Only the initial connecting 'Bind' request should go via the LSS. The > LSS assigns one of the servers which has less number of connections > towards it(round-robin if all the servers have equal connections). For > this, the LSS maintains a table for keeping the number of connections > towards each of the servers. > - Once the server is assigned, the requests from the clients should be > sent directly to the designated Server. > - Complete routing steps(initial bind requests via LSS; further > application requests to server directly) should be transparent to the > Clients. > - If a connection to the server fails, the client retries to get a new > connection. Now, this request should be transparently sent to the LSS > and the same cycle repeats. > > I would like to use such a load sharing mechanism, as I personally feel > it is simply a performance overhead to route the application requests > via the LSS, when the load sharing is done only based on the number of > connections. > > Is it possible to implement such a load sharing mechanism using any of > the routing protocols(E.g.VRRP)? Your big problem is going to be moving the active end of a TCP connection from the LSS to the target server. I've seen something like this possible in some cluster configurations (at least between nodes in the cluster), but not in a general environment. In the configuration you're describing, the LSS is usually a proxy or NAT device, and that's the way it manages to keep the connections straight. But why not do DNS based load balancing. Hand out a resolution with a short TTL to the least loaded server. If the server fails, stop handing out that address, and when the client retries, it'll get a new one. |
|
![]() |
| Outils de la discussion | |
|
|