LVS负载均衡集群架构介绍

为什么需要使用负载均衡呢?这是一个必较重要的问题
实际生产环境中某单台服务器已不能负载日常用访问压力时,就需要使用负载均衡,把用户的请求数据分担到(尽可能平均分配)后端所有功能同等的集群的节点上,同样也是为了解决单台服务器故障问题,从而提高用户的访问体验。

1、LVS的介绍
LVS(linux virtual server)LINUX虚拟服务器,是一个虚拟的服务器集群系统,可以在linux和unix系统中运行,1985年开发研究的项目
http://www.linuxvirtualserver.org/zh/ 官方网站

IPVS(lvs)发展史

在linux2.2内核时,IPVS就已经以内核补丁的形式出现
从2.4。24版本以后IPVS已经成为linux内核官方标准内核的一部分

LVS工作原理
LVS负载均衡调度技术是在linux内核中实现的,我们使用配置LVS时,不是直接配置内核中的IPVS,而是通过IPVS的管理工具IPVSADM来管理配置,LVS集群负载均衡器接受所有入站客户端的请求,并根据算法来决定由哪个集群的节点来处理请求。

LVS相关术语介绍

虚拟IP地址(VIP)
    用于向客户端提供服务的IP地址(配置于负载均衡器上)
真实的IP地址(RIP)
    集群中节点服务器的IP地址
负载均衡器IP地址(DIP)
   负载均衡器的IP地址,物理网卡上的IP,用与同外网连接的地址
客户端主机IP地址(CIP)
    终端请求用户的主机IP地址

2、LVS负载均衡工作模式介绍
NAT网络地址转换模式(VS/NAT)
通过网络地址转换,调度器LB重写请求报文的目标地址,根据算法将请求分配给后端的真实主机服务器,真实服务器响应处理报文后返回给调度器LB,经过LB的报文源地址被重写,再返回给请求的客户端用户


过程详解:
1:客户端请求CIP(10.10.0.1:80),目标的地址是VIP(1.1.1.1:80)
2:数据经过LB,目的地址将被LB改写成后端服务器其中一个主机地址(RIP1192.168.1.1:80)
3:服务器接收到数据请求后返回应答信息(源地址:192.168.1.:80,目的地址:1.1.1.1:80,因此处的网关地址需指向LB)给LB
4:LB需将源数据地址改写成VIP地址(1.1.1.1:80,但实际的源地址是RIP1的地址)
5:LB将数据返回给请求的客户端用户,完成整个流程的访问
因此WEB访问量很大的时候,LB就会有很大的负载压力,一般支持10-20台节点,但是这种模式支持IP和端口的转换功能,即10.10.0.1:80----->1.1.1.1:80-------->192.168.1.1:8080

TUN隧道模式(VS/TUN)
LB将请求的报文通过IP隧道转发给真实服务器,这样LB只要需要处理请求入站报文,因此可提高访问效率


过程详解:
1:客户端发送请求数据包(源:CIP10.10.1.1:80,目的地址:VIP1.1.1.1:80)
2:数据包到达LB后,LB将数据包重新封装成另一个IP包(源目地址不变,增加一个IP头),通过隧道转发给真实服务器
3:真实服务器收到数据包后进行解包,数据包信息是(源:CIP 10.10.1.1:80,目的地址:VIP 1.1.1.1:80),最终发现目的地址不是自己(因此需要在服务器LO上绑定一个VIP地址),这样才会处理数据,返回处理数据
4:客户端接收到返回的数据(源地址VIP 1.1.1.1:80,目的地址CIP 10.10.1.1:80),符合TCP/IP的原理,因此整个访问过程完成

注:这时肯定有朋友发现这里会有一个问题,每台服务器上都绑定了一个相同VIP地址,用户访问时的目的地址也是VIP,当数据包达到路由器后经过转发至内网,内网可能会产生多台回应数据包的机器,然后用户收到的最快回应的内网机器发来的数据,这样一来数据包也就没有经过LB,就不是负载均衡了,所以需要做抑制ARP的功能,使所有真实服务器不再响应目的地址是VIP的请求,只要LB来响应请求,从而达到负载均衡。在实际生产环境中很少使用这种模式

DR模式(Direct Routing)直接路由模式
此模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器,而真实服务器将响应后的数据直接回应给请求的客户端,此模式要求LB与真实服务器需要有一块物理网卡都是连接在同一网段上

过程详解:
1:客户端发出请求数据包(源CIP 10.10.1.1:80 目的 VIP1.1.1.1:80)
2:LB接收到数据包后,不转换地址及端口,也不重新封装,只是将数据帧中的目的地址的MAC地址改写算法调度的真实机的MAC地址,将数据包转发出去
3:真实机收到数据后,但是发现数据包中目的地址不是自己(所以事先也得在LO上绑定一个VIP地址,同时配置抑制ARP),这样真实机做出响应直接回复客户端
4:客户端收到回复的数据包(源VIP 1.1.1.1:80 目的CIP 10.10.1.1:80),完成整个访问过程

注:LB只能改写目的MAC地址,因此它不能改变请求报文的目的端口端口,LVS只支持unix和linux,但集群节点服务器可以是win系统,此种模式配置相当麻烦

