NFS介绍及简单实施

孤人 提交于 2020-01-26 10:22:56

什么是NFS ?

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法

在这里插入图片描述

它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。

NFS一般用来存储共享视频,图片等静态数据。

在这里插入图片描述

NFS挂载原理

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

那RPC和NFS之间又是如何之间相互通讯的?

首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口。RPC就会记录下这些端口。并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。

RPC和NFS的启动顺序是怎样的?

在启动NFS SERVER之前,首先要启动RPC服务(即portmap服务,下同)否则NFS SERVER就无法向RPC服务区注册,另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失。因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册。特别注意:一般修改NFS配置文档后,是不需要重启NFS的,直接在命令执行/etc/init.d/nfs reload

总结:客户端NFS和服务端NFS通讯过程

1)首先服务器端启动RPC服务,并开启111端口
2)启动NFS服务,并向RPC注册端口信息
3)客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
4)服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。

在这里插入图片描述

例子

1. 将NFS服务器的/yellow共享给10.0.3.0/24网段,rw权限

在客户服务端同时安装,在服务端更改/etc/exports

#yum -y install rpcbind nfs-utils 
# vi /etc/exports
/yellow 10.0.3.2/24(rw,sync,insecure,no_subtree_check,no_root_squash)
rw,读写权限
sync,所有数据在请求时写入共享
insecure,nfs 通过 1024 以上的端口发送
no_subtree_check,不检查父目录权限
no_root_squash,root 用户具有根目录的完全管理访问权限
2. 重启rpcbind 和nfs 服务
#systemctl restart rpcbind
#systemctl restart nfs
3. 服务器端查看nfs共享状态
# showmount –e 本机ip
4. 客户端查看nfs共享状态
showmount -e NFS服务器IP
5. 客户端挂载nfs服务器共享目录

命令格式:mount NFS服务器IP:共享目录 本地挂载点目录

# mount 10.0.3.2:/yellow /yellow
# mount | grep nfs
6.卸载和自动挂载

卸载:

  1. 卸载客户端的挂载目录
    umount 挂载点
  2. 停止服务器端的共享
    exportfs –au
    自动挂载:/etc/fstab
    格式::</remote/export> </local/directory> nfs < options> 0 0
    #10.0.3.2:/yellow /yellow nfs defaults 0 0
    #mount –a
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!