LVS IP及端口负载问题

最近部署了LVS,有个问题想问问技术大牛们

我这边的服务器应用比较多。使用LVS 创建虚拟地址要指定端口,这样的话,我一个虚拟主机IP,我要配置很多端口。由于应用太多。

可不可以直接IP到IP直接的映射,不指定端口?这样配置会减少很多。硬件负载均衡设备 F5,radware的都用这个功能,端口选择any

不知道lvs 是否也可以这么实现?期待大神们的回复

Forums:

1. 可以直接IP到IP的映射(那就是要开启-p选项,不指定端口即可),当访问LVS的5000端口,会自动转发到RS服务器的5000端口。
2. 但是开启-p选项,表示要启用会话保持,它会在-p指定的一段时间里将同一IP的请求全部转发到同一台RS服务器上,从某种程度上来说负载均衡的能力会减弱。所以要慎重考虑此功能。(当然咯,你将-p后的时间值设置得相当小,也是可以的,但是就失去了会话保持的原本意义)
------------------------------------------------------------------------
你需要指定-p选项,此时不指定端口,就可以做到IP到IP的映射。
[root@localhost zhangzq]# ipvsadm -A -t 192.168.199.199 -s rr -p 900
[root@localhost zhangzq]# ipvsadm -a -t 192.168.199.199 -r 1.1.1.1
[root@localhost zhangzq]# ipvsadm -a -t 192.168.199.199 -r 2.2.2.2
[root@localhost zhangzq]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.199.199:0 rr persistent 900
-> 2.2.2.2:0 Route 1 0 0
-> 1.1.1.1:0 Route 1 0 0

ipvsadm -A -t 192.168.199.199 -s rr -p 900

-p 900 是什么意思?这段还是没看明白?-p 不是指定端口吗?900 是端口号?

-p persistent(持续) 900秒;表示会话保持持续900秒的意思。

我看明白了,谢谢,我去测试下,十分感谢

在lvs+keepalive 模式下,是不是也支持这种配置方式呢?直接开keepalive好像不是行

lvs+keepalived是可以的,只需设置keepalive的配置文件即可。
具体看keepalive里的fwmark方案哈,我就是这么实现的。

刚好最近我也遇到这个问题,顺利解决了。
F5的any挺好用,有些时间还必须这么搞。
在LVS里有个fwmark的方案,即在lvs上用iptables将到指定端口的包mark一下,然后在写lvs规则的时候-f 参数就行了。
有问题可以联系我,多交流。

randomness