集群的类型
LB 负载
HA 高可用
DS 分布式
lb实现
lvs linux virtual server
haproxy
nginx
ats
perbal
lvs
ipvsadm/ipvs
ipvsadm :用户空间的命令行工具,用于管理集群服务及集群服务上的RS
ipvs 工作在内核的input链,监控数据,根据用户定义(ipvsadm)的集群实现请求转发
lvs集群的专用术语
vs 调度器
rs 后端主机
rip 后端主机ip
cip 客户端ip
vip vs虚拟ip-对外提供服务
dip vs对内ip
lvs集群类型
lvs-nat 多目标的dnat
lvs-dr 重新封装mac
lvs-tun 在原报文首部新加ip首部
lvs-fullnat 修改请求报文的原和目的ip
lvs-nat
1.多目标的dnat 通过将请求报文的目标ip或端口,修改为lvs集群挑选出的rs的ip和端口
2.rip,dip私有地址,rip的网关为dip
3.vs必须是linux
lvs-dr
1.修改请求报文的mac(t挑选出rs的ip)
2.每个后端服务器上都配置vip
3.修改内核让后端服务器不响应vip的arp
4.修改内核,修改回包时候的网卡封装
(rip,dip在同一网段)
源mac是dip所在的接口
目标ip是挑选出的rip的接口地址(cip/vip)
确保前段路由器的目标ip的vip的mac是director的接口ip
1.arptables
2.修改rs的内核参数,把vip绑定在lo0上
arp_ignore,arp_announce 后端服务器不响应vip的arp请求
3.后端服务器直接回应客户端,后面不经过director
lvs-tun
tunnel模式
1.源目ip--cip-vip
2.封装 dip-rip
3.请求报文由director转发,回应直接发往cip
lvs-fullnat
同时转换源目ip
cIp-vip----dip/rip
负载均衡会话保持的方式
1.源地址hash
2.会话集群
3.会话服务器
lvs的调度方法:
根据其调度时是否考虑后端主机的当前负载
静态:
rr:轮询
wrr:加权轮询
sh:源地址hash (请求报文的源地址绑定,同一个ip的请求始终发往同一个server)
dh:目的地址hash (正向代理 目的ip绑定)
动态:根据算法及各rs的负载状态进行调度
lc 最少连接
wlc 加权最少连接
sed 基于最初连接
nq 轮询+sed
lblc 基于本地的最少连接,动态的dh算法
lblcr