RHEL8_Linux访问NFS存储及自动挂载

news2024/11/18 3:47:57

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

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

1.访问NFS存储

        前面介绍了本地存储,本章就来介绍如何使用网络上的存储设备。NFS即网络文件系统,所实现的是 Linux 和 Linux 之间的共享。
        下面的练习我们将会在node01上创建一个文件夹/share,然后通过NFS把它共享,再在node02上把这个共享文件夹挂载到/nfs上,如图所示。
实战:
1)首先在node01上启动nfs-server 服务并设置开启自动启动,命令如下。
[root@node01 ~]# 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@node01 ~]# 
2)创建准备共享的目录/share,命令如下。
[root@node01 ~]# mkdir /share
3)在/etc/exports中把目录/share共享出去,命令如下。
[root@node01 ~]# vim /etc/exports
[root@node01 ~]# cat /etc/exports
/share 192.168.182.0/24(rw,no_root_squash)
[root@node01 ~]# 
  1. 这里可以用通配符 “*” 表示任何客户端都可以访问目录
  2. 可以使用网段例如:192.168.182.0/24
  3. 也可以使用IP地址,例如:192.168.182.210/24
4)让共享生效,命令如下
[root@node01 ~]# exportfs -arv
exporting 192.168.182.0/24:/share
[root@node01 ~]# 
5)在server上配置防火墙放行NFS,命令如下。
[root@node01 ~]# firewall-cmd --add-service=nfs
success
[root@node01 ~]# firewall-cmd --add-service=nfs --permanent 
success
[root@node01 ~]# firewall-cmd --add-service=rpc-bind 
success
[root@node01 ~]# firewall-cmd --add-service=rpc-bind --permanent 
success
[root@node01 ~]# firewall-cmd --add-service=mountd 
success
[root@node01 ~]# firewall-cmd --add-service=mountd --permanent 
success
[root@node01 ~]#
6)查看防火墙是否成功添加服务
[root@node01 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources: 
  services: cockpit dhcpv6-client mountd nfs rpc-bind ssh
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
[root@node01 ~]#
关于防火墙的配置,后续会有专门章节讲解。
7)在node02上访问这个共享文件夹,首先使用show mount命令查看服务器上共享的目录,命今如下。
[root@node02 ~]# showmount -e 192.168.182.200
Export list for 192.168.182.200:
/share 192.168.182.0/24
[root@node02 ~]# 
8)把服务器上共享的目录挂载到本地/nfs目录上,命令如下。
[root@node02 ~]# mount 192.168.182.200:/share /nfs/
[root@node02 ~]# 
9)查看挂载情况,命令如下。可以看到已经挂载好了
[root@node02 ~]# df -Th | grep nfs
192.168.182.200:/share      nfs4       44G  5.4G   39G   13% /nfs
[root@node02 ~]#
10)如果希望开机能够自动挂载,则写入/etc/fstab中,命令如下
[root@node02 ~]# vim /etc/fstab         //编辑文件
[root@node02 ~]# cat /etc/fstab | grep nfs    //查看并过滤内容
192.168.182.200:/share	    /nfs              nfs      defaults     0 0
[root@node02 ~]# 

2.自动挂载

        自动挂载的意思是,把一个外部设备/dev/xx和某个目录/dir/yy关联起来。平时/dev/xx 是否挂载到了/dir/yy 上不需要考虑,但访问 /dir/yy时,系统就知道要访问 /dev/xx中的数据,这个时候系统会自动将/dev/xx挂载到/dir/yy 上。
安装软件包的步骤如下。
1)挂载光盘,命令如下
[root@node01 ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@node01 ~]# 

这里准备发光盘作为本地YUM源

2)编写repo文件,命令如下
[root@node01 ~]# cat /etc/yum.repos.d/aa.repo 
[aa]
name=aa
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0

[bb]
name=bb
baseurl=///mnt/BaseOS
enabled=1
gpgcheck=0
[root@node01 ~]#
3)更新yum仓库
[root@node01 ~]# updatedb
4)开始安装autofs,命令如下。
[root@node01 ~]# yum -y install autofs
5)启动autofs并设置开机自动启动,命令如下。
[root@node01 ~]# systemctl enable autofs.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
[root@node01 ~]# 
6)下面练习把光盘自动挂载到/zz/dvd 上。先把/zz创建出来,命令如下。
[root@node01 ~]# mkdir /zz