FULLNAT模式(淘宝开源)

解决了上述三种的缺点,解决了真实服务器能跨越VLAN通讯,只需要连接到内网即可
入站时,目标IP更改为真实服务器的IP,源IP更改为内网的本地IP(一组内网IP)
出站时,目标IP更改为客户端的IP,源IP更换为VIP

3、LVS调度算法介绍
LVS的调度算法决定了如何在集群节点之间分配负载压力(访问请求)

调度算法:
rr轮循调度:将请求依次分配给集群的节点,这种算法适用于各个节点处理能力基本相同的情况下
wrr加权轮循调度:根据节点的权重来分配,权重较高的优先分配
wlc加权最小连接数调度:按权重和连接数的数量来分配
lc最小连接数调度:按连接数的数量来分配

实际生产环境LVS调度算法选型
一般网络服务,如HTTP、MAIL、MYSQL常用的调度算法有:rr、wlc、wrr

更多相关精彩内容请关注民工哥公众号

原文地址:http://blog.51cto.com/mingongge/2062874

时间: 2024-10-10 16:51:34

LVS负载均衡集群架构介绍的相关文章

企业实战-实现基于LVS负载均衡集群的电商网站架构

实现LVS-DR工作模式: 环境准备:一台centos系统做DR.两台实现过基于LNMP的电子商务网站 机器名称 IP配置 服务角色 备注 lvs-server VIP:172.17.252.110 DIP:172.17.250.223 负载均衡器 开启路由功能 (VIP桥接) rs01 RIP:172.17.251.245 后端服务器 网关指向DIP(桥接) rs02 RIP:172.17.252.87 后端服务器 网关指向DIP(桥接) 实验步骤: 一.安装: 1.yum install i

构建高可用的LVS负载均衡集群 进阶篇

一.lvs组件介绍 lvs的组件由两部分组成:工作在内核空间的ipvs模块和工作在用户空间ipvsadm工具.其中ipvsadm是规则生成工具,而ipvs是一个使规则生效的工具. 二.ipvsadm详解 构建高可用的LVS负载均衡集群 进阶篇,布布扣,bubuko.com

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

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

LVS 负载均衡集群

说明:在学习LVS负载均衡集群时,最好对网络通信原理,尤其是ARP通信原理有所了解,否则,将无法理解LVS的工作原理. LVS工作原理和安装配置#################工作模式及其原理####################VS/NAT模式(即Virtual Server via Network Address Translation): 此种模式是通过网络地址转换技术来实现虚拟服务器. ##实现原理:  1.请求: 客户端发送请求到调度器,调度器将请求报文的目的地址(即虚拟IP地址)

LVS负载均衡集群技术学习笔记

一.ARP协议 1. Address Resolution Protocal地址解析协议,功能是根据主机IP地址来解析到主机的MAC地址. 2. ARP协议和DNS协议对比: a. DNS是在域名和IP之间进行解析,ARP是在IP和MAC之间解析. b. ARP协议不需要服务,DNS需要开启服务. c. ARP协议需要互联的主机处于同一个物理网段之内(即局域网环境)! 3. ARP协议工作过程(第一次通信) 4. 高可用服务器切换机器以及更换路由器的时候要注意刷新ARP缓存 5. IP切换时候A

通过keepalived搭建高可用的LVS负载均衡集群

一.keepalived软件简介 keepalived是基于vrrp协议实现高可用功能的一种软件,它可以解决单点故障的问题,通过keepalived搭建一个高可用的LVS负载均衡集群时,keepalived还能检测后台服务器的运行状态. 二.vrrp协议原理简介 vrrp(虚拟路由器冗余协议),是为了解决网络上静态路由出现的单点故障的问题,举个例子,如下图 主机A和B均在同一个局域网内,C和D均是该局域网的网关,即A和B想与外网通信,需指网关到C或D,那究竟指向C好还是指向D好呢?都不好!当指向

LVS+Keepalived高可用负载均衡集群架构

实验环境: LVS和keepalived介绍: 1.keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器,管理服务器池,而不仅仅用来做双机热备. 使用keepalived构建LVS群集更加简便易用,主要优势体现在: 对LVS负载调度器实现热备切换,提高可用性: 对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入. 2.在基于LVS+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,两台以上的节点服务器,

LVS负载均衡集群服务搭建详解(二)

lvs-nat模型构建 1.lvs-nat模型示意图 本次构建的lvs-nat模型的示意图如下,其中所有的服务器和测试客户端均使用VMware虚拟机模拟,所使用的CentOS 7 VS内核都支持ipvs功能,且安装ipvsadm控制书写lvs规则工具. RS端两台服务器为httpd服务器做请求的负载均衡. 注意: 1) 客户端可以使用Windows上的浏览器,会后缓存影响结果,所以采用CentOS上的curl命令请求http协议显示更加直观 2) DIP上不能配置iptables规则 2.VS网

LVS负载均衡集群服务搭建详解(一)

LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均衡 lvs(又称ipvs)是基于内核中的防火墙netfilter实现 2.lvs集群术语: vs:Virtual Server 虚拟服务,可称为Director.Dispatcher分发器.Balancer负载均衡器 rs:Real Server 真实服务器 CIP:Client IP 客户端IP