Chinaunix首页 | 论坛 | 博客
  • 博客访问: 647581
  • 博文数量: 171
  • 博客积分: 2389
  • 博客等级: 大尉
  • 技术积分: 1516
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-24 14:18
文章分类

全部博文(171)

文章存档

2014年(20)

2013年(51)

2012年(40)

2011年(59)

1970年(1)

我的朋友

分类: IT业界

2011-12-22 14:08:33

选择合适的存储系统是高性能计算(HPC-High Performance Computing)环境整体架构设计的关键一环,它是我们必须面对的,也是最具挑战性的一项工作。表面上看我们似乎有很多选择,但现实中还没有哪一种存储类型敢说自己一定是HPC系统的最佳选择。不仅是每个HPC应用环境都是不同的,即使在一个地方表现良好,那也不能保证在其他地方同样合适。

造成HPC存储选型困难的最根本原因,就是众多的计算节点所带的IO流量瓶颈问题。集群系统(Cluster)属于一种分布式计算系统,其承载的计算任务被分布到众多的计算节点上实现,别忘了那句话叫:出来混,早晚要还的。计算虽然分布了,存储最终还是统一。HPC中的计算节点称为nodes,其物理存在可以为任意形态的服务器、主机、工作站甚至PC笔记本等,本文中就以HPC项目中使用最多的计算节点:配置双路Intel处理器的Dell M610刀片服务器为例。计算节点对统一存储的必须性要求和各节点所汇集而来的巨大IO流量对存储造成的冲击,是每个HPC系统设计中必须要考虑的因素,其选型范围广,性能和可靠性要求高,技术论证困难,实施时配置复杂,实际使用中对HPC系统的性能影响最大,以及其占HPC总成本的比率不断提高,一直困扰着HPC的用户和DELL这样的主流HPC供应商。

HPC为什么要统一的存储空间

至于为什么多台计算节点一定要接入统一的存储空间,这是由HPC应用软件的计算模式造成的。举例:FLUENT、LS-DYNA、Paradigm、3Ds Max等,在配置计算模型的存储指针时,会发现要求指向同一个区域,即统一的存储空间,而且有许多软件在这个参数的设置上是不能修改的。

最初在集群形成初期,系统中并没有复杂的存储系统存在,甚至没有统一存储的概念,那时每台计算节点把自己所计算出的数据先暂时写到自己的本地硬盘上(CACHE),最终由主节点进行所有数据的回收,至主节点所挂载的相对大的空间中(其实这就是后来HPC存储的雏形),再进行后续处理(分析、共享、可视化、备份与恢复)。但这种做法无疑会造成计算效率的下降,各节点的数据会二次进出本地硬盘,各节点间的数据传输也会造成多余的网络风暴,以及应用程序代码编写过程中,无法预计所要数据在哪个节点上,都造成麻烦与效率的低下,因此后续的程序编写中,会让所有的节点都认到一块区域,将所有的临时性数据和最终数据都写到这里,从硬件架构上看,就是统一存储,也称为统一命名空间,因为所有计算节点都可以看到这块同一个名字的数据存储区域,表现在计算节点的OS中即为看到同一个名字的目录(由NAS得来)或磁盘空间(由直连存储得来)。

两种统一存储空间的实现

现在,这里又有一个问题要讨论。

拓朴A:所有nodes都直连存储设备(无论通过FC SAN还是iSCSI或者其它的方式)

拓朴B:由某一层(或某一套)系统来共享出一块数据空间(NAS),计算节点来挂载这个空间。

拓朴A:

理论上讲,多台计算节点当然可以直接存储设备,为什么不能?见下图。

clip_image002

这样的拓朴,带来以下几个问题:

1、 每台node都要配置或占用一块独立的卡(FC、iSCSI甚至InfniBand),要知道,nodes的数量众多,可以由几十台扩展到上百台乃至数千台。有多少台node就要多配置多少块卡,单卡成本 x N (注意,N的数量很大),成本很重要。

