ipvsadm 命令的使用


原文链接: ipvsadm 命令的使用

ipvsadm 的使用

ansible lvs-dr -m yum -a 'name=keepalived,ipvsadm state=installed'

ipvsadm -Ln 查看当前虚拟服务器
ipvsadm -Lnc 查看当前所有连接
ipvsadm 查看ipvs版本号及hash表大小
cat /proc/net/ip_vs_conn 查看当前所有连接
ipvsadm -lcn / grep x.x.x.x 查看请求x.x.x.x的连接
ipvsadm -l --rate 查看包传递速率的近似精确值
ipvsadm -l --stats 查看虚拟服务和RealServer上当前的连接数、数据包数和字节数的统计值

Director Server: 提供"Load Balancer"功能的服务器
virtual-service-address: 是指虚拟服务器的ip地址
real-service-address: 是指真实服务器的ip地址
scheduler: 调度方法

命令选项解释

-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。
-E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录 ( 修改LB算法:ipvsadm -E -t 172.16.1.253:80 -s wrr )
-D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录 eg: ipvsadm -D -t 172.16.1.253:80
-C --clear 清除内核虚拟服务器表中的所有记录
-R --restore 恢复虚拟服务器规则 eg: ipvsadm -S > /path/to/somefile
-S --save 保存虚拟服务器规则,输出为-R 选项可读的格式 eg: ipvsadm -R < /path/form/somefile
-a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。
-e --edit-server 编辑一条虚拟服务器记录中某条真实服务器记录 ( 修改RS权重:ipvsadm -e -t 1.1.1.1:80 -r 1.1.1.2 –g -w 3 )
-d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录 eg: ipvsadm -d -t 172.16.1.253:80 -r 172.16.1.101
-L|-l --list 显示内核虚拟服务器表
-Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)
--set tcp tcpfin udp 设置连接超时值
--start-daemon 启动同步守护进程。后面可以是master或backup,来说明其主备身份。也可用keepalived的VRRP功能
--stop-daemon 停止同步守护进程

其他选项:
-t --tcp-service service-address 说明虚拟服务器提供的是tcp服务 [vip:port] or [real-server-ip:port]
-u --udp-service service-address 说明虚拟服务器提供的是udp服务 [vip:port] or [real-server-ip:port]
-f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。
-s --scheduler scheduler 使用的调度算法:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq 默认是 wlc
-p --persistent [timeout] 持久稳固的服务。来自同1个客户的多次请求将被同一台RS处理。timeout 的默认值为300s
-M --netmask netmask persistent granularity mask
-r --real-server server-address 真实的服务器 [Real-Server:port]
-w --weight weight 后端RS的权值 [-w weight]
--mcast-interface interface 指定组播的同步接口
-c --connection 显示LVS 目前的连接 如:ipvsadm -L -c
--timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
--numeric -n 输出IP 地址和端口的数字形式

--set tcp tcpfin udp:设置连接超时时间。
--timeout:显示tcp、tcpfin、udp的timeout值。

--start-daemon:启动同步守护进程。可以跟上master或backup,用来说明LVS Router是master还是backup,该功能可以用keepalived来实现。
--stop-daemon:停止同步守护进程。
--daemon:显示同步守护进程的状态。
--mcast-interface:指定sync daemon发送组播消息的接口,或者是sync backup daemon监听组播的接口。

统计 -L参数

-c:显示LVS目前的连接。
--rate:显示速率信息。
-n --numeric:不进行地址转换,以数字形式显示。
--stats:显示统计信息。
--sort 对虚拟服务器和真实服务器排序输出

-x:指定服务器连接数的上限阀值。范围0-65535,如果为0则没有上限,如果为该范围内的其他值,则超过该值后,将不会有请求发送到该服务器。
-y:指定重新发送请求到该服务器时的下限值。范围是0-65535,如果是0,则没有设置下限阀值。当服务器释放的连接数小于该下限值时,该服务器将会接收新的连接。如果没有设置下限,但是设置了上限,则当连接释放掉上限的四分之三时,该服务器将会接收新的请求。

VIP -A参数 增加虚拟服务IP

ipvsadm -A -t 192.168.1.1:80 -s wlc -p 120

-t:虚拟服务器提供的是TCP服务。
-u:虚拟服务器提供的是UDP服务。
-s:使用的调度算法。rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq 默认是 wlc
-p:指定常连接时间。意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。在SSL和FTP时,该选项比较重要。在处理FTP连接时,如果采用的是TUN和DR模式,则该选项必须使用,如果使用的是NAT模式,则该选项不是必须的,但是必须手动的载入ip_vs_ftp模块。
-f:经过iptables标记过的服务。
-M:持久性连接的颗粒度。

RIP -a参数 关联RS服务器IP

-r:real server。
-w:reasl server 的权重。

-m:工作模式为LVS-NAT
-g:工作模式为LVS-DR (Direct Routing)
-i:工作模式为LVS-TUN

集群服务管理

增加、修改

ipvsadm -A|E -t|u|f SERVER-ADDRESS:PORT [-s scheduler] [-p [timeout]] 
; -A: 增加
; -E: 修改
; -t: TCP 协议
; -u: UDP 协议
; -f: firewall Mark(标记,一个数字)
---------------------------------------------------------------------
; SERVER-ADDRESS:PORT
; -t: TCP 协议端口,VIP: TCP PORT
; -u: UDP 协议端口,VIP: UDP PORT
---------------------------------------------------------------------
; -s: 指定集群的调度算法,默认为 wlc
; -p: 超时时间

删除

ipvsadm -D -t|u|f SERVER-ADDRESS

管理集群上的 RS

增加、修改

ipvsadm -a|e -t|u|f SERVER-ADDRESS:PORT -r SERVER-ADDRESS:PORT [-g|i|m] [-w weight]
; -a: 增加
; -e: 修改
; -r: Real Server IP(如省略 PORT,不作端口映射)
; -g: gateway,DR 类型,默认
; -i: ipip,TUN 类型
; -m: masquerade, NAT 类型
; -w: 权值

删除

ipvsadm -d -t|u|f SERVER-ADDRESS -r SERVER-ADDRESS

清空定义的所有规则

ipvsadm -C

清空计数器

ipvsadm -Z [-t|u|f SERVER-IPADDRESS]

查看

ipvsadm -L [OPTION]
; --numeric,-n	以数字形式输出地址和端口号
; --exact	扩展信息,精确值
; --connection,-c	当前 IPVS 连接输出
; --stats	统计信息
; --rate	输出速率信息

ipvs 规则:/proc/net/ip_vs

ipvs 连接:/proc/net/ip_vs_conn

保存与恢复规则

; 保存规则
ipvsadm-save > /etc/ipvsadm/ipvsadm.save
ipvsadm -S -n > /etc/ipvsadm/ipvsadm.save

;重载规则
ipvsadm-restore < /etc/ipvsadm/ipvsadm.save
ipvsadm -R -n < /etc/ipvsadm/ipvsadm.save
`