Linux(HA)高可用集群框架及Corosync详解
集群系统:高可扩展性、高可用性、高性能、高性价比
一、Linux HA cluster架构
1.集群扩展方式:
1).scale on:向上扩展,即升级服务器硬件
扩大服务器的内存容量、增加cpu数量,在一定的范围内能增大服务器性能。
缺点:随着cpu个数的增加需要给CPU仲裁,此外CPU个数的增加会增大资源的竞争性,
所以超出一定范围后,反而会呈现下降的趋势。
2).scale out:向外扩展,即增加服务器数量
优点:增减服务器很方便,而且没有向上扩展随着增加性能下降。
缺点:性价比。
2.集群类别:LB, HA, HP
1).LB: Load Balancing:负载均衡集群
负载均衡集群中有一个Director分发器(调度器),它处在多台服务器的上面,
分发器根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来响应客户端发送的请求。
传输层:lvs
应用层:nginx, haproxy, httpd, perlbal, ats, varnish
2).HA:High Availability 高可用集群
顾名思义高可用集群使服务的可用性增高,实现在某台服务器宕机后不会导致服务中断。
其工作模式是将故障的服务器中的服务转交给一个正常工作的服务器,从而实现服务的高可用。
一般来说我们集群中工作在前端(分发器)的服务器都会对我们的后端服务器做一个健康检查,如果发现我们服务器当机就不会对其在做转发。
vrrp(虚拟路由冗余协议)实现: keepalived
AIS: heartbeat, OpenAIS, corosync/pacemaker, cman/rgmanager(conga) RHCS
3).HP:Hight Performance 高性能集群
高性能的集群是当某一个任务量非常大的时,通过一个集群共同来完成。这种处理方式我们称为并行处理集群,
并行处理集群是将大任务划分为小任务,分别进行处理的机制。一般高性能集群应用于科学研究或大数据运算等方面。
并行处理集群:Hadoop
3.分布式系统的CAP原则
数据一致性(consistency):如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果返回失败,那么所有读操作都不能读到这个数据,对调用者而言数据具有强一致性
服务可用性(availability):所有读写请求在一定时间内得到响应,可终止、不会一直等待
分区容错性(partition-tolerance):在网络分区的情况下,被分隔的节点仍能正常对外服务
4.高可用集群故障场景
1).硬件故障:设计缺陷、使用过久自然损坏、人为故障等
network partition:网络分区:在系统中,通过交换机相连的两个冗余节点,因为交换机间连接的网线或管端交换机出现故障导致两个冗余节点不能互信,而本身节点并没有问题
2).软件故障:设计缺陷、程序bug、误操作等
5.系统可靠度(可用性)
计算公式:R=MTBF/(MTBF+MTTR)
MTBF: Mean Time Between Failure