2、 Nodes和存储设备之间并不是DAS的关系,需要一台交换机(FC/Eth/IB)来连接,这里的难点在于,如果有一套512节点的集群,就得找一台512+个端口的交换机,说+是因为还有存储系统要占用端口数。以太网交换机还可以找到,像Foundry/Extreme等都有700+端口以上的单台交换机设备,但FC交换机呢?IB交换机?成本,还是成本。当然可以用胖树结构来替代,即用多台小交换机分层连接来解决,但如果展开这个胖树,就算结构也许理解起来并不复杂,但其物理架构造成的多台交换机带来的网络延迟跳数的开销(注意,胖树的带宽是无阻塞的)、无法想像的线缆数量以及多台设备给系统带来的不稳定性的增加,并不是每个用户能够接受的,甚至做为系统设计者的DELL也不会接受这样的方案。

3、 以上两个问题其实并不是最本质的问题。设想我们能够实现以上的架构,但多台主机连接同一个存储空间(这里是LUN的概念,祼存储设备),同时对其读写,必然会造LUN上面的数据混乱,因此,需要在每个node上加载锁机制,以控制LUN上的数据不会被同时写乱,这其实已经是并行文件系统所做的事了。那么,在所有计算节点上加载一层文件系统,效率先放一边不说,万一选择了一个商业版本的文件系统(如StorNext/Redhat GFS),每个节点上的软件客户端可都是要收费的(想想那个512节点的系统吧),又回到那个问题,成本。还有这些商业版本所支持的节点数量实际上是有限的,超出某个数量,其效率会大幅下降,达到某个数量,系统直接死机。像512个节点同时加载带有锁机制的文件系统,现实中是不可能的,事实上也是没有这种系统存在。

看到这里,我们已经知道答案,拓朴A所代表的HPC中所有node直连存储来获取统一命名空间的做法,并不现实。PS,有一种系统除外,即计算节点数量被控制在一个刀片机箱内(<16台),最好<8台,这样做还是可以的,为什么,成本能够接受,效率也不会下降,但是,万一节点数量扩展了呢?这是很有可能地,真是啥事都坏在但是两字上面…..

拓朴B:

除了直连,还有一种方式就是让计算节点利用网络来获取这部分统一存储空间,而不是自己直连存储设备。因为是通过网络(目前主要有两种:以太网、InfiniBand)才加载上来的存储,称为NAS (Network Attached Storage),翻译为通过网络而粘上来的存储。其实这个Attached(粘)是计算节点上的客户端通过网络协议与服务器端所提供的存储空间共享服务所接驳的过程。而提供存储空间共享的节点,称为IO节点,其上部署了文件系统,把裸存储设备转化为计算节点能够挂载的目录,让网络上的节点能够通过网络协议(如NFS)来获取存储空间,对存储的访问并不是块级设备的操作而是文件级读取。

clip_image004

因为存在着拥有文件系统的IO节点层,众多计算节点可以从这层系统上得到许多好处:

1. 计算节点离存储的距离可以拉远,尤其在以太网上,但这点对HPC意义并不大,因为基本上主机与存储都在一个机房的临近的机柜里放置。

2. 不会出现多个计算节点写乱同一存储空间的问题,IO节点上的文件系统锁机制定提供了高级并发访问保护的功能

3. IO节点层和存储设备层都可随IO流量而横向扩展,在存储容量增加的同时加大存储带宽,scale-out的概念在此。

4. 文件系统层对所管辖的存储设备有很好的管理功能,如快照、空间限制、用户权限及备份等。

5. IO节点层与其所控制的存储设备间的连接方式多样化。

据以上分析,拓朴B是目前HPC系统中最常见的存储接入方法。

DELL HPC系统中常的NAS共享方式:

1. NFS

HPC设置中的计算节点通常需要通用的文件系统用于数据、应用程序和工具。NFS为这样的通用

文件系统提供简单易用、功能强大的解决方案。基于NFS标准的存储解决方案广泛用于Linux空

