如何設(shè)置lvs 集群中的 Session
在 LVS(Linux Virtual Server)集群中,session 是指客戶端與服務(wù)器之間建立的連接,它在 LVS 集群中的設(shè)置非常重要,決定了集群的性能和穩(wěn)定性。常見的 LVS 集群中 session 的設(shè)置方法包括以下幾種:
1 NAT 模式:在 NAT 模式下,LVS 通過修改數(shù)據(jù)包的源地址和目標(biāo)地址來實(shí)現(xiàn)負(fù)載均衡。在 NAT 模式下,session 的設(shè)置主要是針對(duì) LVS 的 NAT 網(wǎng)關(guān)進(jìn)行的,需要設(shè)置 iptables 規(guī)則以及 sysctl 內(nèi)核參數(shù)來控制 NAT 會(huì)話的超時(shí)時(shí)間和并發(fā)連接數(shù)等參數(shù)。常用的設(shè)置方法如下:
修改 /etc/sysctl.conf 文件來調(diào)整內(nèi)核參數(shù):
TCP 連接的超時(shí)時(shí)間
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。
調(diào)整 NAT 會(huì)話的超時(shí)時(shí)間
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 3600 net.ipv4.netfilter.ip_conntrack_generic_timeout = 60 net.ipv4.netfilter.ip_conntrack_max = 524288 設(shè)置 iptables 規(guī)則來控制 NAT 會(huì)話: iptables -t nat -A POSTROUTING -p tcp --dport 80 -j SNAT --to-source x.x.x.x DR 模式:在 DR 模式下,LVS 通過修改數(shù)據(jù)包的 MAC 地址來實(shí)現(xiàn)負(fù)載均衡。在 DR 模式下,session 的設(shè)置主要是針對(duì)后端真實(shí)服務(wù)器進(jìn)行的,需要設(shè)置后端服務(wù)器的 ARP 和路由表信息,以及設(shè)置 sysctl 內(nèi)核參數(shù)來控制 DR 模式下 session 的轉(zhuǎn)發(fā)和管理。常用的設(shè)置方法如下: 設(shè)置后端服務(wù)器的 ARP 和路由表信息:
設(shè)置虛擬 IP 的 ARP 地址
arp -s x.x.x.x yy:yy:yy:yy:yy:yy。
添加默認(rèn)路由
ip route add default via x.x.x.1 dev eth0 修改 /etc/sysctl.conf 文件來調(diào)整內(nèi)核參數(shù):
開啟 IP 轉(zhuǎn)發(fā)
net.ipv4.ip_forward = 1。
關(guān)閉 ARP 相關(guān)的安全檢查
net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 TUN 模式:在 TUN 模式下,LVS 通過在 LVS 和后端真實(shí)服務(wù)器之間建立隧道來實(shí)現(xiàn)負(fù)載均衡。在 TUN 模式下,session 的設(shè)置主要是針對(duì)隧道的管理和控制,需要設(shè)置 tunl0 網(wǎng)卡和 sysctl 內(nèi)核參數(shù)來控制 TUN 模式下 session 的超時(shí)時(shí)間和并發(fā)連接數(shù)等參數(shù)。常用的設(shè)置方法如下: 創(chuàng)建 tunl0 網(wǎng)卡: ip tuntap add dev tunl0 mode tun ifconfig tunl0 up 修改 /etc/sysctl.conf 文件來調(diào)整內(nèi)核參數(shù):
調(diào)整 TUN 會(huì)話的超時(shí)時(shí)間
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 3600 net.ipv4.netfilter.ip_conntrack_generic_timeout = 60 net.ipv4.netfilter.ip_conntrack_max = 524288 在后端真實(shí)服務(wù)器上設(shè)置路由表信息: ip route add x.x.x.x dev tunl0 以上是 LVS 集群中常用的 session 設(shè)置方法,不同的模式需要針對(duì)不同的參數(shù)進(jìn)行調(diào)整。需要注意的是,在設(shè)置 session 的過程中,要充分考慮集群的實(shí)際情況和業(yè)務(wù)需求,以便實(shí)現(xiàn)最佳的負(fù)載均衡效果和最大的性能優(yōu)化。