一。简介
NFS--Network FileSystem,即网络文件系统,主要功能是让网络上的不同操作系统之间共享数据。
远程服务器端共享出文件或目录,然后远羰共享出来的文件或目录就可通过挂 载的方式挂 接到本的不同操作系统上,最后本地系统就可以方便的使用远端提代的文件服务。实现数据共享
上图可以看出,NFS由两部分组成:NFS客户端和NFS服务器。
二。实现原理
NFS服务器启动后,开启对客户端连接对应的端口号(1-1024),但每次启动NFS服务器,相应服务器端口号都各不相同。
为确保客户端每次都能正确连接,NFS通过RPC(Remote Procedure Call)协议来协助NFS服务器完成连接。程序通过使用这种协议向网络中另一台计算机上的程序请求服务。NFS中,RPC最主要的功能就是指定并监控NFS守护进程对应的商品号,并将端口信息通知给客户端,让客户端连接到正确的端口上来。
三。安装与配置
1.查看是否安装:
- rpm -qa|grep rpcbind
- rpm -qa|grep nfs
如果没有输出,需要NFS对应的rpm包进行安装
2.NFS服务器端的设定
- 设置配置文件:/etc/exports
设置格式:共享资源路径 [主机地址] [选项]
例子:/webdata *(sync,rw,all_squash)
/tmp *(rw,no_root_squash)
/home/share 192.168.1 *(rw,root_squash) *(ro)
/opt/data 192.168.1.18(rw)
/usr/local/doc *.ixdba.net(rw, anonuid=686,anongid=686)
说明:共享资源路径:如上面的/tmp, /home/share目录等
主机地址:可以是主机名/域名/IP等
选项:
- ro:read only,客户端仅有读权限
- rw:read write
- no_root_squash:根据用户UID判断,如果登录NFS主机的用户是root,那么
该用户有最高权限。不安全,不建议使用
- root_squash:系统预设值,当登录NFS主机的用户root时,这个使用者的权限将缩减成匿名使用者。UID和GID都会变成nfsnobody身份,只有可读权限。
- all_squash:不管登录NFS主机的是什么用户,都会将共享文件的UID和GID映射到匿名用户nfsnobody.
- no_all_squash:当客户端用户的UID和GID与服务器端共享文件UID和GID相同时,才有对共享文件的读写权限,保证共享文件的用户和组权限不会改变
- anonuid:将登入NFS主机的用户都设定成指定的UID,此UID必须存在于NFS服务器端/etc/passwd中
- anongid:与anonuid类似
- sync:资料同步写入磁盘。默认
- async:资料暂时放在内存中,不直接写入磁盘
2.启动停止NFS服务器
- systemctl start/stop/restart/enable nfs
- systemctl start/stop/restart/enable rpcbind
- start:启动
- stop:关闭
- restart:重启
- enable:服务器开机自启动
- 关闭防火墙
- systemctl stop firewalld
- systemctl disable firewalld
3.NFS客户端的设定
- 安装nfs-utils和rpcbind两个服务
- yum -y install nfs-utils
- systemctl start rpcbind
- systemctl enable rpcbind
- 查看NFS服务器端提供的服务
- showmount [-ea]
- -e:此选项后跟服务器主机地址,显示当前已导出 的目录
- -a:服务器上用使用时后面无参数; 客户端使用时跟上服务器主机地址
- 挂载共享资源 mount
- mount -t nfs Hostname(orIP) :/directory /mountpoint
- Hostname:指定NFS服务器地址
- /directory:表示NFS服务器共享的目录资源
- /mountpoint:客户端主机指定的挂载点
- 开机自动挂载NFS目录
- 192.168.60.133:/mydata /data/nfs nfs default 0 0
- 卸载NFS目录
- umount /mountpoint
- 安全设定