常见的并行文件系统
l PVFS,开源
l Lustre ,开源
l Parastor,曙光商业软件
l GPFS, IBM的产品,现已开源
l GFS, Red Hat商业软件
l PFS,Intel商业软件
l GoogleFS,google商业软件,主要用于互联网应用
l HDFS,Apache开源,基于java的支持
l FastDFS,主要用于互联网应用
l ……
PVFS
l PVFS是开源的,于1998年公开,并且在GNU公共 版权可证下发布。它无需特殊的硬件设备和内核的改动,可以直接应用于廉价的Linux集群。PVFS目前为止有两个重要版本:PVFS1是早期的版本, 在运行时存在严重的单点故障问题,一旦管理服务器宕机,则整个系统都无法正常工作;而且,PVFS的程序开发者认为代码写得过于混乱,因而,他们整理并重 写了PVFS的源代码,并发布了PVFS2。在PVFS2中,不再单独设立管理服务器,而是各个运行IOD进程的节点都可以接管管理服务器功能,以此来改善系统的单点故障问题。
l PVFS提供重要的4个功能:
l 一致性的访问名字空间
l 支持现存的系统访问方式
l 数据分布在集群节点不同机器不同的硬盘上
l 为应用程序提供高性能的数据访问方式
l
PVFS
l PVFS使用了三种类型的节点:
l 管理节点(mgr)
l 运行元数据服务器,处理所有的文件元数据(元数据是描述文件信息的文件)
l I/O节点(iod)
l 运行I/O服务器,存储文件系统的文件数据,负责数据的存储和检索
l 计算节点
l 处理应用访问,利用libpvfs这一客户端的I/O库,从底层访问PVFS服务器
l I/O节点、计算节点是一个集群的节点可以提供其中的一种功能,也可以同时提供其中的两种或者全部三种功能
l
PVFS运行机理
l PVFS的运行机理
l 当打开、关闭、创建或删除一个文件时,计算节点上的一个应用通过libpvfs直接与元数据服务器通信
l 在管理节点定位到一个文件之后,它向这个应用返回文件的位置,然后使用libpvfs直接联系相应的I/O节点进行读写操作,不必与元数据服务器通信,从而大大提高了访问效率
PVFS
l PVFS存在的问题:
l 集中的元数据管理成为整个系统的瓶颈,可扩展性受到一定限制。
l 系统容错性有待提高:数据没有采取相应的容错机制,并且没有文件锁,其可扩展性较差,应用规模很大时容易导致服务器崩溃。
l 系统可扩展性有待加强:PVFS使用静态配置,不具备动态扩展性,如果要扩展一个I/O节点,系统必须停止服务,并且不能做到空间的合理利用。
l PVFS目前还不是由商业公司最终产品化的商品,而是基于GPL开放授权的一种开放技术。虽然免费获取该技术使整体系统成本进一步降低,但由于没有商 业公司作为发布方,该技术的后续升级维护等一系列服务,都难以得到保证。
Lustre
Lustre 是HP,Intel,Cluster File System 公司联合美国能源部开发的Linux集群并行文件系统。它来源于卡耐基梅隆大学的NASD 项目研究工作,已经在大学、实验室和超级计算研究中心等得到广泛应用。
Sun称Lustre是“目前全球具有最佳可扩展性的并行文件系统”,现在全球十大超级计算机中的六个以及40%的TOP100超级计算机都采用了这个系统。
Lustre
Lustre
l 元数据存储与管理
l MDS负责管理元数据,提供一个全局的命名空间,Client可以通过MDS读取到保存于MDT之上的元数据。在Lustre中MDS可以有2个,采用了Active-Standby的容错机制,当其中一个MDS不能正常工作时,另外一个后备MDS可以启动服务。MDT只能有1个,不同MDS之间共享访问同一个MDT。
l 文件数据存储与管理
l OSS负载提供I/O服务,接受并服务来自网络的请求。通过OSS,可以访问到保存在OST上的文件数据。一个OSS对应2到8个OST。OST上的文件数据是以分条的形式保存的,文件的分条可以在一个OSS之中,也可以保存在多个OSS中。Lustre的特色之一是其数据是基于对象的职能存储的,跟传统的基于块的存储方式有所不同。
l Lustre系统访问入口
l Lustre通过Client端来访问系统,Client为挂载了Lustre文件系统的任意节点。Client提供了Linux下VFS(虚拟文件系统)与Lustre系统之间的接口,通过Client,用户可访问操作Lustre系统中的文件。
Lustre访问机制
Client
目录操作,文件开打/关闭,元数据,并发操作
文件内容,IO及文件锁
MDS
OSS
恢复,文件状态和文件创建
Lustre
l 目前Lustre文件系统最多可以支持100000个Client,1000个OSS 和2个MDS节点。
l Lustre系统中可以同时运行1~3个功能模块。不过Lustre一般运行于高性能计算机系统之上,为了提高Lustre文件系统的性能,通常MDS、OSS和Client是分开运行在Lustre不同的节点之上的。
l 实验与应用已经证明,Lustre文件系统的性能和可扩展性都不错;还拥有基于对象的智能化存储、安全的认证机制、比较完善的容错机制等优点,而且Lustre还实现了文件锁功能;
l 相对于PVFS,Lustre的可用性和扩展性以及性能上都有较大的提高。然而,Lustre需要特殊设备的支持,并且Lustre目前还没实现MDS的集群管理,虽然相比PVFS的单MDS,Lustre的双MDS在可用性上还是提高不少,但是当系统达到一定的规模之后,MDS还是很有可能成为Lustre系统中的瓶颈