HPC联机永久存储: NFS是候选方案之一
HPC的计算节点都需要一个常见的文件系统。NFS为这个常见的文件系统提供了一个简单、稳固的解决方案。 基于NFS标准的存储方案被广泛用于Linux的HPC集群空间, 因为NFS简单易操作并且历经考验,故障模式为公众所知,而且在每一个Linux发行版中都是事实上的标准安装包,非常方便。这种特性让NFS成为了许多HPC装置的联机存储方案的一个较好的选择。根据2009IDC的调研,在110个HPC站点中,NFS是使用最为广泛的文件系统。91个最大的HPC系统中,56%都在使用NFS。同样的,近期展开的64个HPC系统中,其中64%使用的是NFS。这份调查说明在HPC部署中,NFS作为一个优异文件系统的选择是很重要的。
无论以下哪种情况,NFS 都可以为HPC集群提供一个稳定的文件系统方案:(1) 集群应用程序的 I/O 要求可以通过单个或者多个集群服务器满足,(2)计算节点数量与连接后台存储的带宽相称,(3)存储容量能够满足集群需要,(4) 您需要一个可靠、容易理解并易操作的存储。
从理论上来说,如果应用程序的文件访问模式是N个用户访问N个文件,而且并行应用程序只有单个进程执行I/O,在这种情况下NFS作为主应用程序存储将运行得很好。许多使用NFS作为主存储的应用程序都能符合要求并运行得非常好。目前的非常好的实践是无论HPC计算集群多大,统一使用10Gb以太网或者InfiniBand连接NFS 服务器。
然而,当系统开始庞大起来或者数据集增加,或者当许多计算客户同时存取一个单一文件(N对1 文档存取),NFS可能就不是非常好的选择方案了。在这种情况下,应用程序可以运用专用的高性能存储器来执行应用。
总体来说,NFS不仅对小型乃至中型集群有效,在更大一些的应用环境里也同样有效。对于大一点的集群来说,NFS仍然在启用集群节点的主目录和的应用程序的共享方面发挥着重要作用。在这种情况下, NFS不是运行应用程序的最主要的存储,因此即使对大量的计算节点来说性能要求也不高。在计算节点上轻松挂载用户主目录和应用程序,也可以使用NFS实现。
3.2 HPC联机永久存储: 戴尔NFS 存储解决方案 (NSS)
戴尔NFS 存储解决方案(NSS)是一种完全基于NFS的文件存储,提供包括所有必须的硬件、软件、性能指南、支持和部署服务。戴尔NSS通过提供调整服务器、存储以及文件系统配置的详细指南,帮助用户部署NFS 服务器,以达到非常好的性能及可靠性。
戴尔为您提供六种NSS推荐配置,和戴尔不断发展的配置和调整存储系统非常好的实践一道为帮助用户实现非常好的性能。您有两个连接选择:四倍速率 (QDR) 无限带宽或者10Gb以太网连接,三种规模选择:小型(20 TB 存储容量), 中型 (40 TB存储容量),大型 (80 TB存储容量)。另外为满足应用程序的性能需求,QDR 无限带宽方案提供了高达1.4 GBps的总吞吐量, 同时10Gb以太网方案可以提供高达1.1 GBps的总吞吐量。所有六种配置使用戴尔PowerEdge和PowerVault 产品以及XFS (Red HatScalable File System )提供模块化方法来构建存储方案,裸容量能够扩展到高达96 TB。
构成戴尔NSS的主模块为PowerEdge R710 网关服务器和 PowerVault MD1200 直连存储附件。如果您需要戴尔NSS的详细配置参数,欢迎访问戴尔NSS网站。
3.3 NSS性能
本章节将分别比较NSS小型、中性以及大型配置的大规模连续读写性能。以下讨论的性能数据均来自由32 台PowerEdge R410服务器作为计算节点和NFS 客户端的集群。基于10Gb以太网和InfiniBand,我们做了三组测试。
测试使用IOzone进行。IOzone是一个用于衡量大规模连续读写的工业标准。测试中为达到足够大的规模和连续强度,我们使用高达25GB的文件和1024KB的请求大小来保证NFS服务器和客户端缓存均保持饱和的工作状态。IOzone在集群模式下运行,并在每个计算节点上开启一个线程。
第一组测试是在IPoIB(IP over InfiniBand)上进行大型连续读写测试。
图2显示的是一系列节点也就是NFS 客户端的大规模连续写性能。对于大规模连续写,在使用NSS大型结构时达到了最高的性能。该大型结构的速度峰值大概在1.45GB/秒左右,测试中,大型结构存储表现优于NSS的小型和中型结构表现,原因在于大型结构存储拥有更多的硬盘和附加的磁盘陈列控制器,从而获得更高的处理能力和主轴来处理工作负荷。正如图2所示,当计算节点达到一定数量之后,存储性能有所下降,这是由于NFS并发写流量使磁盘成为性能瓶颈。
▲图2 NSS IPoIB大规模连续写性能
图3 显示了一系列节点在InfiniBand网络下大规模连续读取的性能。由图可见,相对于相应的写性能,NSS的大规模连续读取性能的下降要缓慢很多。这是因为NFS写操作具有很高的复杂性,相对于读取挑战性更多。测试结果同样表明在解决方案中使用更多的硬盘,就会有更高的读取峰值,并且会具有更多持续性的生产力。
▲图3 NSS IPoIB 大规模连续读性能
第二组测试是基于10Gb以太网进行的大规模连续读写。本测试使用以太网代替上组测试中使用的InfiniBand。
图4 显示了10Gb以太网中进行大规模连续写时NSS的性能情况。在本测试中大型结构的大规模连续存储峰值速度达到了将近1.2GB/秒,同时小型结构达到了550MB/秒。和上文InfiniBand环境下测试结果相同,三种NSS结构在计算节点达到一定数量之后,也都呈现性能降低的情况。然而,通过增加硬盘的数量和增加磁盘陈列控制器,存储峰值速度以及保持高速性能的能力都将持续提高。
▲图4 NSS在10Gb以太网下大规模连续写性能
图5显示了(NSS)基于10Gb以太网的规模连续读性能。在本测试中,NSS小型结构峰值的读取速度和NFS工作负荷的饱和点接近270MB/秒。中型结构(比小型结构增加了一组MD1200矩阵)的读取峰值和饱和点接近为500MB/秒。最后,IOzone并没有显示大型结构(比小型结构多了一个磁盘陈列控制器和两组MD1200矩阵)运行32节点的峰值速度或工作负荷饱和点,需要更多的NFS客户端才能得到测试结果。
▲图5 NSS在10Gb以太网下的大规模连续读性能
10Gb以太网下的NSS大规模写性能要优于相应的读性能,这是由于NSS方案中的缓存技术优化了进入硬盘的数据流,使集中写成为可能。对于连续读取而言,这个过程高度依赖于“读取优先”,而NFS服务却限制了用于满足“读取优先”的缓存容量,这样请求只能靠更频繁地读取硬盘来应对,导致了读取性能的降低。