负载均衡LVS集群详解

 一、LB--负载均衡

在负载均衡集群中需要一个分发器,我们将其称之为Director,它位于多台服务器的上面的中间层,根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来进行响应请求,而其分发的方式则是根据某个算法进行的。

二、HA--高可用

高可用顾名思义就是服务的可用性比较高,即当我们不会因为某台服务器的宕机,从而造成我们的服务不可用,其工作模式则是将一个具有故障的服务转交给一个正常工作的服务器,从而达到服务不会中断。

三、LVS:

LVS:Linux Virtual Server,可以实现LINUX平台下的简单负载均衡。

一般来说,LVS采用三层结构:负载调度器、服务器池、共享存储。工作在TCP/IP协议的四层,其转发是依赖于四层协议的特征进行转发的,由于其转发要依赖于协议的特征进行转发,因此需要在内核的TCP/IP协议栈进行过滤筛选,可想而知,这就需要在内核的模块来完成,而这样的过滤转发规则又是由管理员进行定义的,所以,LVS就是两段式的架构设计,在内核空间中工作的是"ipvs",而在用户空间中工作的,用来定义集群服务规则的是"ipvsadm"。这就很容易想到iptables。

LVS的三种转发模式:

LVS-NAT:网络地址转换 Network address translation

LVS-DR:直接路由 Direct routing

LVS-TUN:IP隧道 IP tunneling

VIP:Director用来向客户端提供服务的IP地址

RIP:集群节点(后台真正提供服务的服务器)所使用的IP地址

DIP:Director用来和D/RIP 进行联系的地址

CIP:公网IP,客户端使用的IP。

LVS-NAT:------扩展的DNAT

1.所有的real server和Director要在同一网段

2.通常情况下RIP是私有地址,仅用于集群节点之间进行通信

3.Director同时处理入站和出站请求

4.Real server的网关要指向DIP

5.可以实现端口映射(请求端口和提供服务的端口可以不一致)

6.Real server可以是任意的操作系统

7.Director很容易成为系统性能的瓶颈

数据包地址转换过程:

S:CIP D:VIP------->Director------>S:CIP D:RIP------>Real Server------>S:RIP D:CIP----->Director----->S:VIP D:CIP

LVS-DR:用户的请求经过Director,然后real server直接响应给客户端任何real server网关不能执行Drector

1.集群节点必须在同一个物理网络中,基于MAC转发

2.RIP可以使用公网地址

3.Director仅处理入站请求,响应的数据包不在经过Director

4.Real server的网关不能指向Director

5.不支持端口映射

6.大多数的操作系统都可以用于real server(隔离ARP广播,同一块网卡上支持多个IP)

7.Director的性能表现远远优于NAT

数据包地址转换过程:

S:CIP D:VIP----->Director--->S:CIP D:RIP -----> Real Server---> S:VIP D:CIP

LVS-TUN:用户的请求经过Director,然后real server直接响应给客户端

1.Real server和Director不需要在一个物理网段中

2.RIP一定不能是私有地址

3.Director仅处理入站请求

4.Real server的网关不能指向Director

5.不支持端口映射

6.仅有支持IP隧道的操作系统才能用于real server

与DR的网络结构一样,但Director和Real Server可以在不同的网络当中,DIP----->VIP 基于隧道来传输,在数据包外层额外封装了S:DIP D :RIP 的地址。

四、LVS的调度算法:

1.静态调度算法:

RR:Round-robin:轮循

WRR:Weighted round-robin:加权轮循-----按照性能分配,为其计算出权重

DH:Destination hashing:目标地址hashing-----将某个固定IP的请求转发给一个相同的real server,用于具有缓存服务器的

SH:Source hashing:源地址hashing

2.动态调度算法:根据分发算法和real server的负载状态设置出调度决策,Director对每一个连接进行追踪监控是否处于活动状态(ESTABLESHED)

LC:Least connection:最少连接-----监控每一个real server当前处于活动状态连接和非活动状态连接数,然后计算出其当前负载:active*256+inactive=overhead

WLC:Weighted least connection:加权最少连接------overhead/weight,考虑到real serverd的性能,默认集群算法

SED:Shortest Expected Delay:最短的期望的延迟----不考虑非活动状态的连接,算法:(active+1)*256/weight=overhead

NQ:Never Queue:永不排队-----没有连接时,直接转发

LBLC:Locality-Based Least-Connection:基于本地的最少连接,动态DH算法

LBLCR:Locality-Based Least-Connection with replication Scheduling:带复制的基于本地最少连接,缓存是共享的

五、ipvsadm

ipvsadm:1.定义集群服务,指定VIP,协议,端口、 2.向集群服务添加RS

用法:

ipvsadm -A|E -t|u VIP:PORT [-s scheduler] [-p [timeout]] [-M netmask]]

-A:定义新的集群服务

-E:修改已有的集群服务

-D:删除某集群服务

-s:指定调度算法,可选项:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq ,默认的调度算法是: wlc.

