netfilter: ipvs: Add configurations of Maglev hashing
To build the maglev hashing scheduler, add some configuration to Kconfig and Makefile. - The compile configurations of MH are added to the Kconfig. - The MH build rule is added to the Makefile. Signed-off-by: Inju Song <inju.song@navercorp.com> Signed-off-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
Родитель
039f32e8cd
Коммит
30edf801d7
|
@ -225,6 +225,25 @@ config IP_VS_SH
|
||||||
If you want to compile it in kernel, say Y. To compile it as a
|
If you want to compile it in kernel, say Y. To compile it as a
|
||||||
module, choose M here. If unsure, say N.
|
module, choose M here. If unsure, say N.
|
||||||
|
|
||||||
|
config IP_VS_MH
|
||||||
|
tristate "maglev hashing scheduling"
|
||||||
|
---help---
|
||||||
|
The maglev consistent hashing scheduling algorithm provides the
|
||||||
|
Google's Maglev hashing algorithm as a IPVS scheduler. It assigns
|
||||||
|
network connections to the servers through looking up a statically
|
||||||
|
assigned special hash table called the lookup table. Maglev hashing
|
||||||
|
is to assign a preference list of all the lookup table positions
|
||||||
|
to each destination.
|
||||||
|
|
||||||
|
Through this operation, The maglev hashing gives an almost equal
|
||||||
|
share of the lookup table to each of the destinations and provides
|
||||||
|
minimal disruption by using the lookup table. When the set of
|
||||||
|
destinations changes, a connection will likely be sent to the same
|
||||||
|
destination as it was before.
|
||||||
|
|
||||||
|
If you want to compile it in kernel, say Y. To compile it as a
|
||||||
|
module, choose M here. If unsure, say N.
|
||||||
|
|
||||||
config IP_VS_SED
|
config IP_VS_SED
|
||||||
tristate "shortest expected delay scheduling"
|
tristate "shortest expected delay scheduling"
|
||||||
---help---
|
---help---
|
||||||
|
@ -266,6 +285,24 @@ config IP_VS_SH_TAB_BITS
|
||||||
needs to be large enough to effectively fit all the destinations
|
needs to be large enough to effectively fit all the destinations
|
||||||
multiplied by their respective weights.
|
multiplied by their respective weights.
|
||||||
|
|
||||||
|
comment 'IPVS MH scheduler'
|
||||||
|
|
||||||
|
config IP_VS_MH_TAB_INDEX
|
||||||
|
int "IPVS maglev hashing table index of size (the prime numbers)"
|
||||||
|
range 8 17
|
||||||
|
default 12
|
||||||
|
---help---
|
||||||
|
The maglev hashing scheduler maps source IPs to destinations
|
||||||
|
stored in a hash table. This table is assigned by a preference
|
||||||
|
list of the positions to each destination until all slots in
|
||||||
|
the table are filled. The index determines the prime for size of
|
||||||
|
the table as 251, 509, 1021, 2039, 4093, 8191, 16381, 32749,
|
||||||
|
65521 or 131071. When using weights to allow destinations to
|
||||||
|
receive more connections, the table is assigned an amount
|
||||||
|
proportional to the weights specified. The table needs to be large
|
||||||
|
enough to effectively fit all the destinations multiplied by their
|
||||||
|
respective weights.
|
||||||
|
|
||||||
comment 'IPVS application helper'
|
comment 'IPVS application helper'
|
||||||
|
|
||||||
config IP_VS_FTP
|
config IP_VS_FTP
|
||||||
|
|
|
@ -33,6 +33,7 @@ obj-$(CONFIG_IP_VS_LBLC) += ip_vs_lblc.o
|
||||||
obj-$(CONFIG_IP_VS_LBLCR) += ip_vs_lblcr.o
|
obj-$(CONFIG_IP_VS_LBLCR) += ip_vs_lblcr.o
|
||||||
obj-$(CONFIG_IP_VS_DH) += ip_vs_dh.o
|
obj-$(CONFIG_IP_VS_DH) += ip_vs_dh.o
|
||||||
obj-$(CONFIG_IP_VS_SH) += ip_vs_sh.o
|
obj-$(CONFIG_IP_VS_SH) += ip_vs_sh.o
|
||||||
|
obj-$(CONFIG_IP_VS_MH) += ip_vs_mh.o
|
||||||
obj-$(CONFIG_IP_VS_SED) += ip_vs_sed.o
|
obj-$(CONFIG_IP_VS_SED) += ip_vs_sed.o
|
||||||
obj-$(CONFIG_IP_VS_NQ) += ip_vs_nq.o
|
obj-$(CONFIG_IP_VS_NQ) += ip_vs_nq.o
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче