Linux - 进阶 NFS服务器搭建 详解实验操作

      

   建立 NFS 服务器,使用客户端成功访问  

         #   搭建环境 

              Linux - 进阶 NFS服务器搭建 详解实验操作_第1张图片

              server 为服务端,    node1 为客户端   

           ( 客户端是通过 服务端克隆出来的机子,并改了 IP 和 主机名)

               IP 都显示出,并且双方能够 Ping 通 

               这样准备环境就搭好了。

       第一步 : 预处理,服务端 

             服务端 : 

[root@server ~]# setenforce 0 

[root@server ~]# systemctl stop firewalld



[root@server ~]# yum install nfs-utils -y 

[root@server ~]# yum install rpcbind -y  

            

               客户端  :  

[root@node1 ~]# setenforce 0 

[root@node1 ~]# systemctl stop firewalld 



[root@node1 ~]# yum install nfs-utils -y 

[root@node1 ~]# yum install rpcbind -y 

       #  可以看到的是, 我们给客户端 也安装了  nfs-utils 这个主程序, 虽然我们并不是给客

           户端组建文件共享,但是,会利用到 里面的命令,有些命令也是依赖于 这个软件包的。 

           所以,我们就给 客户端 也安装了 NFS 主程序。  

       

  第二步  :  在服务器端建立共享文件目录,并设置权限      

[root@server ~]# mkdir /nfsfile 


[root@server ~]# chmod -Rf 777 /nfsfile 


[root@server ~]# echo 'welcome to NFS' > /nfsfile/readme

                我们在 服务端    建立共享文件目录 ( /nfsfile ),将来用于共享给客户端。 

             #    我们给 /nfsfile 设置了权限, 可以看到权限设置成了 777,我们给足了权限。 

                   我们前面不是讲了, NFS 不是有权限嘛 ( 叫什么 ro, rw  啥的),我们当时也特意

                   强调过,不管你 NFS 的权限是啥,最终都得取决于 这个 共享文件本身的权限, 也即

                   是 我们在此创建的 /nfsfile  这个目录的权限,我们给足了,给成了 777 ,这样也是为

                   了待会儿做实验以对比。  

                   我们设置权限的时候 还加了 参数 R ,代表递归,就是这个 /nfsfile 目录下如果还有级

                   别,那么相对应的权限也和 /nfsfile 保持一致 ;  

                   参数 f 就代表 文件 ,就指的是 /nfsfile 。 

              #   我们给 /nfsfile 目录里也弄点东西, 这样实验也好体现出来。  写了一句话,写到了该

                   目录下的一个文件中。 

  第三步  :  在服务端编辑主配置文件                      

[root@server ~]# vim /etc/exports

/nfsfile        192.168.229.128/24(rw,sync,all_squash) 

                Linux - 进阶 NFS服务器搭建 详解实验操作_第2张图片

                  可以看到的是,上示在主配置文件中 我们写入的内容就是完全基于前面我们所说的 

                   NFS  主配置文件里的共享参数   

                   共享目录 ( /nfsfile )       

                   允许谁访问( IP 为 :192.168.229.128 的主机访问 ,注意 掩码 别忘了写) 

                   共享权限参数( rw,sync,all_squash) 

               *  这个主配置文件可能没有,我们就直接 Vim 就行 (  这不就顺便建立了 ) 

 第四步 :  在服务端    启动 RPC  启动 NFS 服务程序 

[root@server ~]# systemctl start rpcbind 

[root@server ~]# systemctl start nfs-server 

[root@server ~]# systemctl enable rpcbind       #  加入开机启动
 
[root@server ~]# systemctl enable nfs-server    #  注意 NFS 的服务名为 nfs-server

               

                  :    若启动 rpcbind 时报错,可以先停止服务再重新启动  

[root@server ~]# systemctl stop rpcbind

[root@server ~]# systemctl start rpcbind

             至此,前四步,针对 服务端的操作就进行完了 ~!!                       

        

第五步  :   客户端新建挂载目录,并使用 showmount 命令查询

                    NFS 服务器的远程共享信息

