NFS(Network File System,网络文件共享系统)主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录
存储服务的种类
- FTP(文件传输协议)服务
- samba服务
- NFS服务
FTP:当运维人员a管理"服务器1"和"服务器2"两台服务器、运维人员b管理"服务器3"和"服务器4"两台服务器。在"服务器1"中有些数据是运维人员b需要使用的,"服务器3"中也有些数据运维人员a也需要用,但是在企业中为数据信息安全,不可能让运维人员拥有所有服务器的管理权限,所以就需要一台FTP服务器,存放一些共享的数据,这样运维人员就可以通过登录FTP服务器获得自己想要的数据。但是FTP服务逐渐被淘汰,是因为其使用时配置权限太麻烦,容易出问题。
samba:samba的功能和NFS差不多,只是samba服务主要用于windows系统和Linux系统之间的数据共享。比如使用windows系统的电脑从Linux系统的服务器中获取数据
NFS:用于Linux系统和Linux系统之间的数据共享。互联网中小型网站集群机构后端常用NFS服,其它主机可通过挂载NFS服务器中的共享目录来获取数据。如果是大型网站,那么还会用到更复杂的分布式文件系统,例如:Moosefs(mfs)、GlusterFS、FastDFS。
NFS存储服务的作用:
- 实现数据的共享存储
- 编写数据操作管理
- 节省购买服务器磁盘开销
NFS工作流程:
NFS服务启动后会有多个进程,因此NFS服务也就对应多个端口,并且这些进程对应的端口在系统重启后还会随机的变化,这就导致了客户端想与NFS服务器进行同行时,就不能像其它的服务一样直接通过某个固定的端口进行数据的传递。所以在开启NFS服务之前要先开启RPC服务。RPC服务扮演于一个"代办"的角色,客户端把请求告知RPC服务,RPC服务通过自己分析请求选择相应的NFS端口,客户端然后再通过RPC服务获取的端口号和NFS服务器进行数据传输。
NFS工作原理:
服务端:
1.启动rpc服务,开启111端口(一般安装nfs-utils软件包后,rpcbind服务会自动开启)
2.启动nfs服务
3.实现nfs服务进程和端口的注册
tip:检查nfs服务进程与端口的注册信息
没有注册的时候:
注册之后:
客户端:
1.建立TCP网络连接
2.客户端执行挂载命令,进行远程挂载
3.可以实现数据远程传输存储
NFS客户端访问服务端原理:
NFS配置文件:
- 格式:
- 参数权限:
可通过"/var/lib/nfs/etab"文件来查看nfs服务的默认配置信息:
下面详细的介绍了一些参数:
tip:
NFS服务权限设置中,尽量选择"no_all_squash"参数,这样普通用户进入NFS共享目录中后就不能转换用户身份,也就不能随意删除NFS共享目录中的数据。但是这样设置,若是想让某个普通用户管理此NFS共享目录,在此目录中增加或删改数据也无法实现了。
所以把NFS共享目录的属主、属组都设置为某一普通用户(设置的时候一定要注意:客户端普通用户的名称不仅要和NFS共享目录的属主、属组相同,用户的UID、GID也要相同,否则依然无法管理)。这样设置之后,再配置"root_squash"参数,就是让"root"用户进入NFS共享目录之后需要转换身份,因为NFS共享目录中身份抓换都会被默认转换为"nfsnobody"的虚拟用户,这样就可以避免"root"用户因权限太大对共享文件的随意删除 - 参数中“同步”、“异步”对比