LAMP架构之1——LVS实现四层负载均衡
一、LVS简介The Linux Virtual Server Project - Linux Server Cluster for Load BalancingLVS中文站点http://zh.linuxvirtualserver.org/IP负载均衡技术 | LVS中文站点二、 ipvsadm本实验以三台虚拟机为基础,一台VS/(也称DR)调度服务器,另外两台作为RS集群服务器。真机作为客户端
目录
一、LVS简介
The Linux Virtual Server Project - Linux Server Cluster for Load Balancing
LVS中文站点http://zh.linuxvirtualserver.org/IP负载均衡技术 | LVS中文站点
二、 ipvsadm
本实验以三台虚拟机为基础,一台VS/(也称DR)调度服务器,另外两台作为RS集群服务器。真机作为客户端Client。
1、在P服务器中安装ipvsadm
yum install -y ipvsadm #安装ipvsadm软件
ip addr add 172.25.254.100/24 dev eth0 #手工加上临时IP地址
查看ipvsadm策略
编写并查看ipvsadm策略(此策略在防火墙之后)
当发现转入的数据是访问虚拟IP172.25.254.100时,就自动把数据包转发到172.25.254.1和172.25.254.2上
ipvsadm -A -t 172.25.254.100:80 -s rr
ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.2:80 -g
ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.3:80 -g
2、测试:在集群中安装apache
启动httpd服务,为了便于测试,在发布目录中分别写入不同内容
在真机中测试:
可以看到,真机中访问不通,但是检查lvs的调度策略,是正常的。
原因:是因为集群中的主机的网络策略不允许数据包通过其他IP访问,所以解决办法是,向集群中的网卡也加入172.25.254.100的临时IP。
向两台集群主机中加入100的临时IP后,客户机测试正常,访问量均衡。
3、arptables优化lvs均衡
在上一步的基础上,清除了172.25.254.100的缓存,原本的缓存是server1的,删除后重新测试,由于三台服务器都存在100的IP,所以真机测试时会随机选定一台主机。选定的主机没有开启负载均衡功能时,将不会向其他集群机器分担负载。
arp -an | grep 100 #过滤
arp -d 172.25.254.100 #删除
为了解决上述问题,可以通过修改arp表来完善。
yum install -y arptables #安装arptables
arptables和iptables的区别是,arptables只是管理arp协议,对其他协议无效。
编辑arptables表:
arptables -A INPUT -d 172.25.254.100 -j DROP
arptables -A OUTPUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.3
以上两条命令表示:(1)如果数据直接通过172.25.254.100访问,则丢弃数据包。(2)如果数据包来源是172.25.254.100,则将数据包转发至172.25.254.3上 。
附:策略尽可能保存起来,否则服务一重启就没了。
arptables-save #保存策略
arptables-save > /etc/sysconfig/arptables #保存策略到指定位置
再次测试:
及使清除了lvs的mac缓存,客户访问时仍然只会访问负载均衡器。
三、LVS负载均衡存在的问题
1、当一台RS服务器坏掉时——健康检测
实验:关闭server2的apache,在客户机中测试负载均衡。
客户机中访问lvs,调度器server1是没有任何问题的。但是调度到server2的时候访问被拒绝。
解决办法:因此调度器VS对后需要有一个“健康检测”的功能,对不可用的RS服务器从调度列表中移除。
安装keepalived:在主LVS服务器server1和冗余LVS服务器server4中
yum install -y keepalived
配置keepalived文件:主LVS服务器
对LVS冗余服务器的配置文件也进行同样的更改,不同如下:(主LVS的优先级高于辅助LVS的优先级)
测试:在主LVS服务器中
清除ipvsadm策略和IP地址,重启keepalived服务后。
systemctl start keepalived
关闭一台RS服务器的httpd后,ipvsadm策略表里不再有该主机。重启该服务器的httpd服务,VS服务器的调度策略里重新出现该主机
2、当VS调度服务器坏掉时——LVS冗余(集群)
实验:关闭server1的ipvsadm <ipvsadm -C>,清除了调度器的调度策略。
新建一台虚拟机server4用来做LVS的冗余,也就是server1的备用服务器。server4的配置方法已在上步介绍。这里直接测试。
测试:
启动LVS备用服务器server4的keepalived服务后,检查日志发现此服务当前的状态为<BACKUP>。
当主LVS服务器server1出现意外时(宕机了),会立即启动辅助LVS服务器server4。辅助服务器此时充当的时MASTER的角色
当主LVS服务器server1重新启动时,辅助LVS服务器server4的keepalived会立即变为<BACKUP>状态。
本章总结:
1、iso七层模型
2、DR必须同一VLAN下,走数据链路层,改MAC地址。TUNNEL(隧道)可以跨广域网。NAT模型就是做了一个IN-DNAT,OUT-SNAT。
3、安装邮件查看器
yum install -y mailx
4、主题:高负载可用均衡 (4层)
5、三种模式的优缺点比较
课下任务:
更多推荐
所有评论(0)