一、关于ipvsadm
ipvsadm是运行于用户空间、用来与ipvs交互的命令行工具,它的作用表现在:
1、定义在Director上进行dispatching的服务(service),以及拿此服务器(server)用来提供此服务;
2、为每台同时提供某一种服务的服务器定义其权重(即根据服务器性能确定的其承担负载的能力)。
注:权重用整数来表示,有时候也可以将其设置为atomic_t;其有效表示值范围为24bit整数空间,即(2^24-1);
因此,ipvsadm命令的主要作用表现在以下方面:
1、添加服务(通过设定其权重>0);
2、关闭服务(通过设定其权重>0);
此应用场景中,已经连接的用户将可以继续使用此服务,直到其退出或超时;新的连接请求将被拒绝;
3、保存ipvs设置,通过使用"ipvsadm-save > ipvsadm.bak"命令实现;
4、恢复ipvs设置,通过使用"ipvsadm-save < ipvsadm.bak"命令实现;
5、显示ipvs的版本号,下面的命令显示ipvs的hash表的大小为4k;
# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
6、显示ipvsadm的版本号
# ipvsadm --version
ipvsadm v1.26 2008/5/15 (compiled with popt and IPVS v1.2.1)
二、ipvsadm使用中应注意的问题
默认情况下,ipvsadm在输出主机信息时使用其主机名而非IP地址,因此,Director需要使用名称解析服务。如果没有设置名称解析服务、服务不可用或设置错误,ipvsadm将会一直等到名称解析超时后才返回。当然,ipvsadm需要解析的名称仅限于RealServer,考虑到DNS提供名称解析服务效率不高的情况,建议将所有RealServer的名称解析通过/etc/hosts文件来实现。
三、ipvsadm常用命令
管理集群服务:
添加:-A -t|u|f service-address [-s scheduler]
-t:TCP协议的集群
service-address: IP:PORT
-u:UDP协议的集群
service-address: IP:PORT
-f :FireWallMark(FWM),防火墙标记
service-address: Mark Number
example:
# ipvsadm -A -t 10.10.10.1:80 -s rr
修改:-E
使用格式跟-A选项相同
删除:-D -t|u|f service-address
管理集群服务中的Real Server:
添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
-t|u|f service-address:事先定义好的某集群服务
-r server-address:real server的地址,在NAT模型中,可以使用IP:PORT实现端口映射
[-g|i|m]:LVS类型
-g:DR
-i:TUN
-m:NAT
[-w weight]:定义服务器权重
example:
# ipvsadm -a -t 10.10.10.1:80 -r 10.10.10.11 -m
# ipvsadm -a -t 10.10.10.1:80 -r 10.10.10.12 -m
修改:-e
使用格式跟-a选项相同
删除:-d -t|u|f service-address -r server-address
查看:
-L | -l :显示规则
-n:以数字格式显示主机地址和端口
-c:显示当前ipvs连接状况
--stats:显示统计信息
--rate:显示速率
--timeout:显示tcp、tcpfin、udp会话超时时长
# ipvsadm -L -n --timeout
Timeout (tcp tcpfin udp): 900 120 300
--daemon:显示进程状态以及多播端口
--sort:排序显示
设置tcp、tcpfin、udp会话超时时长:
# ipvsadm --set tcp tcpfin udp
删除所有集群服务:
-C:清空ipvs规则
# ipvsadm -C
保存规则:-S
# ipvsadm -S > /path/to/file
恢复规则:-R
# ipvsadm -R < /path/to/file
清空服务计数器:-Z [-t|u|f service-address]
# ipvsadm -Z [-t|u|f service-address]
查看RealServer持久连接:
# ipvsadm -L -n --persistent-conn