`
xmong
  • 浏览: 258721 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

NFS文件系统

阅读更多
NFS

目录
1 NFS简介 1
2 NFS机制 1

1 NFS简介
NFS(Network File System,网络文件系统) 是一种基于网络的文件系统。它可以将远端服务器文件系统的目录挂载到本地文件系统的目录上,允许用户或者应用程序像访问本地文件系统的目录结构一样,访问远端服务器文件系统的目录结构,而无需理会远端服务器文件系统和本地文件系统的具体类型,非常方便地实现了目录和文件在不同机器上进行共享。虽然 NFS 不是唯一实现这个功能的文件系统,但它无疑是最成功一个。

NFS是SUN在20世纪80年代开发出来的,至今为止,NFS 经历了 NFS,NFSv2,NFSv3 和 NFSv4 共四个版本。现在,NFS 最新的版本是 4.1,也被称为 pNFS(parallel NFS,并行网络文件系统)。

前四个版本的 NFS,作为一个文件系统,它几乎具备了一个传统桌面文件系统最基本的结构特征和访问特征,不同之处在于它的数据存储于远端服务器上,而不是本地设备上,因此不存在磁盘布局的处理。NFS 需要将本地操作转换为网络操作,并在远端服务器上实现,最后返回操作的结果。因此,NFS 更像是远端服务器文件系统在本地的一个文件系统代理,用户或者应用程序通过访问文件系统代理来访问真实的文件系统。

众所周知的是,NFS 的客户端在访问远端服务器文件系统时,既需要通过服务器获得文件的属性信息,还需要通过服务器获得文件的数据信息,这使得 NFS 天然地具备将文件的属性信息和数据信息分离在不同服务器上进行访问的特性,于是最后一个版本 NFS4.1/pNFS,将 Lustre/CephFS/GFS 等集群文件系统的设计思想引入到自身中,成为一个具有里程碑意义的 NFS 版本。它使得 NFS 的数据吞吐的速度和规模都得到了极大提高,为 NFS 的应用带了更为广阔的空间。

NFS 之所以备受瞩目,除了它在文件共享领域上的优异表现外,还有一个关键原因在于它在 NAS 存储系统上应用。NAS 与 DAS 和 SAN 在存储领域的竞争中,NFS 发挥了积极的作用,这更使得 NFS 越来越值得关注。

2 NFS机制
NFS 文件系统主要分为三个部分:The Protocol(网络协议),Client Side(NFS 客户端)和 Server Side(NFS 服务器)。NFS 客户端提供了接口,保证用户或者应用程序能像访问本地文件系统一样访问 NFS 文件系统,NFS 服务器作为数据源,为 NFS 客户端提供真实的文件系统服务,而网络协议则使得 NFS 客户端和 NFS 服务器能够高效和可靠地进行通信。NFS 网络协议使用的是 RPC(Remote Procedure Call,远程过程调用)/XDR(External Data Representation,外部数据表示)机制。
NFSv3 是一个较为稳定和成熟的 NFS 版本,它的实现机制如下图所示,当我们在NFS client访问系统文件的时候,NFS client会通过网络访问NFS server,获取需要访问的数据响应客户端的请求,这个过程对用户而言像访问本地文件系统一样轻松。



在 NFS 文件系统的文件操作中,除了 read 和 write 操作考虑到性能因素,专门使用缓存机制外,其它的操作基本上都是同步完成的。以 rename 重命名为例来进行说明,如下图所示。首先用户或者应用程序开始调用文件操作,即client客户端发起重命名系统文件请求,经过系统调用 sys_rename,到达vfs虚拟文件系统层 vfs_rename,然后交给 NFS 文件系统 nfs_rename 来处理。NFS 文件系统无法操作存储介质,它调用 NFS 客户端函数 nfs3_proc_rename 和 NFS 服务器函数 nfsd3_proc_rename 进行通信,即经过RPC/XDR把文件操作转发到 NFS 服务器的VFS虚拟文件系统层 vfs_rename,最后调用NFS服务器的Local FS本地文件系统如 ext2 的函数 ext2_raname,完成文件重命名。



NFSv4.1 介绍针对更高扩展性和更高性能的并行 NFS(pNFS)的概念。 要支持更高的可扩展性,NFSv4.1 具有集群化文件系统风格类似的拆分数据/元数据架构。如下图 所展示的,pNFS 将生态系统拆分为三个部分:客户端、服务器和存储。您可看到存在两个路径:一个用于数据,另一个用于控制。pNFS 将数据布局与数据本身拆分,允许双路径架构。当客户想要访问文件时,服务器以布局响应。布局描述了文件到存储设备的映射。当客户端具有布局时,它能够直接访问存储,而不必通过服务器(这实现了更大的灵活性和更优的性能)。当客户端完成文件操作时,它会提交数据(变更)和布局。如果需要,服务器能够请求从客户端返回布局。



NFSv3应用比较稳定,NFSv4.1只是一些新版系统在支持,现在NFS文件系统成为了很多企业存储之路,特别是NFS NAS结合更是成为了很多大企业,事业单位的存储之路。当然除了NFS外也还有很多有创意的文件存储系统,如IRODS他也采用了拆分数据/元数据架构,只不过他的元数据是存储在数据库中,而数据可以存储在不同的域中。


****************
参考
NFS 文件系统源代码剖析
网络文件系统与 Linux
  • 大小: 51.3 KB
  • 大小: 48.3 KB
  • 大小: 39.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics