在 LVS(Linux Virtual Server)集群中,session 是指客户端与服务器之间建立的连接,它在 LVS 集群中的设置非常重要,决定了集群的性能和稳定性。常见的 LVS 集群中 session 的设置方法包括以下几种:
1 NAT 模式:在 NAT 模式下,LVS 通过修改数据包的源地址和目标地址来实现负载均衡。在 NAT 模式下,session 的设置主要是针对 LVS 的 NAT 网关进行的,需要设置 iptables 规则以及 sysctl 内核参数来控制 NAT 会话的超时时间和并发连接数等参数。常用的设置方法如下:
修改 /etc/sysctl.conf 文件来调整内核参数:
TCP 连接的超时时间
net.ipv4.tcp_syn_retries = 3 net.ipv4.tcp_synack_retries = 3 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 60 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_keepalive_intvl = 10。
调整 NAT 会话的超时时间
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 3600 net.ipv4.netfilter.ip_conntrack_generic_timeout = 60 net.ipv4.netfilter.ip_conntrack_max = 524288 设置 iptables 规则来控制 NAT 会话: iptables -t nat -A POSTROUTING -p tcp --dport 80 -j SNAT --to-source x.x.x.x DR 模式:在 DR 模式下,LVS 通过修改数据包的 MAC 地址来实现负载均衡。在 DR 模式下,session 的设置主要是针对后端真实服务器进行的,需要设置后端服务器的 ARP 和路由表信息,以及设置 sysctl 内核参数来控制 DR 模式下 session 的转发和管理。常用的设置方法如下: 设置后端服务器的 ARP 和路由表信息:
设置虚拟 IP 的 ARP 地址
arp -s x.x.x.x yy:yy:yy:yy:yy:yy。
添加默认路由
ip route add default via x.x.x.1 dev eth0 修改 /etc/sysctl.conf 文件来调整内核参数:
开启 IP 转发
net.ipv4.ip_forward = 1。
关闭 ARP 相关的安全检查
net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 TUN 模式:在 TUN 模式下,LVS 通过在 LVS 和后端真实服务器之间建立隧道来实现负载均衡。在 TUN 模式下,session 的设置主要是针对隧道的管理和控制,需要设置 tunl0 网卡和 sysctl 内核参数来控制 TUN 模式下 session 的超时时间和并发连接数等参数。常用的设置方法如下: 创建 tunl0 网卡: ip tuntap add dev tunl0 mode tun ifconfig tunl0 up 修改 /etc/sysctl.conf 文件来调整内核参数:
调整 TUN 会话的超时时间
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 3600 net.ipv4.netfilter.ip_conntrack_generic_timeout = 60 net.ipv4.netfilter.ip_conntrack_max = 524288 在后端真实服务器上设置路由表信息: ip route add x.x.x.x dev tunl0 以上是 LVS 集群中常用的 session 设置方法,不同的模式需要针对不同的参数进行调整。需要注意的是,在设置 session 的过程中,要充分考虑集群的实际情况和业务需求,以便实现最佳的负载均衡效果和最大的性能优化。