间中的HPC集群,因为NFS既简单、久经考验,又易于使用和安装,拥有已知的故障模式,并且

几乎在Linux每一发行版本中都是标准组件。NFS是最常用的文件系统。在已部署的91个最大型HPC系统中,56%的系统使用了NFS。与此类似,在最近部署的64个HPC系统中,64%的系统使用了NFS。此调查显示出NFS作为最为重要的文件系统协议之一在HPC部署中的重要性。

NFS在很多情况下都能够为HPC集群提供强大的文件系统解决方案。它在其中运行良好的一般情

况包括:

· 应用程序的I/O要求可通过单一服务器或少量多个集群的服务器得到满足。

· 应用程序拥有可实施所有I/O操作的一个流程。

· 应用程序不是I/O主导,需要不到1GB/每秒或2 GB/每秒的吞吐量即可实现良好性能。

· 明确定义的错误路径是存储解决方案的重要部分。

理想状态下,对于串行应用程序或对于拥有实施I/O的单个流程的并行应用程序,NFS在主应用程序存储处于中等应用规模时运行良好。将NFS用作主存储时,众多的应用程序都非常切合这些要求, 并且运行良好。当前的最佳实践推荐从NF服务器连接至集群网络时使用万兆以太网或Infiniband 网络连接,而无需考虑HPC计算集群大小,因为即便是用于小型系统,它们同样运行非常良好,并且非常经济高效。

对于更大的集群而言,NFS在将主目录和应用程序分享给集群节点方面依旧能够发挥关键作用。

在此情况下,NFS不是用于运行应用程序的主存储,因此,即便计算节点数量非常多时,性能需

求也不会太大。在计算节点上简单安装用户主目录和应用程序目录,即HPC非常重要的一方面,

使用基于NFS的存储解决方案非常容易做到。不过,当系统和数据集数量增多时,或当同时访问单一文件的计算客户端的数量增多时,NFS可能不再会是最佳解决方案。在此情况下,应用程序可使用更高性能的专用存储来获得更出色的应用程序实施

2. NSS

戴尔目前有一款将NFS放在自身设备上的解决方案 ,称为NSS,是基于NFS的完整的文件存储产品,其中包括所有必需的硬件、软件、性能指南、支持和部署服务,另外还有对硬件和软件(包括文件系统)的三年支持服务。戴尔NSS在对服务器、存储和文件系统的调优方面提供详尽的指南,因而可使部署NFS存储时避免主观臆断,从而可实现最优的性能、可靠性和可用性。

如下图所示,戴尔为NFS服务器提供有或没有高可用性(High Availability, HA)的NSS配置。两种配置在两个连接选项中均可用:四倍速(QDR) InfiniBand或万兆以太网。所有NSS配置均使用基于标准的和 产品和Red Hat Scalable File System (XFS),通过模块化方法扩展至可达9 6 T B 原始存储。NSS配置目前在不同的容量点均可用:

clip_image006

提醒:NSS是DELL公司隶属于HPC的存储解决方案,非IDM部分,目前仅在美国能够报价及实施,正在进行中国的过程中。

3. DSFC

4. Dell|Terascala,基于Lustre的并行存储方案

鉴于HPC系统不断发展,并且应用程序需要更佳的I/O性能作为整体性能的关键,并行I/O已经变

得越来越普遍。并行I/O之所以具有非常出色的应用程序性能,在于其并行特性,也许更重要的

原因在于,它在容量和性能两方面均具有相当出众的可扩展性。并行文件系统通过跨多个存储设

备分配数据(或进行数据条带化)来交付其性能和可扩展性。绝大多数的并行文件系统在性能和

性能等级方面可提供接近线性的可扩展性,而这是NFS解决方案不具备的。

例如,单一的NFS网关,例如前文中所述的NSS解决方案,能够提供将近1.5 GB/秒的顺序吞吐量。运行当中的并行文件系统能够提供高达240 GB/秒的顺序性能,容量超过10PB。

