lvs负载均衡连接

http://blog.csdn.net/zwz1984/article/details/45194377

http://blog.csdn.net/zwz1984/article/details/45194447

http://www.178linux.com/58381?utm_source=tuicool&utm_medium=referral

http://sofar.blog.51cto.com/353572/1579894/

http://hot66hot.iteye.com/blog/2050676

lvs的三种工作模式  以及8种调度算法

1.VS/NAT模式 (network address transtion)

2.VS/TUN模式(tunneling)

3. DR 模式(Direct routing)

1.NAT 模式-网络地址转换

Virtualserver via Network address translation (vs/NAT)

通过网络地址转换的方式实现调度,首先调度器LB接收到客户的请求数据包时(请求的目的IP为vip),

根据调度算法决定将请求发送给哪个后端真实服务器(RS).然后调度就把客户端发送的请求数据包的目标IP

地址及端口改成后端真实服务器的IP地址(RIP)这样真实服务器(RS)就能够接收到客户的请求包数据了

真实服务器响应请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置为LB服务器)

把响应后的数据包发送给LB,LB 再接收到响应包后,把包的源地址改成虚拟地址(vip)然后发送回给客户端

调度详细过程

原理图简述:

1)客户端请求数据,目标IP为VIP

2)请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址及对应端口(此RIP地址是根据调度算法得出的。)并在连接HASH表中记录下这个连接。

3)数据包从LB服务器到达RS服务器webserver,然后webserver进行响应。Webserver的网关必须是LB,然后将数据返回给LB服务器。

4)收到RS的返回后的数据,根据连接HASH表修改源地址VIP&目标地址CIP,及对应端口80.然后数据就从LB出发到达客户端。

5)客户端收到的就只能看到VIP\DIP信息。

NAT模式的优缺点

1.NAT技术将请求的报文和响应的报文都需要通过LB 进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器

有比较大的瓶颈,一般要求最多只能10-20台节点

2.只需要在LB上配置一个公网IP就可以了

3.每台内部节点服务器的网关地址必须是调度器的LB 的内网地址

4.NAT 模式支持对IP 地址和端口的转换.即用户请求的端口和真实服务器的端口可以不一致

2.TUN模式

vittual sever via ip tunneling 模式:采用NAT模式时,由于请求和响应的报文必须通过调度器地址重写,

当客户请求越来越多时,调度器处理的处理能力也会成为瓶颈

为了解决这个问题,调度器把请求的报文通过IP 隧道转发到真实的服务器.真实的服务器将响应处理后的数据直接返回给客户端

这样调度器就只能处理请求入站报文,由于一般网络服务应答数据比请求报文大很多,采用VS/TUN模式后,集群系统的吞吐量可以提高10倍

VS/TUN的工作流程图如下所示,它和NAT模式不同的是,它在LB和RS之间的传输不用改写IP地址,而是把客户端请求包装在一个ip  tunnel里面

,然后发送给RS节点服务器,节点服务器接收到之后解开IP tunnel后,进行响应处理.并且直接把包通过自己的外网地址发送给客户不用经过LB服务器

Tunnel原理流程图:

原理图过程简述:

1)客户请求数据包,目标地址VIP发送到LB上。

2)LB接收到客户请求包,进行IP Tunnel封装。即在原有的包头加上IP Tunnel的包头。然后发送出去。

3)RS节点服务器根据IP Tunnel包头信息(此时就又一种逻辑上的隐形隧道,只有LB和RS之间懂)收到请求包,然后解开IP Tunnel包头信息,得到客户的请求包并进行响应处理。

4)响应处理完毕之后,RS服务器使用自己的出公网的线路,将这个响应数据包发送给客户端。源IP地址还是VIP地址。(RS节点服务器需要在本地回环接口配置VIP,后续会讲)

3.DR 模式(直接路由模式)

Virtual server via direct routing(vs/dr)

DR 模式是通过改写请求报文的目标MAC地址,将请求发给真是服务器的,而真实服务器响应后的处理结果直接返回给客户端用户.同TUN

