LVS负载均衡与Keepalive高可用

本文介绍了LVS(Linux Virtual Server)的三种工作模式:NAT、TUN和DR,并详细讲解了DR模式。通过ipvsadm实现Apache负载均衡,以及使用Keepalive进行DR模式的故障检测和LVS的高可用性设置。通过Keepalive的VRRP协议和TCP_CHECK健康检查,确保在服务器故障时能进行无缝切换,维持服务稳定。
摘要由CSDN通过智能技术生成

一、LVS介绍

  • LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器。
  • 将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的。
  • LVS工作模式分为NAT模式、TUN模式、以及DR模式

二、LVS的三种工作模式

1、NAT模式

  • 通过网络地址转换的方式来实现调度

(1)首先调度器(LB)接收到客户的请求数据包时(请求的目的IP为VIP),根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。
(2)接着调度把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP),真实服务器(RS)就可以接收到客户的请求数据包了。
(3)真实服务器响应完请求后,查看默认路由(NAT模式下需要将RS的默认路由设置为LB服务器),把响应后的数据包再发送给LB
(4)LB接收到响应包后,把包的源地址改为虚拟地址(VIP),然后再发送回客户端。

  • 整体流程:Client > VS > RS > VS > Client
  • 当数据流进入VS时,做了一次DNAT,从VS出去时做了一次DNAT

2、TUN模式

  • 隧道模式

(1)将请求与响应数据分离,让调度器仅处理数据请求,而让真实服务器响应数据包直接返回给客户端。
(2)VS/TUN工作模式拓扑结构如图所示。其中,IP隧道(IP tunning)是一种数据包封装技术,它可以将原始数据包封装并添加新的包头(内容包括新的源地址及端口、目标地址及端口),从而实现将一个目标为调度器的VIP地址的数据包封装,通过隧道转发给后端的真实服务器(Real Server),通过将客户端发往调度器的原始数据包封装,并在其基础上添加新的数据包头(修改目标地址为调度器选择出来的真实服务器的IP地址及对应端口)。

  • LVS(TUN)模式要求真实服务器可以直接与外部网络连接,真实服务器在收到请求数据包后直接给客户端主机响应数据
    在这里插入图片描述

3、DR模式

(1)直接路由模式(DR模式)要求调度器与后端服务器必须在同一个局域网内,VIP地址需要在调度器与后端所有的服务器间共享,因为最终的真实服务器给客户端回应数据包时需要设置源IP为VIP地址,目标IP为客户端IP,这样客户端访问的是调度器的VIP地址,回应的源地址也依然是该VIP地址(真实服务器上的VIP),客户端是感觉不到后端服务器存在的。
(2)由于多台计算机都设置了同样一个VIP地址,所以在直接路由模式中要求调度器的VIP地址是对外可见的,客户端需要将请求数据包发送到调度器主机,而所有的真实服务器的VIP地址必须配置在Non-ARP的网络设备上,也就是该网络设备并不会向外广播自己的MAC及对应的IP地址,真实服务器的VIP对外界是不可见的,但真实服务器却可以接受目标地址VIP的网络请求,并在回应数据包时将源地址设置为该VIP地址。
(3)调度器根据算法在选出真实服务器后,在不修改数据报文的情况下,将数据帧的MAC地址修改为选出的真实服务器的MAC地址,通过交换机将该数据帧发给真实服务器。整个过程中,真实服务器的VIP不需要对外界可见。

  • 整体流程:Client----DR—RS–Client
    在这里插入图片描述

三、ipvsadm实现Apache负载均衡横

  • 利用DR工作模式和轮询调度算法实现

1、调度器:
vip:172.25.24.100rr:轮询调度算法

yum install ipvsadm -y  ##安装lvs管理器
ip addr add 172.25.24.100/24 dev eth0  ##添加vip
ipvsadm -A -t 172.25.24.100:80 -s rr  ##添加虚拟服务
ipvsadm -a -t 172.25.24.100:80 -r 172.25.24.2:80 -g  ##将虚拟服务关联到真实服务上
ipvsadm -a -t 172.25.24.100:80 -r 172.25.24.3:80 -g
ipvsadm -ln  ##查看配置信息

在这里插入图片描述2、真实服务端:RS端

yum install httpd -y
systemctl enable --now httpd
echo server2 > /var/www/html/index.html  ##server2主机添加访问内容
echo server3 >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值