0基础linux运维教程 共享存储之nfs介绍
Posted 山河玩转linux运维
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0基础linux运维教程 共享存储之nfs介绍相关的知识,希望对你有一定的参考价值。
1)NFS是什么
NFS全称Network File System,即网络文件系统,NFS同时也是一种网络协议,主要功能是通过网络让不同的主机系统之间可以共享文件或目录:在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS最早由sun公司开发,是类unix系统间实现磁盘共享的一种方法。目前已经有5个版本,NFSv1是未公布出来的版本,v2和v3版本目前来说基本已经淘汰,v4版本是目前使用最多的版本,nfsv4.1是目前最新的版本。
V2以前只提供了对UDP协议的支持,主要用于局域网(LAN),丢包重传的概率很小。但是随着发展,NFS已经不只使用在局域网中,更广泛地使用在广域网(WAN)中,于是从V3开始增加了对TCP协议的支持。
缺点:
1:nfs属于本地文件系统,在高并发场景和大存储量下,需要使用分布式存储mfs,FastDFS, tfs(taobao)等。
2:客户端的数据都是通过明文传送。客户端没有用户认证机制,安全性能一般,所以建议一般在局域网内使用。
3:容易发生单点故障,即server服务器宕机所有的客户端都不能访问。
使用场景:web集群中NFS服务器主要用于存储用户上传的信息,方便集群中机器获取用户数据。如图片 附件 头像 视频 音频。
2)为何要用NFS
NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源(一般把网站用户上传的文件都放到NFS共享里, 例如BBS 产品的图片,附件,注意网站BBS程序不要放NFS共享里),NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是对中小型企业来讲是非常合适的一个分布式文件系统,大公司或门户除了使用NFS外,还可能会使用MFS、GFS、FASTDFS、TFS、ceph等分布式文件系统。
3)NFS与RPC NFS依赖RPC才能工作,可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输,
因为NFS是基于网络的应用,属于套接字程序,所以NFS服务端必须绑定端口,NFS服务端常用的端口为2049;
但是文件系统十分复杂,NFS有很多功能,每个不同的功能都需要不同的程序来完成,而每个程序都需要启动端口传输数据,这些端口都是随机产生并且小于1024的;
那么问题来了,既然是随机产生的端口,客户端该如何得知呢?
便引入了RPC服务
RPC(remote procedure call):远程过程调用。RPC最主要的功能就是指定每个NFS功能所对应的端口,并返回给客户端,使客户端可以连接到正确的端口上。 工作流程如下:
- 1、服务端:RPC要先于NFS启动,RPC对外的端口是111,随后NFS启动,NFS会像操作系统申请一些随机端口分配给各个功能,并向RPC去注册这些端口,RPC便将这些端口和所对应的功能记录下来;
- 2、客户端:当NFS客户端需要连接到服务器上时,先启动客户端的RPC服务,客户端的RPC向服务端的RPC 111端口索要功能对应的端口号;索要到端口号后,便连接到NFS服务对应功能的端口,随后传输数据。
- 3、注意:即使客户端已经获取了端口号,客户端仍会借助rpc做为中间人进行通信。也就是说,无论何时,客户端和rpc所管理的服务的通信都必须通过rpc来完成。之所以如此,是因为只有rpc才能封装和解封装数据
![image-20210420094046860![
以上是关于0基础linux运维教程 共享存储之nfs介绍的主要内容,如果未能解决你的问题,请参考以下文章