在centos 6.4的系统中,ipvs的代码已被收录进行内核,所以只需要安装用户空间的管理工具即可,如何查看系统内核是否支持ipvs及如何安装用户空间的配置工具,请看下边。

[root@HAPROXY ~]# grep -i "ip_vs" /boot/config-2.6.32-358.el6.x86_64 #查看内核中是否编译进了ipvs的代码

[root@HAPROXY ~]# yum -y install ipvsadm  #安装用户空间的配置管理工具

利用ipvs的用户空间配置管理工具ipvsadm配置一个负载均衡集群服务系统大致分成两步,第一步定义一个集群服务,第二步为这个集群服务添加各个real server节点。

下边简单介绍利用ipvsadm配置、管理一个负载均衡集群服务系统的基本语法:

1、定义一个集群服务

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

--add-service     -A        添加一个虚拟集群服务

--edit-service     -E        修改一个已存在的虚拟集群服务

--tcp-service      -t service-address        service-address is host[:port] (定义一个基于tcp的虚拟服务)

--udp-service     -u service-address      service-address is host[:port] (定义一个基于ucp的虚拟服务)

--fwmark-service   -f fwmark                fwmark is an integer greater than zero(定义防火墙的标记码)

 --scheduler    -s scheduler         one of rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,the default scheduler is wlc.(定义调度算法)

2、删除集群服务

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

-D, --delete-service  (删除集群服务)

              Delete a virtual service, along with any associated real servers.

3、向集群服务添加real server

ipvsadm -a|e -t|u|f service-address -r server-address [options]

-a, --add-server

Add a real server to a virtual service.(向集群添加一个RS地址)

-e, --edit-server

Edit a real server in a virtual service.(在集群中编辑一个RS)

-r, --real-server server-address(指定RS,host[:port]这样的格式)


4、删除集群服务中的real server

ipvsadm -d -t|u|f service-address -r server-address

-d, --delete-server

Remove a real server from a virtual service.(从虚拟服务中删除指定的real server)


5、清空所有的集群服务

ipvsadm -C

-C, --clear

Clear the virtual server table.(清空集群服务)


6、保存及重新加载规则

ipvsadm -S  > /path/to/some_rule_file (保存时用输出重定向把规则保存在一个文件中,默认保存在/etc/sysconfig/ipvsadm中)

-S, --save

Dump  the  Linux  Virtual  Server  rules  to  stdout  in  a  format  that  can  be read by

ipvsadm -R  < /path/from/some_rule_file (默认是从标准输入中读取规则,一般用输入重定向读取已保存了规则的文件)

-R, --restore


7、查看定义的集群服务及real server的信息

ipvsadm -L -n 

-c:查看各连接情况,可查看由哪个客户端访问了哪个虚拟服务,被director调度到了后端哪个real server的信息

--stats:显示统计数据,可查看客户端访问的次数,接收和发送的字节数

--rate:显示速率

--exact:显示精确值