91E420799C29B8B3B21C0C9D060959CF.jpg
并行虚拟文件系统(PVFS)
PVFS (Parallel
Virtual File
System)项目是Clemson大学为了运行Linux集群而创建的一个开源项目,因此,PVFS也无需特别的硬件设备。普通的能运行Linux系统
的PC机即可。PVFS现已被广泛地使用,很多分布式文件系统都是以PVFS为基础架构而设计实现的。
PC集群作为一个并行平台在逐步的普及,此平台上的软件需求也正在增长。在当今集群并行计算环境下,我们找到了许多有效的软件模块。比如本地存储系统和基于消息传递的系统。然而,并行I/O限制了集群的软件产品的生产。并行虚拟文件系统(PVFS)工程为Linux集群提供了高性能和可扩展行的并行文件系统。PVFS是开放原代码的,并且在GNU公共版权许可证下发布。它无需特殊的硬件设备和内核的改动。PVFS提供
重要的4个功能:
1:一致性的访问名字空间。
2:支持现存的系统访问方式。
3:数据分布在集群节点不同机器的不同硬盘上。
4:为应用程序提供高性能的数据访问方式。
为了PVFS易于安装和使用。它必须提供与集群访问相一致的名字空间,而且它必须达到我们易用的习惯方式。PVFS文件必须同时安装到所有节点的相同目录里。通过相同的配置使得所有节点能看到和访问PVFS文件上的所有文件。在已安装PVFS文件和目录能够运用类似的工具,比如ls,cp和rm。
desc-system-1
PVFS使用视图
上面的PVFS系统的节点分布图,管理节点管理元数据,I/O节点存储PVFS文件系统的文件。管理节点与I/O节点也可能被用来计算。全看管理员。对于小的集群这些节点功能可重叠以维持资源的利用率。大的集群上I/O于metadata,最好放在不同的节点上。
PVFS系统有4个主要的模块:
1:元数据服务器(mgr)
2:I/O服务器(iod)
3:PVFS本地API(libpvfs)
4:PVFS
Linux内核支持
第一二个模块是在Linux节点上运行的后台进程。元数据服务器,称为mgr,管理着PVFS文件的
元数据。元数据是文件的描述,比如名字,所存放的目录层次,所有者,和在系统节点中的分布。
通过一个自动的后台进程我们避免了许多网络存储的缺点。访问中存在复杂的锁操作为的是在很多访
问时保持文件的一致性。
第二个后台进程是I/O节点或iod。I/O服务器存放和重得文件数据存储于连接于节点上的本地
硬盘上。这些服务器在本地节点上创造真实的存在的文件。
它们使用传统的read(),write()和mmap()访问这些文件。这意味着能使用像本地文件一样的格式来存储数据。比如ext3,ext4。另外你可以使用软件或硬件的RAID来支持节点容错和创建异常大的文件。
desc-flow-meta-1
metadata
Access视图
desc-flow-io-1
data access视图
就像前面提及PVFS本地API提供用户访问权给服务器。这类库提供了分散聚集数据于用户缓存与PVFS服务器之间的操作。这些操作对用户保持透明的。上面图显示了PVFS元数据和文件操作的数据
流动。对于元数据操作,应用与元数据服务器通讯通过使用类库。对于数据操作和数据服务器被排除
替而带之的是直接于I/O服务器联系。这是性能的关键。
最后PVFS提供Linux内核模块是Linux上能安装PVFS文件系统。这使得现在的程序直接访问PVFS
文件而无需任何改动。这个支持对应用程序不是必须的使用PVFS的方法。不过它提供一个极方便的方
法给影响到系统。PVFS内核模块支持包括一个可装载的模块。一个可选的内核补丁排除了内核拷贝,
一个后台进程pvfsd为应用程序提供访问PVFS文件系统。
desc-kernel-path-1
视图
上图显示了数据通过内核流向,当Linux内核支持被使用。这个机制和coda文件系统中使用方式
相类似。(在我们设计的系统上coda应用作为一个实例)操作通过系统调用传到linux的PVFS层。在这
里是一个pvfsd服务的队列。pvfsd通过设备文件接受操作。然后设备文件与PVFS服务器通讯取得数据,通过内核传递到应用程序。
应用程序接口:
为了使任何文件系统可用,方便的接口必须可用。这个问题对并行应用特别重要。这些应用对文件
系统有大量的需求。为了满足这些众多的组合,有三个接口PVFS能够访问。
1:PVFS本地API
2:Linux内核接口
3:ROMIO,MPI-IO接口
PVFS本地API提供一个类似Unix接口给PVFS文件访问。它同样允许用户指定文件在PVFS文件系统I/O节点条状分布。Linux内核接口。就像早先讨论过的。允许用户可通过传统通道访问PVFS文件系统。这使得用户使用所有普通的功能执行每天的数据处理,PVFS文件系统,临时数据存储。ROMIO执行MPI
IO调用在一个轻量级的类库中,这允许并行程序使用MPI去访问PVFS文件,通过MPIIO
接口。另外,ROM-IO使用了两个优化:数据筛选,二阶段集体I/O,这样有利于提高性能。
PVFS缺点:PVFS中应用系统socket相互通信,应用tcp/ip通信协议,每次通信需要内核嵌入,进行内核拷贝,cpu的负载比较大,影响系统的运行效率,PVFS本身具备良好的可扩展性,但是其动态配置的能力不强,如果要扩展一个I/O节点,就需要停止服务,并不能做到空间的合理利用等。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code