注意:这里不需要创建目录/zz/dvd,这个目录会自动创建。

7)在/etc/auto.master.d目录中创建一个后缀为 autofs的文件,后缀必须是autofs,这里创建的是aa.autofs,命令如下。
[root@node01 ~]# cat /etc/auto.master.d/aa.autofs 
/zz	/etc/auto.aa
[root@node01 ~]# 
8)这里的意思是把哪个外部设备挂载到/zz的哪个子目录上由/etc/auto.aa决定,内容使用【Tab】键进行分隔。下面创建/etc/auto.aa,命令如下。
[root@node01 ~]# df -Th | grep iso    //查看文件系统
/dev/sr0              iso9660    11G   11G     0  100% /mnt
[root@node01 ~]#
[root@node01 ~]# vim /etc/auto.aa    //编辑文件内容
[root@node01 ~]# cat /etc/auto.aa     //添加以下内容
dvd	-fstype=iso9660,ro	:/dev/cdrom
[root@node01 ~]# 

这个文件的格式如下。
子目录    -fstype=    文件系统,选项1,选项2    :外部设备
        这里外部设备如果是本地磁盘或光盘,冒号前面保持为空,但是冒号不能省略。如果是其他机器上共享的目录,则写远端的IP。
        结合/etc/auto.master.d/aa.autofs整体的意思是,当访问/zz/dvd时,系统会自动把/dev/cdrom挂载到/zz/dvd 上。
9)重启autofs服务,让我们刚做的配置生效,命令如下。
[root@node01 ~]# systemctl restart autofs.service 
10)确认现在光盘是没有挂载到/zz/dvd 上的,而且/zz目录中也没有dvd目录,命令如下。
[root@node01 ~]# mount | grep -v auto | grep zz
[root@node01 ~]# ls /zz
[root@node01 ~]# 
11)下面访问/zz/dvd,命令如下。
[root@node01 ~]# ls /zz/dvd
AppStream  EULA              images      RPM-GPG-KEY-redhat-beta
BaseOS     extra_files.json  isolinux    RPM-GPG-KEY-redhat-release
EFI        GPL               media.repo  TRANS.TBL
[root@node01 ~]# 
12)因为访问这个目录时能触发自动挂载,系统自动创建/zz/dvd并把 /devcdrom挂载到这个目录上,再次验证挂载情况,命令如下。
[root@node01 ~]# mount | grep -v auto | grep zz
/dev/sr0 on /zz/dvd type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
可以看到,现在已经挂载上去了。

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

        在node01上创建一个用户 bob,家目录指定为/rhome/mary。在node02上也创建一个用户bob,家目录也指定为/rhome/mary,但是node02上的 bob并不把这个家目录创建出来,如图所示。
        通过NFS把node01上的/rhome共享出去,在node02上配置 autofs,把192.168.26.11上 的/rhome/mary关联到node02上的/rhome/mary中。
        当在node02上使用mary登录时会自动登录到/rhome/bob,就会触发autofs自动把 192.168.26.11:/rhome/bob挂载到node02的/rhome/bob目录上,这样node02上的bob也就有了家目录。
1)在node01上创建/bhome目录,然后创建用户 bob,家目录设置为/rhome/bob,用户的uid设置为2023,命令如下。
[root@node01 /]# mkdir /bhome
[root@node01 /]# useradd -u 2023 -d /bhome/bob bob
[root@node01 /]# echo 123456 | passwd --stdin bob 
更改用户 bob 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@node01 /]# 
此时在server 上mary用户就创建好了,且 mary的家目录也是存在的。
2)在node02上创建/bhome目录,然后创建用户bob,家目录设置为/bhome/bob。因为指定了-M选项,这个目录并没有被创建,用户的uid设置为2023,记住必须和 node01上的bob具有相同的uid,命令如下。
[root@node02 ~]# mkdir /bhome
[root@node02 ~]# useradd -u 2023 -d /bhome/bob -M bob
[root@node02 ~]# echo 123456 | passwd --stdin bob 
更改用户 bob 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@node02 ~]# 
[root@node02 ~]# ls /bhome/
[root@node02 ~]# 
3)可以看到,bob的家目录/bhome/bob并没有被创建出来。在node02上切换到mary用户,命令如下。
[root@node02 ~]# su - bob 
su: 警告:无法更改到 /bhome/bob 目录: 没有那个文件或目录
-bash-4.2$ exit
登出
[root@node02 ~]# 
        在node02上因为bob没有家目录,所以会出现上述警告信息,输入“exit”退回到root用户。
