上篇文章我们介绍了LVS的基础概念等;接下来我们就来使用ipvsadm集群管理命令进行集群管理。


ipvsadm命令的用法:

管理集群服务:创建、修改、删除

管理集群服务的RS:添加、修改、移除

查看:

    统计数据

    速率


管理集群服务:

创建或修改:

ipvsadm -A|E -t|u|f service-address [-s scheduler]

    -A: 添加

    -E:修改

    -t: 承载的应用层协议为基于TCP协议提供服务的协议;其service-address的格式为“VIP:PORT”,如“172.16.100.6:80”;

    -u: 承载的应用层协议为基于UDP协议提供服务的协议;其service-address的格式为“VIP:PORT”,如“172.16.100.6:53”;

    -f:承载的应用层协议为基于TCP或UDP协议提供服务的协议,但此类报文会经由iptables/netfilter打标记,即为防火墙标记;其service-address的格式为“FWM”,例如“10”;

    -s scheduler: 指明调度方法;默认为wlc;


删除:

    ipvsadm -D -t|u|f service-address


清空所有集群服务的定义:

    ipvsadm -C


保存及恢复集群服务及RS的定义:

    ipvsadm -S > /etc/sysconfig/ipvsadm

    ipvsadm-save > /etc/sysconfig/ipvsadm

    service ipvsadm save

    ipvsadm -R < /etc/sysconfig/ipvsadm

    ipvsadm-restore < /etc/sysconfig/ipvsadm

    service ipvsadm restart


查看规则:

ipvsadm -L|l [options]

-c: 列出当前所有connection;

--stats: 列出统计数据

--rate: 列出速率

-n, --numeric: 数字格式显示IP及端口;

--exact: 精确值;


清空计数器:

ipvsadm -Z [-t|u|f service-address]


案例:lvs-nat类型的web服务器集群

tcpdump -i eth0 -nn host IP and tcp port 80   #抓包命令

首先准备三台机器,一台DS,两台RS,分别配置IP地址。DS准备两个网卡:

测试环境:
DS:ip 192.168.163.128  172.16.10.1
RS1:ip 172.16.10.2
RS2:ip 172.16.10.3
DS不启动web服务,RS启动web服务。
DS:
[root@dirctor ~]# yum install ipvsadm   #安装ipvs
[root@dirctor ~]# service ipvsadm start  #启动ipvs服务
[root@dirctor ~]# ipvsadm -A -t 192.168.163.128:80 -s rr   #设置DS添加ipvs管理规则
[root@dirctor ~]# ipvsadm -a -t 192.168.163.128:80 -r 172.16.10.3 -m -w 1 #设置RS管理
[root@dirctor ~]# ipvsadm -a -t 192.168.163.128:80 -r 172.16.10.2 -m -w 3
[root@dirctor ~]# curl 192.168.163.128   #进行80web服务测试,一比一调度。
node1
[root@dirctor ~]# curl 192.168.163.128
node2
[root@dirctor ~]# service ipvsadm save  #保存ipvs服务设置
RS:
[root@node1 ~]# vim /var/www/html/index.html #编辑RSweb服务主页,设置利于分辨的测试页面
[root@node1 ~]# service httpd start   #启动web服务
Starting httpd:                                            [  OK  ]
[root@node1 ~]# curl 172.16.10.2   #测试web服务是否正常
node1
[root@node1 ~]# route add default gw 172.16.10.1   #添加路由,两台RS都要添加。
[root@node1 ~]# iptables -F  #清空iptables规则,以免影响操作。