00:00
大家好,欢迎大家继续收看上硅谷的Linux云计算视频,我是刘川老师。那么我们已经开始讲解我们的这个NFS服务了,然后我们上节课呢,讲了一下关于我们NFS的一个简单的一个概念,那我们本节课呢,来讲一下关于NFS的一个原理和工作原理,其实就是挂的原理,那在讲这个东西之前,我需要先给大家看一个图。先来看这个图,这个图可能很多人看不懂,可能很多人看不懂,我们简单来梳理一下这个过程啊,简单梳理下过程。左侧呢是一个NFS客户端。右侧呢,是一个NFS服务器端,那正常来说,我们之前讲过很多的服务,比如说我们讲过我们的FTP服务,SSH服务,三保服务等等,我们讲他们的时候都发现那个图啊,都好简单,非常简单,诶简单到什么程度呢?简单到客户端和服务器端的登录验证过程,就是客户端发起一个登录请求,把自己的账户名、密码发过去,服务器端会查一下自己已存储的账号名和密码,如果发过来的账户名和密码和存储的账号密码是一样的,则允许。
01:04
客户端登录就这么简单就完成了呀,但是在我们的AFS上大家会发现这个图非常复杂,我们先不去具体看里边的内容,我们先来说一下,那之所以这么复杂,是因为我们的NFS客户端和服务器端的通讯没有这么简单,它并不像我们之前讲的SSHFTP、桑吧等等这些服务一样是客户端和。服务器端直接进行连接,那它是一个怎么样的连接过程?OK,那这个时候我们需要先介绍两个概念,第一个叫什么呢?第一个叫NFS。就是我们要进行使用的一个NFS网络文件系统那。除了它之外呢,我们还要介绍另外一个东西叫什么呢?叫RPC协议啊叫RPC协议,那这两个东西呢,是相结合的。并且呢,它俩必须结合在一起才能正常来使用,我们说一下为什么要借助RPC来进行工作。OK,先来说FS if FS呢是通过网络的方式来进行客户端和服务器端之间进行文件传输和共享的这么一种协议,但是呢,两者之间要进行连接的话,首先第一个是客户端和服务器端之间都需要知道各对方的啊,都需要知道对方的网络地址。
02:21
啊,网络地址,我得知道你的网络地址,你知道我的网络地址,那其实就是对应的IP地址。OKIP地址这个东西好知道,但是呢,我们的客户端和服务器端要进行连接时,除了网络地址、IP地址之外,还需要让客户端知道服务器的什么端口。端口,那这个时候我们在我们的服务器端,在启动了我们的S之后,那is肯定得有一个端口,那这个时候问题来了,我们的FSSH。二端口。我们的FTP默认监听的是21端口,而我们的桑巴与我们的139端口。
03:00
OK,那他们都有一个各自固定的端口,而我们的客户端是直接知道这些固定端口的,但现在问题来了,我们的NFS他们没有一个固定的端口。它的端口是不固定的。它的端口不固定,看这NFS服务器到底使用什么样的一个网络端口来进行数据传输呢?OKNFS是使用了一个随机端口,那现在问题来了。你服务器随机开放了一个端口,那我客户端知道你这次随机的是哪一个吗?不知道,虽然在一定的范围内,但是这个端口也是不固定的,那这就导致一个问题,客户端不知道。在服务器端的目标端口是多少,那就没法有效的进行一个目标访问。OK,那也就意味着这个连接是没法建立的。那没法建立,OK,怎么样呢?我们要想方设法的让客户端知道服务器的那个端口。啊,想方设法让服务器知道啊,让客户端知道服务器的那个端口。
04:00
OK,那我们来这个举一个例子。你呢,这个可能是喜欢上某一个小姑娘啊,这个时候呢,你想这个给这个小姑娘送一个礼物,那你就是客户端了。而是服务器端。那这个时候你在想给对方送礼物的时候,你首先要考虑的问题呢,就是投其所好啊投其所好,因为一般情况下你送对吧,你不能说。就是随便送嘛,随便送肯定是送不到人心坎里去,你得去了解一下对方的需求喜好,然后再进行这个去选礼物和送礼物,那也就是说,呃,对应的这个服务器,就像就是个对应这个小姑能就是我们的服务器AFS服务器,它呢在进行端口开放的时候,是一个随机的,可能今天喜欢的这个东西,明天喜欢上那个东西,而这个时候呢,你作为一个送礼物的人,就是客户端,你并不知道他今天喜欢什么样的东西,那你就没法进行一个。精准的投放,或者叫呃,这个送礼物怎么办呢?需要借助一个啊。
05:04
第三方的东西,或者第三方的人来帮你确认一下这个小姑娘她今天喜欢什么东西,比如说你去问一下她的闺蜜。啊,问一下她的闺蜜,然后呢,她闺蜜呢,去悄悄的问了这个小姑娘喜欢什么东西,然后这个闺蜜把这个她喜欢的东西告诉了你,然后你去买她喜欢的东西,再来进行送的时候,这个时候就送到对方心坎里去了,那这个时候你俩在一块儿的几率是不是就增大了,同样我们的AFS也是这样的,AFS客户端和NFS服务器端。客户端想连接服务器,由于不知道对方的端口,那首先要问对方怎么问啊,要通过另外一个同一方式认为为什么NF。啊,NFS没有连接到地方上,为啥没有端口连不上,那就得先得连上才行,那这个时候NFS连不上,NFS就得pass掉了,怎么办?找另外一个能连上的,那这个时候呢,我们有一个新的协议交。RPC协议。叫RPC协议,那RPC呢,是通过这样一个叫远程过程调用协议啊,远程过程调用协议叫RPC协议,通过它来进行一个什么。
06:11
通信和绘画的啊,通过它来进行通信和绘画的。什么意思呢?也就是说,当我们的NFS客户端想和我们的NFS服务器端,客户端想和服务器端通信的时候,并不是客户端直接通过NFS来连接服务器端,而是客户端先通过RPC。RPC连接服务器。啊,我们两个先通过RPC连接服务器,然后呢,这个RPC的询问问的是,哎,你知道你这个服务器的NNFS端口是多少吗。这时,服务器。将他所知道的NFS的端口告诉客户端,那客户端是不是拿到NFS端口了,然后再去访问服务器的NFS端口,然后确认连接成功才能传输,也就是说需要这么两个大步骤,第一个是NFS的。
07:03
这种连接确认以及呃,RPC的一个连接确认,以及确认NFS端口,第二个是确认了NFS端口,那客户端和服务器端就可以进行NFS的连接了。借助了一个第三方的叫RPC的这么一个协议来进行一个通信啊,来进行一个通信。OK,那我们这个东西呢。既然涉及到了两个协议,那这两个协议之间呢,肯定得有一个什么,肯定得有一个这样的一个启动顺序的这么一个过程,也就是说它两个东西谁先启动,谁后启动是有一定的这种。关联和关系在里边的。假如说。我们呢,在这个启动RPC之前就已经把NFS启动了,那这个时候NF端口是不是确定了呀。那然后你后后来又把RPC启动了,那这个时候RPC并不会去主动问NFS你端口多少,然后记录下来,而是正常的启动过程应该是先把RPC起来。
08:09
然后呢,这个时候再启动NFS的时候,NFS主动向RPC去什么,我们称之为叫注册。我们称为下注册,哎,那ffi启动的时候,把自己开放了的端口告诉RPC,哎,那个你把我的端口记一下啊,一会儿有人来问的话,你记录一下。就会有人来问他还记录下,所以说他俩还得有一定的一个启动顺序才可以,否则会出现问题啊,否则会出现问题。我们来看一下。也就意味着是什么呢?我们的NFS和RPC之间是这样的,由RPC来统一管理NFS所开放的端口,并且由RPC和客户端之间进行一个这样端口的一个确认。呃,端口的一个确认,然后呢,当RPC服务器端和客户端确认好了之后,那我们的客户端就可以通过NFS来进行访问了。
09:02
OK,我们来看一下下边这个图。首先我们的NFS客户端啊,首先我们的NFS客户端。需要启动并且调用我们的RPC服务RPC服务,然后呢,去连接服务器的RPC服务,大家会发现我们的呃。客户端和服务器端的第一个通信是RPC的协议的通信。那RPC协议通信之后呢?RPC服务里边记录了NFS的端口。这个时候客户端问服务器要NF端口的时候,服务器就会把NFS端口告诉他,那这个时候拿到了我们的NFS的端口之后呢,我们就可以去什么,我们就可以去再去访问。NFS服务了。上再去访问NFS服务了,先访问RPC要NFS端口,要到了端口就可以连接NFS了,这就是他们的一个通讯过程。
10:02
然后呢,连接成功之后,我们就知道了服务器上将哪一个什么,将哪一个可用空间共享出来,然后呢,我们在本地新建一个目录,将服务器的共享空间映射到本地。只要对应的映射成功之后,我们再进行文件存储和读取的时候啊,我们就可以直接啊。操作我们本地的那个目录。只不过我们往本地这个目录里存的时候,实际上这个数据是存到了。上存这个。看起来是在我们本地,但实际上是存到了我们的服务器上,这就是我们if FS的一个。数据通信啊,过程和模型,OK,那我们来看一下具体的过程。看看具体过程。RPC和NFS之间如何进行通信?首先NFS启动之后会随机开放一些端口。
11:00
然后NFS会向RPC去注册,RPC就会记录下NFS所开启的这些端口。并且我们RPC会开启111端口。啊,RPC会开启幺幺端口,这个地方就。很明显的说明了一个问题,就是客户端和服务器端之间要进行连接,必须要知道服务器端的一个固定端口,那我们的RPC有一个固定的端口叫111。客户端、服务器端。服务器端有一个RPC的端口叫111RNFS端口是一个随机的。然后客户端之间,客户端要想连接,首先得通过RPC连服务器的111。然后RPC的111通过查询自己的记录,记一下自己有没有NFS的一个端口,如果有,RPC把记录的NFS端口告他,然后他再拿着n f Fi端口去连接NFS。
12:00
那是这样的一个过程。然后等待客户端请求RPC,然后如果客户端请求了,则RPC会将记录的NF端口告诉客户端。这就是整个的通信过程。应该算是蛮好理解的啊。然后呢,再一个就是启动顺序,在启动if FS服务之前呢,要先启动RPC啊要先启动RPC。那为什么要先启动RPC呢?原因很简单,就是我说过啊,呃,如果NFS先启了,那由于RPC没起,你NFS就没有告诉RPC自己的端口是多少,当你在起NFS呃,RPC的时候,RPC不会去询问NFS。啊,不会去寻问FS,否则啊,会出现这样的问题,所以大家一定要记住,先起NFS,让它处于一个启动状态,然后再起啊。NFS先起RPC,再起NFS,这样呢,就会让我们的NFS启动的时候把端口注册上去,把中。注册上去就这样的一个过程。
13:01
或者是,或者是你的那个NFS已经起了,但是你的RPC是后来起了,怎么样才能让RPC知道NFS,你把NFS重启一下就行了。你把NFS重启一下。好了,这是我们的这个内容,再一个有一个特别注意事项。因为就是有一些时候我们可能会修改NFS的配置文件,然后来进行一些新的共享或新的权限的修改,这个时候并不需要重新把NFS重启,为什么?因为每次重启NFS之后,NFS的端口都会进行变化,我们为了让这个NFS的端口不进行变化呢?我们可以重新加载配置文件,但是并不重启服务,那这样的操作其实就是什么?就是lo。那就是reload,可以用service,呃,N FS reload方式就可以了,这个地方写的是那个NFS的。脚本的绝对路径而已啊,和service的那个样式是一样的,OK。那这个呢,就是我们。
14:00
NFS的一个启动顺序啊。RPC的一个启动顺序,下边呢,是一个具体的一个通讯过程啊。首先,先启动RPC,并开放111。再启动NFSNFS的端口,从RPC上注册一下客户端,启动自己的RPC,然后呢,向服务器的RPC请求NFS端口。服务器的RPC将记录的NF端口告诉客户端,客户端拿到了NF端口,再和服务器建立NFS连接。客户端通过RPC和服务器端的RPC建立RPC连接。这个过程是为了问。NFS端口呢?问到了NF端口客户端,再拿着NF端口连接NFS。就是我们NFS的。工作原理以及NFS和RPC的一个指。关系啊,RPC的关系,那这个地方大家会发现里边我有很多地方都提到了RPC,然后又提到了一个叫port map啊,这个地方简单说一下啊,我们的这个NFS是后来改的名,早期的NFS呢,它的服务名叫map。
15:10
呃,这个是在我们S5和五之前,我们的NF,我们的RPC就叫portma,但是从S6以后,我们统一都改名叫RPC了啊。统一都改名叫RPC了,OK,这个大家了解一下就可以了。好了,这就是我们关于NFS的一个,嗯。工作原理的一个讲解,OK,我们本节课就到这儿,我们下节课再见。
我来说两句