3)在node01上通过NFS把/bhome共享出去,编辑/etc/exports内容如下。
[root@node01 /]# cat /etc/exports
/share 192.168.182.0/24(rw,no_root_squash)
/bhome	192,168,182,0/24(rw,no_root_squash)
[root@node01 /]# 
4)这样就把/bhome共享出去了,然后让此共享生效。
[root@node01 /]# exportfs -arv
exportfs: Invalid IP address 192,168,182,0/24
exportfs: Invalid IP address 192,168,182,0/24
exporting 192.168.182.0/24:/share
[root@node01 /]# 
5)切换到node02上开始配置autofs,创建/etc/auto.master.d/bb.autofs,内容如下。
[root@node02 ~]# cat /etc/auto.master.d/bb.autofs 
/bhome	/etc/auto.bb
[root@node02 ~]# 
到底把哪个外部设备挂载到/bhome的哪个子目录上由/etc/auto.bb决定。

6)下面创建/etc/auto.bb,内容如下。
[root@node02 ~]# cat /etc/auto.bb 
bob	-fstype=nfs,rw 192.168.182.200:/bhome/bob
[root@node02 ~]# 
        结合/etc/auto.master.d/bb.autofs整体的意思是,当访问/bhome/bob时,系统会自动把192.168.182.200:/bhome/bob挂载到node02的/bhome/bob目录上。
7)重启autofs,命令如下。
[root@node02 ~]# systemctl restart autofs.service
8)确认现在/bhome/bob是没有挂载任何东西的,命令如下。
[root@node02 ~]# mount | grep -v auto | grep bhome
[root@node02 ~]# 
9)下面在node02上切换到bob,记住通过su - mary而不是通过su mary,命令如下。
[root@node02 /]# su - bob 
[bob@node02 ~]$ pwd
/bhome/bob
[bob@node02 ~]$ 

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

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

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

相关文章

JOSEF 单稳态中间继电器 UEG/A-4H-L DC110V 导轨安装

系列型号 UEG/A-2H2D中间继电器UEG/A-4H4D中间继电器UEG/A-2D中间继电器 UEG/A-2H中间继电器UEG/A-4H中间继电器UEG/A-4D中间继电器 UEG/A-6H中间继电器UEG/A-6D中间继电器UEG/A-8H中间继电器 UEG/A-10D中间继电器UEG/A-10H中间继电器UEG/A-2DPDT中间继电器 UEG/A-4DPDT中…

注意力机制的快速学习

注意力机制的快速学习 注意力机制 将焦点聚焦在比较重要的事物上 我(查询对象Q),这张图(被查询对象V) 我看一张图,第一眼,就会判断那些东西对我而言比较重要,那些对于我不重要&…

JVM的内存结构详解「重点篇」

一、JVM虚拟机数据区 虚拟机栈 1、 线程私有 2、 每个方法被执行的时候都会创建一个栈帧用于存储局部变量表,操作栈,动态链接,方法出口等信息。每一个方法被调用的过程就对应一个栈帧在虚拟机栈中从入栈到出栈的过程。 3、栈帧: 是用来存储…

数字化升级,智慧医疗新时代——医院陪诊服务的技术创新

在信息技术飞速发展的今天,医疗服务正迎来数字化升级的新时代。本文将探讨如何通过先进技术的应用,为医院陪诊服务注入更多智慧元素,提升患者和家属的医疗体验。 1. 创新医疗预约系统 # Python代码演示医疗预约系统的简单实现 class Medic…

最新国内可用GPT4,Midjourney绘画网站+使用教程

一、前言 ChatGPT GPT4.0,Midjourney绘画,相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而,GPT-4对普…

ChatGPT有什么新奇的使用方式?

2023,ChatGPT几乎席卷了所有行业,并且具有不可测量的巨大潜力等着我们去挖掘。 越来越多人对ChatGPT的应用产生兴趣,知乎上“ChatGPT有什么新奇的使用方式?”这一个热门话题的兴起就是最好的证明。 写作,毫无疑问&…

【Java探索之旅】我与Java的初相识(一):Java的特性与优点及其发展史

