lvs负载均衡

lvs负载均衡

  • 一. lvs的简介
  • 二. lvs的基础配置
  • 三. 负载均衡的优化
  • 四.高可用(keepalived)
  • 五. lvs多主高可用

一. lvs的简介

lvs(linux virtual server),linux虚拟服务器,是一个虚拟的四层交换器集群系统,根据目标地址和目标端口实现用户请求转发,本身不产生流量,只做用户请求转发,目前是负载均衡性能最好的集群系统。
后期也由很多用户参与开发LVS辅助工具和辅助组件,最出名的就是alexandre为LVS编写的keepalived
keepalived最初专门用于监控LVS,之后又加入VRRP实现高可用功能。

**负载调度器:**真实服务器群节点一起被称为LVS,LVS负载调度器(有时也称为负载均衡器),接收服务的所有接入服务集群的请求,并决定集群中的哪个节点应该回复其请求。

1)、负载调度器(director):作为整个集群的前端,主要将用户请求分发至真实服务器中进行处理。

2)、真实服务器池:由多个功能相同的真是服务器组成,为用户提供真正的网络服务,如web服务,邮件服务等。且虚拟服务器集群作为一个可伸缩的集群,可自由添加深处真是服务器而并步影响整个集群的正常工作。

3)、共享存储:作用就是让每个用户访问的资源都是一样的,服务器支持写操作,才建议使用

LVS集群的高可用:虽然LVS负载均衡性能很好,但是如果其中节点故障,LVS是无法感知的。

因此产生了LVS周边的一个辅助工具KeepAlived,用于监控检查兼容性非常好,如果RS一个节点挂掉,keepalived会将此节点从管理列表中剔出,当节点恢复再拉回管理列表,但是此时的调度器存在单点故障的可能性,所以还必须使用其他软件来实现调度器的高可用,比如hearbeat。最好的方法是软硬件相结合,用router调用lvs,这样既能节省资源又能避免节点故障。

Linux Virtual Server项目的目标 :使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。

在LVS框架中,提供了含有三种IP负载均衡技术的IP虚拟服务器软件IPVS、基于内容请求分发的内核Layer-7交 换机KTCPVS和集群管理软件。可以利用LVS框架实现高可伸缩的、高可用的Web、Cache、Mail和Media等网络服务;在此基础上,可以开 发支持庞大用户数的、高可伸缩的、高可用的电子商务应用。

LVS是四层(传输层tcp/vdp),七层(应用层)的负载均衡工具,用的最多的是就是四层负载均衡功能的ipvs,七层的内容分发负载ktcpvs(kenrnel tcp virtual server),基于内容的调度,因为应用层交换处理复杂,但伸缩性有限,目前还不成熟

lvs的四种方式:

在LVS集群中,集群是一个整体,通过负载均衡调度器(director)作为外部通信的中介,因此如何将外部请求转发到内部真是服务器的方式对LVS集群分类
LVS四种方式:网络地址转换(LVS-NAT),直接路由(LVS-DR),IP隧道(LVS-TUN)、LVS-FULLNAT,一个负载均衡器上可以实现多种转发方式,一般用一种方式即可。

二. lvs的基础配置

ipvsadm配置:
在server5上:

安装ipvsadm管理工具:
在这里插入图片描述
在这里插入图片描述

添加vip:
在这里插入图片描述

添加虚拟服务以及将其关联到真实服务器上去:
在这里插入图片描述

查看配置结果:
lvs负载均衡_第1张图片

web服务器配置:
server6,7配置相同:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在真机查看实验结果:

lvs负载均衡_第2张图片

但是一旦我们抑制ARP响应(noarp)响应,因为lvs无法检测后台是否down
在这里插入图片描述

lvs负载均衡_第3张图片

所以我们就会发现我们在访问时绕过了server5的管理,直接访问了slave端的server6
所以下一步我们要对此进行优化
lvs负载均衡_第4张图片

三. 负载均衡的优化

优化的目的是让客户端访问时无法直接访问server6,7,也就是说,我们需要关闭server6,7对外的开放,让他们只对server5开放

server6,7:

安装arptables管理工具:
在这里插入图片描述

lvs负载均衡_第5张图片

关闭ip的开放:
在这里插入图片描述

因为我们的配置不能保存,下次开启要重新配置,所以为了方便,我们将他保存在一个文件里:
lvs负载均衡_第6张图片

在这里插入图片描述

开启服务:
在这里插入图片描述
列出配置:
lvs负载均衡_第7张图片

server6,7的配置相同,我们将server6上的配置文件传给server7即可:
在这里插入图片描述
文件最后一行的ip更改为server7的ip:
lvs负载均衡_第8张图片

在真机上进行测试:
lvs负载均衡_第9张图片
lvs负载均衡_第10张图片
清理过之后负载均衡依旧成功!!!完成!!!

四.高可用(keepalived)

在server5上:
在这里插入图片描述

在这里插入图片描述

安装keepalived服务:
在这里插入图片描述

vim /etc/keepalived 修改配置文件:
lvs负载均衡_第11张图片
在这里插入图片描述
在这里插入图片描述

lvs负载均衡_第12张图片

lvs负载均衡_第13张图片
后面的全部删除!!!!

删除添加的ip:
在这里插入图片描述

列出一下ipvsadm -C 清除记录:
lvs负载均衡_第14张图片

重新列出:
在这里插入图片描述
开启keepalived服务:
在这里插入图片描述

在真机访问:
lvs负载均衡_第15张图片
尝试:
停掉server6的httpd:
在这里插入图片描述
在真机crul:
lvs负载均衡_第16张图片
lvs负载均衡_第17张图片
重新开启server6的:

keepalived会自动将server6拉近来:

lvs负载均衡_第18张图片
lvs负载均衡_第19张图片

五. lvs多主高可用

keepalived解决了一个结点挂掉但是lvs不提醒的问题,但是如果挂掉的是master呢?
因此我们需要另一台master备用:

在这里插入图片描述在这里插入图片描述

将server5上配置好的keepalived文件传给server4:
lvs负载均衡_第20张图片

更改keepalived文件如下部分:

lvs负载均衡_第21张图片

降低优先级:
lvs负载均衡_第22张图片
lvs负载均衡_第23张图片

开启服务:

在这里插入图片描述
lvs负载均衡_第24张图片

查看日志:

在这里插入图片描述

已经显示出了backup,证明配置成功:

在这里插入图片描述
停掉server5的服务:
在这里插入图片描述

在真机上curl:
lvs负载均衡_第25张图片

在server4上查看mac地址:
在这里插入图片描述
在这里插入图片描述

在真机上查看ip100的mac地址:
和server4的mac一致
这表明服务已经被server4接管!!!

重新开启server5的服务:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

此时mac地址和server5的一致,因为server5的优先级高,所以,优先选择server5!!!!

最后给大家推荐lvs的详细介绍和部署的文章:
https://www.cnblogs.com/zhangxingeng/p/10497279.html

你可能感兴趣的:(企业实战,负载均衡,运维)