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时,能以调度的方法访问真正的服务器

 拓扑图如下所示:

ipvsadm命令及lvs-nat类型web服务器集群_ipvsadm

 思路:

 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的不同处