一、LVS简介
LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式。
二、LVS基础实验
1.实验环境配置======上节博客
server1 做lvs调度器 server2 server3 做 real server 后端服务器
2.安装ipvsadm 并书写策略 ======server1 操作
1)在 server1----lvs调度器安装ipvsadm
2) 增加vip ====172.25.254.123 注意::不能与已经设定的ip冲突 并且要与server123在同一网段
3)添加lvs策略
3.测试准备:在后端服务器:server2 server3 安装httpd进行测试
server2 操作:
server3 一样的操作
4.测试:在真机执行
# curl 172.25.254.123
测试失败!!因为没有在server2 server3 添加vip
真机卡住没有反应 但是查看lvs调度器 显示调度成功! 说明问题出现在后端服务:server2 server3
因为后端服务器没有添加vip
5.在后端服务器server2 server3 添加vip
6.在真机再次测试=====成功
三. arptables ===== DR模式
1.问题出现:
当在真机上删除缓存的mac地址 再次测试时 不再通过lvs调度器
而是直接连接rs 谁相应的快就连接谁====毕竟都在同一网段 而且有同一个vip
删除server的mac地址
此时lvs调度器显示没有调度成功!!说明没有经过调度器
再次删除mac地址 再次测试
2.问题解决:
修改内核=====太复杂
通过arptables解决=====类似iptables
但是只针对arp协议
1) 在所有的rs安装arptables
2)在后端服务器::server2 server3 添加两条arp 策略
直接访问后端服务器rs没有经过调度器的要丢弃 ===
不能从rs后端服务器广播出去=====
在server2 的操作:添加策略并保存
重启后 直接开启策略服务 策略仍然存在
在server3 操作相同
3.在真机测试:成功!!
删除mac地址 再次测试