LVS实践

本例使用KVM虚拟了4台机器: 
业务服务器两台, 地址分别是192.168.4.6和192.168.4.7, 都开启了httpd服务;
负载均衡服务器一台, CentOS6.3系统, 有两个地址, 对内的地址是192.168.4.5, 对外的地址是10.0.0.1;
测试机地址10.0.0.2;

最好把所有机器的防火墙关了, 免得麻烦. 在负载均衡服务器上安装软件并配置:

yum install ipvsadm
chkconfig ipvsadm on
ipvsadm -C
ipvsadm -A -t 10.0.0.1:80 -s wrr
ipvsadm -a -t 10.0.0.1:80 -r 192.168.4.6:80 -m
ipvsadm -a -t 10.0.0.1:80 -r 192.168.4.7:80 -m
service ipvsadm save

如果一切正常, 现在就搞定了. 在测试机上执行命令测试一下:

# curl 10.0.0.1
<html><body>aaa</body></html>

在负载均衡服务器可以看看状态:

# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.1:80 wrr
  -> 192.168.4.6:80               Masq    1      0          2         
  -> 192.168.4.7:80               Masq    1      0          1 


就这么简单.


不过我试验过程挺悲剧的. curl命令总是卡住, 看不到输出; 而ipvsadm -Ln能看到InActConn增加.  各种折腾都不好使. 最后在测试机上抓包:

LVS实践_第1张图片

发现有一些黑色的报文. 点开这些报文, 能看到Checksum incorrect:

LVS实践_第2张图片

于是开始折腾网卡, 最后发现, 把两台业务服务器的网卡的checksum特性关掉就好了:

ethtool --features eth0 tx off
大笑

你可能感兴趣的:(linux,负载均衡,LVS,服务器)