00:04
欢迎大家继续收看上硅谷的Linux云计算视频。大家好,我是汪洋老师。这节课我们去看我们的文件存储之NFSNFS服务的讲解。那首先呢,我们整个片段分为这么几个部分。第一个。是我们的NFS的简介。那不管我们是说什么服务,基本上都要知道它是什么,以及它有怎样的原理,对吧。那原理我们讲清楚以后呢,我们再去基于我们的NFS的构建。那首先我们先看第一个NFS的简介。对于NFS来说呢,它的全称叫network system,也就是网络文件系统,对吧?最早是诞生在我们的free b SD上的。好,或者叫free b SD最早支持了一批。它允许网络中计算机之间通过TC pip,需要注意一下TCP协议对吧。
01:03
网络资源共享,其实我们大部分的网络文件共享基本上都是基于TCP的,只有少部分,比如我们之前所说的什么呃,叫。TFTP还记得吗?TFTP,它走的其实就是一个udp协议。除此以外,基本上有很少了,那大部分都是TCP的,因为它更安全,对吧,好。在NFS应用中,本地NFS客户端可以透明的读写位于原的NFS服务器上的文件,像访问本地文件一样,也就意味着其实我们可以把想要本地应用程序所调用的一些文件或存储的一些文件都把它通通放在NYS服务器上也是没有问题的。你说我为什么不放在本地啊,放在远程呢?便于多台主机之间的共享。这个比较容易理解对吧,就像我们之前在说我们的负载均衡集群一样。那负载均衡集群的真实服务器都需要有个共享存储,那NFS呢,就可以去做这样一件事情。
02:04
好,那NFS最早是由上公司开发的,当时是在上上的操作系统上的unix操作系统之上去运行,后来呢,被加入到Linux内核,成为LINU4内核的一部分。那至此呢?所有的Linux内核版本都支持我们的NFS。功能就是我们刚才说过的,可以透过网络让不同的主机,不同的操作系统可以使用我们的共享存储,就像使用本地文件一样,对吧?这也是我们刚才对它的一个小定义。那接下来我们去看它的一个相关原理,因为NFS这款软件不管是用起来还是理解起来都是比较简单的,所以就分为两个部分,第一个叫做RPC协议。RPC协议叫远程过程调用来说就是可以让客户端执行其他。系统中应用程序的或叫程序的一种机制。这就是我们所谓的远程过程调用。
03:04
也就意味着你可以理解为NFS里或叫NFS用的就是RPC进行数据的传输。而NFS本身呢,只是进行了所谓的文件传输的控制。只是控制,不负责传输以及文件系统的配置,或叫提供。也就是NFS,这个软件包实现的是控制功能以及文件系统的提供,那真正使用的是我们Windows内核的RPC进行数据传递,我们只要掌握这两个知识点即可。好,那接下来呢,N有哪些优点呢?第一个节省本地的存储空间,对吧,这个也比较容易理解。那假设我现在的本地磁盘不够用了。我想把我们的数据继续存储在本机,那怎么办呢?那我就可以把NFS远程服务器挂载在本机。看着就像使用本地文件一样,其实数据已经在远程了,对吧,那这样的话我们是不是更便于扩容?
04:04
好,第二个。用户不需要在网络上的每个机器都建有home目录后,目录可以放在NFS服务器上,可以在网络中访问使用。这个讲的是什么呢?也就意味着一个用户在多台主机之间需要去共享一定的数据或者共享一定的目录。那传统的方案我们是不是拿个U盘对调拷啊,那我这个机器需要的文件,我拿U盘拷出来,然后拷来另一台机器是比较费事啊。那在这种情况下,我们直接可以构建一个我们的NFS服务。构建完成以后,在多台不同的操作系统,不同的机器去挂载使用即可。可以做到一点修改,全点同步的这么一个目的。下一个一些存储设备CD和ZP都可以在网络中被别的机器使用,可以减少整个网络中可移动介入设备的数量。那这是什么含义呢?其实很多一部分的共享存储是不能共享CD room这个设备的。
05:03
但我们的NFS可以。是不是很智能,或者是要很牛掰对吧。好,那这都是我们的NFS的优点。那当然现在有很多一些NF,还是做一些别的功能,比如。我这里有两台服务器,一个是N,一个,一个是阿帕七。那N呢,可能会把自己生成的一个静态页面叫网页静态化,对吧?给通过NFS传到我们阿帕奇上,或者通过NF提供给远端的阿帕奇去访问。能理解我意思吗?那当然对调过来也是可以的。那在多台主义之间的共享用NFS在小环境中还是比较多的。好。那这就是我们的NFS的相关原理,那接下来。好,那这就是我们的NFH的相关原理,还是比较简单的。
06:02
那这节课我们就先讲到这里。下节课再见。那接下来呢,我们继续往后去看,我们去看一下我们的NFS到底怎样去构建,对吧?那首先对于NFS的安装来说,我们会分为两个不同的软件包,一个是NFS,也就是我们NFS工具集合,包括我们的ipcd,对吧?然后以及我们的TD以及DEMO,也就是挂载点啊,服务端点啊,以及守护进程。好,RPC办的呢,就是我们刚才所说的我们的远程过程调用,对吧,那这是Linux内核已经本身自带的这么一个功能,基本上像我们的诺S或者发行版都是已经默认安装的,只不过在五版的时候它叫po。需要注意一下。如果我们确保这两个软件都已经装完毕以后,我们就可以去进行后边的配置文件的修改以及生效。
07:01
首先对于我们的NFS主配置文件呢,它在ETC下的目录下。这个目录其实打开以后,我们会发现它是一个空文件。也就里面什么内容都没有,需要我们自己手动去填写。那它的配置格式为我在这里也比它标明了,对吧,第一个叫共享目录,共享目录。也就是我共享哪部分目录共享给远程服务器去使用,对吧,需要去写它的绝对路径,需要注意一下。好,第二个是NFS客户端地址。也就是意味着我远程给哪个客户端去使用。这个是必须填写的,你可以写一个固定地址,比如192.168.1.666。你也可以写一个10.10.10.0杠二四写一个网段和IP都可以。那后面括号这是一个括号。这是一个固定格式哈,固定格式括号里面写的是我们不同的参数,参数没有数目限制,你不同的参数之间可以用逗号去隔开,当然相冲突的一些参数是不可以去使用的。
08:12
并且你会发现在这个配置文件中,诶,我选了两个一模一样的,这代表什么含义啊。在一个配置文件中,它是按行匹配,也就一行就是一个完整的共享,我再来一行是另一个完整的共享,以此类推,它是允许多个共享的。那这里我们也看出来了,前两个配置都比较简单吧,共享目录和我们的客户端地址都比较容易理解,那这个参数怎么去配?参数,我们过来看一下到底有哪些。第一个。第一个参数我们可以填写的叫RW叫,也就是我们的读写,可读可写对吧。那也就意味着其实我们很多一些配置文件中,或者是呃,怎么说呢,共享服务中。
09:01
RW叫可读可写对吧?那你可以理解为在我们的很多的一些服务之后,我们在共享数据的时候,其实不需要他去写入,只需要他只读即可,那这时候我就可以使用RO。但还有一部分服务是不是必须要又能读又能写,那你就可以选择啊W。所以就像我刚才说的对吧,相互冲突的两个参数你不能都写上,比如啊W和RO,你不能说又读又写又只读吧,所以你只能选择一个对吧?好,那下一个参数叫S3C,叫文件同时写入硬盘和。内存。这个怎么理解呢?其实我们在去传输文件的时候,大部分的时候它应该是先写入到内存内部,或者是就是写到先写到内存内部。然后再用内存同步至硬盘。能理解我意思吗?也就意味着如果一个文件写入内存以后,我本身告诉他,我说诶。
10:02
稳定同步成功了。那其实呢,不一定吧,因为内存是不是还要重装硬盘,如果这个时候突然断电了。那我的数据是不是没有持有化保存啊?所以这里会有两个选项,一个叫SYNC,一个叫ayc。一个是暂存于内存,而不是直接写入内存,一个是同时写入硬盘和内存。哪种更安全啊,肯定是SYNC对吧,但是它使用的速度会稍慢一点,耗费的时间会稍长一点,那如果你想的是安全性比较高的话,其实我们可以选择。SC,当然大部分我们会选择isc,原因是什么?服务器还是非常稳定的,对吧?并且我们内存都是有纠错功能的。需要注意一下。跟我们的个人机还不太一样,对吧,好。下一个。叫no root squash叫客户端连接服务器,如果使用root的话,那对于服务器分享目录来说也拥有root权限。
11:01
也就意味着我mount挂载的时候,我我是root,那我对于另一台服务器共享服务器来说,我也拥有这台共享服务器的root权限。所有钱对吧,还是比较危险的对吧,好下一个。Root快,Root快,那客户端如果使用的是root,对于服务器端目目录来说,它使用的是匿名权限,通常是nobody或n FS nobody。也就意味着这两个是不是又是一个对比。他如果是挂载使用root远程root,它如果挂载使用root远程是匿名用户。还有oqua,也就是不管用什么用户都是匿名。大家可以去酌情选择。当然下面还有一个叫nu ID和non ID。这是我们如果选择了root squatch和o squatch以后,我可以去设定的一个值,或者叫做一个参数。我们可以设置匿名用户的UID或GIID,指定他的匿名用户为谁。
12:04
一般来说,我们用的还是比较少的。能理解我意思吗?因为对于我一个服务器来说,它不像原来我们现在一个服务器一一般里面是不是就跑一个重要服务,比如就阿尔法奇,它比如就是我们那什么所谓的。他不会再运行什么一些什么。PPFTM啊对吧,比如MYSQL啊,我们不会都把它放在一起,没基本上不会。那意味着其实我给他数的权限和我们给他匿名用户的权限,对这个目录的权限其实已经没有什么没有什么差距了,能理解我的意思吗?原因是除了这个重要数据以外,其他没什么重要数据啊。所以还是那句话对吧,当然我们这样配置会更安全,那你可以根据你的环境去调整。没必要的安全配置。其实我们是。没必要去做了。我说的没必要是完全没必要,对吧?哪怕有一点的安全性提升,你也应该去做。这句话一定要记住,不然的话,出现问题你会后悔。
13:01
对吧,尽个人最大的能力嘛。好,那既然讲了这么多,其实讲到这里的时候,我们就已经能够去做我们的NF的配置以及使用了。那接下来我们看一下怎么去配置,首先在这里我需要准备两台机器。这里呢,我已经有两台机器,已经还原一些。开启了对吧,那首先我们需要去安装的是这么一个软件包,在这里呢,深度26的,我的图形化应该是都已经安装完毕的,比如我们是在幺幺服务器。好,都已经安装完毕了,对吧,好,我们麦克T啊mnt啊,不叫mnt吧,我们跟一下创一个NFS,比如叫一我们再创个NFSR。那他的匿名用户为。Nobody对吧,我们给他一个匿名用户的权限。
14:00
然后呢,是NFS1和NFS2。递归一下,好,权限赋予完毕以后呢,我们再去进行所谓的配置文件的书写,对吧,Export目录下。第一个写的参数应该是我们的共享目录的绝对路径,也就是我们的根下的。跟一下。跟下的NFS1好共享的地址是10.10.10.1。括号里面写上我们的共享权限,对吧,比如啊W。逗号,我们还可以跟哪个参数啊。比如我们过来看一下。嗯,比如no root squash,我们就把它当做我们的root用户吧。好。SYNC。
15:02
然后no squash这个下划线,我不知道有没有匹配成功,我们重新写一下好没问题对吧。YYP,我们再写一个,比如共享的需求。幺零网段的。权限,比如是L只读。对吧,好保存退出,然后重启一下我们的NFS服务。我们可以重启一下我们的rpc band,让他去读取一下我们当前的信息。好,然后我们再重进FS。这样就没问题了,对吧,好,我们可以修杠一幺零点。10.10.1,我们看一下幺幺共享了哪台哪些服务,对吧,NFSR和N1这里是不是已经显示出来了。那其实我在这个幺二这台服务器已经能够使用了,比如我们修杠E10.10.10.1在这面也是能查得到的,对吧,我make个电啊。
16:03
Mnt。NFS吧,NFS1,还有一个NFS2。这两个目录呢,我们当做挂载点,左边这两个目录是共享点对吧?好,我们创建一下,当然给予它的权限,比如千牛呢,叫nobody冒号nobody god。NF4,一和NFS2。然后在这边呢,我们去写一些数据,比如到NFS1里,我们去创建一个,我们copy一个吧,Copy-a root下有个叫做我们的。Install,我们的安装日志拷过来,然后我再到NFSR目录下,我们去拷贝一个我们的日志,比如系统呢,系统日志拷贝过来,好,那我在这边进行挂载。挂载的方式比较容易理解。我们就是。
17:00
啊,我们就是Mo就可以直接挂载杠T对吧,指定FSIP以及共享文件名,这里共享文件名需要注意一下,好Mo-TNFS。挂载的点是10.10.10.1的。NFS1挂了,到哪里挂的,到NFS1目录下。好,我少打了一个冒号对吧,它已经提示我了。好,挂载成功,然后我们再去挂一个幺二挂载的是二挂载了我本地目录的啊。NFR。
22:43
好。那咱们到这边呢,我们去进行挂载,我们可以通过我们的修杠110.10.10.11看到,对吧,我们已经有了这么两个共享目录。那在本机呢,我们去创建。两个目录,一个叫跟下的n FS mount1吧,一个叫n FS mount2。
23:06
给他权限情节nobody。No。Body。N FS mountt1和n FS mountt2这两个当做我们的挂载目录对吧?好使用命令mountt-TNFS10.10.10.11下的NFS1挂到我们的n FS monk1中。那同理NFS啊。挂载到我们的MOUNT2中,那我们现在cut一下n FS mount1中的。一个OG已经有数据了,对吧,那并且NF2中的message,也就是我们刚才看到的系统日志,它也是有信息的啊。打错了对吧,我们cut一下。二中的满CG好也是没问题的,那还记得我在我们的NFS1挂载配置中,我们写的是啊W也是可读可写对吧?那我们进来看一下installog,我去改,我写了这么多数据,我们保存退出能够保存对吧?Card的OG没问题。
24:20
那我再去改,我们第二个看一下,我在NFS2中写的是好,也就是只多我们去改一下,看到了吗?底下是不是已经报警了,说哎,你正在修改一个指图文件,我们保存这个书肯定是保存不了的。那这个就是我们设置参数的一个区别,一边是可读可写,一边只读对吧,那并且在远程的这台服务器,我们到NFS家好看了一下install log,我的修改肯定是可见的有点多是吧,门打开。看到了吗?已经改掉了对吧,那这就是我们的NFS的配置还是非常简单的,没有什么太多的可讲选项。
25:03
那需要大家去了解整理一下,那这节课呢,咱们就先讲到这里,再见。
我来说两句