Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103678004
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-28 22:21:35

 
文章来源ChinaITLab收集整理 作者andy519 

    目前,越来越多的网站采用Linux操作系统,提供邮件、Web、文件、数据库等服务。也有非常多的公司在企业内部网中利用Linux提供这些服务。随着人们对Linux依赖的加深,对其可靠性、负载能力和计算能力也倍加关注。Linux集群技术应运而生,可以以低廉的成本,很好地满闳嗣堑恼庑┬枰??

    Linux竞争力很强的原因之一,是它可以运行于极为普及的PC机上,不需要购买昂贵的专用硬件设备。在几台运行Linux的PC机上,只要加入相应的集群软件,就可以组成具有超强可靠性、负载能力和计算能力的Linux集群。集群中的每台服务器称为一个节点。

    按照侧重点的不同,可以把Linux集群分为三类。一类是高可用性集群,运行于两个或多个节点上,目的是在系统出现某些故障的情况下,仍能继续对外提供服务。高可用性集群的设计思想就是要最大限度地减少服务中断时间。这类集群中比较著名的有Turbo TurboHA、Heartbeat、Kimberlite等。第二类是负载均衡集群,目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访问量的Web服务。负载均衡集群往往也具有一定的高可用性特点。Turbo Cluster Server、Linux Virtual Server都属于负载均衡集群。另一类是超级计算集群,按照计算关联程度的不同,又可以分为两种。一种是任务片方式,要把计算任务分成任务片,再把任务片分配给各节点,在各节点上分别计算后再把结果汇总,生成最终计算结果。另一种是并行计算方式,节点之间在计算过程中大量地数据,可以进行具有强耦合关系的计算。这两种超级计算集群分别适用于不同类型的数据处理工作。有了超级计算集群软件,企业利用若干台PC机就可以完成通常只有超级计算机才能完成的计算任务。这类软件有Turbolinux EnFusion、SCore等。

    高可用性集群与负载均衡集群的工作原理不同,适用于不同类型的服务。通常,负载均衡集群适用于提供静态数据的服务,如HTTP服务;而高可用性集群既适用于提供静态数据的服务,如HTTP服务,又适用于提供动态数据的服务,如数据库等。高可用性集群之所以能适用于提供动态数据的服务,是由于节点共享同一介质,如RAIDBox.也就是说,在高可用性集群内,每种服务的用户数据只有一份,存储在共用存储设备上,在任一时刻只有一个节点能读写这份数据。

    以Turbolinux TurboHA为例,集群中有两个节点A和B,设这个集群只提供服务,用户数据存放于共用存储设备的分区/dev/sdb3上。在正常状态下,节点A提供数据库服务,分区/dev/sdb3被节点A加载在/mnt/oracle上。当系统出现某种故障并被TurboHA软件检测到时,TurboHA会将Oracle服务停止,并把分区/dev/sdb3卸载。之后,节点B上的TurboHA软件将在节点B上加载该分区,并启动Oracle服务。对于Oracle服务有一个虚拟的IP地址,当Oracle服务从节点A切换到节点B上时,虚拟的IP地址也会随之绑定到节点B上,因此用户仍可访问此服务。

    由以上分析可以看出,高可用性集群对一种服务而言不具有负载均衡功能,它可以提高整个系统的可靠性,但不能增加负载的能力。当然,高可用性集群可以运行多种服务,并适当分配在不同节点上,比如节点A提供Oracle服务,同时节点B提供Sybase服务,这也可以看成是某种意义上的负载均衡,不过这是对多种服务的分配而言。

    负载均衡集群适用于提供相对静态的数据的服务,比如HTTP服务。因为通常负载均衡集群的各节点间通常没有共用的存储介质,用户数据被复制成多份,存放于每一个提供该项服务的节点上。

    下面以Turbolinux Cluster Server为例简要介绍一下负载均衡集群的工作机制。在集群中有一个主控节点,称为高级流量管理器(ATM)。假设这一集群仅被用来提供一项HTTP服务,其余各节点均被设定为HTTP的服务节点。用户对于页面的请求全部发送到ATM上,因为ATM上绑定了这项服务对外的IP地址。ATM把接受到的请求再平均发送到各服务节点上,服务节点接收到请求之后,直接把相应的Web页面发送给用户。这样一来,假如在1秒内有1000个HTTP页面请求,而集群中有10个服务节点,则每个节点将处理100个请求。这样,在外界看来,好象有一台10倍速度的高速计算机在处理用户的访问。这也就是真正意义上的负载均衡。

 

阅读(214) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~