storage R&D guy.
全部博文(1000)
分类: 服务器与存储
2014-07-24 08:37:19
服务硬件是指提供计算服务的硬件,比如PC机、PC服务器。
服务实体通常指服务软体和服务硬体。
运行Heartbeat进程的一个独立主机称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和Heartbeat软件服务。在Heartbeat集群中,节点有主次之分,分别称为主节点和备用/备份节点,每个节点拥有一个唯一的主机名,并且拥有属于自己的一组资源,例如磁盘、文件系统、网络地址和应用服务等。主节点上一般运行着一个或者多个应用服务,而备用节点一般处于监控状态。
资源是一个节点可以控制的实体,当节点发生故障时,这些资源能够被其他节点接管。在Heartbeat中,可以当做资源的实体如下:
(一) 磁盘分区、文件系统
(二) IP地址
(三) 应用程序服务
(四) 共享存储
事件也就是集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障和应用程序故障等。这些事件都会导致节点的资源发生转移,HA的测试也是基于这些事件进行的。
简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源,这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他们看来,集群是一个系统,而非多个计算机系统;并且集群系统的管理员可以随意的增加和删改集群系统的节点。与单一服务实体相比较,集群提供了以下两个关键的特性。
(一) 可扩展性。集群的性能不限于单一的服务实体,新的服务实体可以动态的加入到集群,从而增强集群的性能。
(二) 高可用性。集群通过服务实体冗余使客户端免于轻易遭遇到“out of service”警告。当一台节点服务器发生故障的时候,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。消除单点故障对于增强数据可用性、可达性和可靠性是非常重要的。
为了具有可扩展性和高可用性的特点,集群必须具备以下两大能力。
(一) 负载均衡。负载均衡能把任务比较均匀的分布到集群环境下的计算和网络资源,以便提高数据吞吐量。
(二) 错误恢复。如果集群中的某一台服务器由于故障或者维护需要而无法使用,资源和应用程序将转移到可用的集群节点上。这种由于某个节点中的资源不能工作,另一个可用节点中的资源能够透明的接管并继续完成任务的过程叫做错误恢复。
负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是相同的。
分布式与集群的联系与区别如下:
(一) 分布式是指将不同的业务分布在不同的地方。
(二) 而集群指的是将几台服务器集中在一起,实现同一业务。
(三) 分布式的每一个节点,都可以做集群,而集群并不一定就是分布式的。
比如互联网上访问的人多了,就可以做一个集群,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将任务交给哪台去完成。
而分布式,从狭义上理解,也与集群差不多,但是它的组织比较松散,不像集群,有一定组织性,一台服务器宕了,其他的服务器可以顶上来。分布式的每一个节点,都完成不同的业务,一个节点宕了,这个业务就不可访问了。
实现集群无必要有以下两大技术:
l 集群地址
集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基本特征。维护 集群地址的设置称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均衡器实现真正的 负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有一个服务实体工作,当正在工作的服务实体发生故障的时候,负载均衡器把后来的任务转向另外一个服务实体。
l 内部通信
为了能协同工作,实现负载均衡和错误恢复,集群各实体之间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下文信息的通信。
具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。内部通信是集群能够正常运转的基础,它使集群具有负载均衡和错误恢复的能力。
集群主要分成三大类:
l 高可用集群(High Availability Cluster)。
常见的就是两个节点做成的HA集 群,它还有很多通俗的不科学的名称,比如“双机热备”、“双机互备”、“双机”。高可用集群保障用户应用程序持续对外提供服务的能力(注意高可用集群不是 用来保护业务数据的,而是确保用户的业务程序对外不间断提供服务,把因软件、硬件、人为造成的故障对业务的影响降低到最小程度)。
l 负载均衡集群/负载均衡系统(Load Balance Cluster)
集群中所有的节点都处于活动状态,他们分摊系统的工作负载。一般Web服 务器集群、数据库集群和应用服务器集群都属于这种类型。负载均衡集群一般用于相应网络请求的网页服务器和数据库服务器。这种集群可以在接到请求时,检查接 受请求较少、不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。
l 科学计算集群(High Performance Computing Cluster)/高性能计算(High Performance Computing)集群。
简称HPC集群,这类集群致力于提供单个计算机所不能提供的强大的计算能力。高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此之间没有什么关联。这种类型的应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。