linux下lvs配置说明

环境:
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的错误。这是因为客户端连接太过于频繁(就是说你不停的"打搅"服务器, 例如断开连接又继续试图连接), 服务器不胜其扰(服务器对每个客户端的连接有一定的规定), 暂时拒绝该客户的连接。



















你可能感兴趣的:(vmware,linux,server,centos,服务器)