当前位置: 主页 > 服务器技术 > 其他技术 > 详解Beowulf集群软件结构

详解Beowulf集群软件结构

时间:2009-12-23来源:互联网 点击:

本文将介绍Beowulf集群的软件体系结构,并分别讨论了集群和操作系统、文件系统的关系以及集群应用并行化的问题。

1 Beowulf集群软件结构

 
图1 是Beowulf集群的软件体系机构。一般来说,Beowulf集群由如下几个软件部分组成:

  • 操作系统:勿容置疑,操作系统是任何计算机系统的软件基础。相对于桌面系统而言,集群系统对操作系统的任务调度和文件管理方面的要求更高。
  • 并行开发库:只要是指用于集群中进程通信的软件库。消息传递和线程是两种基本的通信方法。但是对于Beowulf集群而言,消息传递更适合一些。Beowulf集群常用的开发库是MPI和PVM。
  • 作业管理:调度作业并管理集群系统的资源,是集群系统的资源得到最大的利用。
  • 系统管理:管理和监控整个集群系统。
  • 开发环境:开发和调试高效能应用的开发工具。
  • 标准应用:一些标准的高性能应用如CFD。
  • 客户应用:客户特别定制的应用。

2 操作系统

并不是每种操作系统都适合高性能集群系统。理论上说,硬件的体系结构、操作系统的任务调度方式和IPC的方式是决定应用并行化效果的主要因素。根据这三个因素,我们可以归纳出如下5种实施应用并行化的平台:

  • 单任务操作系统:CPU同时只处理任务队列中的一个任务。MS DOS是这类系统的代表。
  • 多任务操作系统:基于分时技术的多任务操作系统。虽然在同一时间段,所有的进程都在运行,但是在某一时间点,CPU只执行一个进程。这类操作系统可分为抢占式和非抢占式。单CPU的Unix和NT属于这种类型。
  • 多CPU多任务操作系统:和单CPU的多任务操作系统不同的是,由于有多个CPU,所以在某个时间点上,可以有多个进程同时运行。多CPU的Unix和NT属于这种类型。
  • 多CPU多任务操作系统+线程:某些任务当把它分为若干并行的子任务同时在多个CPU上执行时,它会运行的更快,尽管运行这个任务占有的总CPU时间变长了。由于采用多个CPU而使任务结束的时间缩短了。由于应用本身的特性,随着CPU个数的增加,性能并不会线性增加。Amdal法则说明了这种情况。运行在同一主板上多个CPU的Unix和NT+线程属于这一类型。SMP系统合适采用这种方法。
  • 多CPU多任务操作系统+消息传递:在SMP系统中,由于采用共享内存,所以CPU通信的时间几乎可以忽略。但是在象集群这种系统中,通信时间成为不得不考虑的因素。这时,使用线程是一种很奢侈的方法。这种情况下,消息传递是一种比较好的方法。(本系列文章的第二部分解释了这种情况)。同一个主板或多个主板上的多个CPU+Unix和NT+消息传递属于这种类型。

Beowulf集群使用第5种类型平台。它可以由SMP和PC服务器组成,以Linux为操作系统,以MPI或PVM这种消息传递方式作为通信方法。

3 文件系统

文件系统是操作系统的重要组成部分,用于存储程序和数据。如何在各节点间高效、一致和简捷的实现数据共享是集群系统对文件系统提出的挑战。

3.1 集群和文件系统

很明显,那种仅能管理本地存储的文件系统(如EXT和FAT)是无法满足集群系统对文件共享的要求的。在集群环境下,最容易想到,也是最容易实现的文件系统就是分布式文件系统。相当于本地文件系统,分布式文件系统有如下优点:

  • 网络透明:对远程和本地的文件访问可以通过相同的系统调用完成。
  • 位置透明:文件的全路径无需和文件存储的服务绑定,也就是说服务器的名称或地址并不是文件路径的一部分。
  • 位置独立:正是由于服务器的名称或地址并不是文件路径的一部分,所以文件存储的位置的改变并不会导致文件的路径改变。

分布式文件系统可以使集群的节点间简捷地实现共享。但是为了提供性能,分布式文件系统通常需要使用本地的缓存(Cache), 所以它很难保证数据在集群系统范围的一致性。而且往往分布式文件系统中只有一份数据,所以很容易发生单点失效。

建立在共享磁盘(Share-Disk)上的并行文件系统可以克服分布式文件系统的这些缺点。通过使用在节点共享的存储设备,并行文件系统具有很多优点:

  • 高可用性:克服了分布式文件系统中那种服务器端的单点失效的缺点,提高了文件系统的可用性。
  • 负载均衡:有多个访问点,彼此可以协调负载。
  • 可扩展性:容易扩展容量和访问的带宽

3.2 集群中的数据共享形式

下面通过给出几个集群中使用具体的数据共享的方法。其中rsync是建立在本地文件系统之上,NFS和Inteemezzo属于分布式文件系统(确切的说,NFS只是网络文件系统),GFS属于并行文件系统,而Backend-database则属于不同于文件共享的另一种形式的共享。



3.2.1 rsync

rsync是一种简单的文件共享实现方式。集群中的每个节点都有一份数据复本,复本间使用rsync进行同步。因为节点需要的数据就在本地,所以这种方法具有很高的可用性,不会出现单点失效现象。

如果需要的共享的数据量很小,而且很少更新时,可以采用这种方式。静态网页和小的FTP站点的可以使用这种共享方式。

3.2.2 NFS

这也是一种容易实现的方式。存储节点通过NFS将自己本地的文件输出,其他节点则把存储节点输出的文件系统mount到本地文件系统。NFS方式的存在两个很大的缺点:

  • 性能差:因为所有的文件访问都必须经过网络和NFS服务器,所以在访问流量比较大的情况下,网络带宽和NFS服务器都会成为系统的瓶颈。
  • 单点失效:如果NFS服务器的系统失效或者网络失效都会使得其他节点无法得到数据,从而使整个集群系统瘫痪。



当然使用多个互为备份的NFS服务器可以改善性能和避免单点失效,但是这样又会带来如何实时保持备份服务器间数据一致性的问题。 NFS方式适合于共享访问数据量不大的小型集群系统。

站长资讯网
.
分页: [1] [2]
TAG: beowulf 集群 软件 结构
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言