Linux 配置NFS与autofs自动挂载

news2024/9/29 7:19:01

目录

配置NFS服务器

安装nfs软件包

配置共享目录

防火墙放行相关服务

配置NFS客户端

autofs自动挂载

配置autofs


配置NFS服务器

nfs主配置文件参数(/etc/exports)

共享目录  允许地址1访问(选项1,选项2)  循序地址2访问(选项1,选项2)……

允许地址的格式

子网、主机地址、指定域名、*(表示所有主机)

选项

ro                        共享目录只可读

rw                        共享目录可读可写

all_squash            将远程访问的用户以及所属用户组都映射为匿名用户和匿名用户组

no_all_squash       与all_quash相反

anonuid=xxx       将远程访问的用户都映射为匿名用户,并指定该匿名用户为本地用户

sync                     将数据同步写入到内存缓冲区与磁盘中(保证数据的一致性)

asyn                     先将数据保存在内存缓冲区,需要时再写入硬盘

secure                  限制客户端只可以从小于1024的TCP/IP端口连接FNS服务器(默认)

insecure               允许从大于1024的端口连接NFS服务器

安装nfs软件包

NFS服务所需的进程

rpc.nfsd         nfs的主要进程,负责管理客户端的登录,判别登入者ID

rpc.mountd   负责管理NFS的文件系统,通过读取NFS主要配置文件/etc/exports对客户端进行权限锁定

rpc.lockd        非必要进程,主要解决多个客户端同时写入的问题(必须在客户端和服务端都开启才有用,长与statd同时使用)

rpc.statd        非必要进程,用于检查文件的一致性,检查文件是否被摧毁(必须在客户端和服务端都开启才有效)

为了支持NFS,需要启用多个服务进程,每个进程都会占用一个端口来传输数据;其中除了nfsd使用固定的2049端口,其余的都随机使用小于1024的端口,用户如何知道这些端口,

此时就需要使用rpcbind服务进程来实现

rpcbind         管理ROC服务进程和端口之间的映射关系(NFS服务进程启用时,选取端口,向rpcbind注册映射消息;客户端请求NFS相关进程时,先请求rpcbind得到相应的端口,然后再通过端口与对应进程建立通信)

启动NFS服务

安装软件包

安装nfs-utils包:包含nfsd、mountd、lockd、statd等服务端的守护进程和客户端相关工具

安装rpcbind包:包含rpcbind进程

yum -y install nfs-utils

yum -y install rpcbind

注意:安装完nfs-utils后,rpcbind默认启动

启用相关服务

systemctl start nfs服务

systemctl start rpcbind

查看服务状态

systemctl status nfs服务

systemctl status rpcbind

设置开机自启动服务

systemctl enable nfs服务

systemctl enable rpcbind

配置共享目录

创建目录

mkdir -p /nfs1/share1

更改权限

chmod 777 /nfs1/share1

配置共享目录到nfs的主配置文件/etc/exports下

vim /etc/exports

/nfs1/share1 172.25.250.*(rw,sync,all_squash)

重新挂载(exportfs 管理NFS服务器共享的文件系统)

export -ar 重新加载NFS配置文件(或者重启nfs服务也可以)

       -a                        全部

       -r                        重新挂载某个目录

       -u 客户端:目录    卸载某个目录(并没有删除配置文件的内容)

       -v                        显示NFS服务器上的所有共享目录(显示详细信息)

检查共享目录是否设置正确(shownmount)

showmount -e     显示NFS服务器上所有的共享目录-显示简要信息

           -d    仅显示已经被NFS客户端加载的目录

防火墙放行相关服务

可以在文件/etc/sysconfig/nfs为每个服务进程设置固定端口,然后防火墙放行

也可以直接防火墙放行所有nfs服务

firewall-cmd --add-service=nfs  防火墙放行NFS服务


配置NFS客户端

安装nfs软件包

yum -y install nfs-utils

启用相关服务

systemctl start nfs服务

systemctl start rpcbind

查看服务状态

systemctl status nfs服务

systemctl status rpcbind

设置开机自启动服务

systemctl enable nfs服务

systemctl enable rpcbind

检查共享目录是否设置正确

showmount -e nfs服务器地址

挂载到NFS服务器的文件到本地

mkdir -p /media/nfs1        创建挂载点

临时挂载

mount -t nfs 服务器地址: /nfs1/share1 /media/nfs1   将服务器上的/nfs1/shar1挂载到本地/media/nfs1目录

永久挂载

服务器地址:/nfs1/share1  /media/nfs1 nfs rw,sync 0 0

sync 缓冲和磁盘一起写入,防止数据丢失


autofs自动挂载

在NFS客户端配置,取代vim /etc/fstab挂载

为什么需要autofs

由于网络的问题,NFS客户端与服务器的连接不会一直存在,当我们挂载了NFS服务器之后,任何一方脱机都可能造成另一方等待超时,以此通过autofs来解决此问题

autofs自动挂载原理

