NFS 网络文件系统的原理和配置

目录

NFS 介绍

NFS服务原理:

通信流程:

NFS 配置

安装:

配置文件:

客户端上测试服务端的连通情况

挂载

开机自挂载设置

配置文件的权限进一步解释:

exportfs 服务端重载配置文件:

mount  查看挂载的信息:


NFS 介绍

NFS = network file system        网络文件系统

基于RPC协议,RPC = remote procedure call  。 RPC存在的意义在于解决NFS服务端和客户端通信多端口并且端口不固定的问题。因为NFS的服务端和客户端通信的时候,并不是只有一个端口,且端口不固定,因此需要一个中心,来记录这些不固定的端口。

 场景架构:

A机器分享数据出来,B和C分别去挂载A上面共享的数据目录。

这样 A B C 3台机的读取到的都是一样的,各自的写入别的机也都能看到。

NFS 网络文件系统的原理和配置_第1张图片

NFS服务原理:

NFS服务启动的时候,会将端口信息注册到RPC,会先启动一个 rpcbind 服务

客户端运行NFS需要先启动一个rpc服务,客户端无须启动NFS服务。

服务端运行NFS也需要先启动一个rpc服务,然后启动NFS服务。

RPC服务:

用于获取所有NFS服务的端口,PID信息,互相的IP等,是NFS服务重要的信息中转站。会先于NFS启动。

通信流程:

用户在nfs客户端发出存取文件请求,向NFS服务端的RPC 的111端口发出存取的询问请求,NFS服务端找到对应端口以后通知 nfs客户端的rpc服务 ,nfs客户端获取到正确的接口并和NFS服务端建立连接。

NFS 网络文件系统的原理和配置_第2张图片

NFS 配置

安装:

yum install -y nfs-utils     安装(客户端、服务端命令一致,都需安装)

可见rpc会被自动安装上

配置文件:

vim /etc/exports

/home/nfstestdir        # 设置服务端需要共享的目录

192.168.222.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

这里IP用掩码的写法共享出去的就是一个网段,则222网段下的都可以进行挂载。

rw 指read和write   读写模式

ro 指read only  只读模式

sync 指同步模式,保证内存数据实时写入磁盘。实时性强,IO速度会稍慢。

async 非同步模式,当对IO速度要求高时,这个可以提高NFS 的IO读写速度。

all_squash 指所有用户挂载完以后都映射到 用户uid=1000的身份,这个可以自己去设置。客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户。

root_squash  客户端上root受到约束,被限定为某个普通用户。

anonuid / anongid 和上面选项搭配使用 ,定义为限定用户的uid和gid

no_root_squash   客户挂载NFS共享目录后,root用户不受约束,权限很大。

mkdir /home/nfstestdir

systemctl start nfs-server   #启动,以前的版本也有直接叫 nfs 的

systemctl enable nfs-server   #设开机启动

需要关闭一下防护墙

服务正常以后会有的进程

NFS 网络文件系统的原理和配置_第3张图片

客户端上测试服务端的连通情况

showmount  -e   服务端IP   

服务未注册情况

服务端在网段内的注册情况和共享的目录

查询出这个信息则说明服务端是可以被挂载的情况了

挂载

mount   -t   nfs   服务端ip:/服务端共享路径     /客户端挂载路径

NFS 网络文件系统的原理和配置_第4张图片

-o + 挂载可加选项参数:

-onolock 不加锁

-oro 修改为只读(在已有了配置文件不同设定的情况下也能进行修改)

-oremount,ro     对于已挂载的,remount可修改某参数重新挂载为只读

-oremount,nfsserver=4    修改为版本4(不支持的版本会报错参数不可用)

开机自挂载设置

/etc/fastab 的方式开机挂载

测试开机挂载设置成功没有不需要重启服务器的,只需要如下:

umount  挂载点

df  -h    检查挂载点还有没有

mount  -a  

df  -h   检查挂载点还有没有

配置文件的权限进一步解释:

如 按all_squash,anonuid=1000,anongid=1000  形式配置的

则从客户端上root用户在挂载的位置看新增的文件属组属主会显示为

从服务端上用户在共享位置新增的文件属组属主会正常解析为对应ID的用户名、组名

exportfs 服务端重载配置文件:

为了不影响客户端可能在进行写操作,修改了配置文件以后,可以不通过重启服务生效。

exportfs  -arv  

exportfs其他参数:

-a 全部挂载或卸载

-r  重新挂载

-v  显示设为共享的目录

-u  卸载某一个目录

mount  查看挂载的信息:

客户端 mount 

可以看到已挂载的信息:nfs版本,rw,协议等

你可能感兴趣的:(linux,基础知识,linux)