[root@node1 ~]# mkdir /nfsfile_khd 

              客户端不是要挂载远程目录嘛,所以你客户端本地是不是也得有个目录

              所以,创建一个目录 。

              &     showmount 格式  :   showmount      -参数      服务器端IP 地址  

  参数 作用
   -e  显示    NFS 服务器端的共享列表
   -a          显示    本机 挂载的文件资源信息
   -v 显示    版本号    
[root@node1 ~]# showmount -e 192.168.229.130    ( IP 为服务器端的地址 )

Export list for 192.168.229.130:          #   显示 共享的列表来自于哪台主机

/nfsfile 192.168.229.128/24               #   显示 列表信息共享的目录名是啥,以及 允许的IP 是谁

    ===>>> 

                  执行完 showmount 命令后,便显示上示所显两行 内容 

        进行挂载 : 

[root@node1 ~]# mount -t nfs 192.168.229.130:/nfsfile  /nfsfile_khd 

          按照 NFS 文件系统进行挂载, 挂载 192.168.229.130 这台机子下的 /nfsfile , 挂载到本地

          目录 /nfsfile_khd 下。  

    检测下 :                     

[root@node1 ~]# cd /nfsfile_khd/

[root@node1 nfsfile_khd]# ls
readme

[root@node1 nfsfile_khd]# more readme 
welcome to NFS

               #   在客户端挂载成功之后,我们进行了测试,测试的机理就是 ,既然挂载成功了,

                    那么, 就应该能够访问到 192.168.229.130( 即服务器端 ) 的 /nfsfile 里的内容。 

                    显然,上示代码就呈现出 我们可以访问到 readme , 并显示出其内容 。 

[root@server nfsfile]# ls 
readme



[root@node1 nfsfile_khd]# touch t1.txt  

[root@node1 nfsfile_khd]# ls 
readme  t1.txt

[root@server nfsfile]# ls 
readme  t1.txt

          我们还可以再进行一种测试  : 

    #    上示 , 首先 ,我们在服务端,显示了共享目录的文件内容,显示 只有 readme 这一个文件

          然后,我们定位到了 客户端, 在客户端的 本地挂载目录 ( 即 nfsfile_khd ) 里 新建了

          t1.txt, 再罗列下 显示了 readme , t1.txt 两个文件。 

          而,此时,我们在定位到 服务端 ,显示共享目录的文件,此时便多了一个文件,多的这个

          文件是什么 ?? 

          就是 ,我们在 客户端 /nfsfile_khd 里新建的文件 。 

          我们在 客户端,新建了一个文件, 同时,服务端 也就多了一个文件,本质上就是,新建到

          服务端的共享目录里了,说白就是通过客户端( 本地 )的挂载目录( nfsfile_khd )来访问

          远程( 服务端 ) 的目录; 再定位回到 服务端,就可以看见 共享目录里多了一个文件,这

          其实,换句话讲也是  把文件上传了~!!!!  

          

           所以说, NFS 比较有特征的就是 感受不到 上传下载,无论有多远,共享目录都能像是在

           本地的目录里操作一样。 

       强调

          注意 :  

          我们再定位下 客户端,将客户端重启下 

          ===>>>


[root@node1 ~]# reboot

           客户端重启完后,再连接上。  

           由于我们重启了,所以,我们还需要再进行一下 预处理的操作 

            ===>>>

[root@node1 ~]# setenforce  0 

[root@node1 ~]# systemctl stop firewalld 

                  

           然后,我们再访问下本地的目录, 访问下 /nfsfile_khd ,看看这里有什么变化 

           ===>>>

[root@node1 ~]# cd /nfsfile_khd

[root@node1 nfsfile_khd]# ls

