linux基础之NFS

一、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

 

posted @ 2018-01-04 10:53  帅气的搬砖工  阅读(1682)  评论(0编辑  收藏  举报