免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1357 | 回复: 0
打印 上一主题 下一主题

分布式文件系统研究6:PVFS文件系统 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-16 11:21 |只看该作者 |倒序浏览

历史
很多商业化的分布式文件系统,如IBM的GPFS,Intel的PFS等,它们在性能,可用性上都有不错的表现,但一般价格昂贵,且需要特殊的存储设备的支持,普通用户构建基于此类的集群服务器代价高昂;而较老的开放源码的分布式文件系统,如NFS、AFS等,性能和可用性又不是十分理想。因此,对开放源码的新型分布式并行文件系统的需求一直比较迫切。目前,对于公开源码的分布式文件系统,声誉最好的是Clemson大学和NASA实验室联合开发的PVFS,它相对与传统的集中存储NFS具有良好的性能。
并行虚拟文件系统(PVFS)工程为Linux集群提供了高性能和可扩展行的并行文件系统。PVFS是开放原代码的,于1998年公开,并且在GNU公共版权许可证下发布。它无需特殊的硬件设备和内核的改动,可以直接应用于廉价的Linux集群。PVFS目前为止有两个重要版本:PVFS1是早期的版本,在运行时存在严重的单点故障问题,一旦管理服务器宕机,则整个系统都无法正常工作;而且,PVFS的程序开发者认为代码写得过于混乱,因而,他们整理并重写了PVFS的源代码,并发布了PVFS2。在PVFS2中,不再单独设立管理服务器,而是各个运行IOD进程的节点都可以接管管理服务器功能,以此来改善系统的单点故障问题。
目前,PVFS已被广泛地用作临时存储的高性能的大型文件系统和并行I/O研究的基础架构。国内的浪潮并行文件系统就是在PVFS的基础上研制的。

设计架构
与当前很多分布式文件系统一样,PVFS基于C/S架构和消息传递机制实现。其客户和服务器之间的消息传递通过TCP/IP来完成,提供可靠的通讯环境。所有的PVFS文件系统数据都保存在I/O节点的本地文件系统中,本地的文件系统可以是一个硬盘驱动器上的一个分区,可以是整个磁盘驱动器,也可以利用本地所支持的Linux文件系统(例如ext2,ext3和ReiserFS)所提供的多个磁盘驱动器的逻辑卷。
PVFS的逻辑视图如图1所示,使用了三种类型的节点:管理节点、I/O节点和计算节点。PVFS采用多个I/O服务器、单一元数据服务器设计。

图1 PVFS的逻辑视图
管理节点:即元数据服务器,负责管理所有的文件元数据信息;
I/O节点:运行I/O服务器,负责分布式文件系统中数据的存储和检索;
计算节点:处理应用访问,通过PVFS专有的libpvfs接口库,从底层访问PVFS服务器。
PVFS系统中的任何一个节点作为其中的一个节点运行,也可以同时作为两种或是三种节点运行。
PVFS提供重要的4个功能:
1.一致性的访问名字空间:为了易于安装和使用,PVFS提供了统一的文件命名空间;
2.支持现存的系统访问方式:在已安装PVFS文件和目录能够继续使用Linux类似的命令和工具,比如ls、cp和rm,方便用户的使用。该功能由Linux核心的一个模块提供支持。
3.将数据分配到多个磁盘上:为高速访问群集中的文件系统,PVFS将文件数据进行条块化划分,分散存储到某些群集节点(称作I/O节点)的多个磁盘上,从而消除了I/O路径的瓶颈,且增加了客户端并发带宽。
4.为应用程序提供高性能的数据访问方式:对PVFS来说,应用程序除了可以通过现有的系统调用访问方式外,还可以通过本地libpvfs库,以专有API的方式访问PVFS文件系统的。而libpvfs直接与PVFS服务器相连接,而不是传递消息给内核,提高了访问效率。

运行机制
PVFS的运行机制如下:当打开、关闭、创建或删除一个文件时,计算节点上的应用程序通过libpvfs接口直接与元数据服务器通信:

图2  PVFS中的数据访问详细流程
1.发起文件操作请求,请求被传送到底层的 PVFS 文件系统模块。
2.PVFS 向元数据服务器发送一个请求,要求取得相关文件在各个 I/O 节点上的元数据信息。(步骤1)
3.PVFS元数据服务器把元数据信息返回给计算结点。(步骤2)
4.使用这些信息,计算节点直接与所有相关的 I/O 节点进行通信,获得整个文件(步骤 3)。
这些步骤对于调用应用程序来说都是透明的;计算节点使用libpvfs直接联系相应的I/O节点进行读写操作,而不必与元数据服务器通信(见图2),从而大大提高了访问效率。

PVFS相比NFS、AFS等传统的文件系统,有很大的性能提升。其采用一个元数据服务器来维护一个全局的名字空间,而文件存储于多个I/O服务器上,因此大大提高了I/O并发性能;多个I/O节点被虚拟为一个单一数据源,各个前端计算节点可以面对这个单一的数据源进行读写操作,省去了复杂的管理;而PVFS架构中的管理服务器,将前端的所有I/O请求均衡负载到各个I/O节点,从而实现了系统I/O的自动负载均衡。

存在的不足
PVFS存在的问题:
1.集中的元数据管理成为整个系统的瓶颈,可扩展性受到一定限制。
2.系统容错性有待提高:数据没有采取相应的容错机制,采用非Unix语义,并且没有文件锁,其可扩展性较差,应用规模很大时容易导致服务器崩溃。
3.系统可扩展性有待加强:PVFS使用静态配置,不具备动态扩展性,如果要扩展一个I/O节点,系统必须停止服务,并且不能做到空间的合理利用。
4.PVFS目前还不是由商业公司最终产品化的商品,而是基于GPL开放授权的一种开放技术。虽然免费获取该技术使整体系统成本进一步降低,但由于没有商业公司作为发布方,该技术的后续升级维护等一系列服务,都难以得到保证。

               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/5737/showart_278926.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP