对象存储:Linux集群中高性能共享存储

时间:2010-11-26   来源:   网友评论:0   人气: 242 作者:

Linux集群计算已经改变了高性能计算领域的组成结构:低价的Linux集群系统正在取代那些昂贵的、传统意义上的超级计算机,开始被应用于解决那些更富挑战性的高性能计算问题。

  为了充分发挥Linux集群系统的潜在性能,我们需要一种新的存储机制,基于对象的集群存储技术应运而生。基于对象的集群存储技术是一种新存储系统的基础,无论是在存储容量还是在存取性能方面,它都有着良好的可扩展性。这些使得该技术可以满足功能强大的Linux集群系统对存储方面的需求。

  近年来,在科学研究和工程计算等领域,高性能集群计算技术的卓越成就大家有目共睹。高性能集群技术已逐渐占据了高性能计算的主导地位,这一点从2003年11月公布的世界高性能计算机排行榜中体现无疑。在该排行榜前500台的超级计算机里,有208台采用了集群系统,集群系统已是当前高性能计算机最流行的体系结构。

  现在,这种流行趋势正由科学工程计算领域向商用领域蔓延。地质学家们正致力于研究更强大的地震分析技术,以获取地球结构更精细的图片,从而用来指导油田的钻探和开发;制药公司正在海量的基因库中努力寻求对人类疾病更深入的理解和认识,从而可以开发出更有效的药物或治疗方法;而我们熟知的一些门户网站,如Yahoo和Google,则需要对因特网上浩如烟海的数据进行检索和分类,从而提供给世界各地的人们使用。所有这些领域,都成为Linux集群计算系统大显身手的地方。同时,不得不看到,Linux集群计算的广泛应用也带来了新的挑战。

  对共享存储性能的需求不断增长

  除了对高性能计算方面的需求外,上述各商业应用还有着一个共同的特点:它们都需要高性能的I/O支持。确保集群系统得到高效使用的必备条件是,它可以对TB(1TB=1000GB,1GB=1000MB)量级的共享数据进行快速访问。没有这一点,集群系统的性能将会大幅降低。为了简化应用系统的开发和维护,这些共享数据必须对计算集群上的所有进程都可用。随着集群系统的规模越来越大、节点越来越多,为实现各个节点对共享数据的高效访问,对存储系统的要求也越来越高,传统的、基于网络的存储系统已经不能提供满足这种共享访问所必需的性能。

  例如,在动画生成应用中(这方面最早和最有名的例子是电影《泰坦尼克号》的特效生成,它使用了一个包含160个节点的Linux集群系统),需要将场景生成任务分发到上百个计算节点上,其中每个节点负责生成最终场景中一个单独的部分。共享的场景和人物信息,以及每一帧的渲染指令必须能够为每一个参与计算的节点所访问,而每个节点计算一帧会产生大约50MB的输出。最后各个单独的帧依次组合,得到完整的一幅画面。这样的流程是许多集群计算应用过程中常见的数据访问情形。


 

  传统的共享存储方法的缺点

  集群计算的开发者们自然地采用了能够被集群系统中所有节点访问的共享存储系统。让我们先来简单审视一下现有的这种共享存储系统。

  首先是文件服务器。它将磁盘阵列(RAID)直接连接到网络系统中的服务器上,这种形式的网络存储结构称为DAS(Direct Attached Storage)。这种结构中,各类存储设备通过IDE或SCSI等I/O总线与文件服务器相连。集群节点的数据访问必须通过文件服务器,然后经过I/O总线访问相应的存储设备。当连结节点数增多时,I/O总线将会成为一个潜在的瓶颈,因此这种存储方式只适用于小规模的集群系统,大一些的集群需要更具扩展性的存储系统。

  存储区域网(SAN,Storage-Area Networks)和优化后的直接网络存储,或者网络附加存储(NAS,Network-Attached Storage)结构被用于中等规模的集群系统。SAN是一种类似于普通局域网的高速存储网络,通常由RAID阵列连接光纤通道组成。SAN和集群节点的数据通信通常是由SCSI命令,而不是网络协议实现(如图1所示)。

  在NAS存储结构中,存储系统不再通过I/O总线附属于某个特定的服务器或客户机,而是通过网络接口与网络直接相连,集群节点通过网络


 

文章评论