1.集群的介绍
每个服务器都叫做一个节点,集群节点之间是可以相互通信的,通信方式有两种:一种是基于RS232心跳线实现心跳监控,另一种用一块单独的网卡来跑心跳。心跳就是用来判断集群每个服务器之间网络、服务是否正常,判断方法就是用连接线,这个连接线可以是网卡,也可以是RS232,一般用网卡网线。
集群必须拥有这几个特性:1.服务实体的扩展功能,可以灵活的增加和剔除某个服务实体。2.当一个节点出现故障时,集群的另一个节点可以自动接管故障节点资源。3.一个集群系统必须拥有共享的数据存储。
所以要构建一个集群系统,至少需要两台服务器,串口线、集群软件、共享存储设备(磁盘阵列)。
1.1 集群有的特点与功能
① 高可用性与可扩展性(为满足需求动态加入节点)
高可用指的是24小时不间断使用,可扩展性指的是能满足需求动态加入节点。
② 负载均衡与错误恢复
负载均衡主要用于分流。而错误恢复指的是当一个任务在一个节点没有完成时因为某种原因执行失败,此时 另一个服务节点就会接着完成此任务,等出错的节点恢复好后重新回到这个集群。
③ 心跳检测与漂移IP地址
心跳检测是通过心跳线来实现的,可以做心跳线的可以有RS232串口线、独立网卡、共享磁盘阵列,心跳线的数量应该是集群节点数量减1,集群系统就是通过心跳技术保持着节点之间的内部有效通信。
而漂移IP地址又叫做VIP,也就是虚拟IP,这个IP不是服务器固定的IP,可能一会在这个节点,也可能出现在另一个节点。例如正常情况下VIP位于主节点上,当主节点出现故障后,漂移IP地址自动切换到备用节点,因此为了保证服务的不间断,在集群系统中对外提供的服务IP一定要是这个VIP,否则如果是节点本身对外提供服务的话,当该节点失效后服务切换到另一个节点,但是服务IP仍是故障IP地址。
1.2 集群的分类
① 高可用集群HA
常说的高可用集群有双机热备、双机互备、多机互备等,这类集群一般都有两个或者两个以上节点组成。我们使用的高可用集群配置软件:keepalived
双机热备:是一台作为主服务器运行应用程序对外提供服务,另一台作为备机,但不启动服务处于待机状态。主机备机通过心跳技术相互监控,监控的资源可以是网络、操作系统、也可以是服务。当备机监控到主机某个资源出现故障,就可以根据预先设定好的策略将IP、服务切换过来。
双机互备:两个相互独立的应用在两个机器上同时运行,互为主备。缺点是某个节点出现问题时,另一个节点就同时运行两个应用的服务,有可能出现负载过大的情况。
多机互备:一主多备,当主机出现问题会根据选举机制把某个备机选出来使用。
② 负载均衡集群
负载均衡集群是为了应对业务量大的情况,实现负载分流。他负载均衡集群也是有两台或者两台以上的服务器组成,分为前端负载调度和后端节点服务两个部分,负载调度部分负责把客户端的请求按照不同的策略分配给后端服务节点,而后端节点是真正提供应用程序服务的部分。
与高可用集群相比,负载均衡集群中所有的后端节点都处于活动状态,都对外提供服务,分摊工作负载,从而把一个高负荷的应用分散到多个节点共同完成,适用于业务繁忙、大负荷的应用系统,但是又不足:当一个节点出现故障时,前端调度系统并不知道此节点已经不能提供服务,仍然会把客户端的请求调度到故障节点上来,所以为了解决这个问题,负载调度系统都会引入节点监控系统,前端调度系统就会把这个节点剔除,当然这里面可能会涉及一致性hash。