1、管理集群服务
(1)创建或修改
ipvsadm -A|E -t|u|f service-address [-s scheduler]
-A 添加
-E 修改
-t 承载的应用层协议为基于TCP协议提供服务的协议,其server-address的格式为”VIP:PORT“,如172.16.100.6:80
-u 承载的应用层协议为基于UDP协议提供服务的协议,其server-address的格式为”VIP:PORT“,172.16.100.6:53
-f 承载的应用层协议为基于TCP或UDP协议提供服务的协议,但此类报文会经由iptables/netfilter打标记,即为防火墙标记其server-address格式为”FWM“,例如”10“
-s scheduler 指明调度方法,默认为WLC
(2)删除
ipvsadm -D -t|u|f service-address
2、管理集群服务上的RS
(1)添加或修改
ipvsadm -a|e -t|u|f service-address -r server-address
[-g|i|m] [-w weight] [-x upper] [-y lower]
-r server-address:指明RS,server-address格式一般为”IP[:PORT]“,只有支持端口映射的lvs才定义此处端口
例如 -r 192.168.10.7:80
[-g|i|m]:指明lvs类型
-g:gateway,意为dr类型
-i:ipip,意为tun类型
-m:masquerade 意为nat判刑
[-w weight]:RS的权重
注意:仅对于支持加权调度的scheduler,权重才有意义
(2)删除:
ipvsadm -d -t|u|f service-address -r server-address
(3)清空所有集群服务的定义
ipvsadm -C
(4)保存与恢复规则
1)保存:
ipvsadm -S > /etc/sysconfig/ipvsadm
ipvsadm -save > /etc/sysconfig/ipvsadm
server ipvsadm save
2)恢复
ipvsadm -R < /etc/sysconfig/ipvsadm
ipvsadm -restore < /etc/sysconfig/ipvsadm
server ipvsadm restart
3、查看规则
ipvsadm -L|l [options]
-c:列出所有连接
#ipvsadm -Ln -c //查看状态信息
--stats:列出统计数据
--rate:速率统计
#ipvsadm -Ln --stats
-n,--numeric:数字显示IP及端口
--exact:列出精确值
4、清空计数器
ipvsadm -Z [-t|u|f service-address]
案例:lvs-nat类型web服务器集群
架构环境:
系统:centos 6.6 X86_64
工具:vmware workstation 11
要求:有三台服务器,分别作为Director(调度器) 、real server1、real server2。要求集群类型为lvs-nat,并通过外部访问VIP时,能以调度的方法访问真正的服务器
拓扑图如下所示:
思路:
1、新建三个虚拟主机,主机名分别为node1(作为Director),node2(real server1),node3(real server2)
2、把Director设定两个网卡,一个为桥接,一个为仅主机,VIP设为172.16.21.110,DIP设为192.168.91.70
3、real server1网卡设为仅主机,RIP设为192.168.91.80
4、real server2网卡设为仅主机,RIP设为192.168.91.90
5、real server在/var/www/html在设置主页,把网关都指向DIP
6、在物理机上测试
说明:为保证测试效果,需要关闭iptables和selinux,并且本机已经配置yum源OK
#yum info ipvsadm //查看ipvsadm信息 #grep -i "ipvs" -A 5 /boot/config-2.6.32-504.e16.x86_64 //查看ipvs是否支持各种协议(TCP,UDP等) #yum install ipvsadm -y //安装ipvsadm node1 #ipconfig eth0 172.16.21.110/16 up //本机只是测试用,设定IP为临时IP,重启后会更改 #ipconfig eht1 192.168.91.70/24 up node2 #ipconfig eth0 192.168.91.80/24 up node3 #ipconfig eth0 192.168.91.90/24 up node1 #ping 192.168.91.80 //在Director上测试能否ping能real server #ping 192.168.91.90 node2 #vim /var/www/html/index.html <h1>node2.king.com</h1> #service httpd start node3 #vim /var/www/html/index.html <h1>node3.king.com</h1> #service httpd start node1 #curl http://192.168.91.80 //在Director上测试能否正常访问real server网页 #curl http://192.168.91.90 node2 #route add default gw 192.168.91.70 //添加DIP为默认网关 #route -n //查看网关是否添加成功 node3 #route add default gw 192.168.91.70 #route -n #ping 172.16.21.110 //测试是否ping通外网接口 node1 #ipvsadm -A -t 172.16.21.110:80 -s rr //创建集群 #ipvsadm -a -t 172.16.21.110:80 -r 192.168.91.80 -m -w 1 //在集群上为RS添加规则,因为是轮询,所以设定权重没有效果 #ipvsadm -a -t 172.16.21.110:80 -r 192.168.91.90 -m -w 3 #ipvsadm -L -n #cat /proc/sys/net/ipv4/ip_forward //查看是否打开核心转发,如果为0,则要更改为1 #vim /etc/sysctl.conf net.ipv4.ip_forward = 1 //修改0为1 #sysctl -p //使更改立即生效 在浏览器中输入http://172.16.21.110测试 #ipvsadm -L -n --stats //测看状态 扩展:修改调度方法RR为WRR,再次测试,发现各功能不同之处 node1 #ipvsadm -E -t 172.16.21.110:80 -s wrr //修改算法再次测试 #ab -n 10000 -c 100 http://172.16.21.110/index.html #ipvsadm -L -n --stats //再次查看状态,发现算法WRR的不同处