LVS:负载均衡软件,可达到硬件f5效果,写入linux内核。通常与keepalives一起使用。
- 当客户发送请求,代理服务器收到之后,进行服务器集群的询问,此时服务机谁先抢占到这个包就由谁响应,但是这样就达不到负载均衡的效果。所以在策略上当代理服务器接受到包,询问谁接受包,接受到包的服务机将这个包抛弃,不响应,由代理服务机策略起分配效果,以达到轮询(在这个过程中其实都是在四层服务以内,使用的不是IP地址,而使用的是MAC地址在同一局域网内进行寻址)。但是处理之后会将已经处理过的服务包发还给客户端,由于客户访问的是VIP,那么如果服务器端没有这个VIP,发还给客户的包肯定不被信任,那么就给这个服务器集群都加VIP,然后让后端服务器使用VIP将包发还给客户。
- 模式下调度器与服务器必须在同一局域网或者网卡相连,即通过交换机或高速的MAC值相连。
- VIP为调度器与服务机共享,此时VIP是对外可见的,用户访问的就是VIP,用来接受用户请求报文。
调度机:
yum install ipvsadm ##安装ipvsadm调度器
ipvsadm -l ##查看ipsadm策略
ipvsadm -A -t 172.25.30.100:80 -s rr
##添加VIP以及端口80,协议为tcp,rr算法轮询模式的策略。
yum install httpd ##安装apache
ipvsadm -a -t 172.25.30.100:80 -r 172.25.30.2:80 -g
##添加VIP后的真实服务机ip以及端口号
ipvsadm -a -t 172.25.30.100:80 -r 172.25.30.3:80 -g
ipvsadm -l
ip addr add 172.25.30.100/24 dev eth0
##将VIP加入本机。
ip addr show
ipvsadm 参数
-A 增加一台虚拟设备
-a 添加真实服务器
-t tcp协议
-s 调度算法(参数rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)
-r 真实ip
真实服务机:
yum install httpd ##安装apache
cd /var/www/html/ ##编写初始化网页
vim index.html
systemctl restart httpd ##重启apache
ip addr add 172.25.30.100/24 dev eth0 ##将VIP加入本机
ip addr show
从图可以看从虽然此时看似以及达到了轮询效果,其实并没有。因为此时其实是后端服务器自己抢占的包,调度器其实并没有实现调度,所以假设我们需要对删除已经绑定的MAC地址:
arp -an | grep 172.25.30.100 ##查看绑定的MAC地址
arp -d 172.25.30.100 ##清除访问的MAC地址
对两个后端服务器进行优化为:
yum install arptables ##安装网络控制进程
arptables -A INPUT -d 172.25.30.100 -j DROP
##将此IP下的请求忽略,只遵从调度器的调配
arptables -A OUTPUT -s 172.25.30.100 -j mangle --mangle-ip-s 172.25.30.2
##将信息发送网络内包时伪装成VIP发送
arptables -L ##查看加入的策略
ip addr add 172.25.30.100/24 dev eth0 ##加入VIP
ip addr show