Centos离线部署nfs操作

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
相关推荐
sxstj42 分钟前
Ubuntu 完整安装并启用 Flatpak 教程
linux·运维·ubuntu
国际云,接待1 小时前
Nginx 后面接负载均衡,502/504 到底该先查哪里?
运维·nginx·负载均衡
天疆说1 小时前
Ubuntu 26.04 下 Intel Meteor Lake 核显 + NPU 驱动配置与 PyTorch NPU 推理实测
linux·pytorch·ubuntu
mounter6252 小时前
突破单点限制:BPF 多跟踪点高效附加机制与新 ftrace 架构解析
linux·ebpf·linux kernel·kernel·ftrace
刘某的Cloud2 小时前
Galera Cluster部署 mariadb 节点down机,log sequence number恢复
linux·运维·数据库·负载均衡·mariadb·集群·高可用
小此方2 小时前
Re:Linux系统篇(五十四)线程篇 · 七:互斥锁的底层实现原理:从硬件上下文、原子交换指令(Swap)到并发封装实战
linux·运维·驱动开发
郭涤生2 小时前
rootfs 详解与裁剪优化记录
linux·c++·bsp
铁锚3 小时前
解决Ubuntu执行sudo时 unable to resolve host 报错问题
linux·数据库·ubuntu
二宝哥3 小时前
CentOS 7.9 离线安装 Nginx 并配置openssl1.1.1
linux·nginx·centos
程序员老陆4 小时前
说一说FFmpeg6在Linux平台的编译
linux·运维·服务器·ffmpeg