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

news2024/11/18 17:41:28

      

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

         #   搭建环境 

              

              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) 

                

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

                   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

   

       进入 /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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/756463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

顶尖公司是平均水平的100倍,惊讶吗?

行业顶尖公司人员平均能力水平,在行业平均水平的100倍之上! 程序员的超级榜样:美国integram公司13个人,最后被facebook用10亿美金收购 《中庸》人能一之己百之,人能十之己千之 趣讲大白话:百倍努力&#xf…

项目管理软件挑选诀窍:6个必须知道的关键点!

项目管理软件对于任何希望简化其操作和提高效率的组织来说都是一个有价值的工具。然而,市场上有这么多的选择,选择合适的软件可能是一项艰巨的任务。在本文中,我们将讨论如何选择满足您业务需求的项目管理软件。 1、确定你的挑战和限制 选择项…

TL5000可调谐激光器控制软件系统

画了两周时间,利用下班时间,设计了一个ITLA可调谐激光器控制系统,从硬件到软件。 这是使用的界面,实现了下面的功能: 1、模块信息的读取,包括生产日期,生产厂家,型号,序…

在WIN10系统中安装TIA博途V18,重启后提示安装介质不可用,请插入DVD 或检查网络连接的解决办法

在WIN10系统中安装TIA博途V18,重启后提示安装介质不可用,请插入DVD 或检查网络连接的解决办法 原因:下载的安装包为ISO文件,若没有解压缩,直接点击打开安装,则会出现这样的错误提示。 解决办法: 把安装包解压缩之后再进行安装。 安装教程可参考以下步骤: 前提条件: T…

【iOS内存管理-编译链接的过程】

文章目录 前言计算机语言文件后缀名 编译和链接的过程编译链接预处理(预编译)-> 产生.i文件编译 -> 产生.s文件汇编 -> 产生.o文件链接 总结 前言 就我而言,iOS开发的过程中接触到的编译链接方面的知识很少,这部分知识还…

【JavaSE】- 包装类和String常用方法

包装类和常用方法 1.1 包装类1.2 自动装箱和自动拆箱1.3 包装类型转String类型2.1 String2.2 String常用方法3.1 StringBuffer4.1 StringBuilder 1.1 包装类 1.2 自动装箱和自动拆箱 // 手动装箱int n1 100;Integer integer new Integer(n1);// 手动拆箱Integer integer02 I…

electron globalShortcut 快捷键与系统全局快捷键冲突

用 electron 开发自己的接口测试工具(Post Tools),在设置了 globalShortcut 快捷键后,发现应用中的快捷键与系统全局快捷键冲突了,导致系统快捷键不可正常使用。 快捷键配置 export function initGlobalShortcut(main…

20款奔驰E300升级柏林之声音响系统,体验不一样的感觉

享有盛名的 Burmester 音响系统可带来独特音质,打造震撼的听觉体验。高性能扬声器可营造殿堂级的立体声音响效果。您可以分别为前排和后排乘客优化这一设置,进一步提升听觉体验。

如何快速搭建自己同城跑腿系统?尚无忧跑腿小程序源码

是一款集代买、代送、代取等服务为一体的本地同城跑腿配送系统,支持二次开发,功能定制。 跑腿系统可众包模式,提供全套解决方案,包括跑腿系统配送端、用户端以及强大的后台管理系统。 使用uniappthinkphp技术 适配支持公众号APP…

【问卷分析】调节效应检验的操作②

文章目录 2.2 当调节变量是分类变量时(1) 确定组别区分(2)检验调节效应值(3)结果解读 接上一篇文章: 【问卷分析】调节效应检验的操作① 2.2 当调节变量是分类变量时 我们将以该模型中的调节变…

ASO优化之在海外如何进行竞品分析

进行竞争对手研究,需要分析当前的市场形势,确定竞争对手表现的模式,并将其应用到我们应用营销策略中。不同的应用可以在直观的用户界面上进行简单的比较,很容易看到长期趋势。 在App Store和Google Play上获取竞争对手评论区的信…

promise规范及应用

##promise解析 *啥是异步? //异步执行let count 1let timer setTimeout(function () {countconsole.log(in, count);}, 1000);console.log(out);// out>1000>in//循环执行let count 1let timer setInterval(function () {countconsole.log(in, count);}, 1000);con…

YOLO学习笔记1. YOLOV1的基本概念

YOLO学习笔记1. YOLOV1的基本概念 一、 YOLO简介二、一些基本概念1. two-stage和one-stage2. 指标分析(1)精度的概念(2)召回率的概念(3)IOU(4)置信度阈值(5) …

成功解决VScode每次只能打开一个文件,即只能打开一个编辑窗口。

成功解决VScode每次只能打开一个文件,即只能打开一个编辑窗口。 解决方案 解决方案 点击文件 --> 首选项 --> 设置 --> 工作台 --> 编辑管理 --> 取消勾选Enable Preview 如下图所示: 下拉,取消勾选Enable Preview

[JVM] 1. 初步认识JVM

核心思想: “Write Once, Run anywhere”. 各种语言通过编译器转换成字节码文件,在JVM上运行。 一、Java虚拟机 Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成…

Netty核心技术十一--用Netty 自己 实现 dubbo RPC

1. RPC基本介绍 RPC(Remote Procedure Call):远程 过程调用,是一个计算机 通信协议。该协议允许运 行于一台计算机的程序调 用另一台计算机的子程序, 而程序员无需额外地为这 个交互作用编程 两个或多个应用程序都分 布在不同的服…

AJAX与axios框架

文章目录 前言案例跨域访问总结❗ 前言 提示:这里可以添加本文要记录的大概内容: 通过 ajax 进行前后端交互 案例 此项目用到了javaweb知识 首先创建JavaWeb项目编写代码: package ajax;import java.io.IOException; import java.util.A…

个人引导页源码带三个按钮可添加

个人引导页源码带三个按钮可添加 简洁优雅引导页

SpingBoot配置文件

普通参数配置 之前用阿里云oss,如果在每一个都程序都写这个 1.代码一旦修改要一个一个改 2.代码复用性低 所以可以配置到springBoot的配置文件来进行对应的读取,这样复用性就高了 赋值Value(和最下面注解功能相同) 在applicat…

淘宝app商品详情原数据API接口【详情页优惠券数据】Python语言示例请求范例,多种语言均支持

首先以Python语言请求示例为介绍 请求示例 # coding:utf-8 """ Compatible for python2.x and python3.x requirement: pip install requests """ from __future__ import print_function import requests # 请求示例 url 默认请求参数已经做U…