帮助文档 > NFS (网络文件系统)

NFS (网络文件系统)

发布时间:2024-07-30 16:25

NFS (网络文件系统)

NFS(Network File System)是一种文件服务器,主要用于文件共享。NFS 可以让客户端将服务器的共享目录挂载到本地使用,就像访问本地分区一样,直接进行上传、下载和访问文件,非常方便。本章将介绍 NFS 的概念、组件安装、进程管理、服务配置及开机自动挂载等内容。NFS 分为服务器端(server)和客户端(client),由 SUN 公司于 1984 年开发,是一种 UNIX 表示层协议(presentation layer protocol),允许网络中的计算机通过 TCP/IP 协议共享资源。

1.NFS服务的基本概念

NFS 服务可以将远程 Linux 系统上的共享文件资源挂载到本地主机目录上,使本地主机可以像访问自身资源一样读写远程 Linux 系统上的共享文件。NFS 主要在 Linux 服务器和 Linux 客户端之间使用,采用的是 C/S 架构,由客户端程序和服务器端程序组成。服务器端程序向客户端计算机提供文件系统访问,客户端程序则从 NFS 服务器读取共享文件系统。

2.NFS工作机制

NFS 服务并非独立工作,它依赖于 RPC 服务来实现网络文件系统共享。RPC(Remote Procedure Call Protocol,远程过程调用协议)是一种通过网络请求远程计算机程序服务的协议,不需要了解底层网络技术。

3.RPC服务的作用

NFS 服务通过网络进行服务器端与客户端之间的数据传输。NFS 的固定端口号是 2049,但由于文件系统的复杂性,NFS还会启动额外的随机端口来传输数据。客户端必须知道服务器端的相关端口号才能建立连接并进行数据传输。RPC 服务统一管理 NFS 端口,将端口信息通知给客户端,客户端就可以与NFS服务建立连接。

4.NFS工作原理

首先,服务器端启动RPC服务并开启 111 端口。然后,服务器端启动NFS服务并向RPC注册端口信息。接着,客户端启动RPC,向服务器端的RPC服务请求NFS端口信息。服务器端的RPC服务将NFS端口信息反馈给客户端。最后,客户端通过获取的NFS端口与服务器端的NFS建立连接并进行数据传输。

5.NFS服务的优缺点

优点:
①NFS配置简单,部署方便,数据可靠,服务稳定,能满足中小企业的需求。
②NFS客户端可以像访问本地文件一样读写远端NFS服务器上的文件。
③NFS不仅适用于Linux与UNIX之间的文件共享,还可以实现Linux与Windows之间的文件共享。

缺点:
①NFS是运行在应用层的协议,监听的端口较多且不固定。
②NFS数据是明文传输,且不对数据进行校验。
③NFS存在单点故障,高可用性维护较复杂。
④客户端认证基于IP地址,没有用户名和密码,安全性较低(适用于内网)。

6.应用场景

NFS 的主要应用场景包括:
在大型网络中,用 NFS 服务器存放所有用户的 home 目录。
多台机器共享一台 CDROM 或其他设备。
工作站上登录时,总能访问相同的 home 目录。
不同客户端可在 NFS 上观看影视文件,节省本地空间。
客户端完成的工作数据可以备份保存到 NFS 服务器上用户自定义的路径下。

7.安装 NFS 组件

安装 NFS 组件的步骤如下:

①部署服务器端
- 查看 Linux Kernel 版本(如果版本小于 2.2,不支持 NFS 功能),关闭服务器端系统防火墙:
```bash
# 查看版本
uname -r
# 关闭防火墙
systemctl stop firewalld
```

②检查并安装 NFS 和 RPC 服务**
检查当前系统是否安装 NFS 和 RPC 服务,其中 RPC 服务对应安装包为 rpcbind,NFS 服务对应安装包为 nfs-utils:
```bash
# 查看安装
rpm -qa | grep rpcbind
rpm -qa | grep nfs-utils
# 若未安装,进行安装
yum -y install rpcbind
yum -y install nfs-utils
```

③启动服务
- 启动服务,注意顺序:
```bash
systemctl start rpcbind
systemctl start nfs-server
# 查看服务状态
systemctl status rpcbind
systemctl status nfs-server
```

④部署客户端
- 客户端安装与服务器端相同,先检查是否已安装 NFS 和 RPC,如果未安装,先安装相关组件。

8.NFS进程管理

在配置 NFS 时,经常使用的命令如下:

- **显示简明共享情况**
```bash
exportfs
```

- **挂载或卸载 /etc/exports 中的内容**
```bash
exportfs -a
```

- **显示详细共享情况**
```bash
exportfs -v
```

- **使 /etc/exports 配置生效**
```bash
exportfs -r
```

- **添加共享目录,且有只读权限**
```bash
exportfs *:/data/share
```

- **查看 NFS 端口及进程管理**
```bash
# 查看端口
netstat -antpu | grep 2049
# 启动 / 停止 / 重启 / 查看状态
systemctl start/stop/restart/status rpcbind
systemctl start/stop/restart/status nfs-server
```

本文导读

客户热线:13306992629

客户服务中心