wsxxz 发表于 2019-1-4 07:32:17

Lvs集群管理

  Lvs集群管理我们分几部分来讲解:
  点我-->Lvs基础理论及系统扩展基础。
  点我-->ipvsadm集群管理命令及lvs-nat类型的实现。
  点我-->Lvs FWM及持久连接、健康状态监测。
  点我-->Lvs-dr模型的实现。
  

  本文所讲述的为第一部分:Lvs基础理论及系统扩展基础。
  

  LVS全称:Linux virtual server;也就是我们说的VS服务。
  组成部分:ipvs, ipvsadm
  Linux的集群类型:LB、HA、HP
  

  ipvs工作于netfilter的INPUT链接;
  ipvsadm用于在ipvs上定义集群服务:同时也得定义此集群服务对应于有哪个后端主机可用;
  根据所指定的调度方法(算法)作出调度决策;
  

  支持的协议:TCP, UDP, SCTP, AH, ESP, AH_ESP
  

  lvs中的常用术语约定:
  Host:
  Director:调度器
  Real Server: RS,后端提供服务的主机
  IP:
  Client: CIP
  Director Virtual IP: VIP
  Directory IP: DIP
  Real IP: RIP
  

  lvs的类型:
  lvs-nat:
  masquerade
  lvs-dr:
  direct routing
  lvs-tun:
  tunneling
  lvs-fullnat:
  fullnat
  

  lvs-nat:类似于DNAT, 但支持多目标转发;
  它通过修改请求报文的目标地址为根据调度算法所挑选出的某RS的RIP来进行转发;
  架构特性:
  (1) RS应该使用私有地址,即RIP应该为私有地址;各RS的网关必须指向DIP;
  (2) 请求和响应报文都经由Director转发;高负载场景中,Director易于成为系统瓶颈;
  (3) 支持端口映射;
  (4) RS可以使用任意类型的OS;
  (5) RS的RIP必须与Director的DIP在同一网络;
  

  lvs-dr:直接路由
  Director在实现转发时不修改请求的IP首部,而是通过直接封装MAC首部完成转发;目标MAC是Director根据调度方法挑选出某RS的MAC地址;拓扑结构有别有NAT类型;
  架构特性:
  (1) 保证前端路由器将目标地址为VIP的请求报文通过ARP地址解析后送往Director
  解决方案:
  静态绑定:在前端路由直接将VIP对应的目标MAC静态配置为Director的MAC地址;
  arptables:在各RS上,通过arptables规则拒绝其响应对VIP的ARP广播请求;
  内核参数:在RS上修改内核参数,并结合地址的配置方式实现拒绝响应对VIP的ARP广播请求;
  (2) RS的RIP可以使用私有地址;但也可以使用公网地址,此时可通过互联网上的主机直接对此RS发起管理操作;
  (3) 请求报文必须经由Director调度,但响应报文必须不能经由Director;
  (4) 各RIP必须与DIP在同一个物理网络中;
  (5) 不支持端口映射;
  (6) RS可以使用大多数的OS;
  (7) RS的网关一定不能指向Director;
  

  lvs-tun: 不修改请求报文IP首部,而是通过IP隧道机制在原有的IP报文之外再封装IP首部,经由互联网把请求报文交给选定的RS;
  CIP;VIPDIP;RIP
  Client IP;Virtual IPDirector IP;Real IP
  架构特性:
  (1) RIP, DIP, VIP都是公网地址;
  (2) RS的网关不能,也不可能指向DIP;
  (3) 请求报文由Director分发,但响应报文直接由RS响应给Client;
  (4) 不支持端口映射;
  (5) RS的OS必须得支持IP隧道;
  

  lvs-fullnat:通过请求报文的源地址为DIP,目标为RIP来实现转发;对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发;
  架构特性:
  (1) RIP,DIP可以使用私有地址;
  (2) RIP和DIP可以不在同一个网络中,且RIP的网关未必需要指向DIP;
  (3) 支持端口映射;
  (4) RS的OS(operating system)可以使用任意类型;
  (5) 请求报文经由Director,响应报文经由Director;
  

  lvs scheduler:LVS集群的调度方式;
  

  静态方法:仅根据算法本身实现调度;
  RR: round-robin, 轮询;轮叫、轮调、轮流;即以一比一方式进行调度;
  WRR:weighted round-robin, 加权轮询;即为集群中的RS配置权重实现调度;
  SH:Source ip Hashing,源地址哈希;即把来自同一个地址请求,统统定向至此前选定的RS;
  DH:Destination ip Hashing, 目标地址哈希;即把访问同一个目标地址的请求,统统定向至此前选定的某RS;
  

  动态方法:根据算法及后端RS当前的负载状况实现调度;
  LC: least connection
  Overhead=Active*256+Inactive
  WLC: weighted least connection
  Overhead=(Active*256+Inactive)/weight
  SED:Shorted Expection Delay
  Overhead=(Active+1)*256/weight
  NQ:Never Queue
  LBLC:Local-Based Least Connection,动态方式的DH算法;
  LBLCR:Replicated LBLC
  

  以上则为LVS的基本概念及系统扩展基础。下一篇我们将介绍ipvsadm集群管理命令的使用:http://10267776.blog.运维网.com/10257776/1734582



页: [1]
查看完整版本: Lvs集群管理