对于很多设备而言,并行存储系统已经成为用以确保应用程序性能和可扩展性的关键组件。为了

使可扩展性和性能更出色,许多应用程序用户要么一直采用HDF56等中间件解决方案,要么或者

直接使用MPI-IO7,因此所有MPI流程都能参与I/O流程,从而减少了总时间。不仅如此,随着问

题越来越大,需要的节点(流程)也越来越多,从性能和容量的角度来看给I/O系统造成了更大

的压力。

尽管并行存储解决方案具有出众的性能和容量可扩展性,它们在设计、部署、管理和保持持久方

面难度极大。它们通常由几个存储服务器组成,这些服务器要么共享通用的后端存储解决方案,

要么有自己的存储。要想妥当配置这种类型的存储绝非易事。HPC系统架构师和实施者通常遇到

的问题与以下方面有关:什么条带宽度是最适当的?需要多少存储服务器,需要什么类型的元数

据性能,如何扩展存储解决方案以提升性能和/或扩大容量?如何有效管理和监控存储?等等。此

外,客户通常想要用最少数量的专职管理人员就能够做到这些。从汇总这些被关心问题的简要列

表中,很容易发现要想设计出过硬的并行存储解决方案绝非易事,并不能一蹴而就。

并行文件系统可提供几个选项,其中每个选项都各有利弊。有些是专有的,例如IBM GPFS和HP IBRIX;有些是开源的,例如Lustre、GlusterFS和OrangeFS。最后,戴尔决定与Terascala合作,将戴尔在HPC硬件和HPC知识方面的优势与Terascala的Lustre堆栈和Lustre集成技能完美地结合在一起。

clip_image008

IO节点与存储设备的连接方式分析

对于高性能计算环境来说,光纤通道存储是比较传统的选择。但现在iSCSI的普及程度也越来越高,尤其是在DELL收购了EQL之后,更加能够突出iSCSI的性价比和兼容性。下面就看看每一种网络存储技术的规格特性,并逐一分析它们的优势和不足。

单从性能和可靠性的角度看,光纤通道无疑是出色的存储架构,其它存储连接方式很难与之匹敌。但凡事都有两面性,使用光纤通道存储的确获得了高性能,可用户却不得不承担更高的成本,以及面对更复杂的技术架构。因此比较大的高性能计算存储系统中,与磁盘阵列和带库存相连的网络通常都倾向于选择光纤通道(FC SAN),主要还是考虑性能、速度和可靠性的因素(光纤通道当前的带宽是8 Gbps,下一代是16 Gbps)。另外,光纤通道存储网络一直是相对独立的,因此与基于以太网的存储设备相比安全性更好。但光纤通道需要特殊的FC HBA卡、FC专属的交换机,这些配件比以太网络使用的同类配件更加昂贵和非通用。

客观的说,如果要从零开始构建一个光纤通道网络代价是很高的。除此之外,光纤通道环境的部署和管理也更复杂,与传统网络架构相比,它配置起来难度很大,熟悉此项技术的人才也偏少。当前,很多公司都有技术熟练的网络管理员,但其中却很少有光纤通道存储网络方面的管理人才。设计并管理一个SAN架构通常需要经过特殊的培训,这无形中又进一步增加了实施的费用。

FC SAN存储的优势:

• 由于具有更高的性能和可靠性,通常情况下存储的性能表现最好

• 独立的光纤通道网络更安全,还有LUN zoning和LUN masking等访问控制机制

• 支持Boot from SAN (从存储启动系统),服务器本地不再需要硬盘

• 如果还有基于FC SAN的磁带系统,可以做到LAN Free的备份机制

• 扩展方便,只要留有足够的FC端口,主机与存储LUN之间的挂载可以很灵活

FC SAN存储的不足:

• 从零开始构建的话,部署成本会很高

• 需要特殊的、昂贵的配件,比如交换机、线缆和HBA卡

