NFS文件系统
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
nfs的安装以及配置
服务端:
安装
yum install nfs-utils -y
打开防火墙
firewall-cmd --permanent --add-service=nfs ##防火墙添加nfs服务
firewall-cmd --permanent --add-service=rpc-bind ##防火墙添加 rpc-bind服务,给客户端动态分配端口
firewall-cmd --permanent --add-service=mountd ##防火墙添加挂载服务
把这里少加了一个服务,rpc-bind,否则客户端看不到共享目录。
设置共享目录:
vim /etc/exports
/ljz | * | ro | sync |
---|---|---|---|
共享目录 | 允许所有人 | 只读 | 资料同步写入到内存和硬盘中 |
启动nfs
systemctl start nfs
客户端:
yum install nfs-utils -y
showmount -e 172.25.254.101
mount 172.25.254.101:/ljz /mnt
在这里我们发现在客户端可以挂载上服务短的共享目录,则我们的nfs文件共享成功了
autofs
nfs相比cifs有一个很强大的功能,自动挂载与自动卸载,这样就可以解决挂载后不进行操作但占用系统资源的弊端
在这里我们需要下载一个插件,autofs
测试:
cd /mnt
cd 172.25.254.101
df df查看挂载信息
我们可以轻易发现只要进入指定目录就可以自动挂载,当然这里的101ip是我的服务器主机ip
但是我们前面说了autofs可以让nfs做到自动挂载和自动卸载,但是我们却没有看到自动卸载,这是因为我们要通过配置配置文件来设置当我们退出共享目录后多少秒自动卸载
autofs的配置文件为/etc/autofs.conf
需要注意的是autofs的主配置文件在rhel7.0版本为/etc/sysconfig/autofs
而7.0以上版本则就是/etc/autofs.conf
在我用红色方框全主的地方就是自动卸载的时间,默认为300秒,但是为了实验结果明了,我们将其设置为3秒
我们通过date的对比发现确实自动卸载了,这样就避免了因为共享忘记卸载后一直占用系统资源的缺点。
需要注意的是每次修改过配置文件后须得重启服务
修改默认目录
我们在进行挂载时其默认挂载目录为/net/172.25.254.101/ljz,那么我们会觉得这个挂载目录有长,不太符合我们平时挂载时的习惯,那么我们可以通过修改配置文件来自定义挂载目录
在这里我们需要修改两个文件
/etc/auto.master
还有一个是由auto.master来自定义的
[root@client ~]# cat /etc/auto.master
#
# Sample auto.master file
# This is a 'master' automounter map and it has the following format:
# mount-point [map-type[,format]:]map [options]
# For details of the format look at auto.master(5).
#
/misc /etc/auto.misc
/mnt /etc/auto.ljz ##第二个是不存在的,可以任意书写
vim /etc/auto.ljz
[root@client ~]# cat /etc/auto.ljz
ljz 172.25.254.101:/ljz ##中间也可以添加参数,如 -ro -rw 不写则默认rw
测试:
重启autofs服务
则默认挂载目录发生改变
cd /mnt
cd ljz
ls
nfs的一些挂载参数设置
在前面我们设置过/etc/exports的挂载设置,里面也提到过一些参数,那么在这里对参数做一个详细的介绍
例如:
/ljz *(ro,sync) 172.25.254.102(rw,sync,anonuid=1001,anongid=1000)
##所有人对文件只读 102主机读写,写操作时的用户身份不是默认的nfsnobady,而是1001,1000
注意,若出现客户端无法进行写操作,那么可能性有:
1.没有对挂载信息进行刷新exportfs -rv
2.挂载的本地文件权限不足,没有对其他用开放写权限
3.防火墙
在这里也可以设置使用root用户身份来进行读写操作
172.25.254.59(rw,sync,no_root_squash)
在客户端/etc/auto.ljz
中加入参数-vers=3 soft -vers=3是指定nfs版本,因为现在使用的默认的是4.0的,但版本向下兼容,df后可通过mount查看
soft:如果nfs请求超时,三次尝试后返回错误。权衡数据完整新与提高客户端相应性。默认的是hard,将无限期重试
对于soft则需要手动挂载