LB : 调度算法 : rr wrr
分类 : Hardware F5 ,BIG IP Citrix ,Netscaler A10 Software 四层 LVS 七层 反向代理 nginx http,smtp,pop3,imap haproxy http,tcp(mysql,smtp)
LVS :Linux Virtual Server director : 调度器 realserver lvs与iptables 不能同时使用 LVS ipvsadm :管理集群服务的命令行工具 ipvs : CIP :Client IP VIP : Virtual IP RIP : RS IP DIP : Director IP
LVS支持模型 :
NAT :地址转换
集群节点跟director必须在同一个IP网络中;
RIP通常是私有地址,仅用于各集群节点间的通信;
director位于client和real server之间,并负责处理进出的所有通信
realserver必须将网关指向DIP;
支持端口映射;
realserver可以使用任意OS;
较大规模应用场景中,director易成为系统瓶颈;
DR :直接路由
集群节点跟director必须在同一个物理网络中;
RIP可以使用公网地址,实现便捷的远程管理和监控;
director仅负责处理入站请求,响应报文则由real server直接发往客户端;
real server不能将网关指向DIP;
不支持端口映射;
TUN :隧道
集群节点可以跨越internet;
RIP必须是公网IP
director仅负责处理入站请求,响应报文则由real server直接发往客户端;
realserver网关不能指向director;
只有支持隧道功能的OS才能用于realserver;
不支持端口映射;
多目标DNAT
调度方法 : 固定调度 RR : 轮询 WRR :加权 (Weight) SH : source hash 源地址hash session affinity DH :Destination hashing 目标地址hash 动态调度 LC : 最少连接 计算方法 :ACTIVE256+INACTIVE WLC :加权最少连接 计算方法 :(ACTIVE256+INACTIVE)/weight SED : (ACTIVE+1)*256/weight NQ : never queue LBLC : 基于本地的最少连接 LBLCR :基于本地带复制功能的最少连接
lvs默认调度方法 :wlc
web : cookie session session sharing
ipvsadm : 管理集群服务 添加、-A -t|u|f service-address [-s scheduler] -t :TCP协议的集群 -u:UDP协议的集群 service-address : IP:PORT -f :FWM:防火墙标记 service-address : Mark Number 修改、-E 删除 -D -t|u|f service-address 例如 :ipvsadm -A -t 172.16.100.1:80 -s rr 管理集群服务中的RS 添加、 -a -t|u|f service-address -r server-address [-g|i|m] [-w weight] -t|u|f service-address : 事先定义好的某集群服务 -r server-address : 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射; [-g|i|m] : LVS类型 -g : DR -i : TUN -m: NAT [-w weight] : 定义服务器权重 修改、 -e 删除、 -d -t|u|f service-address -r server-address 例如 :ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -m ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -m 查看 -L|1 -n : 数字格式显示主机地址和端口 --stats : 统计数据 --rate : 速率 --timeout :显示tcp、tcpfin和udp的会话超时时长 --daemon : -c :显示当前的ipvs连接状况 删除所有集群服务 -C :清空ipvs规则 保存规则 -S #ipvsadm -S > /path/to/somefile 载入此前的规则 -R #ipvsadm -R < /path/from/somefile 各节点之间的时间偏差不应该超出一秒钟 : NTP :Network Time Protocol ntpdate
DR 模型 :
VIP :MAC (DVIP)
arptables :
kernel parameter :
arp_ignore : 接收到ARP请求时的响应级别;
0 :default 只要本地配置的有相应地址,就给予响应;
1 :仅在请求的目标地址配置请求到达的接口上的时候,才给予响应;
arp_announce :定义将自己地址向外通告时的通告级别
0 :default 将本地任何接口上的任何地址向外通告;
1 :试图仅向目标网络通告与其网络匹配的地址;
2 :仅向与本地接口上地址匹配的网络进行通告;
实例配置 :
LVS健康检查
elinks
curl --connect-timeout 1 超时时间限制
-I
用法如图:
健康检查实例脚本 :
declare -a A 声明数组
LVS持久连接 : 无论使用什么算法,LVS持久都能实现在一定时间内,将来自同一个客户端请求派发至此前选定的RS, 持久连接模板(内存缓冲区) 每一个客户端 及分配给它的RS的映射关系; ipvsadm -A|E ... -p timeout : timeout : 持久连接时长,默认300秒,单位是秒; 在基于SSL会话中,需要用到持久连接
持久连接的方式 : PPC : 将来自于同一个客户端对同一集群服务的请求,始终定向至此前选定的RS; 持久端口连接 PCC :将来自于同一个客户端对所有端口的请求,始终定向至此前选定的RS; 持久客户端连接 把所有端口统统定义为集群服务,一律向RS转发 PNMPP :持久防水墙标识连接 防火墙标记 : PREROUTING 80,443
rsync server(inotify+rsync server) sersync工具 memcached