🏡作者主页:点击!
🤖Linux专栏:点击!
⏰️创作时间:2024年11月25日12点20分
LVS集群
虚拟IP:用户与服务交互的接口,所有请求都会发送到这个IP
DIP:负载均衡相关的IP,决定将哪个请求转发给哪个业务集群
RIP:实际提供服务的服务器IP,每一台真实的IP都对应一台具体的后端服务器,运行相同的应用程序提供特定的服务
虚拟IP作为用户的切入点,接受所有的请求,并将其转发给LVS集群,LVS集群中的DIP则负责将这个请求转发给正确的RIP业务集群,最后请求由业务集群中的某一个或者说某一台服务器进行相对应的处理
LVS本身只能完成负载均衡的调度作用,请求的分配,容易形成单点故障,因此需要和 KeepAlive 配合使用,需要有多台负载均衡器来形成LVS集群,能快速的适用于实际的业务场景,消除因为负载均衡导致的单点故障
LVS的作用
Ipvs:运行在内核中,基于内核的 netfilter 框架实现
主要作用是用来负责网络的请求分发工作,接受客户端请求,将请求智能的调度到后端真实的服务器上,是实现高性能负载分担的基础Ipvsadm:运行在用户态,LVS管理工具,实现LVS配置,例如VIP的增删改查
基本操作
ipvsadm -A|E 虚拟服务的IP和port [-s 指定使用调度的算法 rr 表示轮询] [-p 会话保持的时间] [-M 网络掩码] [--pe 持久连接的引擎] [-b 调度器的标志位] ipvsadm -D 虚拟服务的Ip和port即可 ipvsadm -C 清空所有虚拟服务和真实服务器规则,现网环境中慎重操作 ipvsadm -R 从标准的输入读取规则并进行重置(更新或者是刷新一个规则) ipvsadm -S 保存或者恢复我们的一些规则,一般后面跟上一个路径 ipvsadm -L 虚拟的服务,可以列出当前的虚拟服务和真实服务器的规则,可以指定虚拟服务进行查看 ipvsadm -Z 归零计数器,把虚拟服务的统计计数器重置为0 ivpsadm --set tcp/udp 100 设置协议超时的时间
高级操作
ipvsadm --start 开启操作 ipvsadm --stop 停止操作 ipvsadm -h #查看帮助
常用操作
ipvsadm -C #清空所有规则 ipvsadm -Sn > /etc/sysconfig/ipvsadm #保存规则到配置文件 ipvsadm -R < /etc/sysconfig/ipvsadm #从配置文件加载规则 ipvsadm -Ln #查看当前规则
LVS的三种模式
NAT和DR模式比较常用
LVS:NAT网络地址转换
#客户端发送请求到虚拟IP,请求中包含了客户端自己的IP,简称为CIP同时和虚拟IP(VIP)分别作为源IP和目标IP #之后在LVS去作地址转换与转发,负载均衡器接收到请求过后会使用 ipvs(最核心的模块)根据我们设置的负载均衡算法依次去选择后端的服务器 #然后对请求报文进行NAT处理将目标IP,就是说的虚拟IP(VIP),改成选中的后端服务器的真实的IP,同时源IP也会去作对应的修改,会变成DIP也就是负载均衡器的IP #之后将修改后的请求报文转发给真实的服务器,真实服务器接受到请求过后,视DIP为客户端IP进行处理,并将响应直接返回给DIP,处理过后会返回到负载均衡器 #负载均衡器收到响应过后会再次做网络地址转换,将响应报文的源IP(也就是DIP)会改为VIP,目标IP改为客户端的IP,最后通过地址转换,将响应发给客户端 #连接跟踪
LVS的内置模式有哪些特点
- 配置比较简便
- 适应性比较强
- 能够有效的隐藏后端真实服务器的IP,安全特性是比较高的
- 适合快速部署于多样性的网络环境中
- 同时做地址转换也会对性能造成一定的消耗
LVS:DR直接路由
#DR模式中负载均衡器和真实的服务器必须要位于同一物理网段内,来共享一个公共的物理网络,所有的服务器都需要配置相同的虚拟 IP #数据流向:客户端发送请求到虚拟 IP,到达负载均衡器之后,根据预设的负载均衡算法,修改请求报文的目的MAC地址,指向真实的服务器,发送的源目IP是不变的,绕过了传统NAT地址转换的过程,服务器收到报文之后直接将响应报文返回给客户端 #此时响应的源 IP 就是我们虚拟 IP,目标 IP 为客户端 IP #但由于处于同一物理网段内,防止响应报文错误的发给其他服务器,需要在真实服务器上设置 ARP 抑制报文 #通过ARP tables 或内核参数来调整,避免虚拟 IP 的冲突
优点
- 性能比较好
- 对负载均衡器开销比较低
- 提升系统吞吐量
缺点
- 要求所有服务器在同一网段内,配置复杂度增大
- 精确的网络规划做 ARP 抑制避免 IP 地址冲突
- 限制了灵活性和易用性
LVS:TUN隧道模式
#当客户端的请求到达负载均衡器,负载均衡器不会对报文做修改,而是在外层重新加一层IP,新的IP头部作为源IP #通过隧道来将数据传送到真实服务器 #真实服务器处理过相应之后,直接将响应报文发送给客户端,响应报文中的源IP就变成了虚拟IP,目标IP为客户端的IP,不会经过负载均衡器,减少负载均衡器的消耗 #凭借独特的跨网络负载均衡能力,展现高度的部署的灵活性,可以将后端服务器分部到不同网络不同地域,有效减轻负载均衡器的负担 #伴随着配置复杂的上升,需要更加细致的路由和隧道的配置,以及底层的网络需要有相应的协议支撑 #数据包的封装和解封装在一定程度上造成CPU开销