您的位置:首页 > 运维架构 > Linux

linux下lvs配置说明

2012-09-06 17:06 260 查看
环境:

OS:

Director:CentOs6.2,运行在vmware虚拟机上

RS:windows 2003

Director:

RIP = 192.168.1.1

VIP = 192.168.1.88

RS1:

RIP = 192.168.1.2

VIP = 192.168.1.88

RS2:

RIP = 192.168.1.3

VIP = 192.168.1.88

以下在Director上配置

1)安装ipvsadmin

#yum install ipvsadm

2)设置允许转发

#vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

3)加载/etc/sysctl.conf中设置的系统参数

#sysctl -p

4)配置VIP以及调度表

#vi /etc/rc.d/rc.local

ifconfig eth0:0 192.168.1.88 broadcast 192.168.1.255 netmask 255.255.255.255 up

route add -host 192.168.1.88 dev eth0:0

ipvsadm -C

ipvsadm -A -t 192.168.1.88:9811 -s rr

ipvsadm -a -t 192.168.1.88:9811 -r 192.168.1.2:9811 -g

ipvsadm -ln

5)重启网络服务

#service network restart

以下在Real Server上配置

1)添加loopback网络适配器

控制面板/添加硬件/添加新的硬件设备/安装我手动从列表选择的硬件/网络适配器/Microsoft---Microsoft Loopback Adapter

   

2)设置loopback适配器的ip为VIP(192.168.1.88),子网掩码为:255.255.255.255(通过注册表修改)

rsmon遇到的问题

rsmon(Real Server Monitor)监控真实服务器,自动维护ipvs调度表,真是服务器连上rsmon后,通过输入ipvsadm,输出如下:

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.1.88:9811 rr

-> 192.168.1.2:9811 Route 0 0 0

telnet 192.168.1.88 9811不成功(注意:Weight为0)。

通过在Director上tcpdump抓包分析,tcp握手包有收到,在Real Server(92.168.1.2)上通过MicroOLAP tcpdump抓包发现握手包没有转发到真实服务器上。

原因为Real Server(92.168.1.2)的weight为0。

相关代码如下:

IpvsManager::add_dest(port_,ip_,port_,0,proto_);

当weight设置为0后,ipvs将不会将连接分发到此服务器上。

当同一台机器不停的连接/断开lvs的服务,则会出现连接不上的现象,客户端报10061的错误。这是因为客户端连接太过于频繁(就是说你不停的"打搅"服务器, 例如断开连接又继续试图连接),
服务器不胜其扰(服务器对每个客户端的连接有一定的规定), 暂时拒绝该客户的连接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: