一、基本概念
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
二、NFS基本配置
【服务端】:
yum install nfs-utils -y
##安装nfs-utils软件
systemctl start nfs
firewall-cmd --list-all
##查看火墙列表
firewall-cmd --permanent --add-service=nfs
##把nfs添加进火墙允许服务列表
firewall-cmd --permanent --add-service=rpc-bind
##nfs服务端口
firewall-cmd --permanent --add-service=mountd
##允许挂载服务
firewall-cmd --reload
vim /etc/exports
1 /westos *(ro,sync) ##将/westos共享给所有人,以只读的方式,sync表示为实时同步更新到内存与硬盘中
exportfs -rv
##nfs服务只能用此命令刷新
【客户端】: 172.25.254.93
yum install nfs-utils -y
showmount -e 172.25.254.173
##查看服务端共享出来的文件
mount 172.25.254.111:/westos /mnt
##nfs文件系统只能以挂载的方式查看
三、客户端自动挂载与卸载的实现
【客户端】: 172.25.254.93
yum install autofs.x86_64 -y
##注意系统版本号安装对应的软件
看到/net目录已经显示出来(开启服务之前不显示)
systemctl start autofs
测试:
用ls命令看到这个/net目录中什么也没有,但是可以直接进172.25.254.173,看到我们共享的目录/westos
进入共享目录后,df查看已经自动挂载
退出共享目录后,默认经过300秒后自动卸载
修改自动卸载的时间
vim /etc/autofs.conf ##设定自动卸载需要的时间为3秒
15 timeout = 3
systemctl restart autofs
测试:
退出共享目录后,3秒后自动卸载
四、客户端设定指定目录自动挂载
vim /etc/auto.master
8 /opt /etc/auto.westos #/opt表示挂载点的上层目录,/etc/auto.westos 为子配置文件
vim /etc/auto.westos
1 westos 172.25.254.173:/westos #westos表示最终挂载点 ,后接挂载设备
systemctl restart autofs
测试:
cd /opt/westos
df
客户端挂载参数的修改:
1.修改挂载时的版本
vim /etc/auto.westos
1 westos -vers=3 172.25.254.111:/westos ##nfs挂载版本向下兼容默认是4.0
systemctl restart autofs
mount查看
2.修改挂载时的NFS默认行为
hard: 默认(如果NFS请求超时,将无限期尝试)
soft:(如果NFS请求超时,三次尝试后返回错误)
vim /etc/auto.westos
1 westos -vers=3,soft 172.25.254.111:/westos ##设定模式soft
mount查看
五、设定可挂载主机的权限
给/westos目录满权限方便测试
1.设定指定客户端可写
【服务端】: 172.25.254.173
vim /etc/exports
1 /westos *(ro,sync) 172.25.254.211(rw,sync) ##表示允许172.25.254.93客户端读写挂载
exportfs -rv
测试:
在客户端可以创建文件,但是文件身份默认是匿名用户nfsnobody
2.设定客户端新建文件的身份为自己挂载时的身份
vim /etc/exports
1 /westos *(ro,sync) 172.25.254.211(rw,sync,no_root_squash) #表示客户端以什么用户所身份进行挂载,创建的文件身份就是谁
exportfs -rv
测试:
在客户端可以创建文件,文件身份是自己挂载时的身份
3.指定客户端新建文件身份
vim /etc/exports
1 /westos *(ro,sync) 172.25.254.211(rw,sync,anonuid=1002,anongid=1001)
exportfs -rv
测试:
在客户端可以创建文件,文件身份是服务端给定的