LVS is a shorthand for Linux virtual server, that is, a virtualized server cluster system. Founded in May 1998 by Dr. Zhangwensong, this project is one of the earliest free software projects in China.
PurposeEditUse cluster technology and Linux operating system to achieve a high-performance, high-availability server. Good scalability (Scalability) good reliability (reliability) good manageability (manageability).  FeaturesEditThere are several structures for scalable network services that require a front-end load scheduler (or multiple master-slave backups). We first analyze the main technology of implementing virtual Network Service, and point out that IP load balancing technology is the most efficient in the implementation of load scheduler. In the existing IP load balancing technology, there are mainly a set of servers through Network address translation (translation) to form a high-performance, high-availability virtual server, we call it Vs/nat technology (virtual server via Network Address translation). On the basis of analyzing the disadvantage of vs/nat and the asymmetry of network service, we propose a method of implementing virtual server through IP tunneling Vs/tun (virtual server via IP tunneling), and the method of implementing the dummy server through direct routing vs/ DR (Virtual Server via Direct Routing), which can greatly improve the scalability of the system. Vs/nat, Vs/tun and VS/DR technology are three kinds of IP load balancing technology implemented in LVS cluster. TechnologyEdit"1" Technology introduction the LVS cluster uses IP load balancing technology and content-based request distribution technology. The scheduler has a good throughput rate, transfers the request evenly to the different server execution, and the scheduler automatically shields off the server's failure, thereby forming a set of servers into a high-performance, highly available virtual server. The structure of the entire server cluster is transparent to the customer and eliminates the need to modify client and server-side programs. To do this, you need to consider system transparency, scalability, high availability, and manageability at design time. "2" cluster with three-layer structure in general, the LVS cluster adopts three-layer structure, its main components are: A, load Scheduler (load balancer), it is the entire cluster to the outside of the front-end machine, responsible for sending customer requests to a set of servers to execute, And the customer thinks the service comes from an IP address (which we can call a virtual IP address). B, server pool, is a set of servers that actually perform customer requests, such as Web, MAIL, FTP, and DNS. C, shared storage (GKFX storage), which provides a shared storage area for a server pool, which makes it easy to have the same content for the server pool and provide the same service. The "3" Scheduler Scheduler is the only entry point for a server cluster system (single Entry, which can be combined with IP load balancing technology, content-based request distribution, or both). In IP load balancing technology, it is necessary for the server pool to have the same content to provide the same service. When the customer request arrives, the scheduler selects a server from the server pool only according to the server load and the scheduling algorithm, forwards the request to the selected server and logs the dispatch, and when the other message arrives, it is forwarded to the previously selected server. In content-based request distribution technology, the server can provide different services, and when a customer request arrives, the scheduler can select the server to execute the request based on the requested content. Because all operations are done in the core space of the Linux operating system, its scheduling overhead is small, so it has a high throughput rate. The number of nodes in the server pool is variable. When the entire system receives more load than is currently available for all nodes, you can increase the server in the server pool to meet the increasing request load. For most network services, there is no strong correlation between requests, and requests can be executed in parallel on different nodes, so the performance of the whole system can be increased linearly with the number of nodes in the server pool. Shared storage is typically a database, a network file system, or a distributed file system. The data that the server node needs to dynamically update is generally stored in the database system, and the database guarantees the consistency of data during concurrent access. Static data can be stored in a network file system (such as NFS/CIFS), but network file systems have limited scalability, in general, NThe FS/CIFS server can only support 3~6 busy server nodes. For larger cluster systems, consider using distributed file systems such as AFS, GFS, Coda, and Intermezzo. Distributed file systems provide shared storage for each server, accessing distributed file systems as if they were accessing local file systems, while Distributed file systems provide good scalability and availability. "4" distributed lock Manager in addition, when applications on different servers read and write access to the same resource on the Distributed File system at the same time, an application's access violation needs to be resolved to make the resource consistent. This requires a distributed lock manager (Distributed lock manager), which may or may not be available internally or externally to a distributed file system. When writing applications, developers can use the distributed lock manager to ensure the consistency of the application's concurrent access on different nodes. Load schedulers, server pools, and shared storage systems are connected through high-speed networks, such as 100Mbps switched networks, myrinet and gigabit networks. The use of high-speed network, mainly to avoid when the system scale expansion of the Internet becomes the bottleneck of the whole system. The "5" monitor, graphic monitor, provides the system administrator with an entire clustered system of monitors that can monitor the status of the system. Graphic Monitor is browser-based, so the status of the system can be monitored either locally or offsite. For security reasons, the browser through the HTTPS (secure HTTP) protocol and identity authentication, before the system monitoring, and system configuration and management. AdvantagesEdit1, open source, free 2, can find some related technical resources on the Internet 3, with software load balancing some advantages and disadvantagesEdit1, the most core is that there is no reliable support services, no one is responsible for the results; 2, the function is relatively simple, support the complex application load balance ability is poor, such as the algorithm is less; 3, the Open tunnel mode needs to recompile the kernel, 4, the configuration is complex, 5, mainly used in Linux, There is currently no version dedicated to Windows, but can be configured to make Windows a real server in the LVS cluster (Win2003, win2008).
LVS (Linux virtual Server)