Disabling Back-end Servers for Maintenance
Avi Vantage provides a way to actively disable back-end servers for maintenance.
When a server is disabled for maintenance, Avi Vantage marks the server Disabled. Existing sessions are terminated immediately or allowed to end gracefully, either with a user-settable maximum timeout or with no timeout. The Graceful Disable Timeout parameter set for a pool governs how servers within the pool are disabled:
- Disable with immediate effect: All client sessions are immediately terminated. The pool’s Graceful Disable Timeout parameter must be set to 0.
- Gracefully disable with a finite timeout: No new sessions are sent to the server. Existing sessions are allowed to terminate on their own, up to the specified timeout. Once the timeout is reached, any remaining sessions are immediately terminated. The pool’s Graceful Disable Timeout parameter must be range from 1 to 7200 minutes.
- Gracefully disable with infinite timeout: No new sessions are sent to the server. All existing sessions are allowed to terminate on their own. The pool’s Graceful Disable Timeout parameter must be set to -1.
When servers are gracefully disabled, until all flows drain, the idle connections, if any, will be deleted immediately.
In-flight connections are closed at the end of a request for request-switched VS and at the end of a client connection for connection-switched virtual service.
When servers are gracefully disabled with a timeout value, the idle connections are closed immediately, while any busy or bound connection will be closed at the end of the timeout. Any exist request will be processed until the end of timeout. Any new requests, no matter it is coming from an exist connection or from a new connection, will be sent to a new server.
Setting a Pool’s Graceful Disable Timeout Parameter
Navigate to Applications > Pools to display a list of pools:
Identify the pool containing the servers whose timeout parameter is to be set, and click on the pencil icon at the right end of that pool’s row. The below editor will be displayed:
Set the Graceful Disable Timeout parameter to 0, -1, or within the range 1 to 7200 minutes, as described above.
Disabling a Server for Maintenance
- Navigate to Applications > Pools.
- Click on the pool name.
- Click on Servers.
- Click the checkbox next to the name of each server to disable.
- Click on the Disable button.
Note: Avi Vantage also can be configured to use information in the health-check responses from servers to detect when a server is in maintenance mode. For information, click here.
Prior to Avi Vantage version 21.1.1, when graceful disable timeout is configured along with persistence, persistence was not honoured for a server that is disabled.
Starting with Avi Vantage version 21.1.1, you can configure how the pool server should behave when it is disabled. This configuration can be made through the CLI via:
disallow_new_connection, to specify that a node or pool member allows existing connections to time out, but to not allow new connections as shown below:
configure pool <pool name> server_disable_type disallow_new_connection save
allow_new_connection_if_persistence_present, to disallows the allocation of new, connections with persistence disabled as shown below:
configure pool <pool name> server_disable_type allow_new_connection_if_persistence_present save
allow_new_connection_if_persistence_present is configured, if a disabled server is picked from the persist table, the timer is refreshed.
When disabled, the node or pool member continues to process persistent and active connections.
New connections can be accepted only if the connections belong to an existing persistent connection.
These persistence matches for new connections continue until persistence times out.