突破I/O瓶颈 五种解决方案特点

时间:2009-03-31   来源:   网友评论:0   人气: 634 作者:

HPC (高性能计算High Performance Computing,也称超级计算)历来是石油、生物、气象、科研等计算密集型应用中的首要技术问题。早期的HPC系统,主要以IBM、Cray、SGI 等厂商的大型机或并行机为硬件系统平台。随着Linux并行集群技术的成熟和普及,目前HPC技术主流已经转向以IA架构为硬件平台,以Linux并行集群为系统平台的廉价系统为主。近年来,这一技术又进一步发展,各厂商目前竞相追捧的网格计算技术,从某种意义上说,就是这一架构的延伸。鉴于Linux并行集群技术在HPC应用中的主流地位及快速发展趋势,本文主要讨论的也是这一架构中的存储系统问题。

当前Linux并行集群的困惑----遭遇I/O瓶颈

Linux并行集群中的计算资源按其功能角色不同,通常被分为两种:“计算节点”和“I/O节点”。其中计算节点负责运行计算任务,I/O节点负责数据的存储并响应计算节点的存储请求。目前Linux并行集群一般采用单I/O节点服务多计算节点的模式。从硬件角度看,I/O节点和计算节点都是标准的 IA架构,没有本质区别。计算所需要的初始数据、计算得出的最终数据以及并行计算平台本身,都存储于I/O节点上。计算节点与I/O节点间一般采用标准 NFS协议交换数据。

当一个计算任务被加载到集群系统时,各个计算节点首先从I/O节点获取数据,然后进行计算,最后再将计算结果写入I/O节点。在这个过程中,计算的开始阶段和结束阶段I/O节点的负载非常大,而在计算处理过程中,却几乎没有任何负载。

提高各计算节点CPU频率和增加计算节点数量,可以提高集群整体的计算处理能力,进一步缩短处理阶段的时间。在当前的Linux并行集群系统中,集群系统的处理能力越来越强,每秒运算次数在迅速增长,于是集群系统真正用于计算处理的时间越来越短。然而,由于I/O能力改进不大,集群系统工作中的 I/O效率没有明显进步,甚至会随着计算节点数的增加而明显降低。

实际监测结果显示,当原始数据量较大时,开始阶段和结束阶段所占用的整体时间已经相当可观,在有些系统中甚至可以占到50%左右。I/O效率的改进,已经成为今天大多数Linux并行集群系统提高效率的首要任务。

解决I/O瓶颈的初步探讨----瓶颈到底在哪里?

在上面的系统结构图中可以看出,如果把“以太网交换”以下的部分统统看作存储系统的话,那么可能的瓶颈无外乎以下三种:

存储设备本身性能,姑且称之为“存储设备瓶颈”

I/O节点与存储设备间的连接,姑且称之为“存储通道瓶颈”

计算节点与I/O节点间的网络交换,姑且称之为“网络交换瓶颈”

究竟哪一环节是最为关键的问题呢?让我们结合实际情况,逐一的分析一下。

目前的存储设备类型丰富,种类繁多。仅中端设备中,容量扩展能力在几十TB,每秒处理数万次I/O,数据吞吐带宽在数百MB/s的设备就有很多种选择。以勘探数据处理系统为例,在一个32计算节点的叠前处理系统中,如果需要使每个计算节点得到15~20MB/s的带宽,那么集群对后端存储的总体带宽 (即聚合带宽)要求大约为500~650MB/s。目前的中端磁盘阵列产品基本都可以达到这一性能指标。如果考虑64个或更多计算节点,后端带宽要求需要达到1~1.3GB/s甚至更大,这一性能是目前单一中端磁盘阵列系统难以达到的。然而通过引入多台存储设备,这一问题也不难解决。

目前的存储设备通道技术主要以SCSI和FC为主。目前单条FC通道可保证200MB/s的传输带宽,以4条通道并行工作就可以达到800MB/s 的带宽保证。这一指数已经完全可以满足32个计算节点并行工作的带宽要求。此外IB(InfiniBand)技术作为新兴通道技术,更进一步保证了通道带宽。目前已经产品化的IB交换技术已经可以达到10~30Gb/s的带宽,是目前FC技术的5~15倍。在这样的带宽保证下,既便是256或512节点的集群也可以与存储设备从容交换数据。


 

文章评论