持续监听某个目录,然后当我们使用某个目录下的子目录时,会根据规则文件自动挂载

对于NFS来说:当客户端在使用NFS文件系统时,才让系统自动挂载;当NFS文件系统使用完毕后,让NFS自动卸载

配置autofs

将nfs服务器的/nfs1/share1挂载到/media/nfsclient

相对路径挂载方法

1、安装软件包

yum install -y autofs

2、启动相关服务

systemctl start autofs.service

systemctl enable autofs.service

3、配置autofs的主映射文件(/etc/auto.master)

/etc/auto.master  进行自动挂载时参考的主映射文件(根据此文件来设置自动挂载时的挂载点)

可以通过在/etc/default/autofs中设置MASTER_MAP_NAME变量来更改默认的主映射文件

文件格式

挂载点的主目录(/media)   挂载点对应的子配置文件(可以任意创建/etc/rule.auto)

4、配置挂载点主目录的子配置文件(/etc/rule.auto)

挂载点的子目录(/nfsclient) 挂载选项(-nfs,rw,sync)   要挂载设备(nfs服务器:/nfs1/share1)

注意使用autofs自动挂载,就不需要主动去创建挂载目录

5、重启autofs服务

systemctl restart autofs

绝对路径挂载方法

1、2、5步同相对路径方法

3、配置主映射文件

/-  /etc/rule.auto  /-表示使用绝对路径

4、配置子配置文件格式(vim /etc/rule.auto)

/media/nfsclient (-nfs,rw,syns) nfs服务器:/nfs1/share1

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

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

相关文章

fastadmin:如何点击按钮弹出存在的指定页面的弹窗

样式&#xff1a;方法一&#xff1a;直接使用超链接进行操作{:url(popup/purchase/itemno)}&#xff1a;表示地址信息btn-dialog&#xff1a;表示弹窗<a href"{:url(popup/purchase/itemno)}" title"跳转第三方" class"btn btn-success btn-dialog…

Kali安装配置vulhub

一、vulhubVulhub是一个基于docker和docker-compose的漏洞环境集合&#xff0c;进入对应目录并执行一条语句即可启动一个全新的漏洞环境&#xff0c;主要利用于漏洞复现。Vulhub的官方地址为www.vulhub.org。二、搭建vulhub靶场2.1 开启kali虚拟机2.2 安装docker先更新一下软件…

第四届国际步态识别竞赛HID2023已经启动,欢迎报名

欢迎参加第四届HID 2023竞赛&#xff0c;证明您的实力&#xff0c;推动步态识别研究发展&#xff01;本次竞赛的亮点&#xff1a;总额人民币19,000元奖金&#xff1b;最新的SUSTech-Competition步态数据集&#xff1b;比上一届更充裕的准备时间&#xff1b;OpenGait开源程序帮您…

系统发育树初步剖析

什么是系统发育树如何看系统发育树并确定哪些物种最相关1. 要点 系统发育树是表示生物体之间进化关系的图表。系统发育树是假设的&#xff0c;而不是确定的事实。系统发育树中的分支模式反映了物种或其他群体如何从一系列共同祖先进化而来的关系。在树中&#xff0c;如果两个物…

1301:大盗阿福

经典的dp打家劫舍问题状态设计dp[i][0]&#xff1a;在前i个店铺中选&#xff0c;且不选第i家的最大和dp[i][1]&#xff1a;在前i个店铺中选&#xff0c;且选第i家的最大和状态转移dp[i][0] max(dp[i-1][1], dp[i-1][0];第i家店不选&#xff0c;那么我们可以选第i-1个店 也可以…

Vue3的新特性变化,上手指南!

文章目录一、Vue3相比Vue2&#xff0c;更新了什么变化&#xff1f;二、Proxy 代理响应式原理三、组合式 API (Composition API)setup()函数:ref()函数reactive()函数组合式 setup 中使用 Props 父向子传递参数计算属性watch&#xff08;数据监视&#xff09;watchEffect&#x…

C语言数据结构初阶(2)----顺序表

目录 1. 顺序表的概念及结构 2. 动态顺序表的接口实现 2.1 SLInit(SL* ps) 的实现 2.2 SLDestory(SL* ps) 的实现 2.3 SLPrint(SL* ps) 的实现 2.4 SLCheckCapacity(SL* ps) 的实现 2.5 SLPushBack(SL* ps, SLDataType x) 的实现 2.6 SLPopBack(SL* ps) 的实现 2.7 SLP…

“XXX.app 已损坏,打不开。您应该将它移到废纸篓”,Mac应用程序无法打开或文件损坏的处理方法(2)

1. 检查状态 在sip系统完整性关闭前&#xff0c;我们先检查是否启用了SIP系统完整性保护。打开终端输入以下命令【csrutil status】并回车&#xff1a; 你会看到以下信息中的一个&#xff0c;用来指示SIP状态。已关闭 disabled: System Integrity Protection status: disabl…

