web集群之lvs

    技术2023-08-30  70

    一、介绍

    (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地址。

     

    Processed: 0.011, SQL: 10