centos离线部署nfs操作
文档信息
- 系统版本:CentOS 7.x
- 测试组件:nfs、rpcbind
- 测试节点:3 台物理机
- 测试环境:不能访问公网,集群内实现客户端向服务端文件同步
nfs文件同步,主要用于k8s环境,纯手写,感谢支持
一、测试环境说明
1. 节点规划
| 主机名 | ip | 角色 | 作用 |
|---|---|---|---|
| master-01 | 192.168.3.101 | NTP Client(客户端) | 挂载 NFS 共享目录,读写文件 |
| node-01 | 192.168.3.102 | NTP Client(客户端) | 挂载 NFS 共享目录,读写文件 |
| node-02 | 192.168.3.103 | NTP Master(服务端) | 提供 NFS 文件共享服务 |

二、服务端安装
回到192.168.3.103服务器中
-
在线安装
yum -y install nfs-utils rpcbind
-
离线安装
准备以下文件gssproxy-0.7.0-29.el7.x86_64.rpm
keyutils-1.5.8-3.el7.x86_64.rpm
libbasicobjects-0.1.1-32.el7.x86_64.rpm
libcollection-0.7.0-32.el7.x86_64.rpm
libevent-2.0.21-4.el7.x86_64.rpm
libini_config-1.3.1-32.el7.x86_64.rpm
libnfsidmap-0.25-19.el7.x86_64.rpm
libpath_utils-0.2.1-32.el7.x86_64.rpm
libref_array-0.1.5-32.el7.x86_64.rpm
libtirpc-0.2.4-0.16.el7.x86_64.rpm
libverto-libevent-0.2.5-4.el7.x86_64.rpm
nfs-utils-1.3.0-0.68.el7.x86_64.rpm
quota-4.01-19.el7.x86_64.rpm
quota-nls-4.01-19.el7.noarch.rpm
rpcbind-0.2.0-49.el7.x86_64.rpm
tcp_wrappers-7.6-77.el7.x86_64.rpm
离线运行
shell
yum localinstall *.rpm -y
# 实在报错再谨慎使用:rpm -ivh *.rpm --nodeps(尽量不带--force)
设置共享目录的权限
shell
[root@node-02 nfs]# mkdir -p /data/nfsdata
# K8s场景常用
[root@node-02 nfs]# chmod 755 /data/nfsdata
# 如果需要容器root写入,配合no_root_squash目录权限不需要特别宽松
配置 NFS,NFS 的默认配置文件在/etc/exports文件下,在该文件中添加下面的配置信息:
[root@node-02 nfs]# vi /etc/exports
#本项目可以用
/data/nfsdata 192.168.3.0/24(rw,sync,no_root_squash)
以下*代表所有IP都符合
/data/nfsdata *(rw,sync,no_root_squash)
启动rpcbind服务
[root@node-02 nfs]# systemctl start rpcbind.service
[root@node-02 nfs]# systemctl enable rpcbind
[root@node-02 nfs]# systemctl status rpcbind
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2026-07-22 23:32:57 CST; 15s ago
启动nfs
[root@node-02 nfs]# systemctl start nfs.service
[root@node-02 nfs]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@node-02 nfs]# systemctl status nfs
● nfs-server.service - NFS server and services
三、客户端安装
-
在线安装
yum -y install nfs-utils rpcbind
-
离线安装
准备以下文件gssproxy-0.7.0-29.el7.x86_64.rpm
keyutils-1.5.8-3.el7.x86_64.rpm
libbasicobjects-0.1.1-32.el7.x86_64.rpm
libcollection-0.7.0-32.el7.x86_64.rpm
libevent-2.0.21-4.el7.x86_64.rpm
libini_config-1.3.1-32.el7.x86_64.rpm
libnfsidmap-0.25-19.el7.x86_64.rpm
libpath_utils-0.2.1-32.el7.x86_64.rpm
libref_array-0.1.5-32.el7.x86_64.rpm
libtirpc-0.2.4-0.16.el7.x86_64.rpm
libverto-libevent-0.2.5-4.el7.x86_64.rpm
nfs-utils-1.3.0-0.68.el7.x86_64.rpm
quota-4.01-19.el7.x86_64.rpm
quota-nls-4.01-19.el7.noarch.rpm
rpcbind-0.2.0-49.el7.x86_64.rpm
tcp_wrappers-7.6-77.el7.x86_64.rpm
离线运行
shell
yum localinstall *.rpm -y
# 实在报错再谨慎使用:rpm -ivh *.rpm --nodeps(尽量不带--force)
NFS 客户端只依赖:rpcbind + nfs-utils(提供 mount.nfs 工具)
客户端不需要启动 nfs.service,启动了也没用,属于多余操作。
启动rpcbind服务
[root@node-01 nfs]# systemctl start rpcbind.service
[root@node-01 nfs]# systemctl enable rpcbind
[root@node-01 nfs]# systemctl status rpcbind
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2026-07-22 23:32:57 CST; 15s ago
四、挂载测试
在客户端运行
showmount -e 192.168.3.103
[root@node-01 nfs]# showmount -e 192.168.3.103
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
发现是防火墙的问题,所以关闭服务端的服务端口
# 放行nfs全套服务(包含rpc-bind、mountd)
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=rpc-bind --permanent
firewall-cmd --add-service=mountd --permanent
firewall-cmd --reload
# 查看放行规则
firewall-cmd --list-all
继续运行
[root@node-01 nfs]# showmount -e 192.168.3.103
Export list for 192.168.3.103:
/data/nfsdata 192.168.3.0/24
以上提示基本没问题了。
- 继续进行测试
在192.168.3.101 nfs的client上执行命令
[root@master-01 nfs]# mkdir -p /mnt/nfs-test
[root@master-01 nfs]# mount -t nfs 192.168.3.103:/data/nfsdata /mnt/nfs-test
[root@master-01 nfs]# touch /mnt/nfs-test/test.file
在192.168.3.103 nfs的master上执行命令
[root@node-02 nfs]# ls /data/nfsdata/
test.file
可以看出,已经挂载成功了
在192.168.3.101 nfs的client上执行命令
# 卸载
umount /mnt/nfs-test