模式一样,DR 模式可以极大的提高集群系统的伸缩性.而DR模式没有IP隧道的开销,对集群中的真实服务器也没必要必须支持IP隧道协议的要求

但是要求调度器LB 与真实服务器RS 都有一块网卡连接到同一个物理网段上,必须在同一个局域网环境

DR 模式是互联网使用比较多的一种模式

DR模式原理图:

VS/DR模式的工作流程图如上图所示,它的连接调度和管理与NAT和TUN中的一样,它的报文转发方法和前两种不同。DR模式将报文直接路由给目标真实服务器。在DR模式中,调度器根据各个真实服务器的负载情况,连接数多少等,动态地选择一台服务器,不修改目标IP地址和目标端口,也不封装IP报文,而是将请求报文的数据帧的目标MAC地址改为真实服务器的MAC地址。然后再将修改的数据帧在服务器组的局域网上发送。因为数据帧的MAC地址是真实服务器的MAC地址,并且又在同一个局域网。那么根据局域网的通讯原理,真实复位是一定能够收到由LB发出的数据包。真实服务器接收到请求数据包的时候,解开IP包头查看到的目标IP是VIP。(此时只有自己的IP符合目标IP才会接收进来,所以我们需要在本地的回环借口上面配置VIP。另:由于网络接口都会进行ARP广播响应,但集群的其他机器都有这个VIP的lo接口,都响应就会冲突。所以我们需要把真实服务器的lo接口的ARP响应关闭掉。)然后真实服务器做成请求响应,之后根据自己的路由信息将这个响应数据包发送回给客户,并且源IP地址还是VIP


工作模式


VS/NAT


VS/TUN


VS/DR


Real server

(节点服务器)


Config dr gw


Tunneling


Non-arp device/tie vip


Server Network


Private


LAN/WAN


LAN


Server number

(节点数量)


Low 10-20


High 100


High 100


Real server gateway


Load balance


Own router


Own router


优点


地址和端口转换


Wan环境加密数据


性能最高


缺点


效率低


需要隧道支持


不能跨域LAN

lvs 调度算法

lvs调度算法决定了如何在集群节点之间分布工作负荷.当directory调度器收到来自客户端访问VIP 上的集群服务的入站请求时,directory 调度器

必须决定哪个节点应该处理请求.directory 调度器用的调度方法基本分为两类

固定调度算法: rr,wrr,dh,sh

动态调度算法:wcl,lc,lblc,lblcr

rr: 轮循算法,它将请求依次分给不同的rs节点,也就是RS 节点中均摊分配.这种算法简单,但只适合于RS节点处理性能差不多的情况

wrr:加权轮训调度,它将依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。

Wlc:加权最小连接数调度,假设各台RS的全职依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS

Dh:目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得需要的RS

SH:源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS

Lc:最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS.

Lblc:基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

LVS调度算法的生产环境选型:

1、一般的网络服务,如http,mail,mysql等常用的LVS调度算法为:

a.基本轮询调度rr

b.加权最小连接调度wlc

c.加权轮询调度wrr

2、基于局部性的最小连接lblc和带复制的给予局部性最小连接lblcr主要适用于web cache和DB cache

3、源地址散列调度SH和目标地址散列调度DH可以结合使用在防火墙集群中,可以保证整个系统的出入口唯一

时间: 2024-10-13 09:02:00

lvs负载均衡连接的相关文章

LVS负载均衡之持久性连接介绍(会话篇)

在实际生产环境中,往往需要根据业务应用场景来设置lvs的会话超时时间以及防session连接丢失的问题提,如在业务支付环节,如若session丢失会导致重复扣款问题,严重影响到安全性,本小节解将会讲到关于lvs持久性连接问题 一.lvs负载均衡持久连接介绍: 引子(案例) 对于电子商务网站来说,用户在挑选商品的时候使用的是80端口来浏览的,当付款的时候则是通过443的ssl加密的方式,当然当用户挑选完商品付款 的时候,我们当然不希望https的443跳转到另外一台REAL SERVER上,很显然

LVS负载均衡之session解决方案 持久连接

