码迷,mamicode.com
首页 > 其他好文 > 详细

LVS学习笔记

时间:2015-05-27 23:04:26      阅读:370      评论:0      收藏:0      [点我收藏+]

标签:负载均衡 lb load balance lvs lvs类型 lvs调度算法

LVS:Linux Virtual Server

    LVS是一个虚拟的服务器集群系统,工作在内核的TCP/IP协议栈上,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。


一般来说,LVS集群采用三层结构,其主要组成部分为:

1、负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户端认为服务是来自一个IP地址上的;

2、服务器池(server pool),是一组真正执行客户端请求的服务器;

3、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。



LVS模型及各模型特性:

    三种模型:

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

        Direct routing (LVS-DR):直接路由

        IP tunneling (LVS-TUN):IP隧道


    NAT模型的特性(遵循的基本法则):

        1、集群节点必须跟director在同一个IP网络中;

        2、RIP通常是私有地址,仅用于各集群节点间的通信;

        3、director位于client和real server之间,并负责处理进出的所有通信;

        4、real server必须将网关指向DIP;

        5、支持端口映射;

        6、real server可以使用任意操作系统(OS);

        7、较大规模应用场景中,director容易成为系统瓶颈。

    

    DR模型的特性:

        1、集群节点必须要跟director在同一个物理网络中;

        2、real server可以使用公网地址,实现便捷的远程管理和监控;

        3、director仅负责处理入站请求,响应报文则由real server直接发往客户端;

        4、real server不能将网关指向DIP;

        5、不支持端口映射;

        6、大多数的操作系统(OS)都可以用在real server上(需能隐藏VIP);

        7、一个LVS-DR director可以比LVS-NAT处理更多的real server。

    

    TUN模型的特性:

        1、集群节点可以跨越Internet;

        2、real server的RIP必须是公网地址;

        3、director仅负责处理入站请求,响应报文则由real server直接发往客户端;

        4、real server不能将网关指向DIP;

        5、只有支持隧道功能的操作系统(OS)才能用于real server;

        6、不支持端口映射。



LVS的十种调度算法:

    静态调度方法:

        RR:Round Robin,轮询

        WRR:Weighted Round Robin,加权轮询

        SH:Source Hashing,源地址Hash;实现会话绑定(session affinity)

            根据客户端的来源,同一个客户端IP的请求一定会发往跟第一次请求相同的real server上;

            如果可以实现会话共享(session sharing)就不需要使用SH调度机制。

        DH:Destination Hashing,目标地址Hash;

            将同一个客户端IP地址的请求发送给同一个real server;

            类似于SH,应用场景不同,常用于缓存服务器的场景中;

            不考虑cache连接数。


    动态调度方法:

        LC:Least Connection,最少连接

            计算方法:active*256+inactive,计算real server大小进行选择;

            充分考虑每个服务器当前连接数的状况,并挑选一个最空闲(最少连接)的real server进行传送。

        WLC:Weighted Least Connection,加权最少连接

            计算方法:(active*256+inactive)/weight;选择跟LC一样。

        SED:Shortest Expected Delay,最短期望延迟

            计算方法:(active+1)*256/weight;改进的WLC。

        NQ:Never Queue,永不排队

            先每台real server发送一个请求(按权重发送),再进行计算;改进的SED。

        LBLC:Locality Based Least Connection,基于本地的最少连接

            实现目标跟DH调度方法一样(动态DH),但需要考虑cache连接数,主要用于cache 集群系统。

        LBLCR:Locality Based Least Connection with Replication Scheduling,基于本地带复制功能的最少连接(缓存复制机制),主要用于cache 集群系统。



LVS学习笔记

标签:负载均衡 lb load balance lvs lvs类型 lvs调度算法

原文地址:http://yuyucat.blog.51cto.com/9627004/1655785

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!