LVS负载均衡
企业中分为硬件和软件
硬件有公司f5 专门做负载均衡 产品叫big-IP,citrix,a10,redware
软件产品 lvs nginx haproxy perlbal httpd
lvs支持的并发无极限 根据相应服务器性能决定
linux virtual server(lvs)
相当于一个虚拟的四层的集群系统
本身不产生流量
lvs负载调度
1.负载调度器 director 作为整个集群的前端
主要是把用户的请求分发到真实服务器进行处理
2.真实服务器池
3.共享存储
每个用户访问的资源都是相同的 服务器支持写操作的时候才使用
keepalived 如果某个节点挂掉了 就会转发到其他的结点进行处理
名词术语:
VS:virtual server虚拟服务器 director
RS:real server 真实服务器 服务器集群中的节点
CIP:客户端client ip
VIP:virtual ip 虚拟ip地址 director向外提供的服务ip
RIP:real server ip 真实服务器ip地址
DIP:director和RS通信的ip
![](https://i-blog.csdnimg.cn/blog_migrate/7d02da95da70e46fb51cfdc838a2649f.png)
LVS是四层的/七层的负载均衡工具
四层负载均衡叫lpvs
七层叫内容分发负载均衡 ktcpvs
ipvs是集成在内核中的一个框架
lvs集群支持的模式
1.lvs-nat 网络地址转换
2.lvs-dr 直接路由
3.lvs-tun ip隧道
4.lvs-fullnat 完全nat
1.用户访问从CIP到VIP
2.负载均衡器DIP达到交换/路由器
3.最后达到真实服务器的RIP 从而到RS
lvs-nat模式
![](https://i-blog.csdnimg.cn/blog_migrate/9c284f2f5720249ac5d856d80724c43b.png)
要求 virtual server必须是linux系统
lvs-dr模式
![](https://i-blog.csdnimg.cn/blog_migrate/f4be41a374c33f8b3c089410565a9ff3.png)
lvs-tun模式
![](https://i-blog.csdnimg.cn/blog_migrate/24a95340e490a72e96c041a560d2e072.png)
lvs-fullnat
![](https://i-blog.csdnimg.cn/blog_migrate/47ee5119a33a631015c82aafc2dbdcbc.png)
lvs-nat实验
实验拓扑测试图
![](https://i-blog.csdnimg.cn/blog_migrate/659113c5bca4166138e9ff8e6bb2cde2.png)
Director配置
在LVS服务器上进行部署
yum -y install ipvsadm
打开路由的转发功能
echo 1 >> /proc/sys/net/ipv4/ip_forward
配置转发nat
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 172.16.214.0/24 -j MASQUERADE
iptables -nvL -t nat
配置ipvsadm
ipvsadm -A -t 192.168.1.153:80 -s wrr
ipvsadm -A -t 192.168.1.153:80 -r 172.16.214.136:80 -m -w 1
ipvsadm -A -t 192.168.1.153:80 -r 172.16.214.137:80 -m -w 1
查看配置结果信息
ipvsadm -ln
RS1配置:
route add -net 0.0.0.0 gw 172.16.214.134 //设置网关
route -n //查看配置
RS2配置:
route add -net 0.0.0.0 gw 172.16.214.134
![](https://i-blog.csdnimg.cn/blog_migrate/fee6b6e7573fe0b7574f9af24d02bc59.png)
keepalived实验
![](https://i-blog.csdnimg.cn/blog_migrate/f88feb878817464470d36a54578a3c7d.png)
借助协议
vrrp协议(虚拟冗余路由协议)(keepalived就是vrrp的协议实现)
主要负责接收的结点 活动节点 master
备份节点 backup
如果有一天master死了 backup没有受到master的心跳数据包 那么backup就会自动成为master
![](https://i-blog.csdnimg.cn/blog_migrate/47f81f3c60a09455c99af9997b8cf27c.png)
实验环境
server1 外网 192.168.1.61 内网172.16.214.136
server2 外网 192.168.1.248 内网172.16.214.137
1.两台服务器都开启时间同步服务
setenforce 0
systemctl stop firewalld
systemctl start chronyd
同时还需要保证两台服务器得ifconfig上端都是MULTICAST
![](https://i-blog.csdnimg.cn/blog_migrate/e1be98ed05e9dc382612164beed4457b.png)
2.两台主机都安装keepalive客户端
yum -y install keepalived
配置文件位置
/etc/keepalived/keepalived.conf
3.先配置server1 master
![](https://i-blog.csdnimg.cn/blog_migrate/14a080c08f05a1ab15a56767ad6d211d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d8b87c8797244bb2b6aa70fe864b57b.png)
systemctl start keepalived #开启服务
2.配置server2
![](https://i-blog.csdnimg.cn/blog_migrate/494c02c938cad47a39f52207e1ee56cb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7a8de7970cb8ef59a7eb57f52d6bface.png)
systemctl start keepalived #开启服务
此时server1已经生成了相应的虚拟ip地址
![](https://i-blog.csdnimg.cn/blog_migrate/0e418a30f31aee86c733736c6f75ce29.png)
systemctl status keepalived
![](https://i-blog.csdnimg.cn/blog_migrate/fa2847452dee066b9e2b962423ca9e80.png)
当server1的服务重新启动以后 虚拟网卡会重新恢复到server1的位置 server2处的虚拟网卡会消失