【3.工程开发】-四层负载均衡LVS

高可用的工程系统必定要作流量的负载均衡,软件可作负载均衡位置:DNS,代码中,应用层。DNS受缓存影响;代码中二次转发;基于应用层负载均衡调度的多服务器解决方法也存在一些问题。第一,系统处理开销特别大,导致系统的伸缩性有限。当请求到达负载均衡调度器至处理结束时,调度器须要进行四次从核心到用户空间或从用户空间到核心空间的上下文切换和内存复制;须要进行二次TCP链接,一次是 从用户到调度器,另外一次是从调度器到真实服务器;须要对请求进行分析和重写。这些处理都须要不小的CPU、内存和网络等资源开销,且处理时间长。所构成系 统的性能不能接近线性增长的,通常服务器组增至3或4台时,调度器自己可能会成为新的瓶颈。因此,这种基于应用层负载均衡调度的方法的伸缩性极其有限。第 二,基于应用层的负载均衡调度器对于不一样的应用,须要写不一样的调度器。nginx主要是基于HTTP协议,若对于FTP、Mail、POP3等应用,都须要重写调度器。固然四层也没法作业务相关的负载均衡。
IP层html

LVS

针对高可伸缩、高可用网络服务的需求,咱们给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。
官方:http://www.linuxvirtualserver...
逻辑架构linux

clipboard.png

三种IP转发实现方式

1.NAT 换目标地址,回来再换一次nginx

clipboard.png

2.IP管道。在VIP前加真实IP。回去直接去掉真实IP算法

clipboard.png

3.直接路由。加MAC地址找到对应机器。回去直接去掉MAC地址(局域网中)缓存

clipboard.png
4.fullnat
所有转为内网(内网负载均衡只能是fullnat,https://ieevee.com/tech/2015/...
clipboard.png
cip 客户端地址 rip 真实服务器地址 lip本地地址 SNAT来源地址转换服务器

部署

clipboard.png
vip这个是提早申请好放到池子里面的,业务现申请直接使用某个vip,外网lvs通常一个集群是250个vip,内网lvs是520个
每台LVS机器都有全部的VIP配置(经过OSPF一个VIP能够有8台副本),把全部VIP的IP都配在机器上。采用了 LVS ospf 方案,利用开源的软路由软件 quagga(linux设置主机当路由使用),对 IDC 接入交换机宣告 VIP 的主机路由信息,经过 OSPF 等价路由的特性能够提供最多八台 LVS All-active 的集群服务网络

负载均衡算法

轮叫调度(Round-Robin Scheduling)
加权轮叫调度(Weighted Round-Robin Scheduling)
最小链接调度(Least-Connection Scheduling)记录服务器链接数。会有一段时长的TCP_WAIT
加权最小链接调度(Weighted Least-Connection Scheduling)
基于局部性的最少连接(Locality-Based Least Connections Scheduling)请求IP最近使用服务器+服务器未超载,用于cache
带复制的基于局部性最少连接(Locality-Based Least Connections with Replication Scheduling) LBLC+LCS.性能和cache的折中
目标地址散列调度(Destination Hashing Scheduling)
源地址散列调度(Source Hashing Scheduling)架构

DGW

dpdk+fullnat的LVS
dpdk:加速数据包处理软件,取代传统的Linux内核态驱动 (https://blog.csdn.net/zhaoxin...负载均衡

相关文章
相关标签/搜索