学习 Python 之 Pygame 开发魂斗罗(四)

学习 Python 之 Pygame 开发魂斗罗&#xff08;四&#xff09;继续编写魂斗罗1. 创建子弹类2. 根据玩家方向和状态设置子弹发射的位置(1). 站立向右发射子弹(2). 站立向左发射子弹(3). 站立朝上发射子弹(4). 蹲下发射子弹(5). 向斜方发射子弹(6). 奔跑时发射子弹(7). 跳跃时发射…

ARM uboot 源码分析8 - uboot的环境变量

一、uboot 的环境变量基础 1、环境变量的作用 (1) 让我们可以不用修改 uboot 的源代码&#xff0c;而是通过修改环境变量&#xff0c;来影响 uboot 运行时的一些数据和特性。譬如说&#xff0c;通过修改 bootdelay 环境变量&#xff0c;就可以更改系统开机自动启动时倒数的秒…

【MindSpore】安装和使用MindSpore 2.0.0版本简单实现数据变换Transforms功能

本篇文章主要是讲讲MindSpore的安装以及根据官方提供的例子实现数据变换功能。 昇思MindSpore是一款开源的AI框架&#xff0c;旨在实现易开发、高效执行、全场景覆盖三大目标。 目录1、加入MindSpore社区2、安装前准备2.1、获取安装命令2.2、安装pip2.3、确认系统环境3、安装Mi…

JavaWeb--Web概述

Web概述1 Web概述1.1 Web和JavaWeb的概念1.2 JavaWeb技术栈1.2.1 B/S架构1.2.2 静态资源1.2.3 动态资源1.2.4 数据库1.2.5 HTTP协议1.2.6 Web服务器1.3 Web核心课程安排今日目标&#xff1a; 了解JavaWeb开发的技术栈 1 Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网&#…

阿里软件测试二面:adb 连接 Android 手机的两种方式,看完你就懂了

前言 随着现在移动端技术的突飞猛进&#xff0c;导致现在市场上&#xff0c;APP 应用数不胜数&#xff0c;那对于测试工程师而言&#xff0c;对于 APP 的测试&#xff0c;那基本就是一个必修课了。 今天&#xff0c;我就来给大家介绍一下&#xff0c;adb 连接 Android 手机的两…

Spring(Bean生命周期)

目录 1. 生命周期简图2. 扩展接口介绍 2.1 Aware接口2.2 BeanPostProcessor接口2.3 InitializingBean2.4 DisposableBean2.5 BeanFactoryPostProcessor接口3. spring的简化配置 3.1 项目搭建3.2 Bean的配置和值注入3.3 AOP的示例 1. 生命周期简图 2. 扩展接口介绍 2.1 Aware接…

Redis实现分页和多条件模糊查询方案

导言 Redis是一个高效的内存数据库&#xff0c;它支持包括String、List、Set、SortedSet和Hash等数据类型的存储&#xff0c;在Redis中通常根据数据的key查询其value值&#xff0c;Redis没有模糊条件查询&#xff0c;在面对一些需要分页、排序以及条件查询的场景时(如评论&…

PolarDB数据库的CSN机制

背景 对postgres数据库熟悉的同学会发现在高并发场景下在获取快照处易出现性能瓶颈&#xff0c;其原因在于PG使用全局数组在共享内存中保存所有事务的状态&#xff0c;在获取快照时需要加锁以保证数据一致性。获取快照时需要持有ProcArraryLock共享锁比遍历ProcArray数组中活跃…

[计算机网络(第八版)]第二章 物理层(学习笔记)

网络层是网络体系结构的最低层&#xff0c;不是具体的传输媒体&#xff0c;也不是连接计算机的具体物理设备 2.1 物理层的概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流&#xff0c;而不是指具体的传输媒体。物理层的作用&#xff1a; 要尽可能地屏…

面试题:Android 中 Intent 采用了什么设计模式?

答案是采用了原型模式。原型模式的好处在于方便地拷贝某个实例的属性进行使用、又不会对原实例造成影响&#xff0c;其逻辑在于对 Cloneable 接口的实现。 话不多说看下 Intent 的关键源码&#xff1a; // frameworks/base/core/java/android/content/Intent.java public cla…

阅读笔记9——DenseNet

一、DenseNet DenseNet的网络结构如图1-1所示&#xff0c;其核心是Dense Block模块&#xff0c;Dense Block中的一个黑点就代表一个卷积模块&#xff08;不是一个卷积层&#xff0c;而是DenseNet提出的一个BottleNeck模块&#xff0c;后文有讲解&#xff09;&#xff0c;每条黑…

ClassPathResource遇到的坑:class path resource

读取文件--ClassPathResource前言一、使用ClassPathResource.getFile()的坑二、通过流读取文件内容总结前言 需求&#xff1a;拿到一个小程序的皮肤文件夹&#xff0c;放在resource目录下 1:根据皮肤的style.json&#xff0c;获取json内的${xxx.png}变量&#xff08;获的图片名…