目前,越来越多的网站采用Linux操作系统,提供邮件、Web、文件存储、数据库等服务。也有非常多的公司在企业内部网中利用Linux服务器提供这些服务。随着人们对Linux服务器依赖的加深,对其可靠性、负载能力和计算能力也倍加关注。Linux集群技术应运而生,可以用低廉的成本,很好地满足人们的这些需要。
二 集群概念
集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性和可用性的服务平台。
从客户端看来,一个集群就是一个完整不可细分的实体,但事实上一个集群实体是由完成不同任务的服务节点个体所组成的。
集群实体的可扩展性是指,在集群运行的中新的服务节点可以动态的加入集群实体从而提升集群实体的综合性能。
集群实体的高可用性是指,集群实体通过其内部的服务节点的冗余使客户端免予OUT OF SERVICE 错误。简单的说,在集群中同一服务可以由多个服务节点提供,当部分服务节点失效后,其它服务节点可以接管服务。
集群实体地址是指客户端访问集群实体获取服务资源的唯一入口地址。
负载均衡是指集群中的分发设备(服务)将用户的请求任务比较均衡(不是平均)分布到集群实体中的服务节点计算、存储和网络资源中。
一般我们将提供负载均衡分发的设备叫做负载均衡器。
负载均衡器一般具备如下三个功能:
1. 维护集群地址
2. 负责管理各个服务节点的加入和退出
3. 集群地址向内部服务节点地址的转换
错误恢复是指集群中某个或某些服务节点(设备)不能正常工作(或提供服务),其它类似服务节点(设备)可以资源透明和持续的完成原有任务。具备错误恢复能力是集群实体高可用性的必要条件。
负载均衡和错误恢复都需要集群实体中各个服务节点中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图必须一致。
三 集群分类
按照侧重点的不同,可以把Linux集群分为三类。
一类是高可用性集群(High Availability)
高可用性集群的主要功能就是提供不间断的服务,运行于两个或多个节点上,目的是在系统出现某些故障的情况下,仍能继续对外提供服务。有许多应用程序都必须一天二十四小时地不停运转,如所有的web服务器、工业控制器、ATM、远程通讯转接器、医学与军事监测仪以及股票处理机等。对这些应用程序而言,暂时的停机都会导致数据的丢失和灾难性的后果。
(1)HA集群通过特殊软件把独立的(node)系统连接起来,组成一个能够提供故障切换功能的集群;
(2)HA集群可以保证在多种故障中,关键服务的可用性、可靠性及数据完整性;
(3)HA集群主要用于文件服务、WEB服务,数据库服务等关键应用中。
这类集群中比较著名的有Turbolinux TurboHA、Heartbeat、Kimberlite,keepalived等。
可用性通常指系统的uptime,在7x24x365的工作环境中,99%的可用性指在一年中可以有87小时36分钟的DOWN机时间,通常在关键服务中这种一天多的故障时间是无法接受的,所以提出了前面提到的错误恢复概念,以满足99.999%的可用性需求。包括在RHEL中的HA集群技术和容错(fault tolerance)并不是同义词。
容错系统使用高度专业化的、通常非常昂贵的硬件来实现一个完全冗余的环境。在这个环境中运行的服务能够不被硬件失效中断。 容错系统并不容忍操作员和软件的错误,而HA集群却能够通过服务的冗余性来修正这类错误。此外,由于红帽企业 Linux 是为在通用廉价的硬件上运行而设计的,它所创造的系统高可用性环境的费用只是容错硬件费用的极少的一部分。
高可用性集群和多机热备技术有很大区别,但很多人会将其混淆。多机热备技术是指一台服务器作为主机,其它服务器做为备份机(可以不在加电状态称之为冷备,可以在加电状态称之为热备),当主机失效时,备份机通过人为的参与接管服务。
第二类是负载均衡集群(Load Balancing)
(1)在LB服务器上使用专门的路由算法,将数据包分散到多个真实服务器中进行从而达到网络服务均衡负载的作用
(2)Lb服务器可以充分利用现有资源,提高高负载服务的性能,降低高负载服务本
(3)Lb集群主要用于公共WEB服务、FTP服务、数据库服务等高负载服务中
LB的目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访问量的Web服务。负载均衡集群往往也具有一定的高可用性特点。Turbolinux Cluster Server、Linux Virtual Server都属于负载均衡集群。