LVS基础知识概述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cx55887/article/details/83988318
  • LVS(Liunx Virtual Server)

LVS作用就是实现负载均衡,而负载均衡简单来所就是将用户请求合理的分流到后端节点之上,以实现资源的高效利用。
LVS特点是可以跨平台,也就是在windows、Linux系统之上都可以用。
LVS的核心组件:

  1. ip_vs:linux的内核功能模块,工作在内核,依赖该内核模块实现负载均衡功能
  2. ipvsadm:应用层程序,该程序可以和内核中的ip_vs模块通信,实现对负载均衡的管理和控制
  3. keepalived也可以对ip_vs进行管理

相关概念:

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

LVS的工作模式:DR模式、NAT模式、TUN模式、FULLNAT模式。

LVS的调度算法,所谓算法简单来说就是按照什么规则来送后端的多个RS中挑选一个给用户提供服务。算法有静态算法和动态算法。

静态算法:无论后端的RS当前的服务器负载情况怎么样,都安装固定的方式来给RS分配用户请求

  1. rr:Round Bobin,轮询,将客户端的请求交替分配给RS
  2. wrr:Weighted Round Bobin,加权轮询,根据RS的性能不同,让他们来承担不同比例的用户请求
  3. dh:Destination Hashing,目标地址哈希调度,基于用户所请求的地址做哈希表
    作用:实现将对于相同的地址的请求调度到同一个RS之上
    使用场景:适应于前端是一个DR,后端是多个cache的时候
  4. sh:Source Hashing,源地址的哈希调度,基于用户的ip地址做哈希表
    作用:实现将同一个客户端调度到相同的RS之上

动态算法:

  • lc:Least Connection,最小连接数调度,本质是调度到当前负载最低的主机上
    overhead=active*256+inactive
  • wlc:Weighted Least Connection,加权最小连接数调度,本质是调度到当前负载最低的主机上
    overhead=(active*256+inactive)/weight
  • SED:是wlc补充,为了降低overhead出现重复的情况
    overhead=((active+1)*256+inactive))/weight
  • lblc:基于目标地址的最小连接数调度,这种算法那是lc和dh的组合,适应于cache场景
  • lblcr:带有复制功能的lblc

算法的选型:

  • 一般的网络的服务(http mail mysql)
    rr wlc wrr
  • 缓存服务(web cache/db cache)
    dh lblc lblcr

猜你喜欢

转载自blog.csdn.net/cx55887/article/details/83988318