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