[lvs-users] Directly modifying the persistance templates in the kernel

Funktionskonto, Funktionskonto funktionskonto at spenneberg.net
Thu Aug 16 15:30:10 BST 2012


we are using LVS for some time now very successfully. Until now we just 
used the ipvsadm command and no backend monitoring via tools like 
Currently we have these requirements which may be fulfilled using 
1. Adding and Removing realservers
2. Changing the weight of realservers

For technical reasons some applications have a persistance time of 8 
hours. For maintenance we usually edit the weight of the corrensponding 
realserver to 0 and wait for the persistant connections to time out over 
night. Current users can still work for the day. In emergency situations 
we remove the realserver immedietly and all persistant clients are 
redirected to new real servers.

No we would like to move to ldirectord with backend monitoring. So far 
we have tested and established the fact, that we can still use ipvsadm 
to manually modify the weight of the real server. Ldirector apparently 
does not mess with the weight as long as the state of the real server 
does not change (becomes unavailable).

For maintenance we created a maintenance directory and set 
"quiescent=yes" in Ldirectord. When putting a realserver in maintenance 
mode we just create the appropiate file in the maintenance directory and 
the Ldirectord sets the weight to 0. New connections will be delegated 
to different realservers and the old persistant connections time out 
over night.

Now the problem:
We can still remove the real server with ipvsadm manually. This would 
ensure that even the persistant connections are dropped. Unfortunately 
Ldirectord adds the server again to the virtual server with a weight of 
0. The persistant connections therefore still go on.
Therefore I would like to actually remove the persistance template and 
all connections of a specific realserver from the kernel table similar 
to the way the conntrack tool/library allows modifications of the kernel 
connection tracking table.

Modifying the ldirector configuration is possible but much more 
complicated on a complex loadbalancer serving several hundred real 

Any ideas?


More information about the lvs-users mailing list