Linux---访问NFS存储及自动挂载

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

  • 创建NFS服务器并通过NFS共享一个目录
  • 在客户端上访问NFS共享的目录
  • 自动挂载的配置和使用

访问NFS存储 

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

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

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

[root@rhel03 ~]# 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.
[root@rhel03 ~]#

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

[root@rhel03 ~]# mkdir /share
[root@rhel03 ~]#

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

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

这里*的意思是表示任何客户端都可以访问/share目录。 

让共享生效,命令如下。 

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

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

[root@rhel03 ~]# firewall-cmd --add-service=nfs --permanent 
success
[root@rhel03 ~]# firewall-cmd --add-service=rpc-bind --permanent 
success
[root@rhel03 ~]# firewall-cmd --add-service=mountd --permanent 
success
[root@rhel03 ~]# firewall-cmd --reload 
success
[root@rhel03 ~]# firewall-cmd --list-services 
cockpit dhcpv6-client mountd nfs rpc-bind ssh
[root@rhel03 ~]#

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

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

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

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

[root@rhel04 ~]# mkdir /nfs
[root@rhel04 ~]# mount 192.168.23.33:/share /nfs
[root@rhel04 ~]# 

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

[root@rhel04 ~]# df -Th | grep nfs
192.168.23.33:/share nfs4       98G   12G   87G   12% /nfs
[root@rhel04 ~]# 

可以看到,已经挂载好了。

如果希望开机能够自动挂载,则写入/etc/fstab中,命令如下。 

[root@rhel04 ~]# tail -1 /etc/fstab 
192.168.23.33:/share                      /nfs                    nfs     defaults        0 0 
[root@rhel04 ~]# 

自动挂载 

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

安装软件包的步骤如下。

  • 挂载光盘,命令如下。 
[root@rhel03 ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@rhel03 ~]# 

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

  • 编写repo文件,命令如下。 
[root@rhel03 ~]# 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
[root@rhel03 ~]# 
  • 开始安装autofs,命令如下。 
[root@rhel03 ~]# yum -y install autofs
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

上次元数据过期检查:0:02:16 前,执行于 2023年12月07日 星期四 06时16分07秒。
依赖关系解决。
======================================================================================================================================
 软件包                        架构                          版本                                     仓库                       大小
======================================================================================================================================
安装:
 autofs                        x86_64                        1:5.1.4-74.el8                           bb                        706 k

事务概要
======================================================================================================================================
安装  1 软件包

总计:706 k
安装大小:2.8 M
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                       1/1 
  安装    : autofs-1:5.1.4-74.el8.x86_64                                                                                          1/1 
  运行脚本: autofs-1:5.1.4-74.el8.x86_64                                                                                          1/1 
  验证    : autofs-1:5.1.4-74.el8.x86_64                                                                                          1/1 
已更新安装的产品。

已安装:
  autofs-1:5.1.4-74.el8.x86_64                                                                                                        

完毕!
[root@rhel03 ~]# 

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

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

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

[root@rhel03 ~]# mkdir /zz
[root@rhel03 ~]# 

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

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

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

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

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

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

这个文件的格式如下。

  • 子目录 ‐fstype= 文件系统,选项1,选项2 :外部设备 

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

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

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

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

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

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

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

[root@rhel03 ~]# 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
[root@rhel03 ~]# 

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

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

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

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

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

 左边是rhel03-192.168.23.33,右边是rhel04-192.168.23.34

  通过NFS把rhel03上的/rhome共享出去,在rhel04上配置 autofs,把192.168.23.33上 的/rhome/mary关联到rhel04上的/rhome/mary中。 

  当在rhel04上使用mary登录时会自动登录到/rhome/mary,就会触发autofs自动把 192.168.23.33:/rhome/mary挂载到rhel04上的/rhome/mary目录上,这样rhel04的mary也就有了家目录。 

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

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

此时在rhel03上mary用户就创建好了,且 mary的家目录也是存在的。 

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

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

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

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

在rhel04上因为mary没有家目录,所以会出现上述警告信息,输入“exit”退回到root 用户。 

