略去导航.
主页
这里是LVS集群项目的中文社区。欢迎大家在这里讨论和交流LVS集群的安装、使用、维护与开发,以及相关技术,帮助完善LVS的中文文档。也欢迎您在这里建立您的博客!

请教作者关于获取客户端 IP 地址的问题

正在打算用 LVS 做四层的负载平衡。
但是有个知识点我不明白:LVS 工作在第四层的时候,也就是说,对请求数据的分析达不到 HTTP 层面,没办法修改类似 xforwardfor 的请求头数据,如果服务器使用 remote address 获取 ip 地址的话,也只能获得负载均衡器的 ip 地址,那么,应该如何设置才能获得客户端的 IP 地址啊?

基于LVS开发的SNAT网关

如题,iptables的SNAT用了一段时间,大流量下性能太差无法忍受。
于是我们在阿里LVS基础上增加了NAT网关功能,见https://github.com/jlijian3/lvs-snat

NAT网关功能跟iptables SNAT功能类似,性能比iptables好很多,keepalived配置简单,多了一些定制功能:
1 支持源ip、目的ip、出口网卡、下一跳网关匹配,规则优先级匹配按照网络地址掩码位数由大到小
2 支持tcp、udp、icmp

lvs tun模式不好使

搭建了LVS Tun模式,一直不好使, 手顺都是按照网上手顺写的,应该没有问题。

现在现象是通过vip无法实现负载均衡,即访问vip也无法访问后台的2个realserver

但是发现一个奇怪的现象如下,使用/etc/init.d/ipvsadm status能够看到配置的信息

[root@localhost usr]# /etc/init.d/ipvsadm status
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 219.142.69.1XX:8083 rr

LVS的mysql failover解决方案

本菜鸟想搭建一个基于lvs的mysql负载环境,但是要求两台mysql不在同一个局域网,也就是说两台mysql在不同的域里,因为LVS需要模拟内网IP,但是不知道这个虚拟IP能不能路由到外网的IP里
LVS外网地址 :210.10.10.1
LVS虚拟内网地址 :210.10.10.10
MySQL1 内网地址 :210.10.10.2
MySQL2 外网地址 :466.12.10.2

请问这样能实现不同域之间的failover吗

请教如何实现lvs+mon+heartbeat负载均衡

现有4台服务器,每台服务器都有2个网卡,eth0是内网的,eth1是外网的,eth1的ip可以通过互联网访问
其中2台作为lvs,另外2台作为realserver,mon,ipvsadm,heartbeat都装好了,mon跟heartbeat都能用
但是在配置ivs的时候,互联网无法访问lvs配置的页面.
服务器具体情况如下:
vip:192.168.1.30
lvs1:
eth1 :10.10.10.1
eth0 :192.168.1.1
eth0:0 :192.168.1.30
lvs2:
eth1 :10.10.10.2
eth0 :192.168.1.2
realserver1:
eth1 :10.10.10.3
eth0 :192.168.1.3
realserver2:
eth1 :10.10.10.4
eth0 :192.168.1.4

fullnal模式报错: -b: unknown option

我在rhel 6 下安装了淘宝内核,想启动fullnal模式,却报错 -b: unknown option,即标题那个。
系统uname输出: 2.6.32-220.23.1.tb2551.el6.x86_64 #1 SMP Tue Mar 12 19:03:37 CST 2013 x86_64 x86_64 x86_64 GNU/Linux
版本信息 : ipvsadm v1.26 2008/5/15 (compiled with popt and IPVS v1.2.1)
ipvsadm命令:ipvsadm -C
ipvsadm -A -t 192.168.0.53:80 -s rr
ipvsadm -a -t 192.168.0.53:80 -r 10.4.1.60:80 -b
有谁知道怎么解决么?

关于ipvsadm 报 -b: unknown option

我在rhel 6 下安装了淘宝内核,想启动fullnal模式,却报错 -b: unknown option,即标题那个。
系统uname输出: 2.6.32-220.23.1.tb2551.el6.x86_64 #1 SMP Tue Mar 12 19:03:37 CST 2013 x86_64 x86_64 x86_64 GNU/Linux
版本信息 : ipvsadm v1.26 2008/5/15 (compiled with popt and IPVS v1.2.1)
ipvsadm命令:ipvsadm -C
ipvsadm -A -t 192.168.0.53:80 -s rr
ipvsadm -a -t 192.168.0.53:80 -r 10.4.1.60:80 -b
有谁知道怎么解决么?

keepalived+lvs运行一段时间后访问VIP地址只显示其中一个realserver的网页不切换了,而且ipvsadm -ln显示0个连接数

最近搭建了keepalived+lvs,负载均衡为DR,调度算法是rr,在测试过程中,当keepalived的服务刚启动的时候运行良好,各个realserver之间轮换调度,但是当运行一段时间后出现访问VIP只出现其中一个realserver的网页,别的realserver网页刷不出来,在director server上运行
ipvsadm -Ln命令发现所有realserver的Activeconn和Inactconn连接数量都为0,但是又明显访问到一台realserver。
只有重启keepalived服务后,才能恢复正常运行,但是过一段时间后又不行了。不知道哪里出问题了。

keepalived.conf中的virtual_ipaddress字段和ipvsadm中的/sbin/ifconfig eth0:0 $VIP broadcast 10.255.255.255 netmask 255.255.255.0 up有什么区别?

正在做关于lvs+keepalived的虚拟测试,发现在keepalived.conf中有虚拟IP的设置:

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
virtual_ipaddress {
192.168.122.55
}
以上配置中的virutal_ipaddress的功能是在eth0端口设置虚拟IP地址是吧?
但ipvsadm中仍有关于设置虚拟Ip地址的内容,如:
/sbin/ifconfig eth0:0 $VIP broadcast 10.255.255.255 netmask 255.255.255.0 up

LVS会话保持在特殊应用不生效是否有更好的解决办法

最近用LVS+keepalived对一特殊应用做了负载均衡,应用的特殊在于:
1.多端口,而且相互有关联,所以必须做会话保持(用了fwmark方案能实现,测试没问题);
2.应用是C/S的,客户端不退出不操作的时候,是不会有数据包的;

在实际运行过程中,发现一个问题,用户一直挂在那里没有操作,过了一会应用就会出错,还没有到-p设置的时间呢。