Sunday, February 24, 2019

Linux Virtual Server (LVS)


  • The LVS cluster system is also known as load balancing server cluster.

Build a high-performance and highly available server for Linux using clustering technology, which provides good scalability, reliability and serviceability.
http://www.linuxvirtualserver.org/whatis.html



  • TCPHA

TCPHA is a subproject of LVS.
TCPHA can be used to build a high performance and high available server based on a cluster of Linux servers.

TCPHA implements an architecture for scalable content-aware request distribution in cluster-base servers. It implements Kernel Layer-7 switching based on TCP Handoff for the Linux operating system. Since the overhead of layer-7 switching in user-space is very high, it is good to implement it inside the kernel in order to avoid the overhead of context switching and memory copying between user-space and kernel-space, furthermore, the responses are sent directly to clients, not passing the dispatcher, which will greatly improve the performance of cluster.

TCPHA, inspired by KTCPVS and IPVS, merges their strongpoints. Otherwise, the installation and configuration are very simple.

http://dragon.linux-vs.org/~dragonfly/htm/tcpha.htm


  • The goal of Linux Virtual Server (LVS) is to provide a basic framework that directs network connections to multiple servers that share their workload.

Linux Virtual Server is a cluster of servers (one or more load balancers and several real servers for running services) which appears to be one large, fast server to an outside client.
This apparent single server is called a virtual server.

The real servers and the load balancers may be interconnected by either high-speed LAN or by geographically dispersed WAN. The load balancers can dispatch requests to the different servers. They make parallel services of the cluster appear as a virtual service on a single IP address (the virtual IP address or VIP). Request dispatching can use IP load balancing technologies or application-level load balancing technologies. Scalability of the system is achieved by transparently adding or removing nodes in the cluster. High availability is provided by detecting node or daemon failures and reconfiguring the system appropriately.
https://www.suse.com/documentation/sle_ha/book_sleha/data/cha_ha_lvs.html


  • TCP Splicing

TCPSP implements tcp splicing for the Linux kernel. The tcp splicing is a technique to splice two connections inside the kernel, so that data relaying between the two connections can be run at near router speeds. This technique can be used to speed up layer-7 switching, web proxy and application firewall running in the user space.
TCPSP is released as a small software component of the Linux Virtual Server project.
http://www.linuxvirtualserver.org/software/tcpsp/index.html



  • Job Scheduling Algorithms in Linux Virtual Server


    Round-Robin Scheduling
    Weighted Round-Robin Scheduling
    Least-Connection Scheduling
    Weighted Least-Connection Scheduling
    Locality-Based Least-Connection Scheduling
    Locality-Based Least-Connection with Replication Scheduling
    Destination Hashing Scheduling
    Source Hashing Scheduling
    Shortest Expected Delay Scheduling
    Never Queue Scheduling

http://www.linuxvirtualserver.org/docs/scheduling.html