LVS集群

介绍

LVS:Linux Virtual Server

LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式。

LVS的模型中有两个角色:
调度器:Director,又称为Dispatcher,Balancer。调度器主要用于接受用户请求。
真实主机:Real Server,简称为RS。用于真正处理用户的请求。

而为了更好地理解,我们将所在角色的IP地址分为以下三种:

  • Director Virtual IP:调度器用于与客户端通信的IP地址,简称为VIP
  • Director IP:调度器用于与RealServer通信的IP地址,简称为DIP。
  • Real Server : 后端主机的用于与调度器通信的IP地址,简称为RIP。

lvs scheduler:lvs调度器,即lvs挑选RS的算法

静态方法:仅根据算法本身进行调度	
	RR:round robin,轮调、轮询
    WRR:weighted rr,加权的rr,根据一定的比例进行轮调,比如每次RS1给2个请求,RS2给1个请求
    SH:source  hash,源地址hash,实现session保持的机制,将来自于同一个IP的请求始终调度至同一RS,每个服务单独调度
    DH:destination hash,目标地址hash,将对同一个目标(资源)的请求始终发往同一个RS
    
动态方法:根据算法及各RS的当前负载状态进行调度,根据指定的算法算出overhead(负载),最终挑选出overhead值最小的则为被选中的RS
    LC:Least Connection,最少连接数,算法如下:
        overhead = Active * 256 + Inactive
    WLC:Weighted LC,加权的LC,算法如下:
        overhead=(Active*256+Inactive)/ weight
    SED:Shortest Expection Delay,最短期望延迟,算法如下:
        overhead = (Active + 1) * 256 / weight
    NQ:Nevel Queue,是SED算法的改进,根据SED算法每台主机第一次至少要均分配一次,然后再按SED算法来挑选
    LBLC:Locality-Based LC,基于本地的最少连接数,即为动态的DH算法
        正向代理情形下的cache server调度
    LBLCR:Locality-Based Least-Connection with Replication,带复制功能的LBLC算法

在这里插入图片描述

LVS工作原理

LVS-NAT
NAT(Network Address Translation)即网络地址转换,其作用是通过数据报头的修改,使得位于企业内部的私有IP地址可以访问外网,以及外部用用户可以访问位于公司内部的私有IP主机。

在这里插入图片描述
原理:基于ip伪装MASQUERADES,多目标DNAT。所有请求和响应都经由Director调度器。RS和DIP应该使用私网地址,且RS的网关要指向DIP

LVS-TUN
在LVS(NAT)模式的集群环境中,由于所有的数据请求及响应的数据包都需要经过LVS调度器转发,如果后端服务器的数量大于10台,则调度器就会成为整个集群环境的瓶颈。我们知道,数据请求包往往远小于响应数据包的大小。因为响应数据包中包含有客户需要的具体数据,所以LVS(TUN)的思路就是将请求与响应数据分离,让调度器仅处理数据请求,而让真实服务器响应数据包直接返回给客户端。
在这里插入图片描述
原理:基于隧道封装技术。在IP报文的外卖再包一层IP报文。
当Director接收到请求的时候,选举出调度的RealServer
当接受到从Director而来的请求时,RealServer则会使用lo接口上的VIP直接响应CIP。
这样CIP请求VIP的资源,收到的也是VIP响应。

LVS-DR
在这里插入图片描述
原理:当Director接收到请求之后,通过调度方法选举出RealServer。
讲目标地址的MAC地址改为RealServer的MAC地址。
RealServer接受到转发而来的请求,发现目标地址是VIP。RealServer配置在lo接口上。
处理请求之后则使用lo接口上的VIP响应CIP。

LVS-NAT模式配置http负载均衡

,三台服务器分别配置了对应的本地静态地址DIP和RIP,且在一个内网中。

DR有两块网卡,一块IP是内网的DIP,另一块IP是公网IP的VIP

RS的网关指向DIP

配置ip地址信息

#DR需两块网卡
[root@DR ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值