目录
5.1、添加一个虚拟服务,使用轮询调度算法 (rr) 将请求分发到后端服务器
官网:LVS中文官网
一、概念
LVS(Linux Virtual Server) 是 Linux Virtual Server 的简写,意即Linux虚拟服务器,是一个基于Linux操作系统的虚拟服务器技术,用于实现负载均衡和高可用性。1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一
二、组成及软件工作层次图
LVS由2部分程序组成,包括ipvs和ipvsadm adm=admin
IPVS:LVS 是一个负载均衡框架,它定义了如何使用负载均衡器来分发网络请求的基本规则和架构。IPVS 是 LVS 中实现负载均衡的核心模块,它负责具体的负载均衡任务。 安装于 Director Server(相当于代理服务器) 上,并在 Director Server 上虚拟出一个 VIP(Virtual IP)。 用户的访问请求通过 VIP 到达负载调度器,然后由负载调度器从 Real Server 列表中选取一个服务节点响应用户的请求。
ipvsadm:是一个Linux内核中的IP负载均衡工具,它对应的用户控制程序也是ipvsadm。ipvsadm是IPVS(IP Virtual Server)的管理器,用于配置和管理Linux内核中的IPVS负载均衡器。
三、整体架构
LVS的整体架构主要包括负载均衡器(Load Balancer)、后端服务器(Real Server)和客户端三部分。客户端的请求首先到达负载均衡器,然后由负载均衡器根据一定的调度算法将请求转发到后端服务器进行处理,处理结果再返回给客户端
四、名词解释
VIP:虚拟IP地址(Virtual Ip Address)
RIP:真实IP地址(Real Server Ip Address)
DIP:Director的IP地址(Director Ip Address)用于连接内外网络的IP地址,物理网卡上的P地址。是负载均衡器上的IP。
CIP:客户端主机P地址(Client Ip Address)
五、三种工作模式
官网:三种工作模式
1、LVS-NAT
LVS-NAT(Network Address Translation):在该模式下,负载均衡器不仅需要修改请求报文的目标地址,还需要修改响应报文的源地址,适用于小规模集群
详解:
客户端发起请求
1)客户端 发送一个请求到虚拟服务 IP (VIP) 地址,例如 192.168.1.10。
2)负载均衡器 收到这个请求后,将数据包的目标 IP 地址从 192.168.1.10 修改为其中一个真实服务器的 IP 地址,比如 192.168.1.21。同时,负载均衡器还会记录这次修改,以便后续处理响应时能够正确地将数据包发回给客户端。
3)真实服务器 收到请求后处理数据并生成响应。
服务器响应
1)真实服务器 将响应发回给负载均衡器,此时响应数据包的源 IP 地址是 192.168.1.21。
2)负载均衡器 收到响应后,将数据包的源 IP 地址从 192.168.1.21 修改为虚拟服务 IP 地址 192.168.1.10。
3)负载均衡器 最后将修改后的响应转发给原始的客户端。
总结
请求阶段:客户端 -> 负载均衡器 -> 真实服务器
请求时负载均衡器修改目标 IP 地址。
响应阶段:真实服务器 -> 负载均衡器 -> 客户端
响应时负载均衡器修改源 IP 地址
lvs可以处于公网 Real Server 可以是内网
2、LVS-TUN
LVS-TUN(IP Tunneling):又叫隧道模式。该模式通过IP隧道将请求转发到后端服务器,后端服务器直接将响应报文发回客户端,适用于地理位置分散的集群
请求过程和NAT一样,响应过程不再走LVS,直接给客户端。LVS的压力就降低。上行大,下行小,大大提高并发和吞吐量。但Real Server的IP需要暴露给公网,有安全隐患
3、LVS-DR
LVS-DR(Direct Routing):在该模式下,负载均衡器只修改请求报文的目标MAC地址,而不修改IP地址,后端服务器直接将响应报文发回客户端,适用于大规模集群。
和TUN相比,Real Server不会直接返回结果给客户端,而是通过Router中转后给客户端,这样Real Server的真实IP就不会暴露给公网 即支持高并发和解决了安全隐患问题。
下面就演示最好的DR模式
六、DR模式的实现
实现LVS对ngi