1. 持久连接是什么? 1.1 在LVS中,持久连接是为了用来保证当来自同一个用户的请求时能够定位到同一台服务器. 2. 为什么会用到持久连接? 2.1 cookie/session机制的简单说明: 在Web服务通信中,HTTP本身是无状态协议,不能标识用户来源,此时出现了一个问题,当用户在一个网站浏览了A网页并跳转到B网页,此时服务器就认为B网页是一个新的用户请求,你之前的登陆的信息就都丢失了,头疼.为了记录用户的会话信息,我们的开发者就在客户端/服务器端软件提供了cookie/session

【转】LVS负载均衡之session解决方案 持久连接

原文地址:http://minux.blog.51cto.com/8994862/1744761 1. 持久连接是什么? 1.1 在LVS中,持久连接是为了用来保证当来自同一个用户的请求时能够定位到同一台服务器. 2. 为什么会用到持久连接? 2.1 cookie/session机制的简单说明: 在Web服务通信中,HTTP本身是无状态协议,不能标识用户来源,此时出现了一个问题,当用户在一个网站浏览了A网页并跳转到B网页,此时服务器就认为B网页是一个新的用户请求,你之前的登陆的信息就都丢失了,头

LVS负载均衡下session共享的实现方式-持久化连接

之前简单介绍LVS负载均衡的高可用方案实施,下面详细说明LVS的session解决方案: LVS算法中,SH算法可以实现将同一客户端的请求总是发送给第一次指定的RS,除非该RS出现故障不能再提供服务.其实在LVS集群中,持久连接功能也能在一定时间内,将来自同一个客户端请求派发至此前选定的RS,而且是无关算法的.持久连接是什么?1)在LVS中,持久连接是为了用来保证当来自同一个用户的请求时能够定位到同一台服务器.2)为什么会用到持久连接? 2.1)cookie/session机制的简单说明: 在W

LVS负载均衡群集基础(一)

LVS负载均衡群集(一) 1.      群集(或集群)的称呼来自于英文单词"Cluster",用在服务器的领域表示大量的服务器集合,以便与区分单个服务器. 2.      群集的类型: (1)      负载均衡群集(load balance cluster):提高系统的响应能力,尽可能的处理更多的访问请求等,获得高并发,高负载的整体性能.例如应用于:"DNS轮询"."反向代理"等. (2)      高可用群集(high availabili

(转)详解LVS负载均衡之三种工作模型原理和10种调度算法

前言:最近在为我们的产品在做高可用,一边搭环境,一边了解相关知识,搜到这篇博客,质量不错,表述清晰,于是转载过来学习. 标签:详解LVS负载均衡之三种工作模型原理和10种调度算法 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linuxnx.blog.51cto.com/6676498/1195379 LVS负载均衡原理和算法详解    Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大

LVS负载均衡集群

防伪码:出淤泥而不染,濯清涟而不妖 第五章 LVS负载均衡群集 前言:在各种互联网应用中,随着站点对硬件性能.相应速度.服务稳定性.数据可靠性等要求越来越高,单台服务器将难以承担所有的访问,除了使用价格昂贵的大型机.专用负载分流设备以外,企业还有另外一种选择来解决难题,那就是构建集群服务器--通过整合多台相对廉价的普通服务器,以同一个地址对外提供相同的服务.本章我们将学习企业中常用的群集技术--LVS. 一. 群集技术概述 1. 群集的类型 1) 负载均衡群集:主要的功能将来自客户机的访问请求分

构建高可用的LVS负载均衡集群 入门篇

一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能. LVS 集群采用IP负载和基于内容请求分

【中级篇】Linux中部署LVS负载均衡群集

LVS负载均衡群集 1.          实验需求: 1)     2台服务器部署HTTPD服务 2) 1台做负载调度器 3) 搭建负载均衡,测试其效果. 2.          实验环境: Linux服务器系统版本:CentOS-6.5 -S02 IP:192.168.10.15  ( httpd ) Linux服务器系统版本:CentOS-6.5 -S03 IP : 192.168.10.18  ( httpd ) Linux服务器系统版本:  RedHat6.5     IP1 :192