1、服务器安装
新建并配置无图形虚拟机并添加新的iso文件
2、linux系统基础配置
(1)关闭selinux,火墙,网络连接
设定开机自动挂载,安装常用软件包,更改网络名
/boot/grub2/grub.cfg(内核文件修改)
(2) 静态网络配置,加载解析,时间同步设定
3、克隆虚拟机作为实验主机
下载安装MobaXterm远程连接软件并添加克隆虚拟机:
dns解析
4、LVS负载均衡集群
调度器设定
后端服务器设定(12,13设定相同)
测试主机
5、LVS工作原理
LVS(Linux Virtual Server)是一种在 Linux 上实现负载均衡的方案,它通过将流量分发到一组后端真实服务器来提供高可用性和性能优化。以下是 LVS 工作原理的基本步骤:
(1)客户端发起请求:客户端向 LVS 负载均衡器发送请求,请求可以是 TCP 或 UDP 数据包。
(2)负载均衡器接收请求:LVS 负载均衡器接收到客户端请求后,根据预先配置的负载均衡算法(如轮询、加权轮询、最短连接等)选择一个后端真实服务器处理该请求。
(3)请求转发:负载均衡器将客户端请求转发到选定的后端真实服务器。转发可以通过修改数据包的目标 IP 地址和端口来完成,使得请求看起来好像直接发送给了后端真实服务器。
(4)后端真实服务器处理请求:选定的后端真实服务器接收到转发的请求后,根据请求的类型和目标进行相应处理,生成响应数据。
(5)响应返回:后端真实服务器生成的响应数据被发送回负载均衡器。
(6)响应转发:负载均衡器将后端真实服务器返回的响应数据转发给原始的客户端,完成整个请求-响应过程。
通过这种方式,LVS 可以有效地分发客户端请求,实现负载均衡,提高系统的可靠性和性能。负载均衡器还可以监测后端真实服务器的状态,如果某个服务器出现故障,负载均衡器可以自动将流量转发到其他正常运行的服务器,从而实现高可用性。
注:LVS 只负责流量的分发,后端真实服务器之间的数据同步和状态管理需要通过其他机制来实现,例如使用共享存储或同步算法。
6、高可用负载均衡集群
(1)后端服务器出现问题
配置文件编辑内容:
(2)调度器出现问题
客户机主机配置
配置文件修改内容
调度机操作
客户机
注:调度机的任何宕机操作都将导致vip地址的转换,包括服务关闭,关机等操作。
7、LVS工作模式
常见工作模式:
(1) NAT模式:在 NAT 模式下,LVS 负载均衡器将接收到的请求数据包的源 IP 地址和端口修改为自己的 IP 地址和端口,然后再将请求转发给后端真实服务器。当后端服务器返回响应时,负载均衡器将修改响应数据包的目标 IP 地址和端口,以使响应似乎是直接发送给了客户端。这种模式适用于需要负载均衡的应用,客户端和后端服务器在不同的网段中。
(2)DR模式:在 DR 模式下,负载均衡器通过 ARP 欺骗技术将自己的 MAC 地址伪装成后端真实服务器的 MAC 地址。这样,当客户端发送请求到负载均衡器时,负载均衡器将接收到请求并修改转发的数据包的目标 MAC 地址,使其直接传递给目标后端真实服务器。因为数据包的路由并不经过负载均衡器,响应数据包直接返回给客户端,不需要经过负载均衡器。这种模式下,后端真实服务器和负载均衡器必须在相同的子网中。
(3)TUN模式:在 TUN 模式中,负载均衡器会将接收到的请求数据包封装成新的 IP 报文,并将封装后的数据包转发给后端真实服务器。后端真实服务器再将响应数据直接发送给客户端,不需要经过负载均衡器。这种模式下,后端真实服务器和负载均衡器可以在不同的网络环境中,负载均衡器充当了数据包封装和转发的角色。
LVS 的工作模式在提供负载均衡时的不足及优化方式:
(1)负载均衡器的单点故障:在 LVS 中,负载均衡器是整个系统的关键组件,如果负载均衡器出现故障,会导致服务不可用。为了克服这个问题,可引入热备份的负载均衡器,通过 VRRP或 Keepalived 等技术实现自动故障切换。
(2)数据包转发的延迟:由于 LVS 负载均衡器需要对数据包进行一定程度的处理和转发,会导致一定的延迟。为了减少延迟,可以考虑优化负载均衡器的计算能力、增加网络带宽,或使用更高性能的硬件设备。
(3)网络单点故障:在 LVS 的 DR 模式中,后端真实服务器和负载均衡器需要在同一个子网中,这会导致整个网络的故障范围较大。为了提高网络的可靠性,可以采用冗余网络设备、冗余链路,以及采用网络虚拟化技术如 VXLAN 等。
(4)后端服务器性能不均衡:由于负载均衡器根据预设算法进行转发,可能导致后端服务器的负载不均衡。为了解决这个问题,可以使用加权轮询、最少连接等算法,并根据服务器性能和负载情况动态调整权重,使得负载更加均衡。
(5)数据一致性问题:在 LVS 中,由于请求被转发到不同的后端服务器,后端服务器之间的数据可能不一致,特别是对于持久连接或会话状态的应用。为了解决这个问题,可以使用会话复制或会话保持技术,确保用户的会话状态在不同的后端服务器之间保持一致。