网络文件系统(Network File System,NFS)是大多数局域网(LAN)的重要组成部分。但 NFS 不适用于高性能计算中苛刻的输入输出密集型应用程序,至少以前是这样。NFS 标准的最新修改纳入了 Parallel NFS(pNFS),它是文件共享的并行实现,将传输速率提高了几个数量级。
pNFS产生
pNFS的想法产生于2003年Garth Gibson(Panasas的创始人和CTO)和美国拉斯阿拉莫斯国家实验室的Gary Grider及Sandia国家实验室的Lee Ward的一次交谈中。.这个初始的突发奇想在2003年之后由一个从事NFS并行存储器扩展的工作室继续研究,这个工作室由Gibson和密执安大学信息技术集成中心的Peter Honeyman主持。
更多的合作和交谈导致了2004年向IETF组织提交了初始向题陈述。这份陈述由Gibson和Panasas的Brent Welch及网络设备公司的Peter Corbett撰写。从这时开始,行业的支持和介入稳定地增加导致了IETF工作组在2006年把pNFS纳入NFSv 4.1小版本草案中。Gibson,Welch和其他许多Panasas的人员继续全力推动这个标准向前发展。
并行基础知识:pNFS介绍
最近几年,高性能数据中心已经快速向并行技术转移,比如集群计算和多核心处理器,这些加速了并行应用的开发和广泛使用。.
虽然这种并行使用的增加解决了大多数的计算瓶颈,它却把性能瓶颈转移到了存储I/O系统。随着主流计算转向并行,存储子系统也需要转移到并行技术。为了成为通用的方式,需要一个标准的方法,能够从多个存储供应商选择存储设备并且从任何客户端都能自由的存取并行存储器。
为了转向高一等级的性能水平,当存储系统依附到一个经济有效的标准时必须对并行做最优化。NFS,当前流行的网络文件系统标准并不支持并行I/O,主要存储供应商提供的现有并行产品也不能彼此兼容。在业界提供出一个并行存储的标准之前,用户选用设备都将继续受到妨碍,他们勉强的部署一套存在许多不兼容的并行存储系统。
今年稍后,IETF工程任务组NFS v4 小组委员会预计将结束并行NFS(pNFS )协议的工作,它将是NFS 版本4.1 RFC的一部分。这个里程碑将使NFS V4.1从因特网草案成为一个推荐标准。并行NFS能够在客户端和存储设备之间直接并行传送数据,不需要昂贵的元数据管理器(filer head)。期望它支持Linux,Windows和主要的UNIX版本如Solaris和AIX。
这个新标准正在由一个存储行业的技术领导者组成的联盟共同开发,包括Panasas,IBM,EMC,Network Appliance,Sun和密执安大学的信息技术集成中心。
当今NFS遇到的挑战
为了了解pNFS是如何工作的,首先必须了解在一个典型的NFS结构中当客户端试图存取一个文件时是如何进行的。图1展示了一个传统的NFS结构。你可以看到NFS服务器位于客户端计算机和实际的物理存储装置之间。当客户端想要存取存储器上的文件时,它必须创建一个到NFS服务器的连接(也就是创建一个安装点)。当客户端试图存取存文件时NFS服务器起仲裁者的作用,管理所有需要的数据处理,把数据传送到提出请求的客户端。
由较少的客户端访问相对较小的数据集时这种结构工作的很好,通过直接连接的存储器能够收到显著的效益(就象你PC上的磁盘);也就是数据能够由多个客户端共享,能够由任何有NFS能力的客户端访问。可是如果大量的客户端需要访问数据或太大的数据集时,NFS服务器很快就变成了一个瓶颈,抑制了系统性能。pNFS从根本上消除了这个瓶颈,允许从许多许多客户端以难以置信的速度快速存取非常大的数据。
pNFS消除了瓶颈
这里我们可以看到pNFS如何修改了NFS结构,消除了我们刚才提到的性能瓶颈。实质上的变化是NFS服务器移动到了带外,变成了一个元数据服务器。意思就是它管理着有关数据布局的数据。那么当一个客户端需要存取数据时它需要做什么呢?
它首先要做的是与NFS服务器联系就象先前例子中所做的一样。可是这次服务器提供给客户端一个到哪里去寻找所要数据的布局图和读/修改/写这些数据的授权书。一旦客户端有了这两部分,它存取数据时就直接与存储设备联系。使用传统的NFS时数据的每个比特都要通过NFS服务器,使用pNFS时NFS服务器从主数据通路中移出来了,允许客户端自由地和快速地存取数据。当然所有的NFS的优点都继续保留,但现在消除了瓶颈,数据能够以并行方式以非常快的吞吐率被访问,系统容量能够容易的扩展而不影响总性能。
pNFS性能
以下性能测试是使用iometer工具,对lpNFS和spNFS两种pNFS的测试,其中lpNFS是指基于lustre文件系统的,而spNFS是netapp公司的。
OpenSolaris pNFS免费下载试用:
Solaris 的 pNFS 实现正在 NFSv4.1 pNFS OpenSolaris 项目下进行开放式开发。
pNFS演示硬件配置
参考资料:
1、pNFS: A New Standard for Shared, HighPerformance Parallel I/O
2、NFSv4.1/pNFS Ready for Prime Time Deployment
3、Linux pNFS Kernel Development
4、Advances in NFS; NFSv4.1, pNFS and NFSv4.2(SNIA)
6、pNFS Lustre layout discussion