一、NFS简介
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。
在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。一般被用于linux to linux间
的文件共享。
二、NFS安装
1、查看是否安装
使用命令rpm -qa | grep nfs-*查看系统是否已经安装有NFS软件,如显示如下图则证明已经安装NFS,若执行命令无返回值则证明尚未安装NFS。
2、NFS安装
直接yum安装比较简单直接一条命令搞定。命令:yum install -y nfs-utils rpcbind。
3、启动命令
启动服务:/etc/init.d/rpcbind start,/etc/init.d/nfs start
开机自启动:chkconfig rpcbind on,chkconfig nfs on
三、配置服务
1、服务端配置
进入配置文件vim /etc/exports
配置一:/test *(ro) --任何ip地址都能访问,但是权限为只读。
配置二:/test 192.168.1.0/24(ro) --指定网段的地址都能访问,但是权限为只读。
配置三:/test 192.168.1.11(ro) 192.168.1.12(rw) --第一个ip地址拥有只读权限,第二个ip地址拥有读写权限。
2、客户端访问
mount 192.168.1.82:/test /mnt --客户端要访问nfs,就是远程挂载过来。
3、常见参数
rw:是可读写
ro:是只读
sync:同步模式,表示内存中的数据时时刻刻写入磁盘(async:非同步模式,内存中数据定期存入磁盘)
all_squash:表示不管使用NFS的用户是谁,其身份都会被限定为一个指定的普通用户身份。
no_root_squash:其他客户端主机的root用户对该目录有至高权限控制。
root_squash:表示其他客户端主机的root用户对该目录有普通用户权限控制。
anonuid/anongid:要和root_squash或all_squash选项一同使用,表示指定使用NFS的用户被限定后的
uid和gid,前提是本图片服务器的/etc/passwd中存在这一的uid和gid。
no_subtree_check:不检查父目录的权限
四、常见问题
1、客户端挂载后,挂载的目录权限还是原来的权限吗?
答:不是,它的权限是nfs服务端的挂载目录的权限。
2、客户端访问挂载的目录,它是以什么样的身份去访问,这个身份用户是客户端的还是服务端的?
答:nfs客户端默认是以nfsnobody的身份去访问,这个身份是服务端的,哪怕你客户端使用root用户,访问时还是用的nfsnobody的身份。
3、我把nfs服务端的ro参数换成rw,客户端挂载后能写吗?
答:还是不能写,因为服务配置rw只表示服务允许写,但系统权限还是不允许。
解决方案:
案一:在nfs服务端chmod o+w /test,给一个写权限,客户端重新挂载,再写,也可以看到写的文件的owner和group为nfsnobody
案二:改客户端访问的身份
vim /etc/exports
/test *(rw,no_root_squash) --加一个no_root_squash表示让客户端以root的身份来访问服务端
vim /etc/exports
/test *(rw,anonuid=501,anongid=501) --指定客户端以501这个uid和gid的身份来访问我
4、showmount -e 10.1.1.10时,户端报“clnt_create: RPC: Port mapper failure - Unable to receive: errno 111 (Connection refused) RPC remote produre call”错误?
答:导致该错误是由于rpcbind服务未开启。远程程序调用,无法使用的端口111。因此使用/etc/init.d/rpcbind start命令即可。
五、简化挂载
1、方法
法一:/etc/fstab --开机自动挂载。若服务端关机,而客户端没有做umount操作,那么你的挂载命令会被卡死。
法二:/etc/rc.local --开机自动挂载。若服务端关机,而客户端没有做umount操作,那么你的挂载命令会被卡死。
法三:做别名 · --在客户端做别名,客户端不需要每次操作都输入长长的命令,使操作更简单。
法四:autofs --在使用场景中比较常见。
2、实现
假设需要把服务端(192.168.1.82)的/share/soft目录挂载到客户端的/share/soft目录。
客户端步骤:
步骤一:在客户端建立share目录。mkdir /share
步骤二:修改配置文件。进入配置文件:vim /etc/auto.master,增加/share /etc/auto.share
步骤三:建立配置文件并增加配置。手动建立:vim /etc/auto.share,增加 soft - 10.1.1.10:/share/soft
步骤四:重启服务。重启命令/etc/init.d/autofs restart