一、nfs的介绍


nfs==network file system (网络文件系统),可以用于 网络文件共享 ,他允许网络中的计算机可以通过tcp/ip的网络共享资源。在NFS的应用中,服务端的NFS设置可以要挂载的客户端,给予其一定的权限;而客户端的应用可以通过挂载的形式挂载上远程NFS服务端的文件,当客户端访问NFS设置的共享目录时,就像访问本地文件一样。


再简单点,就相当于windows的共享文件,映射成自己本客户端将远程服务端的目录地的磁盘,作用就是共享文件。



二、nfs的挂载原理


比如服务器端共享了一个gx目录后,其他有权访问NFS服务器的客户端就可以将这个共享目录挂载到自己本地的磁盘上,并且可以看到gx内的所有数据。客户端会根据服务器端设置的权限,进行有权限访问。


客户端和服务端是通过网络进行传输的 。两者之间想要传输数据需要有对应的网络接口。那么服务器端是使用哪个端口来进行传输的呢?其实 NFS服务器是随机选择端口来进行传输数据 。那么客户端又是怎么知道服务器的端口呢?其实NFS服务器是通过远程过程调用(remote procedure call)协议/服务来实现的。也就是说 RPC服务会统一管理NFS的端口,客户端和服务器端通过RPC服务先沟通要使用哪个端口,之后再利用这些端口(小于1024)来进行数据传输。


链接文章: http://atong.blog.51cto.com/2393905/1343950



三、nfs的配置


1.服务端的配置


▶(1)因为用到了nfs和rpc,所以需要提前在服务端安装两个包


yum install nfs-utils rpcbind


其中nfs-utils用于nfs服务的配置等,rpcbind用于服务器端和客户端进行通信。


▶(2)编辑配置文件


vim /etc/exports


添加:/mnt 192.168.2.222(rw,sync,all_squash,anonuid=501,anongid=501)


解释 :/mnt 是服务器端要共享给客户端的目录,可以自定义,一般客户端挂载的目录和 服务器端的尽量一致。


192.168.2.222 客户端的IP,只有这个IP可以访问NFS服务器。也可以是一个IP段


(rw,sync) 这个括号内是可以设置这个IP客户端的权限、是否同步等。


【rw是可读可写,ro是只读;sync是同步,async是不同步;


no_root_squash :是不限定root用户,只针对客户端是root用户才有效,对共享目录拥有至高无 上的权限,就像操作本目录一样,在挂载目录下创建文件就


是root属主属组;


root_squash :是限制root权限,只针对客户端是root用户才生效,对共享目录 root


用户就如同一个普通用户一样 ,若 务端设置了ro,那么客户端的


root是不能往共享 目录写入东西;


all_squash : 不管NFS的用户是谁,身份都被指定为服务端设置的gid和uid的用户;


anonuid/anongid : 要和root_squash或者all_squash一起使用,用于指定NFS客户


的uid和gid】


▶(3)启动nfs服务


/etc/init.d/rpcbind start ####先启动rpcbind服务


/etc/init.d/nfs start


这样服务器端的就配置完了


▲2.客户端的配置


▶(1)因为要进行通信,所以客户端也要按照nfs-utils包,这个包也包含了 showmount 命令,这个命令可以查看NFS共享的目录。


yum install -y nfs-utils


showmount -e 192.168.2.223 ###这个IP是NFS服务器的IP



▶(2)配置客户端挂载


此步操作可以将客户端挂载NFS,和磁盘挂载一样


mount -t nfs -onolock,nfsvers=3 192.168.2.223:/mnt /opt/


1> mount -t是指定类型是nfs


2> -o后面接nolock为不锁,nfsvers=3指定版本,确定权限为服务器端指定用户的gid和 uid,


因为我服务上配置的指定用户是wzq,ts gid和uid501,那么在挂载目录下新建的文件 都是wzq,ts组


如果不加 nfsvers=3则挂载目录下的属主属组是nobody


3> 192.168.2.223:/mnt nfs的共享目录


4> /opt 是客户端的挂载目录




3.exportfs命令


这个命令也是比较常用的,常用选项有[aurv]


-a :全部挂载或者全部卸载


-u:重新挂载


-r:卸载某个目录


-v:显示共享目录


如exportfs -arv全部卸载


或者exportfs -auv 全部重新挂载



四、本节用到的以往命令


mount -t 指定挂载类型


mount -o指定挂载参数


umount -l 可以在挂载目录下卸载


df -h 查看磁盘占用情况和挂载情况


yum


vim