本文共 3328 字,大约阅读时间需要 11 分钟。
原文:https://blog.csdn.net/lcl_xiaowugui/article/details/81701949
LVS是Linux virtual server的缩写,为linux虚拟服务器,是一个虚拟的服务器集群系统。LVS简单工作原理为用户请求LVS VIP,LVS根据转发方式和算法,将请求转发给后端服务器,后端服务器接收到请求,返回给用户。对于用户来说,看不到Web后端具体的应用。
可伸缩网络服务有很多结构,但都有一个共同点:它们都需要一个前端的负载调度器。而实现虚拟网络服务的主要技术指出IP负载均衡技术是在负载调度器的实现技术里面效率最高的一个。
在已有的IP负载均衡技术中,主要有通过网络地址转换将一组服务器构成一个高性能的、高可用的虚拟服务器,通常称为VS/NAT技术。在分析VS/NAT的缺点和网络服务的非对称的基础上,可以通过IP隧道实现虚拟服务器的方法VS/TUN和通过直接路由实现虚拟服务器的方法VS/DR,它们可以极大地提高系统的伸缩性。(摘自 LINUX企业运维实战一书中)LVS集群分为三层结构:
LVS DR原理详解图
LVS DR原理:用户请求LVS到达director,director将请求的报文的目的MAC地址改为后端的realserver的MAC地址,目的IP为VIP(不变),源IP为client IP地址(不变),然后director将报文发送到realserver,realserver检测到目的地址为自己本地的VIP,如果在同一网段,将请求直接返回给用户,如果用户跟realserver不在同一个网段,则需要通过网关返回给用户。
LVS DR特性:
LVS NAT原理详解图
LVS NAT原理:用户请求LVS到达director,director将请求的报文的目的IP改为RIP,同时将报文的目标端口也改为realserver的相应端口,最后将报文发送到realserver上,realserver将数据返回给director,director再把数据发送给用户
LVS NAT特性:
LVS FULLNAT报文变化
LVS FULLNAT特性:
LVS TUN原理详解图
LVS TUN原理:用户请求LVS到达director,director通过IP-TUN加密技术将请求报文的包封装到一个新的IP包里面,目的IP为VIP(不变),然后director将报文发送到realserver,realserver基于IP-TUN解密,然后解析出来包的目的为VIP,检测网卡是否绑定了VIP,绑定了就处理这个包,如果在同一个网段,将请求直接返回给用户,否则通过网关返回给用户;如果没有绑定VIP就直接丢掉这个包
LVS TUN特性:
1. 轮叫调度 rr
均等地对待每一台服务器,不管服务器上的实际连接数和系统负载2. 加权轮叫 wrr
调度器可以自动问询真实服务器的负载情况,并动态调整权值3. 最少链接 lc
动态地将网络请求调度到已建立的连接数最少的服务器上 如果集群真实的服务器具有相近的系统性能,采用该算法可以较好的实现负载均衡4. 加权最少链接 wlc
调度器可以自动问询真实服务器的负载情况,并动态调整权值 带权重的谁不干活就给谁分配,机器配置好的权重高5. 基于局部性的最少连接调度算法 lblc
这个算法是请求数据包的目标 IP 地址的一种调度算法,该算法先根据请求的目标 IP 地址寻找最近的该目标 IP 地址所有使用的服务器,如果这台服务器依然可用,并且有能力处理该请求,调度器会尽量选择相同的服务器,否则会继续选择其它可行的服务器6. 复杂的基于局部性最少的连接算法 lblcr
记录的不是要给目标 IP 与一台服务器之间的连接记录,它会维护一个目标 IP 到一组服务器之间的映射关系,防止单点服务器负载过高。7. 目标地址散列调度算法 dh
该算法是根据目标 IP 地址通过散列函数将目标 IP 与服务器建立映射关系,出现服务器不可用或负载过高的情况下,发往该目标 IP 的请求会固定发给该服务器。8. 源地址散列调度算法 sh
与目标地址散列调度算法类似,但它是根据源地址散列算法进行静态分配固定的服务器资源。9. 最少期望延迟 sed
不考虑非活动链接,谁的权重大,优先选择权重大的服务器来接收请求,但权重大的机器会比较忙10. 永不排队 nq
无需队列,如果有realserver的连接数为0就直接分配过去