🎥 屿小夏 : 个人主页 🔥个人专栏 : Java入门到精通 🌄 莫道桑榆晚,为霞尚满天! 文章目录 一. Java语言概述与优势1.1 Java的概述1.2 Java语言的优势 二. Java领域与发展史2.1 Java的使用领域2.…

中国开源大模型登顶HuggingFace排行榜

12月8日消息,全球最大的开源大模型社区HuggingFace日前公布了最新的开源大模型排行榜,阿里云通义千问力压Llama2等国内外开源大模型登顶榜首。 HuggingFace的开源大模型排行榜(Open LLM Leaderboard)是目前大模型领域最具权威性的…

基于python+unittest实现接口自动化测试

简介 本文通过从Postman获取基本的接口测试Code简单的接口测试入手,一步步调整优化接口调用,以及增加基本的结果判断,讲解Python自带的Unittest框架调用,期望各位可以通过本文对接口自动化测试有一个大致的了解。 为什么要做接口…

VMware虚拟机搭建+云平台购买搭建(阿里云+UCloud)【设置主机名以及主机名映射、配置免密登录、配置JDK】

本地虚拟机的搭建 一、准备网段 在VMware的虚拟网络编辑器中将VMnet8虚拟网卡的 网段设置为:192.168.88.0网关设置为:192.168.88.2 二、下载CentOS操作系统文件,并安装 三、克隆多台虚拟机 依照同样的方法,克隆出node2…

火狐,要完了!

在过去几年中,关于Firefox 浏览器的衰落有过不少讨论。目前来说,很多公共的以及私营的大型网站都缺乏对Firefox的适当支持。但是Firefox也多次试图“自救”,甚至就在不久前,Mozilla 通过官博发文,表示 Firefox 在 2023…

AWS KeyPair密钥格式转换PPK<>PEM

概述说明 PEM(Privacy Enhanced Mail)和PPK(Putty Private Key)都是与加密和安全相关的文件格式,通常用于存储私钥信息。它们在不同的上下文中使用,并且与不同的软件和协议相关联。 PEM(Priva…

基于SpringBoot的学生管理系统

基于SpringBoot的学生管理系统 文章目录 基于SpringBoot的学生管理系统 一.引言二.系统设计三.技术架构四.功能实现五.界面展示六.源码获取 一.引言 学生管理系统是一种用于管理学生信息、课程安排、成绩记录等学生相关数据的软件系统。它通过集中管理学生信息,提供…

Java Web应用小案例 - 实现用户登录功能

文章目录 一、使用纯JSP方式实现用户登录功能(一)项目概述(二)实现步骤1、创建Web项目2、创建登录页面 二、使用JSPServlet方式实现用户登录功能三、使用JSPServletDB方式实现用户登录功能 一、使用纯JSP方式实现用户登录功能 &a…

spring 的概述和入门

​ 我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! …

ffmpeg格式转换 免费使用视频格式转换教程

下载安装 首先去官网下载ffmpeg的软件包https://ffmpeg.org/ 如果是windows可以在直接下载编译好的软件包 https://www.gyan.dev/ffmpeg/builds/ 进入解压后的目录,子目录bin中的ffmpeg.exe就是我们要使用的转换器 视频信息查看 打开cmd控制台,从…

Linux嵌入式配置USB鼠标支持+触摸板

在linux嵌入式中加入鼠标支持,首先在内核里面将mice驱动加入编译,这里用到的是usb所以还要有usb的支持,下载到板子上启动 1、定位鼠标 要用鼠标,首先要知道生成的鼠标设备是哪个,直接直接ls input目录,当…

HalconDotNe.HOperatorException:“HALCON error#1401:

Wrong number of values of control parameter 1in operator draw_rectangle2_mod错误提示参数值不对,是窗体hv_WindowHandle错了,窗体未创建。

【Linux系统编程】项目自动化构建工具make/Makefile

介绍: make和Makefile是用于编译和构建C/C程序的工具和文件。Makefile是一个文本文件,其中包含了编译和构建程序所需的规则和指令。它告诉make工具如何根据源代码文件生成可执行文件,里面保存的是依赖关系和依赖方法。make是一个命令行工具&a…

[ 蓝桥杯Web真题 ]-Markdown 文档解析

目录 介绍 准备 目标 规定 思路 补充知识 解法参考 介绍 Markdown 因为其简洁的语法大受欢迎,已经成为大家写博客或文档时必备的技能点,众多博客平台都提倡用户使用 Markdown 语法进行文章书写,然后再发布后,实时的将其转化…