LVS是Linux Virtual Server的简写,是国人贡献到LINUX内核的第一个重要模块,是负载均衡的主流技术
LVS是如何把用户请求转给应用服务器的?
它的转换机制主要有3个
(1)网络地址转换 NAT 当用户请求到达调度器时,调度器从一组真实的应用服务器中选取一个,然后将请求报文的目标地址、端口改写成选定的应用服务器的,再将报文请求发送到选定的服务器
在服务器端得到请求后,进行相应处理,需要将数据返回给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户
(2)IP隧道 TUN 调度器采用IP隧道技术将用户请求转发到某个应用服务器,而这个服务器将直接响应用户的请求,不再经过前端调度器,减轻了调度器的压力 IP隧道技术就是调度器和目标服务器都配置了隧道协议,调度器把IP报文封装到这个协议中,然后直接发给目标服务器,目标服务器收到后拆开包装,取出原始报文
例如A和B之间要通信,在IP协议下,数据包通过一系列的路由发送到B,这个传输路线是没有经过事先预定的,而使用了IP隧道方式后,A和B都配置好了隧道协议,这样数据包就可以由预先设定好的路线进行传递,像一条隧道一样
(3)直接路由 DR 通过改写请求报文的MAC地址,将请求发送到目标服务器,而服务器将响应直接返回给客户
这种方式既没有IP封装的操作,返回数据时也不需要调度器中转,所以是3种负载调度方式中性能最好的,但是要求调度器与真实服务器组必须在同一物理网段上,有一定的局限性