ipvsadm命令用于在Linux内核中设置,维护或检查虚拟服务器表。 Linux虚拟服务器可用于基于两个或更多节点的集群构建可伸缩网络服务。 群集的主节点将服务请求重定向到将实际执行服务的服务器主机集合。 支持的功能包括两种协议(TCP和UDP),三种数据包转发方法(NAT,隧道和直接路由),以及八种负载均衡算法(roundrobin,加权循环,最小连接,加权最小连接,基于位置) 最小连接,基于位置的最小连接,具有复制,目标哈希和源哈希)。

语法格式:ipvsadm [参数]

常用参数:

-A/--add-service 添加一条新的虚拟服务
-E/--edit-service 编辑虚拟服务
-D/--delete-service 删除虚拟服务
-C/--clear 清除所有的虚拟服务规则
-R/--restore 恢复虚拟服务规则
-S/--save 保存虚拟服务器规则
-a/--add-server 在一个虚拟服务中添加一个新的真实服务器
-e/--edit-server 编辑某个真实服务器
-d/--delete-server 删除某个真实服务器
-L/-l/--list 显示内核中的虚拟服务规则
-Z/--zero 将转发消息的统计清零
--set tcp/tcpfin/udp 配置三个超时时间(tcp/tcpfin/udp)
--start-daemon 启动同步守护进程。
--stop-daemon 停止同步守护进程 
-h/--help 显示帮助信息
-t/--tcp-service service-address TCP协议的虚拟服务
-u/--udp-service service-address UDP协议的虚拟服务
-f/--fwmark-service fwmark说明是经过iptables 标记过的服务类型。
-s/--scheduler scheduler 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.
-p/--persistent [timeout] 持久稳固的服务。
-M/--netmask指定客户地址的子网掩码
-r/--real-serverserver-address 真实的服务器
-g/--gatewaying指定LVS 的工作模式为直接路由模式
-i/--ipip指定LVS 的工作模式为隧道模式 
-m/--masquerading指定LVS 的工作模式为NAT 模式 
-w/--weightweight真实服务器的权值 
--mcast-interface interface指定组播的同步接口 
-c/--connection显示ipvs中目前存在的连接
-6: 如果fwmark用的是ipv6地址需要指定此选项。

参考实例

管理虚拟服务:

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

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

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

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

删除虚拟服务:

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

管理真实服务:

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

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

修改真实服务器的权重:

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

删除真实服务器:

[root@linuxcool ~]# ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.123

查看统计:

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

[root@linuxcool ~]# ipvsadm -Ln

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

[root@linuxcool ~]# ipvsadm -lnc

查看ipvs模块的转发情况统计:

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

Author

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

逄增宝

资深Linux系统爱好者,专注于Windows与Linux操作系统,关注虚拟化和自动化运维。