认识
NFS,网络文件系统,Network File System,由 Sun Microsystems 于 1984 年开发,旨在让计算机能像访问本地文件一样访问网络上的文件,是种用于在计算机网络中共享文件的协议。它允许在不同的计算机上通过网络访问和共享文件和目录。简而言之,通过 NFS 服务,我们能够通过网络与他人共享目录和文件,使得用户和程序可以像访问本地文件一样访问远程系统上的文件。
发展历史
其发展历程简要概括如下:
- NFS v2 (1989 年):第一个广泛应用的版本。特点是简单、无状态(服务器不记录客户端信息),基于 UDP 协议。
- NFS v3 (1995 年):主要提升性能和扩展性。开始支持 TCP 协议,并允许异步写入,支持大文件。
- NFS v4 (2000 年):重大革新。整合了相关协议,更安全,支持有状态操作(如文件锁),更适合在互联网上使用。
- NFS v4.1 (2010 年):引入 pNFS,实现了元数据与数据分离,支持并行访问,极大地提升了扩展性和性能。
- NFS v4.2 (2016 年):增加了一些高级功能,如服务器端复制,进一步优化效率。
组成
Server
NFS Server 是在服务器上运行的软件,用于提供 NFS 协议的支持。
Client
NFS 服务的工作原理是:
- 在 Server 上,NFS 将文件和目录标记为共享(导出),并允许远程计算机通过网络连接进行访问。
- 在 Client 上,NFS 可以通过指定服务器的 IP Adress 和共享的路径来访问这些文件和目录。
- 一旦连接建立,远程计算机就可以像访问本地文件一样访问和操作共享的文件和目录;
性质
通过 NFS 服务,能够获得最显着的好处有:
1)本地工作站使用较少的磁盘空间,因为常用数据可以存储在单台计算机上,并且仍然可以通过网络访问其他人;
2)用户不需要在每台网络机器上都有独立的主目录。主目录可以在 NFS 服务器上设置并在整个网络中可用;
3)存储设备(如软盘,CDROM 驱动器和 USB 拇指驱动器)可供网络上的其他计算机使用。这可能会减少整个网络中可移动媒体驱动器的数量;
root_squash, no_root_squash, all_squash
控制是否将 uid/gid 0 映射到匿名用户(uid/gid);
no_root_squash,增加了种便利性,允许任何 Client root 用户修改 Server root 用户所拥有的文件;
sync, async
控制写入与返回:
1)sync:当写入磁盘万陈后,再将结果返回给 NFS Client;
2)async:在请求写入磁盘前,提前响应 NFS Client 的请求;
subtree_check vs. no_subtree_check
如果 FS 的子目录被导出,但整个 FS 没有被导出,那么每当 NFS 请求到达时,Server 不仅必须检查所访问的文件是否位于适当的文件系统中(这很容易),而且还必须检查它是否位于导出的树(更难)。该检查称为 subtree_check
subtree_check 和 no_subtree_check 启用或禁用安全验证,客户端尝试为导出的文件系统挂载的子目录时,将验证是否被允许这样做。
构建
服务重启 Restart Service
不同 Linux 发行版组织 NFS 服务的方式并不相同,建议阅读发行版手册,以了解服务管理的具体方法。
Ubuntu 20.04/22.04 | Ubuntu/Network File System (NFS)
根据官方的表格及说法:
1)nfs-server.service ⇒ nfs-mountd, nfs-idmapd, rpc-svcgssd
2)nfs-utils.service ⇒ nfs-blkmap, rpc-gssd, rpc-statd, rpc-svcgssd
当然,通过 systemctl restart <service> 重启特定某个服务也是可以的。
参考 nfs.systemd(7) 文档,以获得服务管理的详细说明。
应用
虽然 NFS 远不及许多高可用文件系统,但是,在中小规模的环境中,NFS 还是有用武之地的,所以我们依旧会探索 NFS 服务相关的内容。
总而言之,NFS 服务是一种用于在计算机网络中共享文件和目录的协议,它提供了方便的方法来访问远程服务器上的文件,使用户能够像访问本地文件一样进行操作;
使用 NFS 服务,用户可以将文件和目录在不同的计算机之间共享,类似于将文件存储在本地磁盘上一样;
通过 NFS,用户可以在本地计算机上访问远程服务器上的文件,就像它们存储在本地一样。这种共享方式对于组织中需要共享文件的团队和用户非常有用;
参考
DeepSeek / 介绍 NFS 历史
书籍文献
《大话存储》