访问NFS存储及自动挂载

本章主要介绍NFS客户端的使用

        创建NFS服务器并通过NFS共享一个目录

        在客户端上访问NFS共享的目录

        自动挂载的配置和使用

1 访问NFS存储

        前面介绍了本地存储,本章就来介绍如何使用网络上的存储设备。NFS即网络文件系统,所实现的是 Linux 和 Linux 之间的共享。

        下面的练习我们将会在server上创建一个文件夹/share,然后通过NFS把它共享,再在 server2上把这个共享文件夹挂载到/nfs上,如图所示。

         首先在第一台设备上启动nfs-server 服务并设置开启自动启动,命令如下。

[root@redhat8 ~]# systemctl enable nfs-server.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.

        创建准备共享的目录/share,命令如下。

[root@redhat8 ~]# mkdir /share

        在/etc/exports中把目录/share共享出去,命令如下。

[root@redhat8 ~]# vim /etc/exports
[root@redhat8 ~]# cat /etc/exports
/share *(rw,no_root_squash)

        这里*的意思是表示任何客户端都可以访问/share目录。让共享生效,命令如下。

[root@redhat8 ~]# exportfs -arv
exporting *:/share

        在server上配置防火墙放行NFS,命令如下。

[root@redhat8 ~]# firewall-cmd --add-service=nfs
success
[root@redhat8 ~]# firewall-cmd --add-service=nfs --permanent 
success
[root@redhat8 ~]# firewall-cmd --add-service=rpc-bind 
success
[root@redhat8 ~]# firewall-cmd --add-service=rpc-bind --permanent 
success
[root@redhat8 ~]# firewall-cmd --add-service=mountd 
success
[root@redhat8 ~]# firewall-cmd --add-service=mountd --permanent 
success

        关于防火墙的配置,后续会有专门章节讲解。

        在第二台设备访问这个共享文件夹,首先使用show mount命令查看服务器上共享的目录,命今如下。

[root@redhat8 ~]# showmount -e 192.168.184.100
Export list for 192.168.184.100:
/share *

        把服务器上共享的目录挂载到本地/nfs目录上,命令如下。

[root@redhat8 ~]# mkdir /nfs
[root@redhat8 ~]# mount 192.168.184.100:/share /nfs/

        查看挂载情况,命令如下。

[root@redhat8 ~]# df -Th | grep nfs
192.168.184.100:/share        nfs4       17G  8.9G  8.2G   52% /nfs

        可以看到,已经挂载好了。 如果希望开机能够自动挂载,则写入/etc/fstab中,命令如下。

[root@redhat8 ~]# vim /etc/fstab 
[root@redhat8 ~]# tail -1 /etc/fstab 
192.168.184.100:/share /nfs nfs defaults 0 0

2 自动挂载

        自动挂载的意思是,把一个外部设备/dev/xx和某个目录/dir/yy关联起来。平时/dev/xx是否挂载到了/dir/yy 上不需要考虑,但访问 /dir/yy时,系统就知道要访问 /dev/xx中的数据,这个时候系统会自动将/dev/xx挂载到/dir/yy 上。

        安装软件包的步骤如下。

步骤①:挂载光盘,命令如下。

[root@redhat8 ~]# mount /dev/cdrom /mnt/

         这里准备把光盘作为yum源。

        步骤②:编写repo文件,命令如下。

[root@redhat8 ~]# vim /etc/yum.repos.d/aa.repo 
[root@redhat8 ~]# cat /etc/yum.repos.d/aa.repo 
[aa]
name=aa
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0[bb]
name=bb
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0

        开始安装autofs,命令如下。

[root@redhat8 ~]# yum -y install autofs

        启动autofs并设置开机自动启动,命令如下。

[root@redhat8 ~]# systemctl enable autofs.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.

        下面练习把光盘自动挂载到/zz/dvd 上。先把/zz创建出来,命令如下。

[root@redhat8 ~]# mkdir /zz

        记住,这里不需要创建目录/zz/dvd,这个目录会自动创建。

        在/etc/auto.master.d目录中创建一个后缀为 autofs的文件,后缀必须是autofs,这里创建的是aa.autofs,命令如下。

[root@redhat8 ~]# vim /etc/auto.master.d/aa.autofs
[root@redhat8 ~]# cat /etc/auto.master.d/aa.autofs
/zz /etc/auto.aa

        这里的意思是把哪个外部设备挂载到/zz的哪个子目录上由/etc/auto.aa决定,内容使用 【Tab】键进行分隔。下面创建/etc/auto.aa,命令如下。

[root@redhat8 ~]# vim /etc/auto.aa
[root@redhat8 ~]# cat /etc/auto.aa
dvd -fstype=iso9660,ro :/dev/cdrom

注意

        上面的命令中,dvd和-fstype之间有一个【Tab】键,ro和后面的冒号之间有一个【Tab】键。

         这个文件的格式如下。

        这里外部设备如果是本地磁盘或光盘,冒号前面保持为空,但是冒号不能省略。如果是其他机器上共享的目录,则写远端的IP。

        结合/etc/auto.master.d/aa.autofs整体的意思是,当访问/zz/dvd时,系统会自动把/dev/cdrom挂载到/zz/dvd 上。

        重启autofs服务,让我们刚做的配置生效,命令如下。

