Cluster集群 ,群集
分为三种 LB load-balancing 负载均衡
HA high availability 高可用
HP high performancing 高性能 科学计算用
一般负载均衡做真正存放数据的地方,高可用提供前台数据分发!高性能是把一个大的任务由一个分发器,分发到各PC上完成,当个PC完成以后,再发到分发器上汇总,实际工程不常用!
大家学习集群时间,一定要从头到位的理解冗余的概念,也正是 这种概念才能提供集群的,高可用性!这样你看他好多问题迎刃而解!
集群概念在linux里边是通过用LVS 实现的,具体一点就是利用filter机制中增加的过滤机制,形成的.名字叫做ipvs,管理工具叫做ipvsadm
通过上图,我门先大致了解一下所谓的集群, ,他没有那么神秘,其实也就是是一群计算机在一起有序的工作组合,达到更高的性能!
首相在两台Director上边有两种IP :VIP(virtual IP)和DIP(director IP)
前者用给网络用户看的,网络上的用户并不了解你真实的计算机内部结构,对他们来说只需要知道想看网页时需要什么网址就行了,别的细节对他们来说是透明的.
Dip是集群内部使用的IP,供集群内部之间提供通信!
后边是真正的提供服务的机器,但往往他们是没有可路由的IP的,他们ip叫做RIP(real server IP).大多数情况提供集群内部件相互通信使用!
上边大概说下了,集群的原理,但是细想一下就会发现,其实只做到这样是远远不够称为一组有序的计算机集合的. 如果想实现, 要各种算法的支持和各种转发数据实现方法来帮助集群有序工作.
,根据转发数据包的方式分为三种情况
LVS-NAT(LINUX VIRTUAL SERVER NETWORH ADDRESS TRANSLATION)网络地址转换.这种需要 real server 需要把网管设为DIP
把本来要访问VIP的数据转换为RIP,这个转换不是普通意义的转换,它是一种四层的路由,不仅可以转化IP 还可以转化端口.当响应的数据包也要通过把RIP 转换为VIP .共做了两次NAT转化.
下边通过一个图例和大家说下内核里边是怎么实现的,
这里边可以解释为什么ipvs相当于四层路由, 他是基于IP 端口的机制,再input链实现.
LVS-DR(direct routing) 上述过程所有数据包都要经过分发组件两次,容易造成瓶颈,导致realserver 不超过10到20台设备.造成性能不是很高, 这种机制应运而生,可以达到100台以上的realserver.关键实现技术在realserver上怎么把数据包直接响应给客户端,只能在realserver上边实现VIP,但是这也造成当客户端请求ARP时,导致混乱,因此这种VIP一般需要隐藏,配置在realserver的lo接口上边.下边先通过示意图,让大家了解一下
LVS-TUN(ip tunneling)这种使用隧道技术实现的,也就是可以跨越不同网段,但是平时工程中不是很常用,仅作介绍,有兴趣的可以自己查找资料,一下为示意图
也就是说,集群上边大多数工作重心在分发上边,也就是上图的Director上边.因此Director上算法好坏决定了,集群的效率. 你后边real server就算性能再好,但是 ,你前台的分发算法太糟糕,导致把所有工作分到一台 real sever上边了,即使再好的集群,所发挥的性能,也就是一台real server 的作用!
根据算法的不同分为 FIXED 和DYNAMIC
FIXED算法又分为:
RR(Round-robin)轮叫:就是任务来时按 A->B->C->A 这样调度!!
WRR(Weighted round-robin)带权重的轮叫.对RR算法的加强吧 当轮叫时间,并不知道那个后端real server 负载怎么样. 加一个参数来判断一下,比如说基于后台主机性能,负载情况,这个参数就叫权重.
DH(Destination Hashing)当主机IP来自同一个时,这种算法总把请求分给同一个后台服务器,这样可以实现当网络抖动时,造成用户TCP连接断掉时,重连时用户浏览器的cookies还能够使 |