LVS也是开源的负载均衡服务软件。LVS是Linux Virtual Server 即Linux虚拟服务器,是一个虚拟的服务器集群系统。
| 术语 | 说明 |
|---|
| DS | 前段负载均衡节点服务器 |
| RS | 后段真实服务器 |
| DIP | 用于与内部主机通信的IP地址 |
| VIP | 向外部直接面向用户请求,用于用户请求的目标IP |
| RIP | 后端真实服务器的IP地址 |
| CIP | 访问客户端的IP地址 |
LVS与nginx相比较来说,LVS具有更强的负载能力,对资源消耗比较少。LVS工作在网络传输层,流量由内核来处理,nginx工作在网络的应用层。
LVS工作模式
直接路由模式(DR)
LVS-直接路由模式
部署
LVS 192.168.1.100 VIP:192.168.1.105
RS-a 192.168.1.101
RS-b 192.168.1.102
1
| [root@100 ~]# yum install ipvsadm kernel-devel -y #安装ipvsadm及内核
|
添加192.168.1.105地址
1
2
3
4
5
6
7
8
| 2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:26:ca:39 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet 192.168.1.105/24 brd 192.168.1.255 scope global secondary ens192
valid_lft forever preferred_lft forever
inet6 fe80::baef:8bc3:8e1c:44e1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
|
配置LVS DR模式负载均衡
1
2
3
| [root@100 ~]# ipvsadm -C #清除原来的配置
[root@100 ~]# ipvsadm -A -t 192.168.1.105:80 -s wrr #配置VIP与调度算法
[root@100 ~]# ipvsadm -L -n #查看
|
添加后段服务器
1
2
3
4
5
6
7
8
9
| [root@100 ~]# ipvsadm -a -t 192.168.1.105:80 -r 192.168.1.101 -g -w 1
[root@100 ~]# ipvsadm -a -t 192.168.1.105:80 -r 192.168.1.102 -g -w 1
[root@100 ~]# 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.1.105:80 wrr
-> 192.168.1.101:80 Route 1 0 0
-> 192.168.1.102:80 Route 1 0 0
|
后端主机配置抑制ARP与绑定VIP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| [root@101 ~]# echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
[root@101 ~]# echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
[root@101 ~]# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
[root@101 ~]# echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
[root@101 ~]# ifconfig lo:105 192.168.1.105/32
[root@101 ~]# ifconfig lo:105
lo:105: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 192.168.1.105 netmask 0.0.0.0
loop txqueuelen 1000 (Local Loopback)
[root@102 htdocs]# echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
[root@102 htdocs]# echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
[root@102 htdocs]# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
[root@102 htdocs]# echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
[root@102 htdocs]# ifconfig lo:105 192.168.1.105/32
[root@102 htdocs]# ifconfig lo:105
lo:105: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 192.168.1.105 netmask 0.0.0.0
loop txqueuelen 1000 (Local Loopback)
|
效果
1
2
3
4
5
6
7
| [root@100 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.1.105:80 4 78 0 23862 0
-> 192.168.1.101:80 2 18 0 4446 0
-> 192.168.1.102:80 2 60 0 19416 0
|

NAT模式
略。。。