centos7 安装网络文件共享NFS详细过程

网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

多个服务器之间需要共享文件,通过NFS服务共享是一个简单的方法。

  • 提供透明文件访问以及文件传输;
  • 容易扩充新的资源或软件,不需要改变现有的工作环境;
  • 高性能,可灵活配置。
1. 环境准备

关闭服务端和客户端的防火墙和selinux,这里的服务端指需要共享出去的存储服务器。准备了三台虚拟机,系统为centos7。

ip 角色
192.168.213.4 客户端
192.168.213.5 服务器
192.168.213.6 客户端

关闭防火墙:

临时关闭防火墙:

bash 复制代码
systemctl stop firewalld.service

永久关闭防火墙:

bash 复制代码
systemctl disable firewalld.service

关闭SELinux:

临时关闭SELinux:

bash 复制代码
setenforce 0

永久关闭SELinux:

bash 复制代码
vim /etc/selinux/config

将文件中的 SELINUX=enforcing 改为 SELINUX=disabled。保存并关闭文件。然后重启系统:

bash 复制代码
reboot

重启后,SELinux将被永久关闭。可以使用以下命令检查SELinux状态:

bash 复制代码
sestatus -v

如果显示 SELinux status: disabled,则表示SELinux已关闭。

2.服务端配置

2.1 安装需要的软件包(使用yum)

bash 复制代码
yum install -y rpc-bind nfs-utils

2.2 创建想要共享的文件夹,例如 /data

bash 复制代码
mkdir /data

2.3 把共享目录的权限设定为所有用户都可读可写权限

bash 复制代码
chmod -R 777 /data

2.4 修改NFS服务的主配置文件 /etc/exports

bash 复制代码
vim /etc/exports

#添加如下规则

bash 复制代码
/data *(rw,sync)

规则说明:/datas代表共享的文件,*代表所有主机都可以访问,rw指读和写的权限,sync表明使用同步方式。 其他更为精确的可选配置如下:

2.5 开启NFS服务

bash 复制代码
systemctl start nfs

设置开机启动:

bash 复制代码
systemctl enable nfs

如果想共享服务器的某个硬盘,只需要将/datas目录使用mount命令挂载到该硬盘即可。 查看硬盘和挂载情况的命令为:

bash 复制代码
df -h

例如将硬盘设备/dev/sdd 挂载到/datas

bash 复制代码
mount /dev/sdd /datas
3.客户端配置

3.1 关闭防火墙和selinux

同上

3.2 安装NFS

同上

3.3 将服务端的共享目录挂载到本机的 /data目录上,我这里的ip是IB卡的的ip,没有IB驱动的可以直接使用内网ip,/data是自定义的目录。

bash 复制代码
mount -t nfs 192.168.213.5:/data /data

至此,客户端配置完毕,访问/data-nfs目录就相当于访问服务端的/datas目录

以上配置重启机器后会出问题,建议设置开机启动执行。

打开/etc/fstab文件:

bash 复制代码
sudo vi /etc/fstab

在文件的末尾添加以下行:

bash 复制代码
192.168.213.5:/data /data nfs defaults 0 0

这行代码指定了NFS共享的挂载信息,包括NFS服务器的IP地址、共享目录、挂载点、文件系统类型以及选项。

保存并关闭文件。

执行以下命令重新加载/etc/fstab文件:

bash 复制代码
sudo mount -a

这将根据/etc/fstab文件中的配置自动挂载所有条目。已经成功设置了开机启动执行mount -t nfs 192.168.213.5:/data /data。在下一次服务器重启后,该条目将自动生效。

相关推荐
HaiLang_IT2 分钟前
网络安全与执法专业【精选选题表】优质选题参考
安全·web安全·php
爱学习的阿磊3 分钟前
C++中的策略模式应用
开发语言·c++·算法
郝学胜-神的一滴4 分钟前
Python中的bisect模块:优雅处理有序序列的艺术
开发语言·数据结构·python·程序人生·算法
Remember_9937 分钟前
Spring 事务深度解析:实现方式、隔离级别与传播机制全攻略
java·开发语言·数据库·后端·spring·leetcode·oracle
看得见的风10 分钟前
Claude Code + CCR配置(含OpenRouter、GLM、Kimi Coding Plan)
开发语言
L_090711 分钟前
【Linux】进程状态
linux·开发语言·c++
roman_日积跬步-终至千里11 分钟前
【Java并发】用 JMM 与 Happens-Before 解决多线程可见性与有序性问题
java·开发语言·spring
2401_8384725112 分钟前
C++异常处理最佳实践
开发语言·c++·算法
m0_7369191016 分钟前
C++中的类型标签分发
开发语言·c++·算法
未来之窗软件服务19 分钟前
自己平台接入国家网络身份认证公共服务接入
网络·仙盟创梦ide·东方仙盟