一、NFS相关概念

  • nfs是网络文件系统,它允许网络中的计算机通过tcp/ip网络资源共享,在nfs的应用中,本地nfs的客户端应用可以透明的读写于远程nfs服务器上的文件,就像访问本地文件一样。
  • showmount命令查询“mountd”守护进程,以显示NFS服务器加载的信息。
showmount(选项)(参数)
showmount -d NFS服务器的ip地址   ##仅显示已被NFS客户端加载的目录;
showmount -e NFS服务器的ip地址   ##显示NFS服务器上所有的共享目录。

二、NFS部署

实验环境:关闭防火墙
服务端:172.25.254.206
<1>安装并开启NFS服务

[root@localhost ~]# yum install nfs-utils -y
[root@localhost ~]# systemctl start nfs-utils.service

<2>设置共享目录

[root@localhost ~]# mkdir /nfsdir

<3>修改配置

[root@localhost ~]# vim /etc/exports
/nfsdir  *(sync) 172.25.254.6(rw,sync)  ##目录共享所有用户同步,172.25.254.6用户读写同步
[root@localhost ~]# exportfs -rv       ##刷新配置,使配置生效

注意:配置文件内容也可如下

/nfsdir  *(sync)                        ##/nfsdir目录共享给所有人并同步
/nfsdir  172.25.254.0/24(sync)          ##目录共享网段同步

<4>客户端(172.25.254.6)挂载使用
临时挂载:

[root@foundation6 ~]# showmount -e 172.25.254.206   ##显示NFS服务器上所有的共享目录
[root@foundation6 ~]# mount 172.25.254.206:/nfsdir /mnt

示图:

1>显示NFS服务器上所有的共享目录

nfs日志在哪 nfs怎么保存进度_NFS


2>客户端挂载共享目录

nfs日志在哪 nfs怎么保存进度_客户端_02


3>测试:客户端172.25.254.6访问目录并建立文件,可写,但无权限

nfs日志在哪 nfs怎么保存进度_linux_03


4>测试:其他客户端访问目录并建立文件,只读,不可写

nfs日志在哪 nfs怎么保存进度_运维_04

三、NFS自动挂载

客户端:
<1>安装并启动服务

[root@foundation6 ~]# yum install autofs -y
[root@foundation6 ~]# systemctl start autofs

<2>修改释放挂载资源的时间为5s

[root@foundation6 ~]# vim /etc/autofs.conf
timeout = 5 
[root@foundation6 ~]# systemctl restart autofs

nfs日志在哪 nfs怎么保存进度_NFS_05


注意:配置文件查找

nfs日志在哪 nfs怎么保存进度_客户端_06


测试:

1>访问服务端共享目录,自动挂载

nfs日志在哪 nfs怎么保存进度_运维_07


2>退出到/目录下,等待5s后自动卸载

nfs日志在哪 nfs怎么保存进度_运维_08

四、自动挂载到自定义目录

客户端:
实验一:只读挂载

[root@foundation6 ~]# vim /etc/auto.master
  7 /misc   /etc/auto.misc
  8 /mnt    /etc/auto.mnt      ##设定文件挂载目录位于/mnt之下
[root@foundation6 ~]# vim /etc/auto.mnt
nfsdir  -ro  172.25.254.206:/nfsdir      ##设定只读挂载到/mnt/nfsdir
[root@foundation6 ~]# systemctl restart autofs.service

示图:

<1>指定最终挂载位置和挂载参数文件

nfs日志在哪 nfs怎么保存进度_NFS_09


<2>mount命令查看共享目录属性及版本号

nfs日志在哪 nfs怎么保存进度_linux_10


<3>测试:挂载位置为/mnt/nfsdir

nfs日志在哪 nfs怎么保存进度_运维_11


实验二:读写挂载并版本号

客户端:

[root@foundation6 ~]# vim /etc/auto.mnt
nfsdir  -rw,vers=3  172.25.254.206:/nfsdir   ##设定读写挂载到/mnt/nfsdir,版本号3
[root@foundation6 ~]# systemctl restart autofs.service

服务端:
注意:客户端虽然可以挂载成功,但touch文件的时候显示Permission denied权限不够,添加权限

[root@localhost ~]# chmod 777 /nfsdir

客户端测试:

<1>客户端可创建文件

nfs日志在哪 nfs怎么保存进度_NFS_12


<2>进入/mnt/nfsdir下,mount查看挂载显示已经只读挂载,版本为3

nfs日志在哪 nfs怎么保存进度_运维_13


nfs日志在哪 nfs怎么保存进度_NFS_14


实验三:允许客户端以root身份执行

服务端:

[root@localhost ~]# vim /etc/exports
/nfsdir         *(sync) 172.25.254.6(rw,sync,no_root_squash)
[root@localhost ~]# exportfs -rv

客户端测试:

nfs日志在哪 nfs怎么保存进度_运维_15


实验四:允许客户端以uid为1000的用户执行读写操作

服务端:

[root@localhost ~]# vim /etc/exports
/nfsdir         *(sync) 172.25.254.6(rw,sync,anonuid=1000)
[root@localhost ~]# exportfs -rv

客户端测试:

nfs日志在哪 nfs怎么保存进度_NFS_16

实验五:客户端新建的文件归属uid为1000的用户且gid为1000的用户组
服务端:

[root@localhost ~]# vim /etc/exports
/nfsdir         *(sync) 172.25.254.6(rw,sync,anonuid=1000,anongid=1000)
[root@localhost ~]# exportfs -rv

客户端测试:

nfs日志在哪 nfs怎么保存进度_客户端_17