lvs IP负载均衡

LVS在 基本的生产环境中,都会同时运行在二台硬件相近的服务器上:LVS Router(主LVS),一个作为备份LVS(备份LVS)。

主 LVS 服务器在网站的前端起两个作用:

(1) 均衡负载压力到真实服务器(web)上

(2)检查后面真实服务器提供是否正常.

备份LVS用来监控主LVS和备份主服务器,在当故障出现时LVS 死机 fail 掉了 以后, 以后启动会自己主动接管主LVS 的工作。

基中有一个教 Pulse (心跳服务) 运行在主LVS和备LVS上。在备份LVS上,每秒 pluse 发送一个心跳(heartbeat)到主LVS的外网接口检测主LVS服务是否正常。 当然在主LVS上,也有pulse服务,它主要是响应备份LVS心跳。

LVS进行调用 ipvsadm 工具(RedHat开发)去配置和维护 IPVS 路由表, 它会为每一个在真实的服务器上的虚拟服务器启动一个nanny进程。每一个nanny进程去检测真实的服务器状况,如果有异常,就会将故障情况通知LVS进程。当故障时,LVS进程通知 ipvsadm 在 IPVS 路由表中将此节点删除。当然,它发现故障的机器恢复也能自动的加入到服务器中来。

如果备份LVS未收到来自于主LVS的响应,他将调用send_arp将虚拟IP地址在分配到备份的LVS的公网接口上。并在公网接口和局域网接口上分别发送一个命令去关掉主LVS上的LVS进程。同时启动自己的LVS进程来调度客户端请求。

下面是一个大中型网站 LVS 架构的服务器:

像平时在大中型网站服务器架构,基本就像上面一样。上面是一个服务器提供同一种服务,如image的服务

如上所示,最前面是一组主备LVS服务器,他们由心跳联系在一起 。接下来是一组功能相同的Real server服务器 。有可能是Apache,nginx,squid之类的服务器。在接下来是一组应用服务器,应用服务器用的Redhat Cluster 组成。最后,给所有的网站数据放到一个网路文件系统NFS AND 分部文件系统GFS上shared  Storage, 原来提供所有的Real Server同时读写。 当然,你也可以用SAN的存储服务器

 二. IP 负载均衡技术:

      在 LVS上调度器的实现技术中,由VS/NAT、VS/TUN、和VS/DR这三种方法来实现使用负载均衡。 IP负载均衡技术是效率最高的。已经有了 IP负载均衡技术中有通过网路地址转换(Network Address Translation) 将一组服务器构成一个高性能、高可用虚拟服务器,我们称之为VS/NAT技术 (Virtual Server via Network Address Translation) ,大多数商品化的IP负载均衡调度器产生品都是使用此方法,若思科的localDirector、F5 的Big/IP 和 Alteon的ACEDirector。当然在分析 VS/NAT的缺点和网络服务的非对称性的基础上,LVS的作者提出通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法 VS/DR(Virtual Server via DIirect Routing), 它们可以极大的提高系统的伸缩性。

介绍三种IP负载均衡的方案:

(1.)使用VS/NAT方法:

     客户通过Virtual IP Address(虚拟服务器IP地址) 访问网络服务时,请求报文到达调度器,调度器根据连接调度算法(下面会提到)

从一组真实的服务器中选出一台服务器,将报文的目标地址 Virtual IP Address 改写成选定服务器地址,报文的目标端口改写成选定的服务器的相应端口,最后将修改的报文发送给选出服务器。同时,调度器在连接 Hash 表中记录这个连接,当这个连接的下一个报文到达时,从连接Hash表中可以得到原选定服务器的地址和端口,进行同样的改写操作,并将报文传给原选定的服务器。当来自真实的服务器响应报文经过调度器时,调度器将报文的源地址和源端口改为Virtual IP Address和响应端口,在把报文发送给用户。

这个很像nginx的七层调度,所以大约能支持后端机器只有10台的样子。因为这台调度器就成了瓶颈。

2.使用VS/TUN

          VS/TUN的连接调度和管理与 VS/NAT 中的一样,只是它的报文转发方法不同。调度器根据各个服务器的负载情况,动态的选择一台服务器。将请求的报文封装在另一个IP报文中,在将封装后的IP报文转发给选出的服务器;服务器收到报文后,现将报文解封获得原来目标地址为VIP的报文,服务器发现VIP地址配置在本地的IP隧道设备上,所以就处理这个请求,然后根据路由器表将响应报文直接返回给客户。

3.使用VS/DR

      调度器和服务器组都必须在物理上有一个网卡通过不断的局域网相连,如通过交换机或者高速HUB相连。VIP地址为调度器和服务器 组共享,调度器配置的VIP地址是对外可见的,用于接受虚拟服务器的请求报文;所有的服务器 把VIP地址配置在各自的Non-ARP网络设备上

它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。在VS/DR中, 调度器根据各个服务器的负载情况,动态选择一台服务器,不修改也不封装IP报文,而是将数据帧MAC的地址改为选出服务器的MAC,在将修改后的数据帧在服务器的局域网上发送。因为数据帧的MAC地址选出的服务器,肯定可以收到数据帧,从中可以获得IP报文。当服务器发现报文的目标地址VIP是在本地网络设备上,服务器处理这个报文,然后根据路由表将响应 报文直接返回给客户。

VS/TUN相比,这种方法没有IP隧道的开销,但是 要求敷在调度器与实际服务器都有一块网卡连载同一物理段上,服务器网络设备(或者设备别名)不做ARP响应,或者能将报文重定向(Redirect)到本地的Socket端口上。

三 负载调度算法

针对不同网络服务需求和服务器配置,IPVS 调度实现了 如下八种负载调度算法:

