1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。
(1)NAT模式(网络地址翻译技术实现虚拟技术)
原理: 把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器(DNAT),负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可(SNAT)。
优点: 集群中的物理服务器可以使用任何支持TCP/IP操作系统它只需要一个 IP 地址配置在调度器上,服务器组可以用私有的 IP 地址。
缺点: 扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢。
(2)DR模式(直接路由实现虚拟技术)
原理: VS/DR
通过改写请求报文的
MAC
地址,将请求发送到
Real Server
,而
Real Server
将响应直接返回给客户。
优点:VS/DR跟 VS/TUN 方法相同,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量。
缺点:要求负载均衡器的网卡必须与物理网卡在一个物理段上
RS上绑定VIP风险较大
(3)TUN模式(通过IP隧道技术)
原理:
当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟
IP
地址)改写成选定的
Real Server
地址,同时报文的目标端口也改成选定的
Real Server
的相应
端口,最后将报文请求发送到选定的
Real Server
。在服务器端得到数据后,
Real Server
返回数据给用户
时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟
IP
地址和相应端口,然后把数据发送给
用户,完成整个负载调度过程。
优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。
缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上
(4)FULLNAT(淘宝研发的)
2. 构建 LVS-DR 群集时,在调度器与节点服务器中的 /proc 参数调整有何区别?
RS需要抑制ARP响应,调度器不用