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