在rhel03上通过NFS把/rhome共享出去,编辑/etc/exports内容如下。 

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

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

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

切换到rhel04上开始配置autofs,创建/etc/auto.master.d/bb.autofs,内容如下。 (rhel04安装autofs根据前面内容安装即可)

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

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

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

[root@rhel04 ~]# cat /etc/auto.bb
mary	-fstype=nfs,rw	192.168.23.33:/rhome/mary
[root@rhel04 ~]#

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

重启autofs,命令如下。 

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

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

[root@rhel04 ~]# mount | grep -v auto | grep rhome
[root@rhel04 ~]# 

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

[root@rhel04 ~]# su - mary
[mary@rhel04 ~]$ pwd
/rhome/mary
[mary@rhel04 ~]$ exit
注销
[root@rhel04 ~]# 

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

[root@rhel04 ~]# mount | grep -v auto | grep rhome
192.168.23.33:/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,sec=sys,clientaddr=192.168.23.34,local_lock=none,addr=192.168.23.33)
[root@rhel04 ~]#

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML基础教程:构建你的第一个个人网页

由于篇幅限制,我将提供一个详细的大纲和一部分文章内容,而不是完整的3000字教程。 HTML基础教程:构建你的第一个个人网页 引言 在这个数字化不断进步的时代,拥有一个个人网页可以说是你数字身份的重要组成部分。无论你是学生、专…

Java网络编程——ServerSocket用法解析

在客户/服务器通信模式中,服务器端需要创建监听特定的端口的ServerSocket,ServerSocket负责接收客户连接请求。 1、构造ServerSocket ServerSocket的构造方法有以下几种重载形式: public ServerSocket() throws IOException; public Serve…

定义一个学生类,其中有3个私有数据成员学号、姓名、成绩,以及若于成员。 函数实现对学生数据的赋值和输出。

#include <stdio.h> // 定义学生类 typedef struct Student { int stuNum; // 学号 char name[20]; // 姓名&#xff0c;假设最长为20个字符 float score; // 成绩 } Student; // 初始化学生信息 void initializeStudent(Student *student, int num, const…

Linux--文件权限与shell外壳的理解

目录 一.Linux的用户与用户切换&#xff0c;提权 二.对文件权限的理解 1.文件权限角色的权限文件属性 2.Linux中的三种角色 3.为什么会存在所属组这个角色 4.文件属性的意义 4.1.第一个字母的意义 4.2 第2——第10个字母的意义 4.3修改文件权限的方法 三.目录权限 四…

vue-draggable-plu

一、介绍 由于 Sortablejs 的 vue3 组件一直没有更新&#xff0c;已经跟 vue3 严重脱节&#xff0c;所以诞生了这个项目&#xff0c;这个组件是基于 Sortablejs 的&#xff0c;所以如果你想了解更多关于 Sortablejs 的信息&#xff0c;可以查看Sortablejs 官网。vue-draggable…

openEuler JDK21 部署 Zookeeper 集群

zookeeper-jdk21 操作系统&#xff1a;openEuler JDK&#xff1a;21 主机名IP地址spark01192.168.171.101spark02192.168.171.102spark03192.168.171.103 安装 1. 升级内核和软件 yum -y update2. 安装常用软件 yum -y install gcc gcc-c autoconf automake cmake make \zl…

低多边形3D建模动画风格纹理贴图

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…

Python-文件详解

一个计算机包括&#xff1a;CPU、存储器、输入设备、输出设备 存储器分为内存和硬盘 文件路径&#xff1a;一层一层文件目录组成的字符串 文件路径可以视为文件在硬盘中的身份标识&#xff0c;因为每一个文件的1路径唯一 文件之间使用/反斜杠和\正斜杠都一样 内存和硬盘的区别…

【PyTorch】模型选择、欠拟合和过拟合

文章目录 1. 理论介绍2. 实例解析2.1. 实例描述2.2. 代码实现2.2.1. 完整代码2.2.2. 输出结果 1. 理论介绍 将模型在训练数据上拟合的比在潜在分布中更接近的现象称为过拟合&#xff0c; 用于对抗过拟合的技术称为正则化。训练误差和验证误差都很严重&#xff0c; 但它们之间差…