[root@redhat8 ~]# systemctl restart autofs.service 

确认现在光盘是没有挂载到/zz/dvd 上的,而且/zz目录中也没有dvd目录,命令如下。

[root@redhat8 ~]# mount | grep -v auto | grep zz
[root@redhat8 ~]# ls /zz

下面访问/zz/dvd,命令如下。

[root@redhat8 ~]# ls /zz/dvd
AppStream  EFI   extra_files.json  images    media.repo               RPM-GPG-KEY-redhat-release
BaseOS     EULA  GPL               isolinux  RPM-GPG-KEY-redhat-beta  TRANS.TBL

        因为访问这个目录时能触发自动挂载,系统自动创建/zz/dvd并把 /devcdrom挂载到这 个目录上,再次验证挂载情况,命令如下。

[root@redhat8 ~]# mount | grep -v auto | grep zz
/dev/sr0 on /zz/dvd type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)

        可以看到,现在已经挂载上去了。

实验:下面练习自动挂载NFS共享文件夹,整个实验思路如下。

        在第一台设备上创建一个用户 mary,家目录指定为/rhome/mary。在server2上也创建一个用户mary,家目录也指定为/rhome/mary,但是server2上的 mary并不把这个家目录创建出来,如图所示。

         通过NFS把server上的/rhome共享出去,在第二台设备上配置 autofs,把192.168.26.11上 的/rhome/mary关联到第二台设备上的/rhome/mary中。

        当在第二台设备上使用mary登录时会自动登录到/rhome/mary,就会触发autofs自动把 192.168.26.11:/rhome/mary挂载到server2的/rhome/mary目录上,这样第二台设备上的 mary也就有了家目录。

        在第一台设备上创建/rhome目录,然后创建用户 mary,家目录设置为/rhome/mary,用户 的uid设置为3001,命令如下。

[root@redhat8 ~]# mkdir /rhome
[root@redhat8 ~]# useradd -u 3001 -d /rhome/mary mary
[root@redhat8 ~]# echo haha001 | passwd --stdin mary
更改用户 mary 的密码 。
passwd:所有的身份验证令牌已经成功更新。

        此时在第一台设备上mary用户就创建好了,且 mary的家目录也是存在的。

        在第二台设备上创建/rhome目录,然后创建用户mary,家目录设置为/rhome/mary。因为 指定了-M选项,这个目录并没有被创建,用户的uid设置为3001,记住必须和第一台设备上的 mary具有相同的uid,命令如下。        

[root@redhat8 ~]# mkdir /rhome
[root@redhat8 ~]# useradd -u 3001 -d /rhome/mary -M mary
[root@redhat8 ~]# echo haha001 | passwd --stdin mary
更改用户 mary 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@red-hat8 ~]# ls /rhome/

        可以看到,mary的家目录/rhome/mary并没有被创建出来。在server2上切换到mary用 户,命令如下。

[root@red-hat8 ~]# su - mary
su: 警告:无法更改到 /rhome/mary 目录: 没有那个文件或目录
[mary@red-hat8 root]$ 
[mary@red-hat8 root]$ exit
注销

        在第二天设备上因为mary没有家目录,所以会出现上述警告信息,输入“exit”退回到root 用户。 在server上通过NFS把/rhome共享出去,编辑/etc/exports内容如下。

[root@redhat8 ~]# showmount -e 192.168.184.100
Export list for 192.168.184.100:
/rhome *
/share *

        这样就把/rhome共享出去了,然后让此共享生效。

[root@redhat8 ~]# exportfs -arv
exporting *:/rhome
exporting *:/share

切换到server2上开始配置autofs,创建/etc/auto.master.d/bb.autofs,内容如下。

[root@redhat8 ~]# cat /etc/auto.master.d/bb.autofs
/rhome /etc/auto.bb

到底把哪个外部设备挂载到/rhome的哪个子目录上由/etc/auto.bb决定。

下面创建/etc/auto.bb,内容如下

[root@redhat8 ~]# cat /etc/auto.bb
mary ‐fstype=nfs,rw 192.168.184.100:/rhome/mary

        结合/etc/auto.master.d/bb.autofs整体的意思是,当访问/rhome/mary时,系统会自动把192.168.184.100:/rhome/mary挂载到设备2的/rhome/mary目录上。

        重启autofs,命令如下。

[root@redhat8 ~]# systemctl restart autofs.service

确认现在/rhome/mary是没有挂载任何东西的,命令如下。

[root@redhat8 ~]# mount | grep ‐v auto | grep rhome

下面在server2上切换到mary,记住通过su - mary而不是通过su mary,命令如下。

[root@redhat8 ~]# su ‐ mary
[mary@redhat8 ~]$ pwd
/rhome/mary
[mary@redhat8r ~]$ exit
注销

        我们知道su - mary,用户切换到mary的同时也会切换到mary的家目录,这样会触发 autofs,再次查看挂载情况,命令如下。

 [root@redhat ~]# mount | grep ‐v auto | grep rhome
