9.5. 持续性和防火墙标记

在某些情况下,客户可能想要不断地重复连接到同一个真正服务器,而不是让 LVS 负载均衡算式给最可用的服务器发送那个请求。这类情况的例子包括多屏幕的网页表格、cookie、SSL、和 FTP 连接。在这类情况下,除非事务被同一服务器处理从而保留内容衔接,客户有可能无法正确操作。LVS 提供了两种不同的功能来处理它:持续性(persistence)防火墙标记(firewall marks)

9.5.1. 持续性

当持续性被启用时,它就像一个计时器。当某个客户连接到某个服务,LVS 会记住在指定时间段内的前一次连接。如果在那个时间段内,同一个客户 IP 地址又连接了,请求就会被发送给它在前一次被连接的服务器 — 绕过负载均衡机制。当连接出现在指定时间段之外时,它就会根据调度规则来处理了。

持续性还允许管理员指定一个应用到客户 IP 地址测试的子网掩码,它可以作为一种控制哪些地址具备较高级别的持续性的工具,从而把连接都聚集到那个子网中。

把目标为不同端口的连接合并起来对于使用不止一个端口来通信的协议(如 FTP)来说是很重要的。然而,持续性不是用来处理合并目标是不同端口的连接的最有效方法,最有效的方法是使用防火墙标记(firewall marks)

9.5.2. 防火墙标记

防火墙标记是一种合并用于一个协议或一组相关协议的端口的简单而有效的方法。例如,如果某个 LVS 群集被用来运行电子商务网站,防火墙标记可以把 HTTP 连接绑定到端口80,把安全 HTTPS 连接绑定到端口443。通过为每个协议在虚拟服务器上分派相同的防火墙标记,事务的状态信息就会被保留,因为 LVS 路由器在连接被打开后把所有请求都转发给同一个真正服务器。

鉴于它的有效性和简易性,LVS 群集管理员应该在合并连接时尽可能地使用防火墙标记而不是持续性。然而,管理员仍旧应该在虚拟服务器中添加持续性来确保客户在同一服务器上连接了足够长的一段时间。