linux/net/ipv4/ipvs/Kconfig
<<
>>
Prefs
   1#
   2# IP Virtual Server configuration
   3#
   4menuconfig IP_VS
   5        tristate "IP virtual server support (EXPERIMENTAL)"
   6        depends on NETFILTER
   7        ---help---
   8          IP Virtual Server support will let you build a high-performance
   9          virtual server based on cluster of two or more real servers. This
  10          option must be enabled for at least one of the clustered computers
  11          that will take care of intercepting incoming connections to a
  12          single IP address and scheduling them to real servers.
  13
  14          Three request dispatching techniques are implemented, they are
  15          virtual server via NAT, virtual server via tunneling and virtual
  16          server via direct routing. The several scheduling algorithms can
  17          be used to choose which server the connection is directed to,
  18          thus load balancing can be achieved among the servers.  For more
  19          information and its administration program, please visit the
  20          following URL: <http://www.linuxvirtualserver.org/>.
  21
  22          If you want to compile it in kernel, say Y. To compile it as a
  23          module, choose M here. If unsure, say N.
  24
  25if IP_VS
  26
  27config  IP_VS_DEBUG
  28        bool "IP virtual server debugging"
  29        ---help---
  30          Say Y here if you want to get additional messages useful in
  31          debugging the IP virtual server code. You can change the debug
  32          level in /proc/sys/net/ipv4/vs/debug_level
  33
  34config  IP_VS_TAB_BITS
  35        int "IPVS connection table size (the Nth power of 2)"
  36        default "12" 
  37        ---help---
  38          The IPVS connection hash table uses the chaining scheme to handle
  39          hash collisions. Using a big IPVS connection hash table will greatly
  40          reduce conflicts when there are hundreds of thousands of connections
  41          in the hash table.
  42
  43          Note the table size must be power of 2. The table size will be the
  44          value of 2 to the your input number power. The number to choose is
  45          from 8 to 20, the default number is 12, which means the table size
  46          is 4096. Don't input the number too small, otherwise you will lose
  47          performance on it. You can adapt the table size yourself, according
  48          to your virtual server application. It is good to set the table size
  49          not far less than the number of connections per second multiplying
  50          average lasting time of connection in the table.  For example, your
  51          virtual server gets 200 connections per second, the connection lasts
  52          for 200 seconds in average in the connection table, the table size
  53          should be not far less than 200x200, it is good to set the table
  54          size 32768 (2**15).
  55
  56          Another note that each connection occupies 128 bytes effectively and
  57          each hash entry uses 8 bytes, so you can estimate how much memory is
  58          needed for your box.
  59
  60comment "IPVS transport protocol load balancing support"
  61
  62config  IP_VS_PROTO_TCP
  63        bool "TCP load balancing support"
  64        ---help---
  65          This option enables support for load balancing TCP transport
  66          protocol. Say Y if unsure.
  67
  68config  IP_VS_PROTO_UDP
  69        bool "UDP load balancing support"
  70        ---help---
  71          This option enables support for load balancing UDP transport
  72          protocol. Say Y if unsure.
  73
  74config  IP_VS_PROTO_ESP
  75        bool "ESP load balancing support"
  76        ---help---
  77          This option enables support for load balancing ESP (Encapsulation
  78          Security Payload) transport protocol. Say Y if unsure.
  79
  80config  IP_VS_PROTO_AH
  81        bool "AH load balancing support"
  82        ---help---
  83          This option enables support for load balancing AH (Authentication
  84          Header) transport protocol. Say Y if unsure.
  85
  86comment "IPVS scheduler"
  87
  88config  IP_VS_RR
  89        tristate "round-robin scheduling"
  90        ---help---
  91          The robin-robin scheduling algorithm simply directs network
  92          connections to different real servers in a round-robin manner.
  93
  94          If you want to compile it in kernel, say Y. To compile it as a
  95          module, choose M here. If unsure, say N.
  96 
  97config  IP_VS_WRR
  98        tristate "weighted round-robin scheduling" 
  99        ---help---
 100          The weighted robin-robin scheduling algorithm directs network
 101          connections to different real servers based on server weights
 102          in a round-robin manner. Servers with higher weights receive
 103          new connections first than those with less weights, and servers
 104          with higher weights get more connections than those with less
 105          weights and servers with equal weights get equal connections.
 106
 107          If you want to compile it in kernel, say Y. To compile it as a
 108          module, choose M here. If unsure, say N.
 109
 110config  IP_VS_LC
 111        tristate "least-connection scheduling"
 112        ---help---
 113          The least-connection scheduling algorithm directs network
 114          connections to the server with the least number of active 
 115          connections.
 116
 117          If you want to compile it in kernel, say Y. To compile it as a
 118          module, choose M here. If unsure, say N.
 119
 120config  IP_VS_WLC
 121        tristate "weighted least-connection scheduling"
 122        ---help---
 123          The weighted least-connection scheduling algorithm directs network
 124          connections to the server with the least active connections
 125          normalized by the server weight.
 126
 127          If you want to compile it in kernel, say Y. To compile it as a
 128          module, choose M here. If unsure, say N.
 129
 130config  IP_VS_LBLC
 131        tristate "locality-based least-connection scheduling"
 132        ---help---
 133          The locality-based least-connection scheduling algorithm is for
 134          destination IP load balancing. It is usually used in cache cluster.
 135          This algorithm usually directs packet destined for an IP address to
 136          its server if the server is alive and under load. If the server is
 137          overloaded (its active connection numbers is larger than its weight)
 138          and there is a server in its half load, then allocate the weighted
 139          least-connection server to this IP address.
 140
 141          If you want to compile it in kernel, say Y. To compile it as a
 142          module, choose M here. If unsure, say N.
 143
 144config  IP_VS_LBLCR
 145        tristate "locality-based least-connection with replication scheduling"
 146        ---help---
 147          The locality-based least-connection with replication scheduling
 148          algorithm is also for destination IP load balancing. It is 
 149          usually used in cache cluster. It differs from the LBLC scheduling
 150          as follows: the load balancer maintains mappings from a target
 151          to a set of server nodes that can serve the target. Requests for
 152          a target are assigned to the least-connection node in the target's
 153          server set. If all the node in the server set are over loaded,
 154          it picks up a least-connection node in the cluster and adds it
 155          in the sever set for the target. If the server set has not been
 156          modified for the specified time, the most loaded node is removed
 157          from the server set, in order to avoid high degree of replication.
 158
 159          If you want to compile it in kernel, say Y. To compile it as a
 160          module, choose M here. If unsure, say N.
 161
 162config  IP_VS_DH
 163        tristate "destination hashing scheduling"
 164        ---help---
 165          The destination hashing scheduling algorithm assigns network
 166          connections to the servers through looking up a statically assigned
 167          hash table by their destination IP addresses.
 168
 169          If you want to compile it in kernel, say Y. To compile it as a
 170          module, choose M here. If unsure, say N.
 171
 172config  IP_VS_SH
 173        tristate "source hashing scheduling"
 174        ---help---
 175          The source hashing scheduling algorithm assigns network
 176          connections to the servers through looking up a statically assigned
 177          hash table by their source IP addresses.
 178
 179          If you want to compile it in kernel, say Y. To compile it as a
 180          module, choose M here. If unsure, say N.
 181
 182config  IP_VS_SED
 183        tristate "shortest expected delay scheduling"
 184        ---help---
 185          The shortest expected delay scheduling algorithm assigns network
 186          connections to the server with the shortest expected delay. The 
 187          expected delay that the job will experience is (Ci + 1) / Ui if 
 188          sent to the ith server, in which Ci is the number of connections
 189          on the ith server and Ui is the fixed service rate (weight)
 190          of the ith server.
 191
 192          If you want to compile it in kernel, say Y. To compile it as a
 193          module, choose M here. If unsure, say N.
 194
 195config  IP_VS_NQ
 196        tristate "never queue scheduling"
 197        ---help---
 198          The never queue scheduling algorithm adopts a two-speed model.
 199          When there is an idle server available, the job will be sent to
 200          the idle server, instead of waiting for a fast one. When there
 201          is no idle server available, the job will be sent to the server
 202          that minimize its expected delay (The Shortest Expected Delay
 203          scheduling algorithm).
 204
 205          If you want to compile it in kernel, say Y. To compile it as a
 206          module, choose M here. If unsure, say N.
 207
 208comment 'IPVS application helper'
 209
 210config  IP_VS_FTP
 211        tristate "FTP protocol helper"
 212        depends on IP_VS_PROTO_TCP
 213        ---help---
 214          FTP is a protocol that transfers IP address and/or port number in
 215          the payload. In the virtual server via Network Address Translation,
 216          the IP address and port number of real servers cannot be sent to
 217          clients in ftp connections directly, so FTP protocol helper is
 218          required for tracking the connection and mangling it back to that of
 219          virtual service.
 220
 221          If you want to compile it in kernel, say Y. To compile it as a
 222          module, choose M here. If unsure, say N.
 223
 224endif # IP_VS
 225
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.