mysql知识分享(包含安装卸载)(一)

如果博客有错误&#xff0c;请佬指正。 目录 注意&#xff1a;打开cmd时要有管理员身份打开&#xff0c;重要 为何使用数据库&#xff1f; 数据库的相关概念 关系型数据库 关系型数据库设计规则 表&#xff0c;记录&#xff0c;字段 表的关联关系 一对一关联 一对多关系 …

基于Apache DolphinScheduler构建数据平台的实践分享

很荣幸收到社区的邀请来给大家分享一下公司基于构建数据平台的实践。我将首先介绍DataLink大数据平台&#xff0c;然后讲解调度系统的升级和选型&#xff0c;最后分享我们是如何基于Apache DolphinScheduler构建数据平台的&#xff0c;以及平台的现状和未来的规划。 公司介绍 …

ReentrantLock

文章目录 相对于 synchronized 它具备如下特点&#xff1a; 可中断&#xff0c;别的线程可以打断自己&#xff0c;避免自己竞争不到锁一直block&#xff0c;发生死锁可以设置超时时间&#xff1a;tryLock&#xff0c;可以解决死锁可以设置为公平锁&#xff0c;一般不会用支持多…

Zookeeper单机模式搭建

1、下载 ​wget https://dlcdn.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz 2、解压 tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz 3、进入 apache-zookeeper-3.6.3-bin目录下&#xff0c;创建data cd apache-zookeeper-3.6.3-bin mkdir da…

JVM GUI可视化监控及诊断工具

工具既述 使用命令行工具或组合能帮您获取目标Java应用性能相关的基础信息&#xff0c;但它们存在下列局限&#xff1a; 无法获取方法级别的分析数据&#xff0c;如方法间的调用关系、各方法的调用次数和调用时间等&#xff08;这对定位应用性能瓶颈至关重要&#xff09;。要…

resnet 图像分类的项目

1. 项目文件 文件下载资源&#xff1a;resnet 图像分类的项目代码 本章利用reset34 作图像分类&#xff0c;包括计算训练集和测试集的loss、accuracy曲线&#xff0c;对训练好的网络在训练集测试集上求混淆矩阵 data 文件为训练集测试集&#xff0c;图像按照文件夹摆放inferenc…

汽车电子 -- CAN文件格式ASC

Vector提供了两种记录数据格式的格式规范&#xff1a;BLF和ASC。 先讲讲ASC。 参看&#xff1a;图文详解CAN Log文件 - ASC文件格式 一、ASC文件格式 在Vector提供的 CAN_LOG_TRIGGER_ASC_Format.pdf 提取码&#xff1a;ltjv 文件中&#xff0c;规定了CANoe/CANalyzer ASC记…

利用TCP通信实现文件传输和通信

前言 我们上一章已经熟悉了理论知识&#xff0c;这一章来练习一下 1.实现文件的传输 1.1 客户端 dir_client.c #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/types.h> #include …

Java ThreadLocal 实现原理 与 如何使用弱引用解决内存泄漏问题

目录 一、ThreadLocal 有什么用二、ThreadLocal 使用示例三、ThreadLocal 实现原理四、ThreadLocal 如何是使用弱引用解决内存泄漏问题4.1、强引用内存泄漏分析4.1、弱引用解决内存泄漏问题 一、ThreadLocal 有什么用 ThreadLocal 诞生于 JDK 1.2&#xff0c;用于解决多线程间的…

基于ssm学院党员管理系统论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对鄂尔多斯应用技术学院党员信息管理混乱&#xff0c;出错率高&#x…

javaWebssh图书系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

系统前景 图书有很多&#xff0c;老的图书书的管理靠纸介质&#xff0c;浪费人力和物力&#xff0c;给图书管理者带来极大的资源浪费。随着计算机信息化的普及&#xff0c;对图书的管理带来本质的改变&#xff0c;图书的销售情况以及&#xff0c;图书管理&#xff0c;以及年终对…