浅析Linux集群技术

时间:2022-02-27 08:07:07

浅析Linux集群技术

摘要:随着网络应用的进一步深入,越来越多的服务器采用Linux操作系统提供邮件、Web、文件存储、数据库等服务。该文主要介绍Linux集群技术的概念、类型、解决方案及各种方案的说明。

关键字:Linux;集群;高性能;高可用性;负载均衡

Analysis of Linux Cluster Technology

GU Fen-fei, WANG Liang-xia

(Anhui Xinhua University, Hefei 230088, China)

Abstract: With the further development of the internet application, more and more web server adopts Linux operation system to provide mail service, Web service, file storage service, database service etc. This paper introduces the concept, types, solution and its description of the Linux cluster technology.

Key words: linux; cluster; high performance; high availability; load balancing

随着网络应用的进一步深入,越来越多的服务器采用Linux操作系统,提供邮件、Web、文件存储、数据库等服务。 如今已有非常多的公司在企业内部网中利用Linux服务器提供这些服务。随着人们对Linux服务器依赖的加深,对其可靠性、负载能力和成本也倍加关注。Linux集群技术应运而生,可以以低廉的成本,高效的性能很好地满足人们的这些需要。

1 Linux集群技术简介

集群是最近几年中最为主要的一种HPC硬件,集群(cluster)就是一组MPP的集合。集群中的处理器通常被称为节点,它具有自己的CPU、内存、操作系统、I/O子系统,并且可以与其他节点进行通信。目前市场出现了很专业集群设备,但有很多地方都使用常见的工作站运行Linux和其他开放源码软件来充当集群中的节点。与专业的硬件设备相比,使用Linux工作站和相应的开源软件来实现集群功能的最大优势在于成本低且企业可根据企业的自身的要求来进行二次开发。

1.1 集群技术的用途

每台服务器所能承载的连接和负载量都是有限的,为了使用服务器能够承载更大的负载,我们一般采用对称多处理(Symmetric Multi-Processor,简称SMP)技术来提升服务器的整体性能。但是,SMP的可扩展能力有限,SMP服务器显然不能满足高可伸缩、高可用网络服务中的负载处理能力不断增长需求。随着负载不断增长,会导致服务器不断地升级。这种服务器升级有下列不足:一是升级过程繁琐,机器切换会使服务暂时中断,并造成原有计算资源的浪费;二是越往高端的服务器,所花费的代价越大;三是SMP服务器是单一故障点(Single Point of Failure),一旦该服务器或应用软件失效,会导致整个服务的中断。

通过高性能网络或局域网互联的服务器集群可以解决上述问题,并能实现高可伸缩的、高可用网络服务。与提升单个服务器配置方法,服务器集群技术具有典型的优点。

1) 性能

网络服务的工作负载通常是大量相互独立的任务,通过一组服务器分而治之,可以获得很高的整体性能。

2) 性能/价格比

组成集群系统的PC服务器或RISC服务器和标准网络设备因为大规模生产降低成本,价格低,具有最高的性能/价格比。若整体性能随着结点数的增长而接近线性增加,该系统的性能/价格比接近于PC服务器。所以,这种松耦合结构比紧耦合的多处理器系统具有更好的性能/价格比。

3) 可伸缩性

集群系统中的结点数目可以增长到几千个,乃至上万个,其伸缩性远超过单台超级计算机。

4) 高可用性

在硬件和软件上都有冗余,通过检测软硬件的故障,将故障屏蔽,由存活结点提供服务,可实现高可用性。

1.2 Linux集群类型

按照集群侧重点不同,可以把Linux集群分为三类。

1) 高可用性集群

最简单的高可用性集群有两个节点:一个节点是活动的,另外一个节点是备用的,不过它会一直对活动节点进行监视。一旦活动节点出现故障,备用节点就会接管它的工作,这样就能使得关键的系统能够持续工作。

2) 负载均衡集群

负载均衡集群通常会在非常繁忙的Web站点上采用,它们有多个节点来承担相同站点的工作,每个获取Web页面的新请求都被动态路由到一个负载较低的节点上。

3) 高性能集群

高性能集群用来运行那些对时间敏感的并行程序,它们对于科学社区来说具有特殊的意义。高性能集群通常会运行一些模拟程序和其他对CPU非常敏感的程序,这些程序在普通的硬件上运行需要花费大量的时间。

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

2 Linux集群的实现方案

根据不同的应用需求,Linux集群有三种类别的集群方案:高可用性集群方案、负载均衡集群方案、超级计算集群方案。

2.1 Linux高可用性方案

高可用性集群系统中不同的服务器承担不同的任务,当其中一个服务器发生故障时,系统根据设定的条件,将发生故障的服务器的任务转移给另外一台服务器,对于最终用户来说,并没有反映出系统故障,系统的可用性得到提高。

在如图1所示的高可用性集群架构中,真实服务地址绑定到一个虚拟网卡(Eth0:1)上,通过心跳监测进程来将主服务器节点或是备份服务器节点的虚拟网卡( Eth0 :1)激活。主服务器节点与备份服务器节点都只需一个网卡,它们上面都分别绑定两个IP地址,即公网IP(Eth0:0)和私网IP(Eth0 :1)(若是异地备份则需要两个都是公网IP),其中私网IP用于心跳监测程序传递心跳信号,当备份服务器节点发现主服务器节点无心跳后,会自动代替主服务器节点工作,而当发现主服务器节点已恢复正常工作,则自动切换到备份状态。

2.2 负载均衡集群方案

2.2.1 负载均衡集群的架构

负载均衡的解决方案中,若干台服务器做同样的工作,这样一来以前由一台服务器来做的工作已经分配给多个服务器来做,整个系统的处理能力得以提高。如图2所示,在整个负载均衡集群中由负载均衡器、真实服务器组和共享存储三部分构成。

1) Load Balancer(负载均衡器)

Load Balancer是整个集群系统的前端,负责把客户请求通过特定的调度算法转发到Real Server上。Backup是备份Load Balancer,当Load Balancer不可用时接替它,成为实际的Load Balancer。Load Balancer通过Ldirectord监测各Real Server的健康状况。在Real Server不可用时把它从群中剔除,恢复时重新加入。

上一篇:大学生计算机应用能力培养的探索与实践 下一篇:组件技术在交互式图形设计系统中的应用