Linux NFS 服务配置
1. NFS 服务简介 🌐
NFS 是一种允许客户端通过网络访问远程服务器文件系统的协议。通过 NFS,用户可以像访问本地磁盘一样使用远程文件夹。
适用场景:
- 集中化存储管理
- 数据共享
- 负载均衡
2. NFS 服务原理 ⚙️
NFS 使用 RPC(远程过程调用)机制与客户端通信:
- 服务器端 将文件夹共享出来,指定可访问的主机和权限。
- 客户端 挂载共享文件夹后,可通过网络访问共享的内容。
2.1 工作流程
工作原理简图:
工作原理描述:
-
客户端发起请求:
- 客户端(如工作站)通过 NFS 协议向服务器请求访问共享的文件系统。
-
NFS 守护进程:
- 服务器端运行 NFS 守护进程(如
nfsd
),负责处理 NFS 请求。 nfsd
负责实际的文件系统操作,读取或写入文件等。
- 服务器端运行 NFS 守护进程(如
-
RPC(远程过程调用):
- NFS 使用 RPC 来处理远程调用。客户端通过
rpcbind
服务查找 NFS 服务的端口号。
- NFS 使用 RPC 来处理远程调用。客户端通过
-
挂载过程:
- 客户端发送挂载请求到服务器的
mountd
守护进程。 mountd
检查/etc/exports
文件中的配置,确定是否允许客户端挂载,并返回一个文件句柄(File Handle),客户端可以使用这个句柄来访问文件系统。
- 客户端发送挂载请求到服务器的
-
文件访问:
- 客户端使用文件句柄直接与
nfsd
交互,进行文件操作(如读、写、创建、删除等)。
- 客户端使用文件句柄直接与
-
文件锁定:
- 当客户端需要锁定文件时,会通过
lockd
守护进程来管理文件锁定,防止多个客户端同时修改文件。
- 当客户端需要锁定文件时,会通过
-
响应:
- 服务器通过 NFS 协议将响应(如文件内容、操作成功或失败的信息)发送回客户端。