• 实施和管理也许更复杂,通常需要专职的存储管理员

• 可用的安全控制功能较少,实现认证和加密比较复杂

iSCSI也是一种流行的存储技术,同时也是光纤通道存储的有力竞争者。像光纤通道一样,iSCSI也是一种基于Block的块存储协议,它使用传 统的以太网组件作为载体,连接服务器和存储设备。iSCSI的部署成本通常很低,理由很简单,因为它可以借用已有的以太网设备。iSCSI的工作原理是在 主机端利用一个叫做initiator的client,通过LAN网络将SCSI命令发送给目标端的SCSI存储设备(目标端也叫做target)。

iSCSI的initiator可以基于软件,也可以是硬件。基于软件的initiator通过调用hypervisor虚拟化引擎内嵌的设备驱 动,利用以太网适配器和以太网协议,将I/O信息发送给远端的iSCSI target设备。硬件initiator则基于专用的iSCSI HBA卡,iSCSI HBA卡整合了网络适配器,TOE引擎(TCP/IP offload engine)和SCSI适配器的功能,利用卡上的芯片处理I/O请求,对于提高服务器端的性能很有帮助。大多数情况下,基于软件的initiator都 可以很好的工作,但如果追求更高的I/O性能并且希望减少主机的资源开销,那么基于硬件的initiator是更好的选择。此外,与光纤通道的Boot from SAN类似,我们可以通过硬件initiator实现从存储设备直接启动操作系统;而且,最近还出现一种叫做iSCSI Boot Firmware Table(iBFT)的技术,支持通过软件initiator实现SAN Boot。需要注意的是iBFT依赖于hypervisor环境的支持。

在1 Gbps网络环境下,iSCSI的性能就已经非常不错了,而一旦切换到10 Gbps,性能还会有巨大的提升,完全可以媲美甚至超过FC光纤通道。大多数hypervisor虚拟化引擎都支持10 Gbps iSCSI,但目前部署10 Gbps iSCSI的成本还很高,价格几乎跟光纤通道一样。使用iSCSI最大的风险在于如果是基于软件的initiator,那么它会增加服务器端的CPU开销 (使用硬件initiaor,CPU负载会小很多),同时它所依赖的以太网环境相对比较脆弱(容易受到干扰)且不稳定。解决网络冲突问题的方法其实很简 单,我们只需要把iSCSI流量和其他网路流量做物理隔离就可以了。

iSCSI存储的优势:

• iSCSI是光纤通道存储的低成本替代方案,它使用标准的以太网组件,iSCSI磁盘阵列的价格通常也低于光纤阵列

• 基于软件的initiator简单易用而且非常便宜,基于硬件的initiator则可以提供更好的性能

• 像光纤通道一样,iSCSI是基于block的块存储系统,在VMware vSphere环境下可以使用VMFS卷

• 升级到10 Gbps以太网之后,速度和性能将有大幅度提升

• 部署和管理iSCSI不需要特殊的培训和特殊技能

• 支持CHAP认证和加密等安全机制,也支持multi path多路径这样的可以增加带宽和可靠性的技术

• 部署起来比光纤通道更快,不需要专业的存储管理员

iSCSI存储的不足:

• 因为多数情况下iSCSI使用的都是软件initiator,因此它会增加服务器CPU的负担

• 性能通常不如FC SAN

• 通常无法扩展到像光纤通道存储系统那样大的规模

• 网络延迟和非iSCSI网络流量的干扰都会影响iSCSI的传输性能

Dell EQL存储设备在这个领域是当其不让的领头者。

结论……

当我们为高性能计算系统选择存储设备时,可能有许多因素需要考虑,不过,最直接的因素是存储带宽,因众多的计算节点的存在和其灵活的扩展性, 最终让我们下决心的无非是那些最基本的因素,比如预算、性能和容量.

文章来源于DELL官网,更多精彩内容请访问DELL官方社区或DELL解决方案专区

阅读(3104) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~