[root@node1 nfsfile_khd]# 

               咦~!!!    什么情况 ??? 

                /nfsfile_khd   里怎么没有  之前 共享文件( readme ) 呢 ?? 

                就是说我们从 本地的( 客户端 ) 挂载目录( /nfsfile_khd ) 怎么访问不到 远程(服务

                端)的共享目录( /nfsfile/readme ) 了 ~!!!! 

                以及 我们在客户端 挂载目录里 创建的 t1.txt 都没有了 ~!!!

                ===>>>

                              举这个例子,主要也是想强调下 , 之前讲过的  挂载 ~!!!!

                              这就牵扯到我们之前讲到的, 挂载 的知识了~!1

                              ===>>> 

                                     就是,只要是通过 临时挂载, 那么只要伴随着 系统重启,会自动卸载,所

                                     以,要想重启不影响,那就得 进行 永久挂载,而不是 临时挂载了~!!! 

            

              我们再按着 挂载的流程 再来一遍,看看有什么发现 

              ===>>>                        

[root@node1 nfsfile_khd]# mount -t nfs 192.168.229.130:/nfsfile /nfsfile_khd 



[root@node1 nfsfile_khd]# ls

[root@node1 nfsfile_khd]# cd ..

[root@node1 /]# cd nfsfile_khd/

[root@node1 nfsfile_khd]# ls
readme  t1.txt

                可以看到,我们再次进行了 mount 挂载( 临时挂载 ) 的操作; 

                但是,注意 : 

                我们临时挂载完之后, 使用 ls 命令,却发现什么都没显示,都没列出 ~!!

                这时,我们就得,使用下 cd .. 命令,退到上一级,然后再进来, 再使用 ls 命令 看看

                此时,就列出 我们想要见到的文件了 ( readme, t1.txt ) 

                这时,你应该是要有个疑问的 , 

                咦, 怎么,我这两个文件( readme,  t1.txt ) 又出现了,不是说,临时挂载,重启之后

                就没了嘛, 怎么我再使用临时挂载,这两个文件又有了 ·???? 

                不是说,得使用 永久挂载嘛, 为啥,我就仅仅只是进行了 临时挂载,就又有了 ~?!

                ===>>>

                        其实,问题的根本是在,回想下,当时,只是在 客户端实现了 重启,那服务端呢

                        服务端,并没有执行什么其它的操作

                        ===>>>

[root@server nfsfile]# ls
readme  t1.txt

                         因此,你在服务端 使用 ls ,就会发现, 那两个( readme,  t1.txt ) 是都在的

                         所以,当客户端重启后,在客户端的挂载目录是看不到文件的,而再次使用临时挂

                         载又会有了文件, 这和 服务端 那边是有关系的~!!!

             

         现在,我们在来说这个 系统重启之后,实现永久挂载的问题 

         ===>>>

[root@node1 nfsfile_khd]# vim /etc/fstab

   Linux - 进阶 NFS服务器搭建 详解实验操作_第3张图片

       进入 /etc/fstab 文件后, 定位最后一行,添加内容 

       内容  : 

                 &  挂载谁( 192.168.229.130 ), 冒号 , 谁里面的 /nfsfile 文件 

                     服务端的 IP 地址 和 共享文件的路径 

                 & 段与段之间的间隔用 Tab   不用 空格。  

                 & 挂载到本地(客户端)的什么位置 ( /nfsfile_khd ) 

                 & 指明文件系统 ( NFS ) 

                 & defaults ( 注意末尾有 s ) 

                 &  0    0     

                 而后,保存退出。  

                 

                  这样,我们实现的永久挂载的操作就执行完了,为了确保起见,我们可以再执行下

                  ===>>>

[root@node1 nfsfile_khd]# mount -a 

                   就是把没挂载都再确认挂载上 。 

                    

                  

             检测下 : 

              重启 

[root@node1 nfsfile_khd]# reboot

               进入挂载目录查看文件 

[root@node1 ~]# cd /nfsfile_khd/

[root@node1 nfsfile_khd]# ls
readme  t1.txt

                显然,客户端重启之后,再进入挂载目录,就能看到 共享文件 还是在的。 

                这就说明,我们永久挂载实现成功,并且, 客户端就算系统重启,也不再对共享目录

                产生影响,客户端依旧可以正常访问~!!!!!

你可能感兴趣的:(Linux,进阶,服务器,linux,运维)