How to gracefully take a real server out of service?


When a real server is disabled, it appears that all of the currently-open connections to it get dropped.

Is there a way to gracefully remove a real server from service, allowing open sessions to complete but not sending any new clients to it?

1 comment

James Rago -- K360 Technical Product Manager Official comment

LoadMaster has drain stopping support both at L4 and L7. Disabling Real Servers will not “tear down” established TCP/IP connections, allowing clients to naturally close out the connection. LoadMaster 5.0 has the same Layer 4 drain stopping behavior, but now in addition also offers L7/Application drain stopping, so that you can now lengthen the drain stopping window past the TCP connection. L7 drain stopping allows established L7 persistence entries to remain active for a defined interval, allowing users to complete their application activity before off-lining the Real Server
Connection draining a Real Server:
Navigate to the global Real Servers panel to disable a server or to the individual Virtual Server to isolate a specific instance.
Disable the appropriate Real Server(s)
Navigate to the Statistics panel
Select the "Virtual Services" or the “Real Server” button
Monitor the connection history counts until you determine you can safely offline the Real Server
To enable L7/Application layer drain stopping set the time by navigating to System Configuration -> Miscellaneous Options -> L7 Configuration -> L7 Connection Drain Time (secs)
Set the L7 connection drain time to be more than or equal to the largest Virtual Service persistence time.

I'd like to note that while we recommend that you make the drain time be greater than the persistence duration, it's not necessary.
The drain stop timeout can be shorter, but once the timeout ends any lingering connections and persistence entries for that server will be severed. Any users which were still persistent to that server will be redirected to a different real server. Setting the drain time to greater or equal to the longest persistence duration will prevent connections from being severed early.
If you would like to make sure all connections are severed at the end of the drain time, then you must enable " Drop at Drain Time End. This feature is located in L7 Configuration as well.
In either case, once the drain stop timeout ends, the server will be out of the pool and you can patch it at will. I hope this clarifies the issue.