1. 论调(round robin)

   调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每台服务器,而不管服务器上实际连接数和系统负载。

2. 加权轮叫(Weighterd Round Robin)

    调度器通过”加权轮叫“调度算法根据真实的服务器不同的处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问。调度器可以根据自动的问询真实的服务器的负载情况,并动态的调整其权值。

3.最少链接(Least Connections)

调度器通过”最少链接“调度算法动态的将网络的请求调度到已建立的链接数最少的服务器上。如果集群系统真实的服务器具有相近的系统性能,采用”最小链接“调度算法可以较好的均衡负载

4.加权最少链接(Weighted  least Connections)

   在集群系统中的服务器性能相差较大的情况下调度器采取“加权最少连接”调度算法优化负载均衡性能,具有较大的承受比例的活动连接负载。调度器可以自动问询真实的服务器的负载情况,并动态的调整期权值

5.基于局部性的最少连接(locality-Based Least Connections)

"基于局部性的最少链接“ 调度算法是针对目标IP地址负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用且没有超载,将请求发送到该服务器;若服务器不存在,或者改服务器超载且有服务器处于一半的工作负载,则用“最少连接“的原则选出一个可用的服务器,将请求发送到该服务器

6.带复制的基于局部性最少的连接(locality-Based Least Connetions with Replication)

“带复制的基于局部最少链接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址对应的服务器组,按“最小链接”原则从这个集群选出一台服务器,将该服务器加入到服务器组中,将请求发送到改服务器。同时,当服务器组有段时间没有别修改,将最忙的服务器从服务器组中删除,以降低复制程度。

7目标地址散列:

“目标地址散列”调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配到散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空

8.源地址散列(Source Hashing)

“源地址散列”调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,请将请求发送到该服务器,否则返回空。

总结

根据上面的分析,我们知道,在lvs中有VS/NAT、VS/TUN和VS/DR这三种方法实现负载均衡,和8种调度算法。下面我老针对不同的服务实现方法如你是用web服务器一般采用普通的IP隧道负载均衡,流媒体服务器使用IPVS负载调度器一般使用直接路由方法(即VS/DR方法),对Cache服务如CND之类的技术应用中一般使用IP隧道方法(即VS/TUN方法)

时间: 2024-10-12 16:03:33

lvs IP负载均衡的相关文章

LVS集群中的IP负载均衡技术

章文嵩 ([email protected]) 转自LVS官方参考资料 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR)的工作原理,以及它们的优缺点. 1.前言在 前面文章中,讲述了可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份).我们先分析实现虚拟网络服务的主要技术,指出 IP负载均衡技术是在负载调度器的实现技术中效率最高的.在已有的IP负载均衡技术

使用LVS实现负载均衡原理及安装配置详解

转:http://www.cnblogs.com/liwei0526vip/p/6370103.html 使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director

linux集群系列(3) --- LVS之负载均衡集群DR实例

一.简介     1.1.  负载均衡集群:LB (load balancing) LVS 是linux virtual server 的简写,即linux的虚拟服务器,是一个虚拟的服务器集群系统.ip负载均衡技术是在负载调度器的实现技术中效率最高的,在已有的ip负载均衡技术中,主要通过网络地址转换(即VS/NAT 技术).由于使用nat技术会使分派器成为瓶颈,所以提出了通过ip隧道实现虚拟服务器(即VS/TUN)和通过直接路由实现虚拟服务器的方法即VS/DR. VS/NAT.VS/TUN和VS

【LVS】负载均衡集群NAT模式

LVS (Linux Virtual Server)是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.LVS可以实现LINUX平台下的简单负载均衡. 其中LVS/NAT是一种最简单的方式,所有的RealServer只需要将自己的网关指向Director即可. LVS负载均衡的NAT模式 一.实验准备 在VMware Workstation虚拟机环境下,准备三台服务器,一台作为director, 两台作为real server. 二.网络配置 director需要配置两

LVS DR 负载均衡集群

LVS DR 负载均衡集群 试验准备:五台主机ABCDE,主机ABCDE均为单网卡,IP地址分别为192.168.10.2,192.168.10.3,192.168.10.4,192.168.10.5,192.168.10.6.主机A作为内网客户端,主机B负载均衡调度器,主机C和主机D作为网站服务器,主机E作为共享存储,均清除防火墙和SELINUX.操作系统均为RHELx86_64,为最小化安装. 主机A操作 #vim /etc/sysconfig/network-scripts/ifcfg-e

基于LVS实现负载均衡

LVS-NAT模型: 工作原理:将内部地址转化为Internets上可用的外部地址.NAT的工作原理是报文头(目标地址.源地址和端口等)被正确改写后,客户相信它们连接一个IP地址,而不同IP地址的服务器组也认为它们是与客户直接相连的.由此,可以用NAT方法将不同IP地址的并行网络服务变成在一个IP地址上的一个虚拟服务. 实验环境:3台虚拟机,其中一台做Director Server配备2个网卡,另外2台是Real Server 操作步骤: 一:在Real Server上: 1:RIP1:# if

Linux中使用LVS实现负载均衡

什么是LVS     LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 同时LVS又被称为四层路由,工作于传输层上. LVS技术简介     LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转 移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的. 高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序. 为此,在设计时需

使用 LVS 实现负载均衡原理及安装配置详解

使用 LVS 实现负载均衡原理及安装配置详解 来源:肖邦linux 发布时间:2017-02-19 阅读次数:106 0 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用

基于LVS的负载均衡实现之NAT

一 什么是负载均衡 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器.企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务. 二 什么是LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.LVS是负载均衡最著名的实现之一. 三 LVS基本工作原理 LVS集群采用IP负载均衡技术