一、介绍
(1)概述
LVS,即Linux虚拟服务器。在Linux内核中实现基于IP的数据请求负载均衡调度方案。
(2)体系架构
①、工作过程
1、终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的web请求会发送给LVS调度器,调度器根据自己的预设的算法决定将该请求发送给后端的某台web服务器。
2、终端服务器访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。
3、最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作魔术分为MAT模式、TUN模式、以及DR模式。
②、体系结构
1、
结构释义负载均衡层
由负载调度器组成,LVS模块就安装在负载调度器上,同时也可能是一个真实的server,主要作用类似于一个路由器,含有完成LVS功能所设定的路由表,通过这些路由表把用户的请求恩发给服务器集群层的应用服务器上。
在负载均衡上还要安装对Real Server服务的监控模块Ldirectord,此模块用于监测各个Real Server服务的健康状况。在Real Server不可用时把它从LVS路由表中删除,恢复时重新加入。
服务器群组层由一组实际运行应用服务的机器组成,真实服务器可以是WEB服务器、DNS服务器、视频服务器等中的一个或多个,每个Real Server之间通过高速的LAN或分布在各地的WAN相连接,几乎可以是所有的系统平台,LINUX、Windows系列都能给与很好的支持共享存储层是为所有Real Server提供共享存储空间和内容一致性的存储区域。在物理上,一般有磁盘阵列设备组成,为了提供内容一致性,一般通过网络共享文件系统实现。2、调度算法
LVS的调度算法决定了如何在集群节点之间分布工作负荷,当director调度器收到来自客户端访问VIP的集群服务的入栈请求时,director调度器必须决定哪个集群节点应该处理请求。
算法说明算法分类rr轮询调度,它将请求依次分配不同的RS,也就是在RS中均摊请求。这种算法简单,但是知识和处理真实服务器性能相差不大的情况。固定调度算法wrr加权轮循调度固定调度算法dh目的哈希调度固定调度算法sh源地址哈希调度固定调度算法wlc加权最小连接数调度动态调度算法lc最小连接数调度动态调度算法lblc基于地址的最小连接数调度动态调度算法lblcr基于地址带重复的最小连接数调度动态调度算法SED最短期望的延迟 NQ最少队列调度
LVS调度算法的生产环境选型:
1、基本的网络服务。如http,mail,mysql等常用的LVS调度算法为: a.基本轮循调度rr b.加权最小连接调度wlc C.加权轮询调度wrc 2、基于局部性的最小连接lblc和带复制的给予局部性最小链接lblcr主要使用于web cache 和DB cache . 3、源地址散列调度SH和目标地址散列调度DH可以结合使用在防火墙集群中,可以保证整个系统的出入口唯一。3、工作原理
1、当用户向负载均衡调度器(Ditector Server)发起请求,调度器将请求发往至内核空间 2、PREROUTING链首先会接受到用户请求,判断目标IP确定是本机IP,将数据包法网INPUT链。 3、IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群服务进行对比,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发往POSTROUTING链。 4、POSTROUTING链接受数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送给后端的服务器。
4、相关术语
1、DS:Director Server.指的是前端负载均衡器节点。 2、RS:Real Server.后端真实的工作服务器。 3、VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。 4、DIP:Director Server IP ,主要用于和内部主机通讯的IP地址。 5、RIP:Real Server IP ,后端服务器的IP地址。 6、CIP:Client IP,访问客户端的IP地址。