linux系统集群的架构与实现

时间:2022-06-19 01:55:12 系统架构师 我要投稿
  • 相关推荐

linux系统集群的架构与实现

  基于Linux系统的开源与稳定性,以及目前服务器集群的广泛应用,小编下面为大家整理关于linux系统集群的架构与实现的文章,欢迎阅读参考:

  1.引言

  伴随互联网技术飞速发展和各种应用的逐渐开发,以及对计算机运行效率要求的不断提高,依靠增加单一服务器的处理能力并不能很好地解决迅速增长的网络应用的需求。因为采用单一服务器就意味着单点失效问题的存在,同时服务器的升级往往需要暂时中断服务。这都难以保证网络的高可用性,而且采用更高性能的服务器意味着更高的成本投入,由于这些特点,集群技术由此应运而生。而且由于其造价低廉,性能优异,便于管理,编程方便,可扩展性好等优势,集群系统的应用变得越来越广泛。

  2.集群的概念和分类

  集群就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点,它们之间通过高速网络连接。这些计算机能够协同工作,并对外表现为一个集成单一的计算机资源[1]。

  常见的Linux集群系统分为如下三种基本类型:

  (1)高性能计算集群(HPC:High Perfor-mance Clus ter)。主要特点为并行计算,目的是用于进行大规模数值计算,解决复杂的科学问题。这种集群中的服务器(也称计算节点)采用并行计算方法,把一个海量的计算任务分解成各个子任务,然后分配给各节点并行计算,并通过标准化的消息传递接口(PVM或MPI)实现各计算节点的同步和数据的汇集。根据其高效的计算特性一般应于于航空航天、环境科学、石油地震勘探计算数学、DNA模型计算等领域。

  (2)高可用性集群(HA:High Availabi-lity)。主要特点为主备服务器自动无缝切换,目的是提供不间断的服务。它是由主、从或多台服务器组成。发生故障时,服务器自动切换到后备服务器,这种切换对用户是透明的,用户无法感觉到服务器的切换。目前,对于要求24小时提供不间断服务的地方常常使用高可用性集群。如实时计费系统、实时交易处理系统、气象信息数据库、科技信息数据库服务等领域。

  (3)高可伸缩性负载均衡集群(HSLB:High Scalability Load Balance)主要特点为负载均衡,目的是提供与节点个数成正比的负载能力,将系统的整体负载合理地分配到各个服务器节点上,使得每个节点都不会因为超负荷工作而崩溃;并且当对系统整体负载需求大于系统整体负载能力时,可以通过增加服务器节点,平滑地拓展系统负荷能力。这种集群非常适合提供大访问量的网络服务。如网上银行、图形对象发布、气象信息检索服务、科技信息检索服务等领域。

  结合公司的服务器及实际应运情况,本文只讨论第一种高性能计算集群。

  3.并行计算集群设计

  并行集群构造方案是一个管理节点与一组同构或者异构的计算节点通过网络相连,管理节点承担分配并行任务和提供外部管理接口的任务,计算节点负责各自分配得到的并行计算任务以及和其它节点之间的数据交换,可选的存储节点提供配置文件和处理数据的统一管理[2][3]。以四个节点为例的集群系统的构造拓扑如图1所示。

  集群软件模块如图2所示:

  (1)操作系统:Linux系统对不同计算机架构的良好支持保证了高性能集群的扩展能力和性价比。选取比较稳定的Linux系统版本(本文采用的是Red Hat)。对于计算节点的系统管理可以采用PXE网络安装等方式,提升安装和管理的效率。

  (2)节点间通信:通过建立节点间的无密码SSH访问实现节点间通信。

  (3)文件共享方案:NFS文件共享系统的引入方便并行程序或者待处理的数据文件的统一部署。该方案便于统一管理,对可执行程序或者配置文件的修改都可以在同一路径下一次性完成。各个计算节点之间的环境变量等配置文件都相同。

  4)计算任务分配:MPI。

  4.实现并行计算集群的关键技术

  高性能计算集群之所以高效其核心在于并行计算模型的设计[4]——MPI。

  并行计算将进程相对独立的分配于不同的节点上,由各自独立的操作系统调度,享有独立的CPU和内存资源(内存可以共享);通过网络联接的不同计算机的多个进程,进程位于不同的计算机,消息传递是实现进程间通信的唯一方式;根据应用程序对消息传递功能的需求,全球工业、应用和研究部门联合推出标准的消息传递界面函数,不考虑其具体实现,以保证并行应用程序的可移植性在当前所有的消息传递软件中。最重要的就是MPI,MPI表示消息传递接口(Message Passing Interface),它能运行在所有的并行平台上,包括SMP和PVP。

  MPI的目的是为编写消息传递程序而开发的广范使用的标准。象这个接口一样,为消息传递建立一个实际的、可移植的、有效的和灵活的标准。实现如下目标:

  (1)统一的应用编程接口(不必为编译器或一个系统实现库)。

  (2)允许有效的通信:避免存储器到存储器的拷贝,而允许计算和通信的重叠,尽可能给通信协同处理器卸载。

  (3)对于接口允许方便的C语言和Fortran 77联接。

  (4)设定一个可靠的通信接口:用户不必处理通信失败。这些失败由基本的通信子系统处理。

  (5)定义一个接口,并非不同于现在的实践,如:PVM,NX,Express,p4等,还提供更大灵活性的扩展。

  (6)定义一个接口,它能在基本的通信和系统软件无重大改变时,在许多生产商的平台上实现。接口的语义是独立于语言的。

  (7)接口应设计成允许线索-安全(thread-safety)。

  5.架设适合我公司的集群

  5.1 硬件选择

  (1)以使用的曙光服务器为例,使用千兆网络(千兆交换机),进行高性能计算。使用百兆网络进行网络监控和管理。

  (2)每台服务器做为一个节点(以四台服务器为例),每台机器的系统及配置必须一致。

  5.2 软件安装准备

  主(Master)服务器需安装:

  (1)防火墙(含NAT架设);

  (2)RSH;

  (3)NIS Server;

  (4)NFS Server;

  (5)Compiler Install;

  (6)MPICH Install;

  (7)其它特殊功能。

  从属(Slave)服务器所需安装:

  (1)防火墙的设定;

  (2)RSH;

  (3)NIS Client;

  (4)NFS Client。

  5.3 安装步骤

  (1)架设服务器系统

  以图1所示拓扑图为例,但需在主服务器上连接显示器,键盘及鼠标。

  (2)系统安装(Red Hat)

  选择安装类型:Red Hat提供了三种不同类型的软件包套件、个人桌面、工作站和服务器,以根据自己的需要选择不同的安装类型,这里选择“定制”。硬盘分区选择用Disk Druid工具进行分区,这里将分成两个分区,一个Swap和一个根目录(/),swap空间的大小一般为物理内存的2-3倍,剩下的空间都分给根目录。

  (3)防火墙(含NAT主机)与网络设定、网络配置

  Red Hat提供了三种安全级别的防火墙配置,可以根据自己的需要进行选择。在此设计中,需要开22端口,也就是SSH服务。

  分别将四台机器的IP地址设置为192.168.1.1(master)、192.196.1.2、192.196.1.3、192.168.1.4,子网掩码为255.255.255.0。按先后顺序对NFS、NIS和RSH进行设定,主要目的为实现资源共享。

  (4)选择安装软件包(关键要是对MPICH的安装)但注意需要安装GCC编译器

  下面是在命令界面下测试集群是否安装成功进行的测试举例[5]:

  [test@servertest]$cp-r/cluster/server/program/mpich/examples/.

  [test@server test]$cd examples

  [test@server examples]$make clusterfile

  [test@server examples]$mpirun-np 4 clusterfile

  注:在最后一行命令-np后面接的就是所使用的节点的个数。

  6.结论

  通过一个简单的测试对1000个100000进行累加运算表明:即使只有四个节点的集群服务器的运算速度也比一台主机的运算速度高出3倍,充分发挥曙光集群系统的作用。但必须注意的是做为服务器的集群系统,在日常的使用和维护中,必须以稳定和安全做为首要目的,因此以具备系统稳定性的linux集群系统防火墙的设计也值得去研究。

【linux系统集群的架构与实现】相关文章:

Linux cpuinfo系统详解07-29

Linux系统守护进程的启动方法12-15

Linux文件系统操作命令大全08-28

Linux系统安全的九个关键点11-07

图书检索系统体系架构研究12-05

如何成为优秀的系统架构师08-30

OA系统怎么实现小微型企业实现协同办公10-28

Linux常用命令汇总08-30

Linux新手必备的20个命令08-28

linux认证的面试题及答案04-02