ipvsadm命令来自于英文词组“IPVS administration”的缩写,其功能是用于管理Linux虚拟服务器。ipvsadm命令用于在Linux内核中设置、维护或检查虚拟服务器表,Linux虚拟服务器可用于基于两个或更多节点的集群构建可伸缩网络服务。

群集的主节点将服务请求重定向到将实际执行服务的服务器主机集合, 支持的功能包括两种协议(TCP和UDP),三种数据包转发方法(NAT,隧道和直接路由),以及八种负载均衡算法(roundrobin,加权循环,最小连接,加权最小连接,基于位置) 最小连接,基于位置的最小连接,具有复制,目标哈希和源哈希)。

语法格式:ipvsadm [参数]

常用参数:

-A添加一条新的虚拟服务
-E编辑虚拟服务
-D删除虚拟服务
-C清除所有的虚拟服务规则
-R恢复虚拟服务规则
-S保存虚拟服务器规则
-a在一个虚拟服务中添加一个新的真实服务器
-e编辑某个真实服务器
-d删除某个真实服务器
-L显示内核中的虚拟服务规则
-Z将转发消息的统计清零
-h显示帮助信息
-tTCP协议的虚拟服务
-uUDP协议的虚拟服务
-f说明是经过iptables 标记过的服务类型。
-s使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.
-p持久稳固的服务。
-M指定客户地址的子网掩码
-r真实的服务器
-g指定LVS 的工作模式为直接路由模式
-i指定LVS 的工作模式为隧道模式 
-m指定LVS 的工作模式为NAT 模式 
-w真实服务器的权值 
-c显示ipvs中目前存在的连接
-6: 如果fwmark用的是ipv6地址需要指定此选项。

参考实例

添加一个虚拟服务,使用轮询算法:

[root@linuxcool ~]# ipvsadm -A -t 192.168.10.10:80 -s rr

修改虚拟服务的算法为加权轮询:

[root@linuxcool ~]# ipvsadm -E -t 192.168.10.10:80 -s wrr

删除一个虚拟服务:

[root@linuxcool ~]# ipvsadm -D -t 192.168.10.10:80

添加一个真实服务器,使用DR模式,设置权重为2:

[root@linuxcool ~]# ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.12 -g -w 2

修改真是服务器的权重为5:

[root@linuxcool ~]# ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.12 -g -w 5

删除一个真实服务器:

[root@linuxcool ~]# ipvsadm -d -t 192.168.10.10:80 -r 192.168.10.12

查看当前虚拟服务和各个RS的权重信息:

[root@linuxcool ~]# ipvsadm -Ln

查看当前ipvs模块中记录的链接信息(可用于观察转发情况):

[root@linuxcool ~]# ipvsadm -lnc

查看当前ipvs模块中的转发情况信息:

[root@linuxcool ~]# ipvsadm -Ln --stats | --rate
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。