lvs与集群相关概念介绍

lvs与集群相关概念介绍

集群相关概念

集群

对于日益增长用户量,增加单一服务器的性能,不可能随之用户量而实现线性增长,且成本巨大,因此出现了集群系统,将多个普通服务器组织为一个单一的集群,然后多个服务器共同为外部提供服务,**实现用户请求的分而治之,**集群降低了成本,基本上,使得处理能力可以随之用户量实现线性增长

网站划分层次

  • 垂直分层
    • 接入层/安全层,如防火墙,
    • 负载层/调度层,lvs/keepalived/haproxy
    • 静态缓存层,如varnish,squid
    • 静态web层,如httpd/nginx
    • 静态资源层,,nfs网络文件系统,或分布式文件系统,fastdfs,glusterfs,存储照片等非结构化数据;
    • 动态应用服务器,如tomcat,phpfpm等java或php网站程序,
    • 动态会话缓存层,如redis,memcache,使得会话剥离于动态服务器,将tomcat等服务变成stateless,方便水平扩展
    • 消息队列,如rabbitmq,kafka,做系统的解耦,流量削峰等
    • 数据持久层,mysql,oracle等关系型数据库,存储结构化数据;
    • 离线业务层,hadoop生态做大数据分析处理,
    • 日志层,ELK做日志的收集,分析,展示
    • 监控层,zabbix,全局各个层次的监控
    • 持久集成/部署,gitlab,Jenkins,snarqube,代码的持续提交,测试,发布,回滚
    • 自动化工具,ansible,pubbet
    • 底层平台:
      • 物理机器
      • 私有云IAAS,kvm,openstack
      • 容器云,docker,kubernetes
  • 水平业务切分
    • 微服务化,模块化,各服务通过restful api或rpc进行网络通信;

会话保持的方式

​ 实现会话保持,有多种方式:可以在前端调度器的调度方法上实现;也可以在后端应用服务器实现,利用状态信息在节点间复制,或抽离出来放在高可用的会话服务器上;

  • 调度方法上:
    • sh:调度时,采用源地址hash方式,使得同一个ip的请求,总是发往一个后端服务
    • cookie:调度时,基于cookie调度,实现会话保持
  • 会话复制
    • 所有服务器 都保存一份会话信息,相互复制,
  • 会话服务器
    • 将会话信息外置,于redis,memche

lvs简介

lvs全称linux virtual server 为章文嵩博士开发的一款负载均衡软件,为linux内核模块之一,内核空间管理命令为ipvsadm,配置使用可实现高可用的有keepalived软件。

lvs可以实现基于ip的负载调度(内核的ipvs模块)、基于内容的调度(内核的KTCPVS模块),如用于七层的web,cache的调度,且是基于内核实现,效率高,不过在开发中,http://www.linuxvirtualserver.org/software/ktcpvs/ktcpvs.html

官方网址

http://www.linuxvirtualserver.org/Documents.html

http://www.linuxvirtualserver.org/zh/index.html

http://kb.linuxvirtualserver.org/wiki/Main_Page

4种工作模型概括

  • nat:可支持的并发不高
  • tun:调度器和后端节点可以跨公网,适用于如公网cdn
  • dr:默认工作模型,适用于本地局域网
  • fullnat:不常用

10种调度算法概括

  • rr:轮询
  • wrr:加权轮询
  • lc:最小连接调度
  • wlc:默认调度算法,加权最小连接调度
  • lblc:基于局部的最小连接,local-based least-connection
  • lblcr:基于局部的带有复制的最小连接;local-based least-connection with-replication
  • sh:源地址hash
  • dh:目标地址hash
  • sed:shorest expection delay,
  • nq:never queue,第一轮均匀分配,后续sed
updatedupdated2020-10-202020-10-20
加载评论