LVS负载均衡

本文详细介绍了如何使用ipvsadm命令在CentOS系统中管理IP虚拟服务器集群,包括添加、修改和删除服务及后端服务器,设置调度算法,查看连接状态和统计信息,以及保存和重载规则。示例展示了HTTP和MySQL服务的配置操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命令选项:

管理集群服务:增、改、删查

 ipvsadm  -A|E  -t|u|f  service-address  [-s scheduler]

 ipvsadm  -D  -t|u|f service-address

-A:添加   -E:修改   -D:删除

service-address:

-t, tcp, vip:port

-u, udp, vip:port

-f, fwm, MARK

      -s scheduler:默认为wlc;

管理集群服务上的RS:

ipvsadm -a|e  -t|u|f service-address -r server-address [-g|i|m] [-w weight]

ipvsadm -d -t|u|f service-address -r server-address

-a:添加一个RS   -e:修改一个RS  -d:删除一个RS

server-address:

rip[:port]

-g:GATEWAY (默认DR)

-i: IPIP,tun

-m: MASQUERADE,nat

-w weight

查看:

ipvsadm -L|l [options]

-n:numeric,数字格式显示地址和端口;

-c:connection,显示ipvs连接;

--stats:统计数据;

--rate:速率

--exact:精确值

清空规则:

ipvsadm  -C

保存和重载:

保存:

ipvsadm -S  > /PATH/TO/SOME_RULE_FILE

ipvsadm-save  > /PATH/TO/SOME_RULE_FILE

重载:

ipvsadm  -R < /PATH/FROM/SOME_RULE_FILE

ipvsadm-restore < /PATH/FROM/SOME_RULE_FILE

计数器清零:

ipvsadm  -Z  [-t|u|f service-address]

环境:

10.10.10.196  CentOS 7   Director

10.10.10.197  CentOS 6   real server

10.10.10.198  CentOS 6   real server

10.10.10.196服务器

a、首先判断内核是否支持ipvs

 

b、安装ipvsadm

[root@localhost gonc]# yum install ipvsadm

规则练习:

#将10.10.10.196的80,添加成一个集群调度服务器

[root@localhost ~]# ipvsadm -A -t  10.10.10.196:80

#查看,可以看出默认调度方法是wlc

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wlc

#将10.10.10.197也是80端口(可以省略,默认是集群调度的端口),采用nat模型,权重是1,添加至集群调度服务器里

[root@localhost ~]# ipvsadm  -a -t 10.10.10.196:80  -r  10.10.10.197:80 -m -w 1

#再次查看,Masq表名是nat,权重是1

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wlc

  -> 10.10.10.197:80              Masq    1      0          0         

#根据速率查看,CPS:每秒的连接数、InPPS:每秒的入站报文数、OutPPS:每秒的出站报文数、InBPS:每秒的入站字节数、OutBPS每秒的出站字节数

[root@localhost ~]# ipvsadm -Ln --rate

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS

  -> RemoteAddress:Port

TCP  10.10.10.196:80                     0        0        0        0        0

  -> 10.10.10.197:80

                     0        0        0        0        0

#根据状态查看,Conns:连接数、InPkts:入站报文数、OutPkts:出站报文数、InBytes:入站字节数、OutBytes:出站字节数

[root@localhost ~]# ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

  -> RemoteAddress:Port

TCP  10.10.10.196:80                     0        0        0        0        0

  -> 10.10.10.197:80                     0        0        0        0        0

#将10.10.10.198的80服务同样采用nat方式,权重为1,加入到集群服务中

[root@localhost ~]# ipvsadm -a -t 10.10.10.196:80 -r 10.10.10.198 -m -w 3

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wlc

  -> 10.10.10.197:80              Masq    1      0          0         

  -> 10.10.10.198:80              Masq    3      0          0

#新创建一个3306的集群调度服务,调度方式采用rr         

[root@localhost ~]# ipvsadm -A -t 10.10.10.196:3306 -s rr

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wlc

  -> 10.10.10.197:80              Masq    1      0          0         

  -> 10.10.10.198:80              Masq    3      0          0         

TCP  10.10.10.196:3306 rr

[root@localhost ~]# ipvsadm -a -t 10.10.10.196:3306  -r 10.10.10.197  -m -w 1

[root@localhost ~]# ipvsadm -a -t 10.10.10.196:3306  -r 10.10.10.198  -m -w 3

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wlc

  -> 10.10.10.197:80              Masq    1      0          0         

  -> 10.10.10.198:80              Masq    3      0          0         

