CentOS NFS共享目录

最近遇到一个问题,一台CentOS7应用服务器上的服务需要访问另外一台CentOS7应用服务器上的文件,然后传输文件给第三方。想到windows系统之间有文件共享的功能,Linux系统之间是否也有类似的文件共享功能呢?

NFS

NFS 代表Network File System,即网络文件系统。它是一种分布式文件系统协议,允许一个系统在网络上与他人共享目录和文件。通过NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,这极大地促进了文件共享和协作。

NFS最初由Sun Microsystems开发,并迅速成为了Unix系统间实现文件共享的标准。随着时间的发展,它也被移植到了其他操作系统上,包括Windows、Linux以及各种版本的Unix。

使用NFS有几个主要优点:

易于文件共享:用户可以通过网络轻松访问和使用存储在不同计算机上的文件。

简化存储管理:通过集中存储数据,NFS减少了对多个副本的需求,从而简化了存储管理。

提高效率:NFS允许用户同时从多个客户端访问相同的文件,提高了工作效率。

NFS的工作原理涉及服务器和客户端之间的交互。服务器端设置并导出文件系统供网络中的其他机器访问,而客户端则挂载这些远程文件系统到本地文件树中,使得它们看起来就像本地文件一样。

NFS经历了几个版本的发展,目前最常见的是NFSv3和NFSv4,后者提供了改进的安全性和性能。

服务端

检查是否安装nfs-utils、rpcbind

复制代码
rpm -qa|grep nfs-utils

root@app-0002 temp\]# rpm -qa\|grep nfs-utils nfs-utils-1.3.0-0.54.el7.x86_64 rpm -qa | grep rpcbind \[root@app-0002 temp\]# rpm -qa \| grep rpcbind rpcbind-0.2.0-44.el7.x86_64 没有,则手动安装 sudo yum install -y nfs-utils rpcbind ### 启动rpcbind sudo systemctl start rpcbind#开机自启sudo systemctl enable rpcbind ### 启动nfs-server​​​​​​​ sudo systemctl start nfs-server#开机自启sudo systemctl enable nfs-server 创建目录/disk01/temp(如果已有目录,则不需要创建) sudo mkdir -p /disk01/temp ### 设置目录权限​​​​​​​ #至少644 所有用户可读sudo chmod 755 /disk01/temp #可选sudo chown nobody:nobody /disk01/temp ### 编辑/etc/exports文件,添加共享配置​​​​​​​ vi /etc/exports#文件最下面添加/disk01/temp 10.96.41.0/24(rw,sync,no_root_squash,no_subtree_check) 10.96.41.0/24:允许访问的客户端ip(10.96.41.1\~254) (rw,sync,no_root_squash,no_subtree_check):挂在选项(读写、同步写入、允许客户端以root用户身份访问共享目录、禁用子树选项等) 或者指定具体的ip,多个ip之间空格隔开 /disk01/temp 10.96.41.98(rw,sync,no_root_squash,no_subtree_check) 10.96.41.99(rw,sync,no_root_squash,no_subtree_check) ### 应用NFS配置 sudo exportfs -ra ### 验证共享是否生效 sudo exportfs -v ![图片](https://i-blog.csdnimg.cn/img_convert/dba299e9787fc62291b246d01772bcf0.png) ## **客户端** ### 检查是否安装nfs-utils rpm -qa|grep nfs-utils \[root@app-0002 temp\]# rpm -qa\|grep nfs-utils nfs-utils-1.3.0-0.54.el7.x86_64 没有,则手动安装 sudo yum install -y nfs-utils ### 创建目录/disk01/temp sudo mkdir -p /disk01/temp ### 挂载共享目录 sudo mount 10.96.41.62:/disk01/temp /disk01/temp mount会根据设备的文件系统类型(如ext4、xfs、nfs)自动挂载,也可以使用-t \<文件系统类型\> sudo mount -t nfs 10.96.41.62:/disk01/temp /disk01/temp 将10.96.41.62:/disk01/temp目录挂载在本机的/disk01/temp目录 ### 验证挂载 df -h ![图片](https://i-blog.csdnimg.cn/img_convert/9f26bb4256f7dfa1873176b248586741.png) ### 设置开机自动挂载 **注意**:不设置的话,服务器重启后,会发现挂载目录没有了,需要重新挂载。 vim /etc/fstab 最后一行下面加入 10.96.41.62:/disk01/temp /disk01/temp nfs defaults 0 0 测试写的配置是否有问题 mount -a 最后,在客户端或者服务端目录下创建一个测试文件,看对方是否能看到,然后删除测试文件。 ## **问题** ### 1、检查客户端 rpm -qa\|grep nfs mount \| grep /disk01/temp ![图片](https://i-blog.csdnimg.cn/img_convert/d0a8b6e79e398285b3e25e6ee3486be6.png) ### 2、卸载客户端挂载,重新挂载 sudo umount /disk01/temp sudo mount -t nfs 10.96.41.62:/disk01/temp /disk01/temp ### 3、设置服务端共享目录权限 sudo chmod 755 /disk01/temp (至少644 所有用户可读)

相关推荐
原神启动16 分钟前
Docker 场景化作业:生产环境容器操作实训
运维·docker·容器
云老大TG:@yunlaoda36010 分钟前
如何通过华为云国际站代理商CSBS进行备份策略设置?
运维·数据库·华为云
老王熬夜敲代码1 小时前
解决IP不够用的问题
linux·网络·笔记
码里法1 小时前
centos安装nginx并配置https完整版
nginx·https·centos
zly35001 小时前
linux查看正在运行的nginx的当前工作目录(webroot)
linux·运维·nginx
QT 小鲜肉1 小时前
【Linux命令大全】001.文件管理之file命令(实操篇)
linux·运维·前端·网络·chrome·笔记
呼啦啦呼啦啦啦啦啦啦1 小时前
docker制作镜像的两种方式(保姆级教学)
运维·docker·容器
Asurplus1 小时前
Centos7安装Git环境
git·centos·yum·dnf
问道飞鱼2 小时前
【Linux知识】Linux 虚拟机磁盘扩缩容操作指南(按文件系统分类)
linux·运维·服务器·磁盘扩缩容
egoist20232 小时前
【Linux仓库】超越命令行用户:手写C语言Shell解释器,解密Bash背后的进程创建(附源码)
linux·c语言·bash·xshell·环境变量·命令行参数·内建命令