NFS概述
NFS 是Network File System的缩写,即网络文件系统。
一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。
功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS 的基本原则是”容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。
RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。
**、在做文件共享之前,需要做一下准备工作
此实验环境使用的是:
Linux(客户端)-Linux(服务端)Linux系统为Redhat7
1)保证客户端机器和服务端机器网络的连通
服务端使用的ip为 192.168.247.128
Linux客户端ip为 192.168.247.130
2)确保安装了nfs-utils 软件包,(两台机器)
若没有安装,使用yum即可安装:yum仓库配置方法
3)为了消除防火墙对服务的影响,这里直接关闭防火墙 (两台机器)
4) 相关命令:
1、exportfs
如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs 命令来使改动立刻生效,该命令格式如下:
2、showmount
-a 显示已经于客户端连接上的目录信息
-e IP或者hostname 显示此IP地址分享出来的目录
最后注意两点,虽然通过权限设置可以让普通用户访问,但是挂载的时候默认情况下只有root可以去挂载,普通用户可以执行sudo。
1、Linux(客户端)—Linux(服务端)配置
1)服务端配置
至此,服务端配置完成
a 、服务按装完成后,直接启动nfs服务:
b、创建共享文件夹:
c、创建共享,编辑以下配置文件,此文件默认为空
此文件格式如下:
示例:
括号中的部分选项
ro只读
rw 只写
root_squash 当NFS客户端以root管理员身份访问时,映射为NFS服务器的匿名用户。
no_root_squash 当NFS客户端以root管理员身份访问时,映射为NFS服务器root管理员。
all_squash 无论NFS客户端使用什么账号访问,均映射为NFS服务器的匿名用户。
sync 同时将数据写入到内存与硬盘当中,保证数据不丢失。
async 先将数据保存到内存,然后再写入磁盘;这样效率更加高,但是可能会丢失数据。
d、编辑好此文件后,保存退出。并重启nfs服务
2)Linux客户端配置
查看服务端共享的目录
挂载共享目录
测试挂载
使用df命令查看挂载情况:
可以看到public目录已经挂载成功!
尝试在挂载的目录创建文件
提示只读文件系统!!!
因为我们在服务器共享的时候,给的权限为 ro 。(应该记得我说的是哪里把,不记得的话就往上看看)
解决方法:
将共享文件时的权限改为rw
改完后,再次尝试创建文件
依然报错,但是错误与上次不同。!!!
导致这个错误的原因是共享的文件夹对其他人没有写权限。
查看服务端共享文件夹的权限:
解决方法:
再一次创建文件:
创建成功!!!
至此,即可以在客户端操作共享文件夹里面的内容了
领取专属 10元无门槛券
私享最新 技术干货