TCP  10.10.10.196:3306 rr

  -> 10.10.10.197:3306            Masq    1      0          0             

  -> 10.10.10.198:3306            Masq    3      0          0   

#在10.10.10.196:3306这个集群里,删除掉10.10.10.197这个real server      

[root@localhost ~]# ipvsadm -d -t 10.10.10.196:3306 -r 10.10.10.197

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wlc

  -> 10.10.10.197:80              Masq    1      0          0         

  -> 10.10.10.198:80              Masq    3      0          0         

TCP  10.10.10.196:3306 rr

  -> 10.10.10.198:3306            Masq    3      0          0    

#修改10.10.10.196:80的调度方式为wrr     

[root@localhost ~]# ipvsadm -E -t 10.10.10.196:80 -s wrr

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wrr

  -> 10.10.10.197:80              Masq    1      0          0         

  -> 10.10.10.198:80              Masq    3      0          0         

TCP  10.10.10.196:3306 rr

  -> 10.10.10.198:3306            Masq    3      0          0

#在10.10.10.196:80里,将10.10.10.198的权重修改为10        

[root@localhost ~]# ipvsadm -e -t 10.10.10.196:80 -r 10.10.10.198 -w 10

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wrr

  -> 10.10.10.197:80              Masq    1      0          0         

  -> 10.10.10.198:80              Route   10     0          0         

TCP  10.10.10.196:3306 rr

  -> 10.10.10.198:3306            Masq    3      0          0

#输出规则         

[root@localhost ~]# ipvsadm -S

-A -t node0:http -s wrr

-a -t node0:http -r node1:http -m -w 1

-a -t node0:http -r node2:http -g -w 10

-A -t node0:mysql -s rr

-a -t node0:mysql -r node1:mysql -m -w 1

-a -t node0:mysql -r node2:mysql -m -w 3

#保存至指定文件

[root@localhost ~]# ipvsadm -S > /tmp/ipvsadm-config.v1

[root@localhost ~]# cat /tmp/ipvsadm-config.v1

-A -t node0:http -s wrr

-a -t node0:http -r node1:http -m -w 1

-a -t node0:http -r node2:http -g -w 10

-A -t node0:mysql -s rr

-a -t node0:mysql -r node1:mysql -m -w 1

-a -t node0:mysql -r node2:mysql -m -w 3

#清空规则

[root@localhost ~]# ipvsadm -C

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

#重载规则

[root@localhost ~]# ipvsadm -R < /tmp/ipvsadm-config.v1

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wrr

  -> 10.10.10.197:80              Masq    1      0          0         

  -> 10.10.10.198:80              Route   10     0          0         

TCP  10.10.10.196:3306 rr

  -> 10.10.10.197:3306            Masq    1      0          0         

  -> 10.10.10.198:3306            Masq    3      0          0         

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wrr

  -> 10.10.10.197:80              Masq    1      0          0         

  -> 10.10.10.198:80              Route   10     0          0         

TCP  10.10.10.196:3306 rr

  -> 10.10.10.197:3306            Masq    1      0          0         

  -> 10.10.10.198:3306            Masq    3      0          0

#输出至默认配置文件        

[root@localhost ~]# ipvsadm -S > /etc/sysconfig/ipvsadm

[root@localhost ~]# cat /etc/sysconfig/ipvsadm

-A -t node0:http -s wrr

-a -t node0:http -r node1:http -m -w 1

-a -t node0:http -r node2:http -g -w 10

-A -t node0:mysql -s rr

-a -t node0:mysql -r node1:mysql -m -w 1

-a -t node0:mysql -r node2:mysql -m -w 3

#停止ipvs

[root@localhost ~]# systemctl stop ipvsadm stop

Failed to stop stop.service: Unit stop.service not loaded.

[root@localhost ~]# systemctl stop ipvsadm

[root@localhost ~]# ipvsadm -C

#启动ipvs

[root@localhost ~]# systemctl start ipvsadm

[root@localhost ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.10.10.196:80 wrr

  -> 10.10.10.197:80              Masq    1      0          0         

  -> 10.10.10.198:80              Route   10     0          0         

TCP  10.10.10.196:3306 rr

  -> 10.10.10.197:3306            Masq    1      0          0         

  -> 10.10.10.198:3306            Masq    3      0          0  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperGloo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值