标签:分布 inux 集群管理 linux发行版 pre scale 端口 arp 故障处理
集群基础
1.服务器硬件性能不足,策略:
1.scale on 向上扩展 加大cpu 内存等硬件-----------这种方式不可能无限扩展,而且到一定程度,性能可能会下降
2.scale out 向外扩展 ------------------多台服务器对外提供服务-------------------》-目前使用的方法
cluster
1.LB 负载均衡 提高并发处理能力
2.HA 高可用集群 提升服务可用性
在线时间/(在线时间+故障处理时间)
99% 99.9% 99.99% 99.999%
3.HP(HPC)高性能集群 high performance
并行处理集群
分布式文件系统
将大任务 切割为小任务的机制
平常工作场景,用的最多的还是负载均衡及高可用集群,一般两者结合使用。
负载均衡(Load Balance)集群提供了一种廉价、有效、透明的方法,来扩展网络设备和服务器的负载、带宽,增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。
1.单台计算机无法承受大规模的并发访问或数据流量了,此时需要搭建负载均衡集群把流量分摊到多台节点设备上分别处理,
减少用户等待时间提升用户体验
2.7*24小时的服务保证,任意一个或多个有限后端节点设备宕机,不能影响整个业务的运行。
一般负载均衡使用较多的就是LVS(四层代理,工作在OSI7层模型中的网络层和传输层,可以对IP地址及端口作分流策略)及nginx(7层代理,工作OSI7层模型中的应用层,可以对请求内容作分流策略)。
这里介绍lvs,我公司也用的是lvs负载均衡。
LVS(linux virtual server)
LVS 由2部分程序组成,包括 ipvs 和 ipvsadm。
1.ipvs(ip virtual server):一段代码工作在内核空间,叫ipvs,是真正生效实现调度的代码。
LVS工作原理
当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间
PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链
LVS相关术语
5 . LVS/NAT原理和特点
(a). 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP
(b). PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
(c). IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP
(d). POSTROUTING链通过选路,将数据包发送给Real Server
(e). Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP
(f). Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标IP为CIP
NAT特点
NAT:集群节点跟director必须在同一个IP网络中
RIP通常是私有地址,仅用于各集群间的通信
director位于client和real server之间,并负责处理进出的所有通信
real server必须将网关指向DIP
支持端口映射
real server可以使用任意OS
较大规模中,director容易成为系统瓶颈(因为处理后的响应都要经过director)
6 . LVS/DR原理和特点
(a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP
(b) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
(c) IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址
(d) 由于DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至Real Server。
(e) RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出。 此时的源IP地址为VIP,目标IP为CIP
(f) 响应报文最终送达至客户端
DR特点
DR------》直接路由 通过修改数据包目的mac地址,注意RS的 arp抑制问题
集群节点跟director必须在同一个物理网络中
real server可以使用公网地址,实现便捷的远程管理
director仅负责处理入站请求,响应报文直接由real server发给客户端,不经过director。
real server不能将网关指向DIP
不支持端口映射
可以处理更多的用户请求
7 . LVS/Tun原理和特点
(a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP 。
(b) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
(c) IPVS比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为为DIP,目标IP为RIP。然后发至POSTROUTING链。 此时源IP为DIP,目标IP为RIP
(d) POSTROUTING链根据最新封装的IP报文,将数据包发至RS(因为在外层封装多了一层IP首部,所以可以理解为此时通过隧道传输)。 此时源IP为DIP,目标IP为RIP
(e) RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆除掉最外层的IP后,会发现里面还有一层IP首部,而且目标是自己的lo接口VIP,那么此时RS开始处理此请求,处理完成之后,通过lo接口送给eth0网卡,然后向外传递。 此时的源IP地址为VIP,目标IP为CIP
(f) 响应报文最终送达至客户端
TUN特点
集群节点可以跨越internet
real server IP必须是公网地址
director仅处理入站请求,响应报文由real server直接发往客户端
不支持端口映射
企业中常用的还是DR直接路由
调度方法
可以man ipvsadm查看相关算法
1.轮叫调度 rr
这种算法是最简单的,就是按依次循环的方式将请求调度到不同的服务器上,
该算法最大的特点就是简单。轮询算法假设所有的服务器处理请求的能力都是一样的,
调度器会将所有的请求平均分配给每个真实服务器,不管后端 RS 配置和处理能力,
非常均衡地分发下去。
这种算法比 rr 的算法多了一个权重的概念,可以给 RS 设置权重,权重越高,
那么分发的请求数越多,权重的取值范围 0 – 100。主要是对rr算法的一种优化和补充,
LVS 会考虑每台服务器的性能,并给每台服务器添加要给权值,如果服务器A的权值为1,
服务器B的权值为2,则调度到服务器B的请求会是服务器A的2倍。权值越高的服务器,
处理的请求越多。
这个算法会根据后端 RS 的连接数来决定把请求分发给谁,
比如 RS1 连接数比 RS2 连接数少,那么请求就优先发给 RS1
这个算法比 lc 多了一个权重的概念。
这个算法是请求数据包的目标 IP 地址的一种调度算法,
该算法先根据请求的目标 IP 地址寻找最近的该目标 IP 地址所有使用的服务器,
如果这台服务器依然可用,并且有能力处理该请求,调度器会尽量选择相同的服务器,
否则会继续选择其它可行的服务器
记录的不是要给目标 IP 与一台服务器之间的连接记录,
它会维护一个目标 IP 到一组服务器之间的映射关系,防止单点服务器负载过高。
该算法是根据目标 IP 地址通过散列函数将目标 IP 与服务器建立映射关系,
出现服务器不可用或负载过高的情况下,发往该目标 IP 的请求会固定发给该服务器。
源地址散列调度算法 sh
与目标地址散列调度算法类似,但它是根据源地址散列算法进行静态分配固定的服务器资源。
标签:分布 inux 集群管理 linux发行版 pre scale 端口 arp 故障处理
原文地址:http://blog.51cto.com/tuwei/2063310