LVS工作原理及三种模式
-
LVS的三种模式
- VS/NAT、VS/TUN、VS/DR
-
LVS是什么:
- LVS Linux Virtual Server,即Linux虚拟服务器。在Linux内存2.6中,它已经成为内核的一部分。
-
LVS是做什么的:
- LVS主要用于多个服务器的负载均衡。他主要工作在网络层,可以实现高性能高可用的服务器集群技术。它廉价,他可以把许多低性能的服务器组合在一起形成一个超级服务器。它易用,配置非常简单,且有多重负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。另外可扩展性也非常好。
LVS的工作原理
LVS可以分为三成
- 第一层:Load Balancer
- 这是LVS的核心部分。
- 它负责将用户的请求按照一定的算法分发到下一层不同的服务器进行处理,自己本身并不做具体业务的处理。
- 另外,这一层还可以监控下一层的状态,如果下一层的某台服务器不能正常工作,它会自动把其剔除,恢复后又可用加上。该层由一台或几台Director Server组成。
- 第二层:Server Arry
- 该层负责具体的业务,可有WEB server、Mail Server、FTP Server、DNS Server等组成。
- 其实上层的Director Server也可以当Real server使用的。
- 第三层:Shared Storage:主要是提高上一层数据和为上一层保持数据一致
负载均衡的机制
- LVS工作在网络层→所以它负载均衡的办法相比应用层负责的调度、客户端的调度等,它的效率是非常高的。LVS是通过控制IP来实现负载均衡,IPVS是其具体的实现模块。
- IPVS*(IP虚拟服务器)的主要作用:安装在Director Server上面,在Director Server上面虚拟一个对外访问的IP,用户访问VIP,到达Director Server,Director Server根据一定的规则去选择一个Real Server,处理完后返回给客户端数据。
- 这些规则就是LVS的三种模式:如何选择具体的Real Server
LVS的三种模式
- VS/NAT模式
- Virtual Server via Network Address Translation
- 即网络地址反转技术实现虚拟服务器。
- 当有请求来到的时候,Director server上处理的程序将数据报文中的目标地址(即VIP)改写成某台Real Server,端口也同样改成Real Server的端口,然后把报文发送给Real Server
- Real Server处理完数据后,需要返回给Director Server,然后Director Server将数据包的源地址和源端口改成VIP的地址和端口,最后把数据发送出去。由此可以看出,用户的请求和返回都要经过Director Server,如果数据过多,Director Server肯定会不堪重负。
- VS/TUN模式
- Virtual Server via IP Tunneling
- 即IP隧道技术实现虚拟服务器。它跟VS/NAT基本一样,但是Real server是**直接返回数据给客户端 **,不需要经过Director server,这大大降低了Director server的压力。
- VS/DR模式
- Virtual Server via Direct Routing
- 即用直接路由技术实现虚拟服务器。
- 跟前面两种方式,它的报文转发方法有所不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。
- 这种方式是三种负载均衡调度中性能最高最好的,但是必须要求Director Server与Real Server都有一块网卡连在同一网段上
IPVS的八种调度方法
-
轮叫调度
-
加权轮叫调度
-
最小连接调度
-
加权最小连接调度
-
基于局部性的最少链接
-
带复制的基于局部性的最少链接
-
目标地址散列调度
-
最短预期延迟调度
-
不排队调度
调度算法具体参考博客:https://www.cnblogs.com/feisky/archive/2012/09/05/2672496.html