LVS类型: NAT:-->(DNAT) (多目标的DNAT) DR: TUN: FULLNAT:
LVS NAT的特性 1.RS的应该使用私有地址 2.RS的网关必须指向DIP 3.RIP和DIP必须在同一网段内 4.请求和响应的报文都得经过Director,在高负载场景中,Director很可能成为性能瓶颈 5.支持端口映射 6.RS可以使用任意支持集群服务的OS
LVS DR类型 1.让前段路由将请求发往VIP时,只能是Dirctor上的VIP 解决方案 1.静态地址绑定 未必有路由器的配置权限 Director高可用时静态地址绑定将难以适用 2.arptables(命令行工具):相当于iptables,限制ARP通告和应答 3.修改linux内核参数,将RS上的VIP配置在lo接口的别名上,限制linux仅对对应接口的ARP请求做响应 负载均衡器如何转发: 如果修改目标IP为RIP,则响应时源IP为RIP,此时客户端并没有请求RIP,所以不能使用RIP响应 此时,负载均衡器中有规则;定义那个是集群服务器,其下有哪些real server; RIP1:MAC1 RIP2:MAC2 RIP3:MAC3 此时,转发时,会修改目标MAC地址 LVS DR类型的特性 1.RS可以使用私有地址,还可以使用公网地址,此时可以直接通过互联网连入RS,以实现配置,监控等 2.RS的网关一定不能指向DIP(负载均衡器不负责响应报文的转发) 3.RS跟Dirctory(DIP)要在同一物理网络内(基于MAC地址通信),(不能有路由器分隔) 4.请求报文经过Directory,但响应报文一定不经过Director 5.不支持端口映射 6.RS可以使用大多数的操作系统
LVS TUN类型:IP隧道(IP报文中,还存在IP)(容灾) 1.RIP、DIP、VIP都得是公网地址 2.RS的网关不会指向也不可能指向DIP 3.请求报文经过Directory,但响应报文一定不经过Director 4.不支持端口映射 5.RS的OS必须得支持隧道功能 rs server 同样有vip 用于响应(此时客户端请求的vip,所以响应报文的源地址一定是vip)
LNS-FULLNAT类型: (需要向内核打补丁才可以使用) NAT模型缺陷:所有的real server和DIP必须在同一个网段内(real server的网关要指向DIP) DR模型缺陷:所有的real server直接暴露在互联网上、各主机要位于同一物理网络中 fullnat:可以跨VLAN(网段),基于NAT实现
LVS的调度方法:10种 静态方法:仅根据算法本身进行调度 rr:Round Robin 轮询 wrr:Weighted RR 权重轮询(根据后端服务器的承载能力,性能) sh:source hashing 源地址hash(可以实现session绑定;背后仍是rr,wrr算法) (hash会话表) 能够将同一个IP地址的访问,定向至同一个RS dh:destination hashing 目标地址hash(背后仍是rr,wrr算法) 将发往同一个目标地址的请求始终转发至第一次挑中的RS 后端为缓存服务器(提高命中率) 前端有多个防火墙时,为了保证从某一个防火墙进入,一定可以从该台防火墙出去 动态方法:根据算法及RS当前的负载状况 lc:Least Connection 最少连接(-c) 计算当前的负载Overhead=Active*256+Inactive来实现 TCP其中两种状态,活动连接和非活动连接 活动连接占用资源多 非活动连接占用资源少 wlc:Weighted LC Overhead=(Active*256+Inactive)/weight(权重) 刚开始时默认为第一个提供服务 sed:Shortest Expect Delay 最短期望延迟 Overhead=(Active+1)*256/weight nq:Nerver Queus: 永不排队 第一次请求给权重最大的 第二次请求给权重第二的 第三次请求给权重第三的 .. 然后使用sed算法(增强改进的sed算法) lblc:Locality-based least connection 基于本地的最少连接 相当于dh+lc Lblcr:基于复制的基于本地的最少连接 Replicated and Locality-based least connection (lblc with replication) 适用于后端是缓存服务器的场景 缓存多的服务器复制一部分缓存给另一个缓存少的服务器
原创文章,作者:sixijie,如若转载,请注明出处:http://www.178linux.com/55328