LVS中的可以分成静态和动态两种算法,而每种算法下面还有其他算法:


四种静态:

rr

wrr

dh

sh


四种动态:

lc: 最少连接。

如何计算哪个连接多哪个连接少呢?

计算当前后端每一个realserver的活动连接数和非活动连接数的总数并进行比较,哪一个数目小,则选择哪一个。

active*256+inactive(谁的数量小,那么选择)。

wlc:加权最少连接。

比较方法:active*256+inactive / weight,谁的数字小,选择。

sed:最短期望延迟(对wlc改进的算法),权重大优先被选择。

算法: (active+1)*256 / weight

nq: never queue,从不排队(sed的改进)。每个动发一个,然后再计算。

lblc:基于本地的最少连接。

考虑cache的连接数

缺点:游客能破坏命中率。

lblcr:基于本地带复制功能的最少连接。


lvs默认算法:wlc





What's the lvs?


Linux virtual server is the high available and high scalable server built on a cluster server, with the load balancedr running on the Linux opearting system.


there are 10 schedulers. the schedulers are rr, wrr, lc, wlc, lblc, lblcr, dh, sh.


I just looked at them. I need write them on my blog so that looking in the future.


Round Robin(rr), Weighted round robin(wrr) - new connections are assigned to each realserver in turn.


different: the server's load will have been detection and adjust dynamic by wrr schedulers. rr will not adjust.


Least connections(lc), Weighted least connections(wlc) - new connections come to realserver with the least number of connections.


different:same the rr and wrr


Locality-based least connections (lblc), Locality-based least with replication(lblcr)

The LBLC code (by Wensong) and the DH scheduler (by Wensong, inspired by code submitted by Thomas Proell proellt (at) gmx (dot) de) are designed for web caching realservers (e.g. squids). For normal LVS services (eg ftp, http), the content offered by each realserver is the same and it doesn't matter which realserver the client is connected to. For a web cache, after the first fetch has been made, the web caches have different content. As more pages are fetched, the contents of the web caches will diverge. Since the web caches will be setup as peers, they can communicate by ICP (internet caching protocol) to find the cache(s) with the required page. This is faster than fetching the page from the original webserver. However, it would be better after the first fetch of a page from http://www.foo.com/*, for all subsequent clients wanting a page from http://www.foo.com/ to be connected to that realserver.


different:用于cache集群系统,两者一个是服务器,一个是服务器群。


Destination Hashing(DH), Source Hashing(SH)


The DH scheduler can keep the two load balancer redirect requests destined for the same IP address to the same cache server. If the server is dead or overloaded, the load balancer can use cache_bypass feature to send requests to the original server directly. (Make sure that the cache servers are added in the two load balancers in the same order)