192.168.8.11:/rhome/mary on /rhome/mary type nfs4 (rw,relatime,vers=4.
2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,
ec=sys,clientaddr=192.168.8.12,local_lock=none,addr=192.168.184.100)

可以看到,已经成功挂载了。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在springboot中引入参数校验

一、概要 一般我们判断前端传过来的参数&#xff0c;需要对某些值进行判断&#xff0c;是否满足条件。 而springboot相关的参数校验注解&#xff0c;可以解决我们这个问题。 二、快速开始 首先&#xff0c;我用的springboot版本是 3.1.5 引入参数校验相关依赖 <!--1…

Java - 线程间的通信方式

线程通信的方式 线程中通信是指多个线程之间通过某种机制进行协调和交互 线程通信主要可以分为三种方式&#xff0c;分别为共享内存、消息传递和管道流。每种方式有不同的方法来实现 共享内存&#xff1a;线程之间共享程序的公共状态&#xff0c;线程之间通过读-写内存中的公…

【ARM Coresight 系列 2 文章 -- Trace32 对 APBIC 地址的配置 介绍】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 APBIC RomtableTrace32 RESBREAKTrace32 ENRESETAPBIC Romtable 图 1 APBIC 网络图 如上图所示,如果想通过Trace32/DS-5 去访问 AP, 这个时候需要怎么做呢?可以看到 APBIC 中ROMTABLE 中 APB-AP 的偏移是0x002000…

ECCV 2024 European Conference on Computer Vision

目录 DatesPeople 官网&#xff1a; https://eccv2024.ecva.net/ 链接 Dates Thursday, February 29, 2024 authors Abstract registration deadlineThursday, March 7, 2024 authors Submission deadlineThursday, March 14, 2024 authors Supplementary materials deadlineM…

数据驱动构建企业动态全面预算管理架构

在过去的20年里&#xff0c;电子表格一直是企业用于规划、预测、预算和管理报告的主要工具&#xff0c;尽管有的企业具备针对财务的系统&#xff0c;但其应用效率和规划技术仍然难以满足市场需求。并且&#xff0c;大部分企业对于财务管理的部署成本相对较低&#xff0c;其可访…

御剑工具学习

御剑 1.1 工具的下载路径1.2 工具的安装流程1.3 工具的详细使用 1.1 工具的下载路径 百度网盘 链接&#xff1a;https://pan.baidu.com/s/1Bn7GtWb7AStcjzVahFOjSQ 提取码&#xff1a;zkaq 1.2 工具的安装流程 御剑不用安装&#xff0c;直接下载下来解压&#xff0c;双击“御…

优化您的Mac电脑风扇控制体验 - 尝试Macs Fan Control Pro!

在日常使用Mac电脑过程中&#xff0c;我们经常会遇到电脑发热的问题&#xff0c;特别是在运行大型软件或进行高负载任务时。为了保护电脑硬件&#xff0c;一个高效且可靠的风扇控制软件是必不可少的。 Macs Fan Control Pro是一款专为Mac电脑设计的风扇控制软件&#xff0c;它…

SpringBoot自定义参数校验注解

为什么要自定义校验注解? 当现有的注解NotEmptyPatternNotNullURl等不能满足业务需求的时候,我们需要手动自定义一个注解 操作步骤 新建一个anno的包 单击右键添加注解 编写state注解 创建validation文件夹 编写校验规则 然后给上面的State注解指定这个校验规则 使用注解…

好用的网页内容转markdown工具

因为平时记录的笔记在不同的平台发布&#xff0c;后面需要保存成mrakdown的格式又找不到本地的文件记录&#xff0c;本地存储的好处很多&#xff0c;比如可以离线浏览阅读&#xff0c;对网页进行备份&#xff0c;也能借助其他工具同步数据而来满足自己的工作流程。这是这些工具…

【EI会议征稿】第三届电气、控制与信息技术国际学术会议(ECITech 2024)

第三届电气、控制与信息技术国际学术会议&#xff08;ECITech 2024&#xff09; 2024 3rd International Conference on Electrical, Control and Information Technology 继往届ECITech年度系列会议的成功举办&#xff0c;第三届电气、控制与信息技术国际学术会议&#xff08…

Vue-第七天

智慧商城项目&#xff1a; 1.创建项目选项&#xff1a; 2.调整&#xff1a; 主要是增加两个文件夹&#xff0c;删除倒是没什么 3.组件库&#xff08;vant-ui&#xff09;&#xff1a; 点击进入官网:Vant 2 - Mobile UI Components built on Vue 4.导入&#xff1a; 全部导入…

GaussDB数据库语法及gsql入门

一、GaussDB数据库语法入门 之前我们讲了如何连接数据库实例&#xff0c;那连接数据库后如何使用数据库呢&#xff1f;那么我们今天就带大家了解一下GaussDB&#xff0c;以下简称GaussDB的基本语法。 关于如何连接数据库&#xff0c;请戳这里。 学习本节课程之后&#xff0c…