N : 就是 网络 Network
F : 就是 File 文件
S : system
简称为 网络文件系统
官方 :
NFS 是一种古老的用于UNIX/LINUX主机之间进行文件共享的协议
Network File System 网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络
中的计算机( 不同的计算机,不同的操作系统 ) 之间通过 TCP/IP 网络共享资源,主要
是在 UNIX 系列操作系统上使用。
在以前,以前的人就经常用这个共享,就是网络共享,比如在一个局域网里想把数据共享一下
那共享是什么呢??
就是可以把我一个文件夹或者磁盘分区啥的共享到局域网上,然后对方就可以通过 IP 地址来
访问这个共享文件夹,方便数据的上传和下载。
所以,NFS 服务器 它的本质就是 架设一个网络文件共享服务器。
NFS 是基于 Linux 命令,是用一些命令可以把 Linux 操作系统上的某一些目录共享给对方,
那只要对方拥有权限 那就可以操作这个目录,完成数据的上传与下载。
那 NFS 共享的形式是怎样的呢 ??
===>>>
这就得回忆到 以前的知识了 —— 挂载 ( mount )
没错,就是 “ 挂载 ”
挂载的本质 ,就可以理解成 是一种访问数据目录的方式 ~!!
官方 :
NFS 服务器 可以让 PC 将网络中的 NFS 服务器共享的目录挂载到本地端的文件系统中,而在
本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。
比如, A 有个目录,这个目录的权限啥都开放了,也共享了,那么 B 想访问 A 的这个目录怎
么访问呢 ?
===>>>
那就需要 B 使用 mount 命令 把这个 A 的目录 挂载到 B 自己机子上就完了 。
NFS 最出名的就是 用远程挂载的方式将对方远程的数据挂载到本地,访问时就像访问本
地的目录一样方便。
官方 :
由于 NFS 支持的功能较多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会
启用一些端口来传输数据,因此 NFS 的功能所对应的端口并不固定,而是随机取用一些未被
使用的小于 1024 的端口用于传输。 但如此一来就会产生客户端连接服务器的问题,因为客户
端需要知道服务器端的相关端口才能连接。 此时就需要 RPC
===>>>
NFS 的端口不固定~!!
为啥不固定呢 ?? 这就得 引入 下一个 点 —— RPC
那么 RPC 是什么呢 ??
RPC ( 远程过程调用 ) : 由于服务器在启动 NFS 时 会随机选取数个 端口号,并主动向
RPC注册,所以 RPC 知道每个 NFS 功能所对应的端口号,RPC
将端口号通知给客户端,让客户端可以连接到正确的端口上去。
RPC 采用固定端口号 Port 111 来监听 客户端的需求并向客户端响
应正确的端口号。
===>>>
简单通俗的理解, RPC 就相当于 一个中介;
就比如 你现在想要 卖房,想把自己房子卖掉,那你是不是就得 把这个房子 挂到中
介上( 比如 链家,贝壳等),这样不就卖的快了;
这个 RPC 就相当于中介, 你要卖的房子就可以理解成 数据/目录, 让其他人都能
访问的共享目录,相当于 中介( RPC ) 会把 房子( 数据/目录 ) 扩散到局域网
上,喊一声 请来吧,请访问我的目录吧;而 你 又没有这个广播的能力;
所以,你就得把 共享目录,以及访问共享目录的端口号 发送给 RPC ( 中介 )
而 RPC 的作用就是 收到 服务端的相关信息后( 目录,端口号) 给局域网里扩散
说好了,这样局域网里的其他人就知道了可以访问哪些目录了。
===>>>
所以,这个就涉及到了 三方 :
******** 服务端( 买房的) 客户端( 买房的 ) RPC ( 中介 )
中介其实就是把 服务端所能用到的端口号 广播给 客户端 ~!!!!
因此,我们了解了整个过程,所以,我们至少得需要两个服务,
******* 一个 RPC 服务,一个 NFS 服务,
而且重要的点是 必须要先启动 RPC 服务( 先启动 中介) 中介得先起
来,这样就可以实时监听 网络相关数据。
然后再启动 NFS ,这样就顺带注册了,你不能先启动 NFS ,后启动
RPC,因为先启动了 NFS ,那就没法注册了,没法在 RPC 上注册了。
所以得先启动 RPC ~!!
另外,RPC 若重新启动,原来注册的数据会消失不见,因此 RPC 重启
后,他管理的所有服务器都需要重新启动以重新向 RPC 注册 。
*** NFS 网络文件系统 很像 Windows 系统的网络共享、安全功能、网络驱动器映射,这也和
Linux 系统里的 Samba 服务器类似, Samba 也是一种文件共享服务。
( 在 Linux 要实现 文件共享手段也很多,除了 NFS 还有一个 Samba )
只不过一般情况下, Windows 网络共享服务或 Samba 服务用于办公局域网共享,而互联
网中小型网站集群架构后端常用 NFS 进行数据共享,如果是大型网站,那可能会用到更复
杂的分布式文件系统。
( 但是,NFS的性能呢 随着现在业务的要求,可能慢慢跟不上了,所以,中小型网站我
们在局域网里进行文件共享时,NFS 还是很适合的,最大特点就是 架设速度快,维护
容易,想关也很快; 但是在大型网站里数据的相关共享,就不建议用 NFS 了,因为请
求过多就会宕机,所以就用的是 分布式文件系统 )
*** 在企业集群架构的工作场景中, NFS 作为所有前端 web 服务的共享存储,存储的内容一般
包括网站用户上传的 图片,附件,头像等,注意,网站的程序代码就不要放在 NFS 共享里
了,因为网站程序是开发运维人员统一发布,不存在发布延迟问题,直接批量发布到 web
节点提供访问比共享到 NFS 里访问效率会更高一些。
*** NFS 是当前互联网系统架构中常用的数据存储服务之一,中小型网站 ( 2000万PV(页面
浏览量)一下 ) 公示应用频率居高,大公司或门户除了使用 NFS 外,还可能使用更为复
杂的分布式文件系统
( 中小型网站是怎么界定的呢, 就是通过 页面流量数,2000万PV 以下就是)