-C:清空

-R:等同ipvsadm-restore 恢复虚拟服务器规则

-S:等同ipvsadm-save 保存虚拟服务器规则,输出为-R 选项可读的格式

-L|l:列出当前已定义的集群服务和real server

--stats:显示统计信息 与-L同时使用

--rate:显示入站响应速率 与-L同时使用

-c:显示LVS 目前的连接 与-L同时使用

-n:不进行反向解析 与-L同时使用

-Z:清空计数器

-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务

-u --udp-service service-address 说明虚拟服务器提供的是udp 的服务

-f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。

-p --persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。

ipvsadm -a|e -t|u VIP:PORY -r RIP [-g|i|m] [-w weight]

-a:添加real server

-e:修改real server

-g:指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)

-i:指定LVS 的工作模式为隧道模式

-m:指定LVS 的工作模式为NAT 模式

-w:真实服务器的权值

ipvsadm -d -t|u service-address -r server-address 删除一条虚拟服务器记录中的某条真实服务器记录

时间: 2024-12-26 08:00:00

负载均衡LVS集群详解的相关文章

Nginx/LVS/HAProxy 负载均衡软件的优缺点详解

Nginx/LVS/HAProxy 负载均衡软件的优缺点详解 Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑

tomcat6_apache2.2_ajp 负载均衡加集群实战分享_Tomcat

环境: -------------------------------------------- 一台apache2.2服务器,三台tomcat服务器: apache2.2服务器 1.ip:192.168.1.20 2.只装apache软件:httpd-2.2.6.tar.bz2 安装路径:/usr/local/apache2 tomcat服务器:均配置相同的应用. 1.集群名:balancer://tomcatcluster 2.三台集群服务器ip: IP_1:192.168.1.31 IP_

tomcat集群-为什么apache+tomcat搭建的负载均衡服务器集群在部署项目访问请求获取不到数据

问题描述 为什么apache+tomcat搭建的负载均衡服务器集群在部署项目访问请求获取不到数据 为什么apache+tomcat搭建的负载均衡服务器集群在部署项目后的项目路径不对呢,请求获取不到数据我是将项目设置在tomcat的根目录访问路径,输入localhost:8080即可访问到项目的首页,显示正常.Apache弄的是IP访问嘛,通过控制分配请求给集群下的tomcat服务器来访问项目,但是直接使用IP访问请求都获取不到数据,尝试通过IP/项目名也达不到效果.这是什么原因呢. 我当时是按照

寻找做负载均衡和集群的高人

问题描述 需要在J2EE环境下配置3台服务器ApacheTomcat做负载均衡和集群.需要熟悉负载均衡的老手,操作系统可以是windows或linux.需要到现场机房进行实施.可以兼职. 解决方案 解决方案二:发帖都不会发.就配个环境,你还找专职?既然兼职,也不说酬劳问题,至少写个面议吧既然要去现场也不说在什么地方解决方案三:另外,你们的应用.硬件环境是什么?不同的应用,方案可能会不太一样解决方案四:有点冲啊-

Nginx+Tomcat+Https 服务器负载均衡配置实践方案详解_nginx

由于需要,得搭建个nginx+tomcat+https的服务器,搜了搜网上的发现总是有错,现在整理了些有用的,备忘. 环境:Centos6.5.JDK1.8.Tomcat8.Nginx1.10.1 准备材料: 1.JDK1.8安装包jdk-8u102-linux-x64.tar.gz 2.Tomcat8安装包apache-tomcat-8.0.37.tar.gz 3.Nginx1.10安装包nginx-1.10.1.tar.gz 1.JDK安装配置 解压并安装到/usr/local/jdk [r

Windows2003配置集群详解

原文: http://blog.csdn.net/xunyn/article/details/7388900    集群是在一组计算机上运行相同的软件并虚拟成一台主机系统为客户端与应用提供服务:计算机通过缆线物理连接并通过集群软件实现程序上的连接,可以使计算机实现单机无法实现的容错和负载均衡.集群技术在企业组织部署关键业务.电子商务与商务流程应用等领域,具有举足轻重的作用.     本文主要带领大家一起,参与到基于Windows2003操作系统的集群配置中来,从以下的配置过程中,希望读者朋友能切

(总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂

【转贴】lvs负载均衡+keepalived高可用性配置详解

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为"中国PE第一股",市值超1000亿元.    ----------------------------------------------------------------------------

Apache+tomcat负载均衡以及集群环境配置安装包+详细教程

问题描述 一:软件环境(所需全部软件已经一起打包,安装使用即可)1.Apache2.0.65(一个)2.tomcat6.0.41(二个或者两个以上)3.mod_jk.so(Apache与Tomcat的连接器,并藉此附带提供集群和负载均衡的功能)二:负载均衡配置(1)Apache配置1.把Apache安装在D:/ApacheGroup/Apache2 解压两分Tomcat,分别在D:/ApacheGroup/apache-tomcat-6.0.41_1,D:/ApacheGroup/apache-