路漫漫其修远兮,吾将上下而求索。

导航

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

 

posted on 2020-03-09 13:32  rushiy  阅读(1578)  评论(0编辑  收藏  举报