Cluster概念详解

高可用集群(High Availability)
当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以自动、快速地从一个节点切换到另一个节点,从而保证应用持续、不间断地对外提供服务,这就是高可用集群实现的功能。
常见的HA Cluster
常说的双机热备、双机互备等都属于高可用集群的范畴,这类集群一般都由两个或两个以上节点组成。典型的双机热备结构图如下。
Cluster概念详解_第1张图片
双机热备是最简单的应用模式,即经常说的active/standby方式。它使用两台服务器,一台作为主服务器,运行应用程序对外提供服务;另一台作为备机,安装和主服务器一样的应用程序,但是并不启动服务,处于待机状态。主机和备机之间通过心跳技术互相检查,监控的资源可以是网络、操作系统,也可以是服务,用户可以根据自己的需要,选择需要监控的资源。当备份监控到主机的某个资源出现故障时,根据预先设定好的策略,首先将IP切换过来,然后将应用程序服务也接过过来,接着就由备机对外提供服务。切换过程时间非常短,用户根本感觉不到程序出了问题,从而保障了应用程序持久、不间断地服务。
双击互备是在双机热备的基础上,两个相互独立的应用在两个机器上同时运行,互为主备,即两台服务器是主机也是备机。当任何一个应用出现故障,另一台服务器都能在短时间内将故障机器的应用接过过来,从而保障了服务的持续、无间断运行。双机互备的好处是节省了设备资源,两个应用的双机热备至少需要4台服务器,而双机互备仅需要两台服务器即可完成高可用集群功能。但双机互备也有自身的缺点:在某个节点故障切换后,另一个节点上就同时运行了两个应用的服务,有可能出现负载过大的情况。多机互备是双机热备的技术升级,通过多台及其组成一个集群,可以在多台机器之间设置灵活地接管策略。
注意:高可用集群不能保证应用程序数据的安全性,它仅仅解决的是对外提供持久不间断的服务,把因软件、硬件、网络和人为因素造成的故障而对应用造成的影响降低到最低程序。
高可用集群软件
高可用集群一般通过高可用软件来实现的。在Linux下常用的高可用软件有HearbeatHA,Red Hat提供的RHCS,商业软ROSE,keepalive等。
负载均衡集群(Load Blancing)
负载均衡集群也是由两台或者两台以上的服务器组成。分为前端负载调度和后端服务两个部分。负载调度部分负载把客户端的请求按照不同的策略分配给后端服务节点,而后端节点是真正提供服务的部分。与HA Cluster不同的是,负载均衡集群中,所有的后端节点都处于活动动态,它们都对外提供服务,分摊系统的工作负载。
负载均衡集群可以把一个高负荷的应用分散到多个节点共同完成,适用于业务繁忙、大负荷访问的应用系统。但是它也有不足的地方;当一个节点出现故障时,前端调度系统并不知道此节点已经不能提供服务,仍然会把客户端的请求调度到故障节点上来,这样访问就会失败。为了解决这个问题,负载调度系统一般都引入了节点监控系统。
节点监控系统位于前端负载调度机上,负责监控下面的服务节点。当某个节点出现故障后,节点监控系统会自动将故障节点从集群中剔除;当此节点恢复正常后,节点监控系统又会自动将其加入集群中,而这一切,对用户来说是完全透明的。负载均衡集群的基本结构如下所示。
Cluster概念详解_第2张图片
负载均衡集群可以通过软件方式实现,也可以由硬件设备来完成。
科学计算集群(High Performence Computing)
这类集群致力于提供单个计算机所不能提供的强大计算能力,包括数值计算和数据处理,并且倾向于追求综合性能。HPG与超级计算类似,但是又有不同。HPC的应用领域非常广泛,典型应用于科学研究、基因测试对比、数据挖掘应用、石油和天然气勘探、图像呈现等。
常见集群文件系统 常见的集群文件系统有很多,这里仅列出开源的集群文件系统。
GFS(Global File System,全局文件系统)
GFS是RHCS为集群系统提供的一个存储解决方案,是一种基于Linux共享磁盘的集群文件系统,它支持共享存储设备,允许集群的多个节点在块级别上共享存储,可以同时对共享存储设备上的文件进行访问,每一台及其都可以将网络共享磁盘挂载到本机作为本地磁盘,而文件系统数据却不受破坏,单一的ext2或ext3无法做到。为了实现多个节点对一个文件系统同时进行读写操作,GFS使用锁管理器(DLM)来管理I/O操作:当一个写进程操作一个文件时,此文件被锁定,其它进程无法进行读写操作,操作完成后,RHCS底层机制会把此操作在其它节点上可见。有GFS就有RHCS,但建立RHCS时,如果不用共享存储,就没有必要用GFS。
OCFS2(Oracle Cluster FS)
OCFS2是Oracle开发的一个开源群文件系统。第一个版本是OCFS,这个版本的文件系统是Oracle专门为Oracle RAC所开发的,仅仅能用在Oracle RAC应用上,而OCFS2是Oracle的第2个集群文件系统版本,此版本是作为一个通用群文件而设计的,它允许集群中的所有节点通过标准的文件系统接口并开发访问设置。使用OCFS2,用户不但可以在共享磁盘上存储与数据库相关的文件,而且还可以存储与Oracle不相关的其他数据文件。
Lustre文件系统
Lustre名字是由Linux和Clusters演化而来,是为解决海量存储问题而设计的全新文件系统。它是一个开源、基于对象存储技术的集群并进行文件系统,具有很高的可扩展性、可用性、可靠性和易用性等,在高性能计算机系统中被广泛使用,可支持多大10000个节点,PB级别的存储量,100GB/S的传输速度,同时具有完美的安全性和可管理性。
LB集群相关术语
会话保持
负载均衡器上的一种机制:可以识别Client与Server之间交互过程关联性,在做负载均衡的同时,还能保证一系列相关联的访问请求被分配到同一台服务器上。LVS在linux集群中是利用persistent(单位为秒)来设定会话保持时间,以实现持久连接。
LVS持久连接
无论在使用任何调度算法,LVS持久连接都能实现在一定时间内,将来自同一个客户端请求派发至此前选定的服务器;当一个新的客户端请求连接时,LVS就会在内存的缓冲区内记录客户端的IP以及所选的服务器,在一定时间内用户再次访问时,LVS会通过内存缓冲区来查找是否有此用户记录,如果有将直接连接到已选定的服务器上,否则记录IP及连接的服务器;这个内存缓冲区称之为持久连接模板,它存储了每一个客户端,及分配给它的RS的映射关系。
持久连接对于电子商务网站来说尤其有用,例如在SSL会话中,用户和服务器建立了SSL回话,看到一个登陆界面,第一次访问完成,接着他在登录框里填写用户名和密码,然后提交,问题可能就出现了——登陆不成功,由于没有会话保持Director又给用户分发了一个新的服务器,浏览器又会提醒用户再次输入用户名和密码。
持久连接类型
Persistent Port Connection:将来自于同一个客户端对同一个集群服务的请求,始终定向至此前选定的RS
Persistent Client Connection:将来自于同一个客户端对所有端口的请求,始终定向至此前选定的RS
Persistent Netfilter Marked Packet Persistence:定义端口间的姻亲关系,通过在防火墙内部PREROUTING链上给指定的端口打上标记,将其定义为一个集群服务,例如:合并http https为同一个集群服务
HA集群相关术语
节点(node)
运行heartbeat进程的一个独立主机,称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和heartbeat软件服务,在heartbeat集群中,节点有主次之分,分别称为主节点和备用/备份节点,每个节点拥有唯一的主机名,并且拥有属于自己的一组资源,例如,磁盘、文件系统、网络地址和应用服务等。主节点上一般运行着一个或多个应用服务。而备用节点一般处于监控状态。
资源(resource)
资源是一个节点可以控制的实体,并且当节点发生故障时,这些资源能够被其它节点接管,可以当做资源的实体有:应用程序、虚拟IP、文件系统。资源与Service组合时,往往还会体现出一定的层次关系,例如:通常系统都要求确认虚拟IP及文件系统都已经正常连接及挂载后,才可以运行某个应用程序,这个顺序一旦调转,就会使应用程序运行出错。
- 磁盘分区、文件系统
- IP地址
- 应用程序服务
- NFS文件系统

Service(服务)
每个服务都被指定存在于一个Failover Domain中,并与多个Resources关联。每个服务可以理解为实际操作中的一个应用,如Web服务器、Java中间件、数据库、文件共享系统、邮件系统等。这些应用在运行时不但对应用程序本身有要求(如某个运行指令或多个运行脚本的组合),还要提供对诸如虚拟IP、文件系统等资源的支持。
事件(event)
也就是集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障、应用程序故障等。这些事件都会导致节点的资源发生转移,HA的测试也是基于这些事件来进行的。
动作(action)
事件发生时HA的响应方式,动作是由shell脚步控制的,例如,当某个节点发生故障后,备份节点将通过事先设定好的执行脚本进行服务的关闭或启动。进而接管故障节点的资源。

你可能感兴趣的:(Cluster)