- Notifications
You must be signed in to change notification settings - Fork1
vincentbernat/ip_vs_csh
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
☠️ There is abetter version of this module ready to be merged inthe kernel (to appear in 4.18). Abackport is available.
Based onGoogle's Maglev algorithm, this scheduler builds alookup table in a way disruption is minimized when a changeoccurs. This helps in case of active/active setup withoutsynchronization. Like for classic source hashing, this lookup table isused to assign connections to a real server.
Both source address and port are used to compute the hash (unlike shwhere this is optional).
Weights are correctly handled. Unlike sh, servers with a weight of 0are considered as absent. Also, unlike sh, when a server becomesunavailable due to a threshold, no fallback is possible: doing sowould seriously impair the the usefulness of using a consistent hash.
The value of 65537 for the hash table size is currently not modifiableat compile-time. This is the value suggested in the Maglevpaper. Another possible value is 257 (for small tests) and 655373 (forvery large setups).
This is an out-of-tree module. Just typemake
and you should get anip_vs_csh.ko
file. You can useinsmod
to load it. If your kernelsource are in a non-standard place, usemake KDIR=...
.
There is no option for this scheduler. You can use it by its name:
ipvsadm -A -t 203.0.113.15:80 -s cshipvsadm -a -t 203.0.113.15:80 -r 10.234.79.11:80 -mipvsadm -a -t 203.0.113.15:80 -r 10.234.79.12:80 -mipvsadm -a -t 203.0.113.15:80 -r 10.234.79.13:80 -m -w 2