ipvsadm常用命令
ipvsadm命令选项
-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器(VIP)。
-E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
-C --clear 清除内核虚拟服务器表中的所有记录。
-R --restore 恢复虚拟服务器规则
-S --save 保存虚拟服务器规则,备份输出为-R 选项可读的格式
-a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录(RIP)。也就是在一个虚拟服务器中增加一台新的真实服务器
-e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录
-d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录
-L|-l --list 显示内核虚拟服务器表
-Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)
--set tcp tcpfin udp 设置连接超时值
--start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的VRRP 功能。
--stop-daemon 停止同步守护进程
-h --help 显示帮助信息
-p --persistent [timeout] 持久稳固的服务(持久性连接)。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为360 秒。
-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务[vip:port] or [real-server-ip:port]
-f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。
-u --udp-service service-address 说明虚拟服务器提供的是udp 的服务[vip:port] or [real-server-ip:port]
-s --scheduler scheduler 使用的调度算法,有这样几个选项 rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.
-M --netmask netmask persistent granularity mask
-r --real-server server-address 真实的服务器[Real-Server:port]
-g --gatewaying 指定LVS 的工作模式为DR直接路由模式(也是LVS 默认的模式)
-i --ipip 指定LVS 的工作模式为隧道模式
-m --masquerading 指定LVS 的工作模式为NAT 模式
-w --weight weight 真实服务器的权值
--mcast-interface interface 指定组播的同步接口
-c --connection 显示LVS 目前的连接 如:ipvsadm -L -c
--timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
--daemon 显示同步守护进程状态
--stats 显示统计信息
--rate 显示速率信息
--sort 对虚拟服务器和真实服务器排序输出
-n --numeric 输出IP地址和端口的数字形式
案例1:跟虚拟服务器相关的参数:
-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器(VIP)。
-E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
-C --clear 清除内核虚拟服务器表中的所有记录。
-R --restore 恢复虚拟服务器规则
-S --save 保存虚拟服务器规则,备份输出为-R 选项可读的格式
添加一条虚拟服务器记录:ipvsadm -A -t vip:端口 [-s rr] #-s后跟调度算法,若不跟-s则默认为wlc,其他算法还有wrr、dh、sh、lblc、lblcr、lc等
[root@lvs-server ~]# ipvsadm -A -t 192.168.0.200:80
[root@lvs-server ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.200:80 wlc
转发方式:
格式:
ipvsadm -a -t VIP:端口 -r RIP:端口 -m [-w 1] #-m-->LVS-NAT,-w 为加权
ipvsadm -a -t VIP:端口 -r RIP:端口 -g [-w 1] # -g-->LVS-DR,-g可省略,默认为DR模式
ipvsadm -a -t VIP:端口 -r RIP:端口 -i [-w 1] # -i-->LVS-TUN
[root@lvs-server ~]# ipvsadm -a -t 192.168.0.200:80 -r 10.4.7.11:80 -m #将vip192.168.0.200的80端口的数据转发到RS服务器10.4.7.11的80端口
[root@lvs-server ~]# ipvsadm -a -t 192.168.0.200:80 -r 10.4.7.10:8080 -m #将vip192.168.0.200的80端口的数据转发到RS服务器10.4.7.10的8080端口
值得注意的是:该方式添加的规则重启服务器后规则就消失了,因此应该将该规则保存在文件中,待重启后可以直接从文件中恢复规则
保存规则:
[root@lvs-server ~]# ipvsadm -Sn #查看保存的内容,该方式是没有做保存,只是显示出来保存规则内容
-A -t 192.168.0.200:80 -s wlc -a -t 192.168.0.200:80 -r 10.4.7.10:8080 -m -w 1 -a -t 192.168.0.200:80 -r 10.4.7.11:80 -m -w 1
[root@lvs-server ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm #将规则保存到/etc/sysconfig/ipvsadm文件中
清空规则:
[root@lvs-server ~]# ipvsadm -C
[root@lvs-server ~]# ipvsadm -Ln #此时规则显示为空
IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn
通过文件还原规则:
[root@lvs-server ~]# ipvsadm -R < /etc/sysconfig/ipvsadm
[root@lvs-server ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.0.200:80 wlc -> 10.4.7.10:8080 Masq 1 0 0 -> 10.4.7.11:80 Masq 1 0 0
[root@lvs-server ~]# cat /usr/lib/systemd/system/ipvsadm.service
[Unit]
Description=Initialise the Linux Virtual Server
After=syslog.target network.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c "exec /sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm" #重启服务器后,默认从/etc/sysconfig/ipvsadm该文件中读取规则,将ipvsadm服务设置开机自启动后开机将自动加载规则
ExecStop=/bin/bash -c "exec /sbin/ipvsadm-save -n > /etc/sysconfig/ipvsadm" #停止ipvsadm服务时(执行systemctl stop ipvsadm时),自动将规则写入/etc/sysconfig/ipvsadm中
ExecStop=/sbin/ipvsadm -C
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
查询命令
[root@lvs-server ~]# ipvsadm -L # 查看lvs负载均衡信息
IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.0.200:http wlc -> 10.4.7.10:webcache Masq 1 0 0 #此处显示的不一定正确 -> 10.4.7.11:http Masq 1 0 0
[root@lvs-server ~]# ipvsadm -Ln #-Ln:输出IP地址和端口的数字形式
IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.0.200:80 wlc -> 10.4.7.10:8080 Masq 1 0 0 -> 10.4.7.11:80 Masq 1 0 0
[root@lvs-server ~]# ipvsadm -Lcn
IPVS connection entries pro expire state source virtual destination TCP 14:50 ESTABLISHED 192.168.0.100:63369 192.168.0.200:80 10.4.7.11:80 TCP 14:50 ESTABLISHED 192.168.0.100:63368 192.168.0.200:80 10.4.7.10:8080
#协议 连接时间 连接状态 CIP VIP RIP
[root@lvs-server ~]# ipvsadm -L --rate # 显示速率信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS
-> RemoteAddress:Port
TCP 192.168.0.200:80 0 1 1 213 92
-> 10.4.7.10:8080 0 0 0 6 4
-> 10.4.7.11:80 0 1 0 207 88
[root@lvs-server ~]# ipvsadm -L --sort # 对虚拟服务器和真是服务器排序输出
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.200:80 wlc
-> 10.4.7.10:8080 Masq 1 0 0
-> 10.4.7.11:80 Masq 1 0 1
[root@lvs-server ~]# ipvsadm -L --stats # 显示统计信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.0.200:80 10 70 43 10759 4658
-> 10.4.7.10:8080 5 50 33 9899 4198
-> 10.4.7.11:80 5 20 10 860 460
[root@lvs-server ~]# ipvsadm -L --timeout # 显示tcp tcpfin udp 的timeout值
Timeout (tcp tcpfin udp): 900 120 300