Cluster
系统扩展的方式:
scale up:向上扩展
scale out:向外扩展
集群类型:
LB:负载均衡集群,Load Banlancing
HA:高可用集群,High Availability
HP:高性能集群,High Performancing
Availability=90%,95%,99%,99.5%,99.9%,99.99%,99.999%
系统:
可扩展性
可用性
容量
性能
系统运维:可用 --> 标准化 --> 自动化
www.top500.org
构建高可扩展性系统的重要原则:在系统内部尽量避免串行和交互。
GSLB:Global Service Load Balancing
SLB:Service Load Balancing
总结:
分层
分割
分布式
分布式应用
分布式静态资源
分布式数据和存储
分布式计算
LB集群的实现:
硬件:
F5 BIG-IP
Citrix NetScaler
A10 A10
Array
Redware
软件:
lvs
haproxy
nginx
ats(apache traffic server)
perlbal
基于工作的协议层次划分:
传输层:
lvs,haproxy(mode tcp)
应用层:
haproxy,nginx,ats,perlbal
lvs:
章文嵩:正明;
lvs:Linux Virtual Server
l4:四层交换,四层路由;
根据请求报文的目标IP和PORT将其转发至后端主机集群中的某一台主机(根据挑选算法)
netfilter:
PERROUTEING --> INPUT
PERROUTEING --> FORWARD --> POSTROUTING
OUTPUT --> POSTROUTING
lvs:
ipvsadm/ipvs
ipvsadm:用户空间的命令行工具,用于管理集群服务;
ipvs:工作内核中netfilter INPUT钩子上;
支持TCP,UDP,AH,EST,AH_EST,SCIP等诸多协议;
lvs arch:
调试器:director,dispatcher,balancer
RS:Real Server
Client IP:CIP
Director Virutal IP:VIP
Director IP:DIP
Real Server IP:RIP
lvs type:
lvs-nat
lvs-dr(direct routing)
lvs-tun(ip tunneling)
lvs-fullnat
lvs-nat:
多目标的DNAT(iptables):它通过修改请求报文的目标IP地址(同时可能会修改目标端口)至挑选出某RS的RIP地址实现转发;
(1) RS和DIP应该使用私网地址,且RS的网关要指向DIP;
(2) 请求和响应报文都要经由director转发;在极高负载的场景中,director可能会成为系统瓶颈;
(3) 支持端口映射;
(4) RS可以使用任意OS;
(5) RS的RIP和Director的DIP必须在同一IP网络;
lvs-dr:direct routing
它通过修改请求报文的目标MAC地址进行转发;
Director:VIP,DIP
RSs:RIP,VIP
(1) 保证前端路由器将目标IP为VIP的请求报文发送给director
解决方案:
静态绑定
arptables
修改RS主机内核的参数
(2) RS的RIP可以使用私有地址;但也可以使用公网地址;
(3) RS跟Director必须在同一物理网络中;
(4) 请求报文经由Director调试,但响应报文一定不能经由Director;
(5) 不支持端口映射;
(6) RS可以使用大多数OS;
(7) RS的网关不能指向DIP;
(2)