IPVS

From LVSKB
Revision as of 03:02, 30 July 2005 by Wensong (Talk | contribs) (Job Scheduling Algorithms)

Jump to: navigation, search

IPVS (IP Virtual Server) implements transport-layer load balancing inside the Linux kernel, so called Layer-4 switching. IPVS running on a host acts as a load balancer before a cluster of real servers, it can direct requests for TCP/UDP based services to the real servers, and makes services of the real servers to appear as a virtual service on a single IP address.


IP Load Balancing Technologies

Job Scheduling Algorithms

Connection Scheduling Algorithms inside the Kernel

IPVS schedules jobs at connection granularity inside the Linux kernel. Here connection is defined as data communication between client socket and server socket, no matter whether it uses TCP or UDP protocol. For scheduling UDP datagrams, IPVS load balancer records UDP datagram scheduling with configurable timeout, and the default UDP timeout is 300 seconds. Before UDP connection timeouts, all UDP datagrams from the same socket (protocol, ip address and port) will be directed to the same server.

IPVS has implemented ten connection scheduling algorithms inside the kernel so far:

Dynamic Feedback Load Balancing Scheduling

The dynamic feedback load balancing scheduling algorithm is to use connection scheduling algorithm and adjust server weight based on dynamic feeback load information of each server, in order to avoid load imbalance among servers.

Design and Implementation

Ongoing Development

IPVS On FreeBSD

The LVS On FreeBSD project was started by Li Wang, the goal is to port IPVS code to FreeBSD. Now, the LVS On FreeBSD module supports the LVS/DR and LVS/TUN ip load balancing technologies.