LinuxDirector is a software tool that directs network connctions to multiple servers that share their workload, which can be used to build highly scalable and highly available services. LinuxDirector extends the TCP/IP stack of Linux kernel to support three IP load balancing tech-niques, which can make parallel services of different kinds of server clusters to appear as a service on a single IP ad-dress. Four scheduling algorithms have been implemented to assign connections to different servers, and a simple distributed lock manager is provided for applications on dif-ferent servers to access shared data consistently. Scalabil-ity is achieved by transparently adding or removing a node in the cluster, and high availability is provided by detecting node or daemon failures and reconfiguring the system ap-propriately. This paper describes the design and implemen-tation of LinuxDirector and presents several of its features including scalability, high availability, connection affinity and icmp handling.
展开▼