标签:linux
cluster
系统扩展的方式;
scale up:向上扩展
scale out;向外扩展
集群类型;
LB:负载均衡集群。load banlancing
HA:高可用集群。high availability
HP:高性能集群。high performancing
系统运维:可用--> 标准化-->自动化
构建高可扩展性系统的重要原则;在系统内部尽量避免串行化;
LB集群的实现;
硬件:
F5 BIG-IP
Citrix NetScaler
A10
Array
Red
Redware
软件:
lvs
haproxy
nginx
ats(apach traffic server)
perlbal
传输层:LVS,HAPROXY(MODE TCP)
应用层:haproxy,nginx,ats,perlbal
lvs:
章文嵩
lvs:linux virtual server
L4:四层交换,四层路由;
根据请求报文的目标ip和port将其转发至后端主机集群中的某一台主机(根据算法);
lvs:ipvsadm/ipvs
ipvsadm:用户空间的命令行工具,用于管理集群服务
ipvs:工作内核中netfilter INPUT上;
grep -i -A 10 ‘IPVS‘ /boot/config-3.10.0-229.el7.x86_64
支持TCP,UDP,AH,EST,AH_EST,SCTP等协议
lvs arch:
调度器,director,dispatcher,balancer
RS:real server
cip
vip
dip
lvs type
lvs-nat
lvs-dr(direct routing)
lvs-tun(ip tuueling)
lvs-fullnat
lvs-nat
1.RS和DIP应该使用私网地址,且RS的网关要指向DIP;
2.请求和响应报文都要经由director转发,极高负载的场景中,director会成为瓶颈;
3.支持端口映射;
4.RS可以使用任意OS
5.RS的RIP和director的DIP必须在同一个网络;
lvs-dr:direct routing
通过修改请求报文的目标MAC地址进行转发;
director:VIP,DIP
RS:RIP,VIP
1.保证前段路由器将目标IP为VIP的请求报文发送给director
解决办法;静态绑定
arptalbes
修改RS主机内核的参数
2.RS的RIP可以使用私有地址,也可以使用公网地址;
3.RS和director必须在同一个物理网络中
4.请求报文经由Director调度,但响应报文一定不能经由director
5.不支持端口映射
6.RS可以大多数OS
7.RS的网关不能指向DIP
lvs-tun
1.RIP,DIP,VIP全是公网地址
2.RS的网关不能指向DIP
3.请求报文必须经由director,响应的必须不经过director
4.不支持端口映射
5.RS的OS必须支持隧道功能
lvs-fullnat;
director通过同时修改请求报文的目标地址和源地址进行转发
1.VIP是公网地址:RIP和DIP是私网地址,二者无须在同一网络中;
2.RS接收到的请求报文的源地址为DIP,因此要响应给DIP
3.请求报文和响应报文都必须经由director
4.支持端口映射;
5.RS可以使用任意OS
session保持;
session绑定;
source ip hash
cookie
session集群;rs之间复制session信息。
session服务器;单独的session服务器。
lvs scheduler:调度算法
# IPVS scheduler
#
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
静态方法:仅根据算法本身进行调度;
RR:round robin,轮调
WRR:weighted rr,加权轮调
SH:source hash,实现session保持的机制,来自同一个ip的请求调度到同一个RS
DH:destination hash,将对同一个目标的请求始终发往同一个RS
动态方法;根据算法及各RS的当前负载状态进行调度;
LC:least connect
overhead=active*256+inactive
WLC:weighted LC
overhead=(active*256+inactive)/weight
SED:shortest expection delay 最短期望延迟
overhead=(active+1)*256/weight
NQ:never queue 永不排队
SED算法的改进。
LBLC:locality-Based LC ,动态的DH算法
正向代理情形下的cache server
LBLCR:locality-based least-connection with replication,带复制功能的LBLC算法;
标签:linux
原文地址:http://perper.blog.51cto.com/6284626/1972109