四层负载均衡LVS

栏目: 服务器 · 发布时间: 5年前

内容简介:高可用的工程系统一定要做流量的负载均衡,软件可做负载均衡位置:DNS,代码中,应用层。DNS受缓存影响;代码中二次转发;基于应用层负载均衡调度的多服务器解决方法也存在一些问题。第一,系统处理开销特别大,致使系统的伸缩性有限。当请求到达负载均衡调度器至处理结束时,调度器需要进行四次从核心到用户空间或从用户空间到核心空间的上下文切换和内存复制;需要进行二次TCP连接,一次是 从用户到调度器,另一次是从调度器到真实服务器;需要对请求进行分析和重写。这些处理都需要不小的CPU、内存和网络等资源开销,且处理时间长。所

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

IP层

LVS

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

官方: http://www.linuxvirtualserver...

逻辑架构

四层负载均衡LVS

三种IP转发实现方式

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

四层负载均衡LVS

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

四层负载均衡LVS

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

四层负载均衡LVS

4.fullnat

全部转为内网(内网负载均衡只能是fullnat)

四层负载均衡LVS

cip 客户端地址 rip 真实服务器地址 lip本地地址 SNAT来源地址转换

部署

四层负载均衡LVS

vip这个是提前申请好放到池子里面的,业务现申请直接使用某个vip,外网lvs一般一个集群是250个vip,内网lvs是520个

每台LVS机器都有所有的VIP配置(通过OSPF一个VIP可以有8台副本),把所有VIP的IP都配在机器上。用OSPF实现相同IP随机分配流量

负载均衡算法

轮叫调度(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...


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编译器设计

编译器设计

Keith Cooper、Linda Torczon / 郭旭 / 人民邮电出版社 / 2012-12 / 99.00元

深入剖析现代编译器运用的算法和技术 强调代码优化和代码生成 体现编译原理教学的最新理念 本书旨在介绍编译器构造法中的艺术和科学。书中深入分析现代编译器后端所用的算法和技术,重点讨论代码优化和代码生成,详细介绍了用几个编程语言编写的示例等。 Keith D. Cooper 莱斯大学计算机科学系计算工程专业Doerr特聘教授,曾任该系系主任。Cooper博士的研究课题涵盖过程间......一起来看看 《编译器设计》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具