#NFS:网络文件系统,是常见的文件共享协议之一
1.主要功能:通过网络(基于C/S架构实现),可以让不同的机器,跨操作系统共享文件,实现文件的访问和上传功能
2.实现原理:
服务端:
(1)NFS协议是依靠nfs-utils、rpcbind应用软件程序实现
(2)服务器启动NFS协议后,默认会开启2049服务端口,但是由于文件系统非常复杂,因此还需要其他的子程序启动去启动额外的端口,这些额外的用来传输数据的端口是随机选择的,小于1024
(3)为了让客户端能通过准确的NFS端口去请求NFS服务,服务端还会开启RPC(远程过程调用协议),因此NFS首先会启动RPC协议(通过实现NFS服务序列号与端口号映射),提供客户端NFS服务端口,以保证客户端可以正确的连接到对应的端口,从而达到服务请求成功
(4)RPC一般在NFS服务启动前先工作,为了能让客户端顺利请求到NFS端口,所以采用固定端口:111
(5)服务端是通过将主机磁盘存储的文件,重新指定新的文件系统--NFS,将该文件系统共享给客户端
客户端:
客户端是通过服务端共享过来的文件系统,挂在到自己系统的挂在目录下,之后通过访问挂在目录实现文件共享
3.工作过程:
服务端:
(1)首先定义需要共享的文件目录,并给共享的文件目录设置相应的访问权限
(2)启动NFS协议(在RHEL 7版本后启动NFS协议,RPC协议也会自动启动),NFS协议会首先去RPC注册启用的功能端口,RPC会生成映射,存放于RPC协议
客户端:
(1)客户端请求NFS服务器,首先客户端通过RPC协议会先向服务端RPC协议获取NFS协议对应的端口号,当客户端拿到服务端NFS协议的端口号,才会基于服务器主机的端口请求服务
(2)接下来的服务通讯是通过客户端NFS和服务端NFS实现,RPC协议不在开始工作
4.NFS服务端和NFS客户端之间的通讯:
4.NFS协议的优缺点:
优点:
1)节省本地存储空间,将常用的数据存放在一台服务器可以通过网络访问
2)配置简单、容易上手
3)方便部署、非常快速,维护十分简单
缺点:
1)局限性容易发生单点故障,及server端宕机了,所有客户端都不能访问
2)在高并发下NFS效率、性能有限
3)客户端没有认证机制,并且数据是通过明文传输,安全性一般(一般建议在局域网内使用)
4)NFS协议传输的数据是明文的,对数据不做完整性校验
5)多台机器挂载NFS服务器时,服务端连接管理和维护麻烦
NFS协议的配置目录:
(1)配置文件目录:
/etc//exports
(2)手动配置文件生效:
exportfs -ra
注:为了客户端和服务端之间文件共享的效率,不建议重启NFS服务
(3)查看服务端所开启的共享目录文件:
showmount -e ip